START: ptest-runner 2026-04-10T01:33 + 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 -t 600 glib' Running test: glib/field-info.test TAP version 14 # random seed: R02S3d3a0bc72aafb94dcbd99b71a0b4c35d 1..4 # Start of field-info tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/field-info/basic-struct-field/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/field-info/basic-struct-field/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/field-info/basic-struct-field/.dirs/system-config1:/var/volatile/tmp/field-info/basic-struct-field/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/field-info/basic-struct-field/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/field-info/basic-struct-field/.dirs/system-data1:/var/volatile/tmp/field-info/basic-struct-field/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/field-info/basic-struct-field/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/field-info/basic-struct-field/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/field-info/basic-struct-field/.dirs/runtime # Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection # /field-info/basic-struct-field summary: Test basic properties of a GIFieldInfo from a C struct ok 1 /field-info/basic-struct-field # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/field-info/basic-union-field/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/field-info/basic-union-field/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/field-info/basic-union-field/.dirs/system-config1:/var/volatile/tmp/field-info/basic-union-field/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/field-info/basic-union-field/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/field-info/basic-union-field/.dirs/system-data1:/var/volatile/tmp/field-info/basic-union-field/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/field-info/basic-union-field/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/field-info/basic-union-field/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/field-info/basic-union-field/.dirs/runtime # Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection # /field-info/basic-union-field summary: Test basic properties of a GIFieldInfo from a C union ok 2 /field-info/basic-union-field # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/field-info/read-write-struct-field/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/field-info/read-write-struct-field/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/field-info/read-write-struct-field/.dirs/system-config1:/var/volatile/tmp/field-info/read-write-struct-field/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/field-info/read-write-struct-field/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/field-info/read-write-struct-field/.dirs/system-data1:/var/volatile/tmp/field-info/read-write-struct-field/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/field-info/read-write-struct-field/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/field-info/read-write-struct-field/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/field-info/read-write-struct-field/.dirs/runtime # Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection # /field-info/read-write-struct-field summary: Test reading and writing of a GIFieldInfo from a C union ok 3 /field-info/read-write-struct-field # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/field-info/read-write-union-field/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/field-info/read-write-union-field/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/field-info/read-write-union-field/.dirs/system-config1:/var/volatile/tmp/field-info/read-write-union-field/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/field-info/read-write-union-field/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/field-info/read-write-union-field/.dirs/system-data1:/var/volatile/tmp/field-info/read-write-union-field/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/field-info/read-write-union-field/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/field-info/read-write-union-field/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/field-info/read-write-union-field/.dirs/runtime # Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection # /field-info/read-write-union-field summary: Test reading and writing of a GIFieldInfo from a C union ok 4 /field-info/read-write-union-field # End of field-info tests PASS: glib/field-info.test Running test: glib/utf8-misc.test TAP version 14 # random seed: R02Se4f736fdaf61d0510f6b56c44a0af59f 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/thread-deprecated.test TAP version 14 # random seed: R02S0955e9fbedd0f64cc139293a9b44845c 1..6 # Start of thread tests ok 1 /thread/mutex ok 2 /thread/static-rec-mutex ok 3 /thread/static-private # slow test /thread/static-private executed in 4.40 secs Executing: glib/thread-deprecated.test ok 4 /thread/static-rw-lock # slow test /thread/static-rw-lock executed in 5.00 secs ok 5 /thread/once Executing: glib/thread-deprecated.test Executing: glib/thread-deprecated.test ok 6 /thread/rerun-all # slow test /thread/rerun-all executed in 10.02 secs # End of thread tests PASS: glib/thread-deprecated.test Running test: glib/unix.test TAP version 14 # random seed: R02Seab970c8505eecfa01c0818ba693aeb5 1..22 # 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 Executing: glib/unix.test ok 8 /glib-unix/sighup # slow test /glib-unix/sighup executed in 0.50 secs ok 9 /glib-unix/sigterm # slow test /glib-unix/sigterm executed in 0.50 secs ok 10 /glib-unix/sighup_again # slow test /glib-unix/sighup_again executed in 0.50 secs ok 11 /glib-unix/sighup_add_remove ok 12 /glib-unix/sighup_nested ok 13 /glib-unix/callback_after_signal # slow test /glib-unix/callback_after_signal executed in 2.00 secs ok 14 /glib-unix/child-wait # Checking FD 5 for /dev/null ok 15 /glib-unix/fd-query-path ok 16 /glib-unix/fd-query-path-error # 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 17 /glib-unix/pipe/fd-cloexec # End of pipe tests # Start of sighup tests ok 18 /glib-unix/sighup/alternate-stack # slow test /glib-unix/sighup/alternate-stack executed in 1.00 secs # End of sighup tests # Start of sigterm tests Executing: glib/unix.test ok 19 /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 20 /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 21 /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 22 /glib-unix/get-passwd-entry/nonexistent # End of get-passwd-entry tests # End of glib-unix tests PASS: glib/unix.test Running test: glib/642026.test TAP version 14 # random seed: R02Se3782bf9e694abea0370e9f5347566be 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/slice.test TAP version 14 # random seed: R02Sff8097e6ac2a656fc83b59e40bddbf90 1..4 # Start of slice tests ok 1 /slice/copy ok 2 /slice/chain ok 3 /slice/allocate # /slice/new-empty summary: Test that g_slice_new() never returns NULL, even with a zero-size allocation # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3688 ok 4 /slice/new-empty # End of slice tests PASS: glib/slice.test Running test: glib/portal-support-snap.test TAP version 14 # random seed: R02S0efce3700f317fcc5516c2320dc2376b 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/properties-refcount3.test TAP version 14 # random seed: R02S45f46e95d06196d37f7b73c95302aed9 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 # # 23925547 494525 # 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/rcbox.test TAP version 14 # random seed: R02S38eb7b8a73879141e16141c0c9f264ce 1..8 # Start of rcbox tests ok 1 /rcbox/new # global_point = 0xaaaac4f09520 ok 2 /rcbox/release-full # global_point_a = 0xaaaac4f09520 # global_point_b = 0xaaaac4f09610 ok 3 /rcbox/dup ok 4 /rcbox/alignment # End of rcbox tests # Start of atomic-rcbox tests ok 5 /atomic-rcbox/new # global_point = 0xaaaac4f09610 ok 6 /atomic-rcbox/release-full # global_point_a = 0xaaaac4f09610 # global_point_b = 0xaaaac4f09520 ok 7 /atomic-rcbox/dup ok 8 /atomic-rcbox/alignment # End of atomic-rcbox tests PASS: glib/rcbox.test Running test: glib/base64.test TAP version 14 # random seed: R02S131788498d0a3c150a779a0f486abfe8 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/power-profile-monitor.test TAP version 14 # random seed: R02Se678e2e83d2900f2e49c76a804a3ec33 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/atomic-c-89.test TAP version 14 # random seed: R02S214fff44a02f1f149368ec06fdf5da9d 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/closure.test TAP version 14 # random seed: R02S1af51bbeced8daeca0e6293682eba87f 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/642026-ec.test TAP version 14 # random seed: R02Sa7acca5d97b492883561b81c8cb700f3 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/spawn-singlethread.test TAP version 14 # random seed: R02Saea3eb34a388fdad95a64e51d63dcea9 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/gdbus-server-auth.test TAP version 14 # random seed: R02S4e8f85a10333141ff6d91c47f69dda23 1..10 # 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-V8BKN3 / libdbus client, with flags: external:false anonymous:false sha1:false abstract:false tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-V8BKN3/dbus-L6h0k2OC # 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=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 2605 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-FMVJN3 / libdbus client, with flags: external:false anonymous:false sha1:false abstract:true tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-FMVJN3/dbus-NV49yUO5 # 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=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 2605 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=32933 # 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-GIRJN3 / libdbus client, with flags: external:false anonymous:true sha1:false abstract:false tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-GIRJN3/dbus-rwRyjRVU # 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=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 2605 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-GGSJN3 / libdbus client, with flags: external:true anonymous:false sha1:false abstract:false tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-GGSJN3/dbus-jYQOLTVv # 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=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 2605 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-ELTJN3 / libdbus client, with flags: external:false anonymous:false sha1:true abstract:false tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-ELTJN3/dbus-cm1uwpOc # 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=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 2605 ok 6 /gdbus/server-auth/sha1 # SKIP Testing interop with libdbus not supported # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/gdbus/server-auth/path-in-use/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/gdbus/server-auth/path-in-use/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/gdbus/server-auth/path-in-use/.dirs/system-config1:/var/volatile/tmp/gdbus/server-auth/path-in-use/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/gdbus/server-auth/path-in-use/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/gdbus/server-auth/path-in-use/.dirs/system-data1:/var/volatile/tmp/gdbus/server-auth/path-in-use/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/gdbus/server-auth/path-in-use/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/gdbus/server-auth/path-in-use/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/gdbus/server-auth/path-in-use/.dirs/runtime ok 7 /gdbus/server-auth/path-in-use # 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=39293 # 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 8 /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-QD1JN3 / libdbus client, with flags: external:true anonymous:false sha1:false abstract:false tcp:false # Connectable address: unix:path=/var/volatile/tmp/gdbus-server-auth-QD1JN3/dbus-j7qqI1vP # 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=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: New connection from peer with credentials: GCredentials:linux-ucred:pid=2605,uid=1000,gid=1000 # GLib-GIO-DEBUG: Server says GDBus client is uid 1000, pid 2605 ok 9 /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=37075 # 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 10 /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/convert.test TAP version 14 # random seed: R02Sbcb53697dbc24c02947c89a721a715d9 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/test-printf.test TAP version 14 # random seed: R02S59663c5cb8fc2f6852bf0bc0483a1279 1..24 # 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 ok 16 /snprintf/produce-embedded-nulls # End of snprintf tests # Start of printf tests ok 17 /printf/test-percent ok 18 /printf/test-positional-params ok 19 /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 fprintf tests # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3761 # /fprintf/produce-embedded-nulls summary: printf() functions can produce strings with embedded null characters. That happens when passing individual characters (%c) with value ' ok 20 /fprintf/produce-embedded-nulls # End of fprintf tests # Start of sprintf tests ok 21 /sprintf/test-positional-params ok 22 /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 23 /vasprintf/invalid-format-placeholder # /vasprintf/invalid-wide-string summary: Test error handling for invalid wide strings in g_vasprintf() ok 24 /vasprintf/invalid-wide-string # End of vasprintf tests PASS: glib/test-printf.test Running test: glib/portal-support-flatpak-full.test TAP version 14 # random seed: R02Sbfb954df3f3937739bba3ed2dc69bbb4 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/value.test TAP version 14 # random seed: R02Sd94a04cf911a62c558c54772111cd7de 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/timeout.test TAP version 14 # random seed: R02S3d7610221183e4db97f36416d9e0ef8c 1..4 # Start of timeout tests # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=642052 ok 1 /timeout/seconds # slow test /timeout/seconds executed in 2.10 secs Executing: glib/timeout.test ok 2 /timeout/seconds-once # slow test /timeout/seconds-once executed in 2.10 secs # Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1600 ok 3 /timeout/weeks-overflow # slow test /timeout/weeks-overflow executed in 2.10 secs ok 4 /timeout/far-future-ready-time # End of timeout tests PASS: glib/timeout.test Running test: glib/types.test TAP version 14 # random seed: R02S8ef7ada26e76e6a074accb55460266b5 1..1 # Start of types tests ok 1 /types/basic_types # End of types tests PASS: glib/types.test Running test: glib/null-settings-backend.test TAP version 14 # random seed: R02Scb42ac55728769d876ffe81153d66132 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/glistmodel.test TAP version 14 # random seed: R02Sf0491e7cf8778b5eecabbf1b85be868f 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/cxx-98.test TAP version 14 # random seed: R02S310cb108d6ff8d0bac4509f26956ad53 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/memchunk.test TAP version 14 # random seed: R02S2a495da330ca352e0d5821093b32ed03 1..1 # Start of memchunk tests ok 1 /memchunk/basic # End of memchunk tests PASS: glib/memchunk.test Running test: glib/regex.test TAP version 14 # random seed: R02S6ce16fda1af9b4eefa13bdfb5723da3f 1..849 # 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/81 ok 36 /regex/new/83 # 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 # Compiling pattern /(/ failed with error: Error while compiling regular expression ‘(’ at char 1: missing terminating ) ok 54 /regex/new-fail/37 # Compiling pattern /)/ failed with error: Error while compiling regular expression ‘)’ at char 1: missing terminating ) ok 55 /regex/new-fail/38 # Compiling pattern /[/ failed with error: Error while compiling regular expression ‘[’ at char 1: missing terminating ] for character class ok 56 /regex/new-fail/39 # Compiling pattern /*/ failed with error: Error while compiling regular expression ‘*’ at char 1: nothing to repeat ok 57 /regex/new-fail/40 # Compiling pattern /?/ failed with error: Error while compiling regular expression ‘?’ at char 1: nothing to repeat ok 58 /regex/new-fail/41 # Compiling pattern /(?Px)|(?Py)/ failed with error: Error while compiling regular expression ‘(?Px)|(?Py)’ at char 15: two named subpatterns have the same name ok 59 /regex/new-fail/42 # Compiling pattern /a\/ failed with error: Error while compiling regular expression ‘a\’ at char 2: \ at end of pattern ok 60 /regex/new-fail/43 # Compiling pattern /a\c/ failed with error: Error while compiling regular expression ‘a\c’ at char 3: \c at end of pattern ok 61 /regex/new-fail/44 # Compiling pattern /a\l/ failed with error: Error while compiling regular expression ‘a\l’ at char 3: unrecognized character following \ ok 62 /regex/new-fail/45 # Compiling pattern /a{4,2}/ failed with error: Error while compiling regular expression ‘a{4,2}’ at char 5: numbers out of order in {} quantifier ok 63 /regex/new-fail/46 # Compiling pattern /a{999999,}/ failed with error: Error while compiling regular expression ‘a{999999,}’ at char 8: number too big in {} quantifier ok 64 /regex/new-fail/47 # Compiling pattern /[a-z/ failed with error: Error while compiling regular expression ‘[a-z’ at char 4: missing terminating ] for character class ok 65 /regex/new-fail/48 # Compiling pattern /[\B]/ failed with error: Error while compiling regular expression ‘[\B]’ at char 3: invalid escape sequence in character class ok 66 /regex/new-fail/49 # Compiling pattern /[z-a]/ failed with error: Error while compiling regular expression ‘[z-a]’ at char 4: range out of order in character class ok 67 /regex/new-fail/50 # Compiling pattern /^[[:alnum:]-_.]+$/ failed with error: Error while compiling regular expression ‘^[[:alnum:]-_.]+$’ at char 12: invalid range in character class ok 68 /regex/new-fail/51 # Compiling pattern /{2,4}/ failed with error: Error while compiling regular expression ‘{2,4}’ at char 5: nothing to repeat ok 69 /regex/new-fail/52 # Compiling pattern /a(?u)/ failed with error: Error while compiling regular expression ‘a(?u)’ at char 4: unrecognized character after (? or (?- ok 70 /regex/new-fail/53 # Compiling pattern /a(?<$foo)bar/ failed with error: Error while compiling regular expression ‘a(?<$foo)bar’ at char 4: missing subpattern name after (?& ok 71 /regex/new-fail/54 # Compiling pattern /a[:alpha:]b/ failed with error: Error while compiling regular expression ‘a[:alpha:]b’ at char 10: POSIX named classes are supported only within a class ok 72 /regex/new-fail/55 # Compiling pattern /a(b/ failed with error: Error while compiling regular expression ‘a(b’ at char 3: missing terminating ) ok 73 /regex/new-fail/56 # Compiling pattern /a)b/ failed with error: Error while compiling regular expression ‘a)b’ at char 2: missing terminating ) ok 74 /regex/new-fail/57 # Compiling pattern /a(?R/ failed with error: Error while compiling regular expression ‘a(?R’ at char 4: missing terminating ) ok 75 /regex/new-fail/58 # Compiling pattern /a(?-54/ failed with error: Error while compiling regular expression ‘a(?-54’ at char 6: reference to non-existent subpattern ok 76 /regex/new-fail/59 # Compiling pattern /(ab\2)/ failed with error: Error while compiling regular expression ‘(ab\2)’ at char 5: reference to non-existent subpattern ok 77 /regex/new-fail/60 # Compiling pattern /a(?#abc/ failed with error: Error while compiling regular expression ‘a(?#abc’ at char 7: missing ) after comment ok 78 /regex/new-fail/61 # Compiling pattern /(?<=a+)b/ failed with error: Error while compiling regular expression ‘(?<=a+)b’ at char 0: lookbehind assertion is not fixed length ok 79 /regex/new-fail/62 # Compiling pattern /(?(1?)a|b)/ failed with error: Error while compiling regular expression ‘(?(1?)a|b)’ at char 4: malformed number or name after (?( ok 80 /regex/new-fail/63 # Compiling pattern /(a)(?(1)a|b|c)/ failed with error: Error while compiling regular expression ‘(a)(?(1)a|b|c)’ at char 3: conditional group contains more than two branches ok 81 /regex/new-fail/64 # Compiling pattern /(?(?i))/ failed with error: Error while compiling regular expression ‘(?(?i))’ at char 3: assertion expected after (?( ok 82 /regex/new-fail/65 # Compiling pattern /a[[:fubar:]]b/ failed with error: Error while compiling regular expression ‘a[[:fubar:]]b’ at char 11: unknown POSIX class name ok 83 /regex/new-fail/66 # Compiling pattern /[[.ch.]]/ failed with error: Error while compiling regular expression ‘[[.ch.]]’ at char 7: POSIX collating elements are not supported ok 84 /regex/new-fail/67 # Compiling pattern /\x{110000}/ failed with error: Error while compiling regular expression ‘\x{110000}’ at char 9: character value in \x{...} sequence is too large ok 85 /regex/new-fail/68 # Compiling pattern /^(?(0)f|b)oo/ failed with error: Error while compiling regular expression ‘^(?(0)f|b)oo’ at char 5: reference to non-existent subpattern ok 86 /regex/new-fail/69 # Compiling pattern /(?<=\C)X/ failed with error: Error while compiling regular expression ‘(?<=\C)X’ at char 0: \C not allowed in lookbehind assertion ok 87 /regex/new-fail/70 # Compiling pattern /(?(?foo)\gfoo)\geks)(?Peccs)/ failed with error: Error while compiling regular expression ‘(?Peks)(?Peccs)’ at char 16: two named subpatterns have the same name ok 90 /regex/new-fail/74 # Compiling pattern /\666/ failed with error: Error while compiling regular expression ‘\666’ at char 4: octal value is greater than \377 ok 91 /regex/new-fail/75 # Compiling pattern /^(?(DEFINE) abc | xyz ) / failed with error: Error while compiling regular expression ‘^(?(DEFINE) abc | xyz ) ’ at char 4: DEFINE group contains more than one branch ok 92 /regex/new-fail/76 # Compiling pattern /a/ failed with error: Invalid newline flags ok 93 /regex/new-fail/77 # Compiling pattern /^(a)\g"3/ failed with error: Error while compiling regular expression ‘^(a)\g"3’ at char 6: \g is not followed by a braced, angle-bracketed, or quoted name or number, or by a plain number ok 94 /regex/new-fail/78 # Compiling pattern /^(a)\g{3/ failed with error: Error while compiling regular expression ‘^(a)\g{3’ at char 8: syntax error in subpattern number (missing terminator?) ok 95 /regex/new-fail/79 # Compiling pattern /^(a)\g{0}/ failed with error: Error while compiling regular expression ‘^(a)\g{0}’ at char 9: reference to non-existent subpattern ok 96 /regex/new-fail/80 # Compiling pattern /a(*FOOBAR)b/ failed with error: Error while compiling regular expression ‘a(*FOOBAR)b’ at char 9: (*VERB) not recognized ok 97 /regex/new-fail/82 # Compiling pattern /(?)(?&)/ failed with error: Error while compiling regular expression ‘(?)(?&)’ at char 9: missing subpattern name after (?& ok 98 /regex/new-fail/84 # Compiling pattern /(?+-a)/ failed with error: Error while compiling regular expression ‘(?+-a)’ at char 4: a numbered reference must not be zero ok 99 /regex/new-fail/85 # Compiling pattern /(?|(?A)|(?B))/ failed with error: Error while compiling regular expression ‘(?|(?A)|(?B))’ at char 16: different names for subpatterns of the same number are not allowed ok 100 /regex/new-fail/86 # Compiling pattern /a(*MARK)b/ failed with error: Error while compiling regular expression ‘a(*MARK)b’ at char 7: (*MARK) must have an argument ok 101 /regex/new-fail/87 # Compiling pattern /^\c€/ failed with error: Error while compiling regular expression ‘^\c€’ at char 4: \c must be followed by an ASCII character ok 102 /regex/new-fail/88 # Compiling pattern /\k/ failed with error: Error while compiling regular expression ‘\k’ at char 2: \k is not followed by a braced, angle-bracketed, or quoted name ok 103 /regex/new-fail/89 # Compiling pattern /a[\NB]c/ failed with error: Error while compiling regular expression ‘a[\NB]c’ at char 4: \N is not supported in a class ok 104 /regex/new-fail/90 # Compiling pattern /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEFG)XX/ failed with error: Error while compiling regular expression ‘(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEFG)XX’ at char 260: name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN) ok 105 /regex/new-fail/91 # Compiling pattern /(?i-x)((?:(?i-x)[^\x00\t\n\f\r "'/<=>\x{007F}-\x{009F}\x{FDD0}-\x{FDEF}\x{FFFE}\x{FFFF}\x{1FFFE}\x{1FFFF}\x{2FFFE}\x{2FFFF}\x{3FFFE}\x{3FFFF}\x{4FFFE}\x{4FFFF}\x{5FFFE}\x{5FFFF}\x{6FFFE}\x{6FFFF}\x{7FFFE}\x{7FFFF}\x{8FFFE}\x{8FFFF}\x{9FFFE}\x{9FFFF}\x{AFFFE}\x{AFFFF}\x{BFFFE}\x{BFFFF}\x{CFFFE}\x{CFFFF}\x{DFFFE}\x{DFFFF}\x{EFFFE}\x{EFFFF}\x{FFFFE}\x{FFFFF}\x{10FFFE}\x{10FFFF}]+)\s*=\s*)(\")/ failed with error: Error while compiling regular expression ‘(?i-x)((?:(?i-x)[^\x00\t\n\f\r "'/<=>\x{007F}-\x{009F}\x{FDD0}-\x{FDEF}\x{FFFE}\x{FFFF}\x{1FFFE}\x{1FFFF}\x{2FFFE}\x{2FFFF}\x{3FFFE}\x{3FFFF}\x{4FFFE}\x{4FFFF}\x{5FFFE}\x{5FFFF}\x{6FFFE}\x{6FFFF}\x{7FFFE}\x{7FFFF}\x{8FFFE}\x{8FFFF}\x{9FFFE}\x{9FFFF}\x{AFFFE}\x{AFFFF}\x{BFFFE}\x{BFFFF}\x{CFFFE}\x{CFFFF}\x{DFFFE}\x{DFFFF}\x{EFFFE}\x{EFFFF}\x{FFFFE}\x{FFFFF}\x{10FFFE}\x{10FFFF}]+)\s*=\s*)(\")’ at char 61: character value in \x{...} sequence is too large ok 106 /regex/new-fail/92 # End of new-fail tests # Start of match-simple tests 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 ok 179 /regex/match-simple/165 # 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 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 # GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code. ok 184 /regex/match-simple-optimized/97 ok 185 /regex/match-simple-optimized/98 # GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code. ok 186 /regex/match-simple-optimized/99 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 # GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code. ok 248 /regex/match-simple-optimized/161 ok 249 /regex/match-simple-optimized/162 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 # GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code. ok 252 /regex/match-simple-optimized/165 # End of match-simple-optimized tests # Start of match tests 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/247 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 ok 356 /regex/match/partial303 # Start of next0 tests ok 357 /regex/match/next0/248 ok 358 /regex/match/next0/249 ok 359 /regex/match/next0/250 ok 360 /regex/match/next0/251 # End of next0 tests # Start of next1 tests ok 361 /regex/match/next1/252 ok 362 /regex/match/next1/253 ok 363 /regex/match/next1/254 ok 364 /regex/match/next1/255 ok 365 /regex/match/next1/256 # End of next1 tests # Start of next2 tests 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 ok 373 /regex/match/next2/264 # End of next2 tests # Start of next3 tests 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 ok 379 /regex/match/next3/270 # End of next3 tests # Start of next4 tests ok 380 /regex/match/next4/271 # End of next4 tests # Start of count tests 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 ok 390 /regex/match/count/281 # 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 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 # 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/count-optimized/281 # 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 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 # GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code. ok 422 /regex/match/partial-optimized/303 # End of partial-optimized tests # Start of subpattern tests 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 ok 435 /regex/match/subpattern/316 # Start of named tests # Start of dupnames tests 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 ok 440 /regex/match/subpattern/named/dupnames/330 # 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 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 # GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code. ok 453 /regex/match/subpattern-optimized/316 # End of subpattern-optimized tests # Start of named tests # Start of subpattern tests 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/325 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 ok 467 /regex/match/named/subpattern/335 # 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 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 # GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code. 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 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 # GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code. ok 549 /regex/match-optimized/247 # End of match-optimized tests # Start of fetch-all0 tests ok 550 /regex/fetch-all0/336 ok 551 /regex/fetch-all0/337 # End of fetch-all0 tests # Start of fetch-all1 tests ok 552 /regex/fetch-all1/338 ok 553 /regex/fetch-all1/339 ok 554 /regex/fetch-all1/340 # End of fetch-all1 tests # Start of fetch-all2 tests ok 555 /regex/fetch-all2/341 ok 556 /regex/fetch-all2/342 ok 557 /regex/fetch-all2/343 # End of fetch-all2 tests # Start of fetch-all3 tests ok 558 /regex/fetch-all3/344 ok 559 /regex/fetch-all3/345 ok 560 /regex/fetch-all3/346 ok 561 /regex/fetch-all3/347 ok 562 /regex/fetch-all3/348 # End of fetch-all3 tests # Start of split tests # Start of simple0 tests ok 563 /regex/split/simple0/349 ok 564 /regex/split/simple0/350 ok 565 /regex/split/simple0/365 ok 566 /regex/split/simple0/366 # End of simple0 tests # Start of simple1 tests ok 567 /regex/split/simple1/351 ok 568 /regex/split/simple1/352 # End of simple1 tests # Start of simple2 tests ok 569 /regex/split/simple2/353 ok 570 /regex/split/simple2/359 ok 571 /regex/split/simple2/361 # End of simple2 tests # Start of simple3 tests 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/358 ok 577 /regex/split/simple3/360 ok 578 /regex/split/simple3/362 ok 579 /regex/split/simple3/363 ok 580 /regex/split/simple3/364 # End of simple3 tests # End of split tests # Start of split0 tests ok 581 /regex/split0/367 ok 582 /regex/split0/369 # End of split0 tests # Start of full-split0 tests ok 583 /regex/full-split0/368 ok 584 /regex/full-split0/370 ok 585 /regex/full-split0/371 ok 586 /regex/full-split0/372 ok 587 /regex/full-split0/373 # End of full-split0 tests # Start of split1 tests ok 588 /regex/split1/374 ok 589 /regex/split1/377 # End of split1 tests # Start of full-split1 tests ok 590 /regex/full-split1/375 ok 591 /regex/full-split1/376 ok 592 /regex/full-split1/378 ok 593 /regex/full-split1/379 ok 594 /regex/full-split1/405 # End of full-split1 tests # Start of split2 tests ok 595 /regex/split2/380 ok 596 /regex/split2/384 ok 597 /regex/split2/396 # End of split2 tests # Start of full-split2 tests ok 598 /regex/full-split2/381 ok 599 /regex/full-split2/382 ok 600 /regex/full-split2/383 ok 601 /regex/full-split2/385 ok 602 /regex/full-split2/397 ok 603 /regex/full-split2/400 ok 604 /regex/full-split2/406 # End of full-split2 tests # Start of split3 tests ok 605 /regex/split3/386 ok 606 /regex/split3/388 ok 607 /regex/split3/390 ok 608 /regex/split3/392 ok 609 /regex/split3/394 ok 610 /regex/split3/398 ok 611 /regex/split3/401 ok 612 /regex/split3/403 # End of split3 tests # Start of full-split3 tests ok 613 /regex/full-split3/387 ok 614 /regex/full-split3/389 ok 615 /regex/full-split3/391 ok 616 /regex/full-split3/393 ok 617 /regex/full-split3/395 ok 618 /regex/full-split3/399 ok 619 /regex/full-split3/402 ok 620 /regex/full-split3/404 ok 621 /regex/full-split3/407 ok 622 /regex/full-split3/408 # End of full-split3 tests # Start of check-repacement tests 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 ok 630 /regex/check-repacement/416 # End of check-repacement tests # Start of expand tests 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 ok 696 /regex/expand/482 # End of expand tests # Start of replace tests 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 ok 724 /regex/replace/510 # 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 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 # GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code. ok 730 /regex/replace-optimized/488 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 # GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code. ok 748 /regex/replace-optimized/506 ok 749 /regex/replace-optimized/507 ok 750 /regex/replace-optimized/508 # GLib-DEBUG: JIT compilation was requested with G_REGEX_OPTIMIZE, but JIT support is not available. Falling back to interpretive code. ok 751 /regex/replace-optimized/509 ok 752 /regex/replace-optimized/510 # End of replace-optimized tests # Start of replace-literally tests 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 ok 772 /regex/replace-literally/530 # End of replace-literally tests # Start of string-number tests 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 ok 787 /regex/string-number/545 # End of string-number tests # Start of escape_nul tests 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 ok 802 /regex/escape_nul/560 # End of escape_nul tests # Start of escape tests 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 ok 820 /regex/escape/578 # End of escape tests # Start of match-all0 tests ok 821 /regex/match-all0/579 ok 822 /regex/match-all0/581 # End of match-all0 tests # Start of match-all-full0 tests ok 823 /regex/match-all-full0/580 ok 824 /regex/match-all-full0/582 ok 825 /regex/match-all-full0/583 ok 826 /regex/match-all-full0/584 # End of match-all-full0 tests # Start of match-all1 tests ok 827 /regex/match-all1/585 ok 828 /regex/match-all1/587 ok 829 /regex/match-all1/592 # End of match-all1 tests # Start of match-all-full1 tests ok 830 /regex/match-all-full1/586 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/591 ok 835 /regex/match-all-full1/593 # End of match-all-full1 tests # Start of match-all2 tests ok 836 /regex/match-all2/594 ok 837 /regex/match-all2/596 ok 838 /regex/match-all2/598 # End of match-all2 tests # Start of match-all-full2 tests ok 839 /regex/match-all-full2/595 ok 840 /regex/match-all-full2/597 ok 841 /regex/match-all-full2/599 # End of match-all-full2 tests # Start of match-all3 tests ok 842 /regex/match-all3/600 ok 843 /regex/match-all3/602 # End of match-all3 tests # Start of match-all-full3 tests ok 844 /regex/match-all-full3/601 ok 845 /regex/match-all-full3/603 # End of match-all-full3 tests # Start of match-notempty tests ok 846 /regex/match-notempty/604 # 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 847 /regex/match-notempty-optimized/604 # End of match-notempty-optimized tests # Start of match-notempty-atstart tests ok 848 /regex/match-notempty-atstart/605 # 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 849 /regex/match-notempty-atstart-optimized/605 # End of match-notempty-atstart-optimized tests # End of regex tests PASS: glib/regex.test Running test: glib/unicode.test TAP version 14 # random seed: R02S03c013344b1c99f987db5b09867b8752 1..41 # 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 # Converting 'i' => 'İ' [expected 'İ'] (line 7) # Converting 'I' => 'I' [expected 'I'] (line 8) # Converting 'İ' => 'İ' [expected 'İ'] (line 9) # Converting 'i' => 'İ' [expected 'İ'] (line 10) # Converting 'I' => 'I' [expected 'I'] (line 11) # Converting 'İ' => 'İ' [expected 'İ'] (line 12) # Cannot set locale to az_AZ, skipping # Cannot set locale to az_AZ, skipping # Cannot set locale to az_AZ, skipping # Cannot set locale to az_AZ.UTF-8, skipping # Cannot set locale to az_AZ.UTF-8, skipping # Cannot set locale to az_AZ.UTF-8, skipping # Converting 'ᾁ' => 'ἉΙ' [expected 'ἉΙ'] (line 21) # Converting 'ᾁ' => 'ἉΙ' [expected 'ἉΙ'] (line 22) # Converting 'ΜΆΙΟΣ ' => 'ΜΆΙΟΣ ' [expected 'ΜΆΙΟΣ '] (line 24) # Converting 'ΜΆΙΟΣ' => 'ΜΆΙΟΣ' [expected 'ΜΆΙΟΣ'] (line 25) # Converting 'ΣΙΓΜΑ' => 'ΣΙΓΜΑ' [expected 'ΣΙΓΜΑ'] (line 26) # Converting 'iė' => 'IE' [expected 'IE'] (line 29) # Converting 'iė' => 'IE' [expected 'IE'] (line 30) # Converting 'Ì' => 'Ì' [expected 'Ì'] (line 31) # Converting 'Í' => 'Í' [expected 'Í'] (line 32) # Converting 'Ĩ' => 'Ĩ' [expected 'Ĩ'] (line 33) # Converting 'Í' => 'Í' [expected 'Í'] (line 34) # Converting 'Ì' => 'Ì' [expected 'Ì'] (line 35) # Converting 'Ĩ' => 'Ĩ' [expected 'Ĩ'] (line 36) # Converting 'Į́' => 'Į́' [expected 'Į́'] (line 37) # Converting 'J́' => 'J́' [expected 'J́'] (line 38) # Converting 'Į́' => 'Į́' [expected 'Į́'] (line 39) # Converting 'iė' => 'IE' [expected 'IE'] (line 40) # Converting 'iė' => 'IE' [expected 'IE'] (line 41) # Converting 'Ì' => 'Ì' [expected 'Ì'] (line 42) # Converting 'Í' => 'Í' [expected 'Í'] (line 43) # Converting 'Ĩ' => 'Ĩ' [expected 'Ĩ'] (line 44) # Converting 'Í' => 'Í' [expected 'Í'] (line 45) # Converting 'Ì' => 'Ì' [expected 'Ì'] (line 46) # Converting 'Ĩ' => 'Ĩ' [expected 'Ĩ'] (line 47) # Converting 'Į́' => 'Į́' [expected 'Į́'] (line 48) # Converting 'J́' => 'J́' [expected 'J́'] (line 49) # Converting 'Į́' => 'Į́' [expected 'Į́'] (line 50) # Converting 'affl' => 'AFFL' [expected 'AFFL'] (line 52) # Converting 'A' => 'A' [expected 'A'] (line 56) # Converting 'B' => 'B' [expected 'B'] (line 57) # Converting 'C' => 'C' [expected 'C'] (line 58) # Converting 'D' => 'D' [expected 'D'] (line 59) # Converting 'E' => 'E' [expected 'E'] (line 60) # Converting 'F' => 'F' [expected 'F'] (line 61) # Converting 'G' => 'G' [expected 'G'] (line 62) # Converting 'H' => 'H' [expected 'H'] (line 63) # Converting 'I' => 'I' [expected 'I'] (line 64) # Converting 'J' => 'J' [expected 'J'] (line 65) # Converting 'K' => 'K' [expected 'K'] (line 66) # Converting 'L' => 'L' [expected 'L'] (line 67) # Converting 'M' => 'M' [expected 'M'] (line 68) # Converting 'N' => 'N' [expected 'N'] (line 69) # Converting 'O' => 'O' [expected 'O'] (line 70) # Converting 'P' => 'P' [expected 'P'] (line 71) # Converting 'Q' => 'Q' [expected 'Q'] (line 72) # Converting 'R' => 'R' [expected 'R'] (line 73) # Converting 'S' => 'S' [expected 'S'] (line 74) # Converting 'T' => 'T' [expected 'T'] (line 75) # Converting 'U' => 'U' [expected 'U'] (line 76) # Converting 'V' => 'V' [expected 'V'] (line 77) # Converting 'W' => 'W' [expected 'W'] (line 78) # Converting 'X' => 'X' [expected 'X'] (line 79) # Converting 'Y' => 'Y' [expected 'Y'] (line 80) # Converting 'Z' => 'Z' [expected 'Z'] (line 81) # Converting 'a' => 'A' [expected 'A'] (line 82) # Converting 'b' => 'B' [expected 'B'] (line 83) # Converting 'c' => 'C' [expected 'C'] (line 84) # Converting 'd' => 'D' [expected 'D'] (line 85) # Converting 'e' => 'E' [expected 'E'] (line 86) # Converting 'f' => 'F' [expected 'F'] (line 87) # Converting 'g' => 'G' [expected 'G'] (line 88) # Converting 'h' => 'H' [expected 'H'] (line 89) # Converting 'i' => 'I' [expected 'I'] (line 90) # Converting 'j' => 'J' [expected 'J'] (line 91) # Converting 'k' => 'K' [expected 'K'] (line 92) # Converting 'l' => 'L' [expected 'L'] (line 93) # Converting 'm' => 'M' [expected 'M'] (line 94) # Converting 'n' => 'N' [expected 'N'] (line 95) # Converting 'o' => 'O' [expected 'O'] (line 96) # Converting 'p' => 'P' [expected 'P'] (line 97) # Converting 'q' => 'Q' [expected 'Q'] (line 98) # Converting 'r' => 'R' [expected 'R'] (line 99) # Converting 's' => 'S' [expected 'S'] (line 100) # Converting 't' => 'T' [expected 'T'] (line 101) # Converting 'u' => 'U' [expected 'U'] (line 102) # Converting 'v' => 'V' [expected 'V'] (line 103) # Converting 'w' => 'W' [expected 'W'] (line 104) # Converting 'x' => 'X' [expected 'X'] (line 105) # Converting 'y' => 'Y' [expected 'Y'] (line 106) # Converting 'z' => 'Z' [expected 'Z'] (line 107) # Converting 'µ' => 'Μ' [expected 'Μ'] (line 108) # Converting 'À' => 'À' [expected 'À'] (line 109) # Converting 'Á' => 'Á' [expected 'Á'] (line 110) # Converting 'Â' => 'Â' [expected 'Â'] (line 111) # Converting 'Ã' => 'Ã' [expected 'Ã'] (line 112) # Converting 'Ä' => 'Ä' [expected 'Ä'] (line 113) # Converting 'Å' => 'Å' [expected 'Å'] (line 114) # Converting 'Æ' => 'Æ' [expected 'Æ'] (line 115) # Converting 'Ç' => 'Ç' [expected 'Ç'] (line 116) # Converting 'È' => 'È' [expected 'È'] (line 117) # Converting 'É' => 'É' [expected 'É'] (line 118) # Converting 'Ê' => 'Ê' [expected 'Ê'] (line 119) # Converting 'Ë' => 'Ë' [expected 'Ë'] (line 120) # Converting 'Ì' => 'Ì' [expected 'Ì'] (line 121) # Converting 'Í' => 'Í' [expected 'Í'] (line 122) # Converting 'Î' => 'Î' [expected 'Î'] (line 123) # Converting 'Ï' => 'Ï' [expected 'Ï'] (line 124) # Converting 'Ð' => 'Ð' [expected 'Ð'] (line 125) # Converting 'Ñ' => 'Ñ' [expected 'Ñ'] (line 126) # Converting 'Ò' => 'Ò' [expected 'Ò'] (line 127) # Converting 'Ó' => 'Ó' [expected 'Ó'] (line 128) # Converting 'Ô' => 'Ô' [expected 'Ô'] (line 129) # Converting 'Õ' => 'Õ' [expected 'Õ'] (line 130) # Converting 'Ö' => 'Ö' [expected 'Ö'] (line 131) # Converting 'Ø' => 'Ø' [expected 'Ø'] (line 132) # Converting 'Ù' => 'Ù' [expected 'Ù'] (line 133) # Converting 'Ú' => 'Ú' [expected 'Ú'] (line 134) # Converting 'Û' => 'Û' [expected 'Û'] (line 135) # Converting 'Ü' => 'Ü' [expected 'Ü'] (line 136) # Converting 'Ý' => 'Ý' [expected 'Ý'] (line 137) # Converting 'Þ' => 'Þ' [expected 'Þ'] (line 138) # Converting 'ß' => 'SS' [expected 'SS'] (line 139) # Converting 'à' => 'À' [expected 'À'] (line 140) # Converting 'á' => 'Á' [expected 'Á'] (line 141) # Converting 'â' => 'Â' [expected 'Â'] (line 142) # Converting 'ã' => 'Ã' [expected 'Ã'] (line 143) # Converting 'ä' => 'Ä' [expected 'Ä'] (line 144) # Converting 'å' => 'Å' [expected 'Å'] (line 145) # Converting 'æ' => 'Æ' [expected 'Æ'] (line 146) # Converting 'ç' => 'Ç' [expected 'Ç'] (line 147) # Converting 'è' => 'È' [expected 'È'] (line 148) # Converting 'é' => 'É' [expected 'É'] (line 149) # Converting 'ê' => 'Ê' [expected 'Ê'] (line 150) # Converting 'ë' => 'Ë' [expected 'Ë'] (line 151) # Converting 'ì' => 'Ì' [expected 'Ì'] (line 152) # Converting 'í' => 'Í' [expected 'Í'] (line 153) # Converting 'î' => 'Î' [expected 'Î'] (line 154) # Converting 'ï' => 'Ï' [expected 'Ï'] (line 155) # Converting 'ð' => 'Ð' [expected 'Ð'] (line 156) # Converting 'ñ' => 'Ñ' [expected 'Ñ'] (line 157) # Converting 'ò' => 'Ò' [expected 'Ò'] (line 158) # Converting 'ó' => 'Ó' [expected 'Ó'] (line 159) # Converting 'ô' => 'Ô' [expected 'Ô'] (line 160) # Converting 'õ' => 'Õ' [expected 'Õ'] (line 161) # Converting 'ö' => 'Ö' [expected 'Ö'] (line 162) # Converting 'ø' => 'Ø' [expected 'Ø'] (line 163) # Converting 'ù' => 'Ù' [expected 'Ù'] (line 164) # Converting 'ú' => 'Ú' [expected 'Ú'] (line 165) # Converting 'û' => 'Û' [expected 'Û'] (line 166) # Converting 'ü' => 'Ü' [expected 'Ü'] (line 167) # Converting 'ý' => 'Ý' [expected 'Ý'] (line 168) # Converting 'þ' => 'Þ' [expected 'Þ'] (line 169) # Converting 'ÿ' => 'Ÿ' [expected 'Ÿ'] (line 170) # Converting 'Ā' => 'Ā' [expected 'Ā'] (line 171) # Converting 'ā' => 'Ā' [expected 'Ā'] (line 172) # Converting 'Ă' => 'Ă' [expected 'Ă'] (line 173) # Converting 'ă' => 'Ă' [expected 'Ă'] (line 174) # Converting 'Ą' => 'Ą' [expected 'Ą'] (line 175) # Converting 'ą' => 'Ą' [expected 'Ą'] (line 176) # Converting 'Ć' => 'Ć' [expected 'Ć'] (line 177) # Converting 'ć' => 'Ć' [expected 'Ć'] (line 178) # Converting 'Ĉ' => 'Ĉ' [expected 'Ĉ'] (line 179) # Converting 'ĉ' => 'Ĉ' [expected 'Ĉ'] (line 180) # Converting 'Ċ' => 'Ċ' [expected 'Ċ'] (line 181) # Converting 'ċ' => 'Ċ' [expected 'Ċ'] (line 182) # Converting 'Č' => 'Č' [expected 'Č'] (line 183) # Converting 'č' => 'Č' [expected 'Č'] (line 184) # Converting 'Ď' => 'Ď' [expected 'Ď'] (line 185) # Converting 'ď' => 'Ď' [expected 'Ď'] (line 186) # Converting 'Đ' => 'Đ' [expected 'Đ'] (line 187) # Converting 'đ' => 'Đ' [expected 'Đ'] (line 188) # Converting 'Ē' => 'Ē' [expected 'Ē'] (line 189) # Converting 'ē' => 'Ē' [expected 'Ē'] (line 190) # Converting 'Ĕ' => 'Ĕ' [expected 'Ĕ'] (line 191) # Converting 'ĕ' => 'Ĕ' [expected 'Ĕ'] (line 192) # Converting 'Ė' => 'Ė' [expected 'Ė'] (line 193) # Converting 'ė' => 'Ė' [expected 'Ė'] (line 194) # Converting 'Ę' => 'Ę' [expected 'Ę'] (line 195) # Converting 'ę' => 'Ę' [expected 'Ę'] (line 196) # Converting 'Ě' => 'Ě' [expected 'Ě'] (line 197) # Converting 'ě' => 'Ě' [expected 'Ě'] (line 198) # Converting 'Ĝ' => 'Ĝ' [expected 'Ĝ'] (line 199) # Converting 'ĝ' => 'Ĝ' [expected 'Ĝ'] (line 200) # Converting 'Ğ' => 'Ğ' [expected 'Ğ'] (line 201) # Converting 'ğ' => 'Ğ' [expected 'Ğ'] (line 202) # Converting 'Ġ' => 'Ġ' [expected 'Ġ'] (line 203) # Converting 'ġ' => 'Ġ' [expected 'Ġ'] (line 204) # Converting 'Ģ' => 'Ģ' [expected 'Ģ'] (line 205) # Converting 'ģ' => 'Ģ' [expected 'Ģ'] (line 206) # Converting 'Ĥ' => 'Ĥ' [expected 'Ĥ'] (line 207) # Converting 'ĥ' => 'Ĥ' [expected 'Ĥ'] (line 208) # Converting 'Ħ' => 'Ħ' [expected 'Ħ'] (line 209) # Converting 'ħ' => 'Ħ' [expected 'Ħ'] (line 210) # Converting 'Ĩ' => 'Ĩ' [expected 'Ĩ'] (line 211) # Converting 'ĩ' => 'Ĩ' [expected 'Ĩ'] (line 212) # Converting 'Ī' => 'Ī' [expected 'Ī'] (line 213) # Converting 'ī' => 'Ī' [expected 'Ī'] (line 214) # Converting 'Ĭ' => 'Ĭ' [expected 'Ĭ'] (line 215) # Converting 'ĭ' => 'Ĭ' [expected 'Ĭ'] (line 216) # Converting 'Į' => 'Į' [expected 'Į'] (line 217) # Converting 'į' => 'Į' [expected 'Į'] (line 218) # Converting 'İ' => 'İ' [expected 'İ'] (line 219) # Converting 'ı' => 'I' [expected 'I'] (line 220) # Converting 'IJ' => 'IJ' [expected 'IJ'] (line 221) # Converting 'ij' => 'IJ' [expected 'IJ'] (line 222) # Converting 'Ĵ' => 'Ĵ' [expected 'Ĵ'] (line 223) # Converting 'ĵ' => 'Ĵ' [expected 'Ĵ'] (line 224) # Converting 'Ķ' => 'Ķ' [expected 'Ķ'] (line 225) # Converting 'ķ' => 'Ķ' [expected 'Ķ'] (line 226) # Converting 'ĸ' => 'ĸ' [expected 'ĸ'] (line 227) # Converting 'Ĺ' => 'Ĺ' [expected 'Ĺ'] (line 228) # Converting 'ĺ' => 'Ĺ' [expected 'Ĺ'] (line 229) # Converting 'Ļ' => 'Ļ' [expected 'Ļ'] (line 230) # Converting 'ļ' => 'Ļ' [expected 'Ļ'] (line 231) # Converting 'Ľ' => 'Ľ' [expected 'Ľ'] (line 232) # Converting 'ľ' => 'Ľ' [expected 'Ľ'] (line 233) # Converting 'Ŀ' => 'Ŀ' [expected 'Ŀ'] (line 234) # Converting 'ŀ' => 'Ŀ' [expected 'Ŀ'] (line 235) # Converting 'Ł' => 'Ł' [expected 'Ł'] (line 236) # Converting 'ł' => 'Ł' [expected 'Ł'] (line 237) # Converting 'Ń' => 'Ń' [expected 'Ń'] (line 238) # Converting 'ń' => 'Ń' [expected 'Ń'] (line 239) # Converting 'Ņ' => 'Ņ' [expected 'Ņ'] (line 240) # Converting 'ņ' => 'Ņ' [expected 'Ņ'] (line 241) # Converting 'Ň' => 'Ň' [expected 'Ň'] (line 242) # Converting 'ň' => 'Ň' [expected 'Ň'] (line 243) # Converting 'ʼn' => 'ʼN' [expected 'ʼN'] (line 244) # Converting 'Ŋ' => 'Ŋ' [expected 'Ŋ'] (line 245) # Converting 'ŋ' => 'Ŋ' [expected 'Ŋ'] (line 246) # Converting 'Ō' => 'Ō' [expected 'Ō'] (line 247) # Converting 'ō' => 'Ō' [expected 'Ō'] (line 248) # Converting 'Ŏ' => 'Ŏ' [expected 'Ŏ'] (line 249) # Converting 'ŏ' => 'Ŏ' [expected 'Ŏ'] (line 250) # Converting 'Ő' => 'Ő' [expected 'Ő'] (line 251) # Converting 'ő' => 'Ő' [expected 'Ő'] (line 252) # Converting 'Œ' => 'Œ' [expected 'Œ'] (line 253) # Converting 'œ' => 'Œ' [expected 'Œ'] (line 254) # Converting 'Ŕ' => 'Ŕ' [expected 'Ŕ'] (line 255) # Converting 'ŕ' => 'Ŕ' [expected 'Ŕ'] (line 256) # Converting 'Ŗ' => 'Ŗ' [expected 'Ŗ'] (line 257) # Converting 'ŗ' => 'Ŗ' [expected 'Ŗ'] (line 258) # Converting 'Ř' => 'Ř' [expected 'Ř'] (line 259) # Converting 'ř' => 'Ř' [expected 'Ř'] (line 260) # Converting 'Ś' => 'Ś' [expected 'Ś'] (line 261) # Converting 'ś' => 'Ś' [expected 'Ś'] (line 262) # Converting 'Ŝ' => 'Ŝ' [expected 'Ŝ'] (line 263) # Converting 'ŝ' => 'Ŝ' [expected 'Ŝ'] (line 264) # Converting 'Ş' => 'Ş' [expected 'Ş'] (line 265) # Converting 'ş' => 'Ş' [expected 'Ş'] (line 266) # Converting 'Š' => 'Š' [expected 'Š'] (line 267) # Converting 'š' => 'Š' [expected 'Š'] (line 268) # Converting 'Ţ' => 'Ţ' [expected 'Ţ'] (line 269) # Converting 'ţ' => 'Ţ' [expected 'Ţ'] (line 270) # Converting 'Ť' => 'Ť' [expected 'Ť'] (line 271) # Converting 'ť' => 'Ť' [expected 'Ť'] (line 272) # Converting 'Ŧ' => 'Ŧ' [expected 'Ŧ'] (line 273) # Converting 'ŧ' => 'Ŧ' [expected 'Ŧ'] (line 274) # Converting 'Ũ' => 'Ũ' [expected 'Ũ'] (line 275) # Converting 'ũ' => 'Ũ' [expected 'Ũ'] (line 276) # Converting 'Ū' => 'Ū' [expected 'Ū'] (line 277) # Converting 'ū' => 'Ū' [expected 'Ū'] (line 278) # Converting 'Ŭ' => 'Ŭ' [expected 'Ŭ'] (line 279) # Converting 'ŭ' => 'Ŭ' [expected 'Ŭ'] (line 280) # Converting 'Ů' => 'Ů' [expected 'Ů'] (line 281) # Converting 'ů' => 'Ů' [expected 'Ů'] (line 282) # Converting 'Ű' => 'Ű' [expected 'Ű'] (line 283) # Converting 'ű' => 'Ű' [expected 'Ű'] (line 284) # Converting 'Ų' => 'Ų' [expected 'Ų'] (line 285) # Converting 'ų' => 'Ų' [expected 'Ų'] (line 286) # Converting 'Ŵ' => 'Ŵ' [expected 'Ŵ'] (line 287) # Converting 'ŵ' => 'Ŵ' [expected 'Ŵ'] (line 288) # Converting 'Ŷ' => 'Ŷ' [expected 'Ŷ'] (line 289) # Converting 'ŷ' => 'Ŷ' [expected 'Ŷ'] (line 290) # Converting 'Ÿ' => 'Ÿ' [expected 'Ÿ'] (line 291) # Converting 'Ź' => 'Ź' [expected 'Ź'] (line 292) # Converting 'ź' => 'Ź' [expected 'Ź'] (line 293) # Converting 'Ż' => 'Ż' [expected 'Ż'] (line 294) # Converting 'ż' => 'Ż' [expected 'Ż'] (line 295) # Converting 'Ž' => 'Ž' [expected 'Ž'] (line 296) # Converting 'ž' => 'Ž' [expected 'Ž'] (line 297) # Converting 'ſ' => 'S' [expected 'S'] (line 298) # Converting 'ƀ' => 'Ƀ' [expected 'Ƀ'] (line 299) # Converting 'Ɓ' => 'Ɓ' [expected 'Ɓ'] (line 300) # Converting 'Ƃ' => 'Ƃ' [expected 'Ƃ'] (line 301) # Converting 'ƃ' => 'Ƃ' [expected 'Ƃ'] (line 302) # Converting 'Ƅ' => 'Ƅ' [expected 'Ƅ'] (line 303) # Converting 'ƅ' => 'Ƅ' [expected 'Ƅ'] (line 304) # Converting 'Ɔ' => 'Ɔ' [expected 'Ɔ'] (line 305) # Converting 'Ƈ' => 'Ƈ' [expected 'Ƈ'] (line 306) # Converting 'ƈ' => 'Ƈ' [expected 'Ƈ'] (line 307) # Converting 'Ɖ' => 'Ɖ' [expected 'Ɖ'] (line 308) # Converting 'Ɗ' => 'Ɗ' [expected 'Ɗ'] (line 309) # Converting 'Ƌ' => 'Ƌ' [expected 'Ƌ'] (line 310) # Converting 'ƌ' => 'Ƌ' [expected 'Ƌ'] (line 311) # Converting 'ƍ' => 'ƍ' [expected 'ƍ'] (line 312) # Converting 'Ǝ' => 'Ǝ' [expected 'Ǝ'] (line 313) # Converting 'Ə' => 'Ə' [expected 'Ə'] (line 314) # Converting 'Ɛ' => 'Ɛ' [expected 'Ɛ'] (line 315) # Converting 'Ƒ' => 'Ƒ' [expected 'Ƒ'] (line 316) # Converting 'ƒ' => 'Ƒ' [expected 'Ƒ'] (line 317) # Converting 'Ɠ' => 'Ɠ' [expected 'Ɠ'] (line 318) # Converting 'Ɣ' => 'Ɣ' [expected 'Ɣ'] (line 319) # Converting 'ƕ' => 'Ƕ' [expected 'Ƕ'] (line 320) # Converting 'Ɩ' => 'Ɩ' [expected 'Ɩ'] (line 321) # Converting 'Ɨ' => 'Ɨ' [expected 'Ɨ'] (line 322) # Converting 'Ƙ' => 'Ƙ' [expected 'Ƙ'] (line 323) # Converting 'ƙ' => 'Ƙ' [expected 'Ƙ'] (line 324) # Converting 'ƚ' => 'Ƚ' [expected 'Ƚ'] (line 325) # Converting 'ƛ' => 'Ƛ' [expected 'Ƛ'] (line 326) # Converting 'Ɯ' => 'Ɯ' [expected 'Ɯ'] (line 327) # Converting 'Ɲ' => 'Ɲ' [expected 'Ɲ'] (line 328) # Converting 'ƞ' => 'Ƞ' [expected 'Ƞ'] (line 329) # Converting 'Ɵ' => 'Ɵ' [expected 'Ɵ'] (line 330) # Converting 'Ơ' => 'Ơ' [expected 'Ơ'] (line 331) # Converting 'ơ' => 'Ơ' [expected 'Ơ'] (line 332) # Converting 'Ƣ' => 'Ƣ' [expected 'Ƣ'] (line 333) # Converting 'ƣ' => 'Ƣ' [expected 'Ƣ'] (line 334) # Converting 'Ƥ' => 'Ƥ' [expected 'Ƥ'] (line 335) # Converting 'ƥ' => 'Ƥ' [expected 'Ƥ'] (line 336) # Converting 'Ʀ' => 'Ʀ' [expected 'Ʀ'] (line 337) # Converting 'Ƨ' => 'Ƨ' [expected 'Ƨ'] (line 338) # Converting 'ƨ' => 'Ƨ' [expected 'Ƨ'] (line 339) # Converting 'Ʃ' => 'Ʃ' [expected 'Ʃ'] (line 340) # Converting 'ƪ' => 'ƪ' [expected 'ƪ'] (line 341) # Converting 'ƫ' => 'ƫ' [expected 'ƫ'] (line 342) # Converting 'Ƭ' => 'Ƭ' [expected 'Ƭ'] (line 343) # Converting 'ƭ' => 'Ƭ' [expected 'Ƭ'] (line 344) # Converting 'Ʈ' => 'Ʈ' [expected 'Ʈ'] (line 345) # Converting 'Ư' => 'Ư' [expected 'Ư'] (line 346) # Converting 'ư' => 'Ư' [expected 'Ư'] (line 347) # Converting 'Ʊ' => 'Ʊ' [expected 'Ʊ'] (line 348) # Converting 'Ʋ' => 'Ʋ' [expected 'Ʋ'] (line 349) # Converting 'Ƴ' => 'Ƴ' [expected 'Ƴ'] (line 350) # Converting 'ƴ' => 'Ƴ' [expected 'Ƴ'] (line 351) # Converting 'Ƶ' => 'Ƶ' [expected 'Ƶ'] (line 352) # Converting 'ƶ' => 'Ƶ' [expected 'Ƶ'] (line 353) # Converting 'Ʒ' => 'Ʒ' [expected 'Ʒ'] (line 354) # Converting 'Ƹ' => 'Ƹ' [expected 'Ƹ'] (line 355) # Converting 'ƹ' => 'Ƹ' [expected 'Ƹ'] (line 356) # Converting 'ƺ' => 'ƺ' [expected 'ƺ'] (line 357) # Converting 'Ƽ' => 'Ƽ' [expected 'Ƽ'] (line 358) # Converting 'ƽ' => 'Ƽ' [expected 'Ƽ'] (line 359) # Converting 'ƾ' => 'ƾ' [expected 'ƾ'] (line 360) # Converting 'ƿ' => 'Ƿ' [expected 'Ƿ'] (line 361) # Converting 'DŽ' => 'DŽ' [expected 'DŽ'] (line 362) # Converting 'Dž' => 'DŽ' [expected 'DŽ'] (line 363) # Converting 'dž' => 'DŽ' [expected 'DŽ'] (line 364) # Converting 'LJ' => 'LJ' [expected 'LJ'] (line 365) # Converting 'Lj' => 'LJ' [expected 'LJ'] (line 366) # Converting 'lj' => 'LJ' [expected 'LJ'] (line 367) # Converting 'NJ' => 'NJ' [expected 'NJ'] (line 368) # Converting 'Nj' => 'NJ' [expected 'NJ'] (line 369) # Converting 'nj' => 'NJ' [expected 'NJ'] (line 370) # Converting 'Ǎ' => 'Ǎ' [expected 'Ǎ'] (line 371) # Converting 'ǎ' => 'Ǎ' [expected 'Ǎ'] (line 372) # Converting 'Ǐ' => 'Ǐ' [expected 'Ǐ'] (line 373) # Converting 'ǐ' => 'Ǐ' [expected 'Ǐ'] (line 374) # Converting 'Ǒ' => 'Ǒ' [expected 'Ǒ'] (line 375) # Converting 'ǒ' => 'Ǒ' [expected 'Ǒ'] (line 376) # Converting 'Ǔ' => 'Ǔ' [expected 'Ǔ'] (line 377) # Converting 'ǔ' => 'Ǔ' [expected 'Ǔ'] (line 378) # Converting 'Ǖ' => 'Ǖ' [expected 'Ǖ'] (line 379) # Converting 'ǖ' => 'Ǖ' [expected 'Ǖ'] (line 380) # Converting 'Ǘ' => 'Ǘ' [expected 'Ǘ'] (line 381) # Converting 'ǘ' => 'Ǘ' [expected 'Ǘ'] (line 382) # Converting 'Ǚ' => 'Ǚ' [expected 'Ǚ'] (line 383) # Converting 'ǚ' => 'Ǚ' [expected 'Ǚ'] (line 384) # Converting 'Ǜ' => 'Ǜ' [expected 'Ǜ'] (line 385) # Converting 'ǜ' => 'Ǜ' [expected 'Ǜ'] (line 386) # Converting 'ǝ' => 'Ǝ' [expected 'Ǝ'] (line 387) # Converting 'Ǟ' => 'Ǟ' [expected 'Ǟ'] (line 388) # Converting 'ǟ' => 'Ǟ' [expected 'Ǟ'] (line 389) # Converting 'Ǡ' => 'Ǡ' [expected 'Ǡ'] (line 390) # Converting 'ǡ' => 'Ǡ' [expected 'Ǡ'] (line 391) # Converting 'Ǣ' => 'Ǣ' [expected 'Ǣ'] (line 392) # Converting 'ǣ' => 'Ǣ' [expected 'Ǣ'] (line 393) # Converting 'Ǥ' => 'Ǥ' [expected 'Ǥ'] (line 394) # Converting 'ǥ' => 'Ǥ' [expected 'Ǥ'] (line 395) # Converting 'Ǧ' => 'Ǧ' [expected 'Ǧ'] (line 396) # Converting 'ǧ' => 'Ǧ' [expected 'Ǧ'] (line 397) # Converting 'Ǩ' => 'Ǩ' [expected 'Ǩ'] (line 398) # Converting 'ǩ' => 'Ǩ' [expected 'Ǩ'] (line 399) # Converting 'Ǫ' => 'Ǫ' [expected 'Ǫ'] (line 400) # Converting 'ǫ' => 'Ǫ' [expected 'Ǫ'] (line 401) # Converting 'Ǭ' => 'Ǭ' [expected 'Ǭ'] (line 402) # Converting 'ǭ' => 'Ǭ' [expected 'Ǭ'] (line 403) # Converting 'Ǯ' => 'Ǯ' [expected 'Ǯ'] (line 404) # Converting 'ǯ' => 'Ǯ' [expected 'Ǯ'] (line 405) # Converting 'ǰ' => 'J̌' [expected 'J̌'] (line 406) # Converting 'DZ' => 'DZ' [expected 'DZ'] (line 407) # Converting 'Dz' => 'DZ' [expected 'DZ'] (line 408) # Converting 'dz' => 'DZ' [expected 'DZ'] (line 409) # Converting 'Ǵ' => 'Ǵ' [expected 'Ǵ'] (line 410) # Converting 'ǵ' => 'Ǵ' [expected 'Ǵ'] (line 411) # Converting 'Ƕ' => 'Ƕ' [expected 'Ƕ'] (line 412) # Converting 'Ƿ' => 'Ƿ' [expected 'Ƿ'] (line 413) # Converting 'Ǹ' => 'Ǹ' [expected 'Ǹ'] (line 414) # Converting 'ǹ' => 'Ǹ' [expected 'Ǹ'] (line 415) # Converting 'Ǻ' => 'Ǻ' [expected 'Ǻ'] (line 416) # Converting 'ǻ' => 'Ǻ' [expected 'Ǻ'] (line 417) # Converting 'Ǽ' => 'Ǽ' [expected 'Ǽ'] (line 418) # Converting 'ǽ' => 'Ǽ' [expected 'Ǽ'] (line 419) # Converting 'Ǿ' => 'Ǿ' [expected 'Ǿ'] (line 420) # Converting 'ǿ' => 'Ǿ' [expected 'Ǿ'] (line 421) # Converting 'Ȁ' => 'Ȁ' [expected 'Ȁ'] (line 422) # Converting 'ȁ' => 'Ȁ' [expected 'Ȁ'] (line 423) # Converting 'Ȃ' => 'Ȃ' [expected 'Ȃ'] (line 424) # Converting 'ȃ' => 'Ȃ' [expected 'Ȃ'] (line 425) # Converting 'Ȅ' => 'Ȅ' [expected 'Ȅ'] (line 426) # Converting 'ȅ' => 'Ȅ' [expected 'Ȅ'] (line 427) # Converting 'Ȇ' => 'Ȇ' [expected 'Ȇ'] (line 428) # Converting 'ȇ' => 'Ȇ' [expected 'Ȇ'] (line 429) # Converting 'Ȉ' => 'Ȉ' [expected 'Ȉ'] (line 430) # Converting 'ȉ' => 'Ȉ' [expected 'Ȉ'] (line 431) # Converting 'Ȋ' => 'Ȋ' [expected 'Ȋ'] (line 432) # Converting 'ȋ' => 'Ȋ' [expected 'Ȋ'] (line 433) # Converting 'Ȍ' => 'Ȍ' [expected 'Ȍ'] (line 434) # Converting 'ȍ' => 'Ȍ' [expected 'Ȍ'] (line 435) # Converting 'Ȏ' => 'Ȏ' [expected 'Ȏ'] (line 436) # Converting 'ȏ' => 'Ȏ' [expected 'Ȏ'] (line 437) # Converting 'Ȑ' => 'Ȑ' [expected 'Ȑ'] (line 438) # Converting 'ȑ' => 'Ȑ' [expected 'Ȑ'] (line 439) # Converting 'Ȓ' => 'Ȓ' [expected 'Ȓ'] (line 440) # Converting 'ȓ' => 'Ȓ' [expected 'Ȓ'] (line 441) # Converting 'Ȕ' => 'Ȕ' [expected 'Ȕ'] (line 442) # Converting 'ȕ' => 'Ȕ' [expected 'Ȕ'] (line 443) # Converting 'Ȗ' => 'Ȗ' [expected 'Ȗ'] (line 444) # Converting 'ȗ' => 'Ȗ' [expected 'Ȗ'] (line 445) # Converting 'Ș' => 'Ș' [expected 'Ș'] (line 446) # Converting 'ș' => 'Ș' [expected 'Ș'] (line 447) # Converting 'Ț' => 'Ț' [expected 'Ț'] (line 448) # Converting 'ț' => 'Ț' [expected 'Ț'] (line 449) # Converting 'Ȝ' => 'Ȝ' [expected 'Ȝ'] (line 450) # Converting 'ȝ' => 'Ȝ' [expected 'Ȝ'] (line 451) # Converting 'Ȟ' => 'Ȟ' [expected 'Ȟ'] (line 452) # Converting 'ȟ' => 'Ȟ' [expected 'Ȟ'] (line 453) # Converting 'Ƞ' => 'Ƞ' [expected 'Ƞ'] (line 454) # Converting 'ȡ' => 'ȡ' [expected 'ȡ'] (line 455) # Converting 'Ȣ' => 'Ȣ' [expected 'Ȣ'] (line 456) # Converting 'ȣ' => 'Ȣ' [expected 'Ȣ'] (line 457) # Converting 'Ȥ' => 'Ȥ' [expected 'Ȥ'] (line 458) # Converting 'ȥ' => 'Ȥ' [expected 'Ȥ'] (line 459) # Converting 'Ȧ' => 'Ȧ' [expected 'Ȧ'] (line 460) # Converting 'ȧ' => 'Ȧ' [expected 'Ȧ'] (line 461) # Converting 'Ȩ' => 'Ȩ' [expected 'Ȩ'] (line 462) # Converting 'ȩ' => 'Ȩ' [expected 'Ȩ'] (line 463) # Converting 'Ȫ' => 'Ȫ' [expected 'Ȫ'] (line 464) # Converting 'ȫ' => 'Ȫ' [expected 'Ȫ'] (line 465) # Converting 'Ȭ' => 'Ȭ' [expected 'Ȭ'] (line 466) # Converting 'ȭ' => 'Ȭ' [expected 'Ȭ'] (line 467) # Converting 'Ȯ' => 'Ȯ' [expected 'Ȯ'] (line 468) # Converting 'ȯ' => 'Ȯ' [expected 'Ȯ'] (line 469) # Converting 'Ȱ' => 'Ȱ' [expected 'Ȱ'] (line 470) # Converting 'ȱ' => 'Ȱ' [expected 'Ȱ'] (line 471) # Converting 'Ȳ' => 'Ȳ' [expected 'Ȳ'] (line 472) # Converting 'ȳ' => 'Ȳ' [expected 'Ȳ'] (line 473) # Converting 'ȴ' => 'ȴ' [expected 'ȴ'] (line 474) # Converting 'ȵ' => 'ȵ' [expected 'ȵ'] (line 475) # Converting 'ȶ' => 'ȶ' [expected 'ȶ'] (line 476) # Converting 'ȷ' => 'ȷ' [expected 'ȷ'] (line 477) # Converting 'ȸ' => 'ȸ' [expected 'ȸ'] (line 478) # Converting 'ȹ' => 'ȹ' [expected 'ȹ'] (line 479) # Converting 'Ⱥ' => 'Ⱥ' [expected 'Ⱥ'] (line 480) # Converting 'Ȼ' => 'Ȼ' [expected 'Ȼ'] (line 481) # Converting 'ȼ' => 'Ȼ' [expected 'Ȼ'] (line 482) # Converting 'Ƚ' => 'Ƚ' [expected 'Ƚ'] (line 483) # Converting 'Ⱦ' => 'Ⱦ' [expected 'Ⱦ'] (line 484) # Converting 'ȿ' => 'Ȿ' [expected 'Ȿ'] (line 485) # Converting 'ɀ' => 'Ɀ' [expected 'Ɀ'] (line 486) # Converting 'Ɂ' => 'Ɂ' [expected 'Ɂ'] (line 487) # Converting 'ɂ' => 'Ɂ' [expected 'Ɂ'] (line 488) # Converting 'Ƀ' => 'Ƀ' [expected 'Ƀ'] (line 489) # Converting 'Ʉ' => 'Ʉ' [expected 'Ʉ'] (line 490) # Converting 'Ʌ' => 'Ʌ' [expected 'Ʌ'] (line 491) # Converting 'Ɇ' => 'Ɇ' [expected 'Ɇ'] (line 492) # Converting 'ɇ' => 'Ɇ' [expected 'Ɇ'] (line 493) # Converting 'Ɉ' => 'Ɉ' [expected 'Ɉ'] (line 494) # Converting 'ɉ' => 'Ɉ' [expected 'Ɉ'] (line 495) # Converting 'Ɋ' => 'Ɋ' [expected 'Ɋ'] (line 496) # Converting 'ɋ' => 'Ɋ' [expected 'Ɋ'] (line 497) # Converting 'Ɍ' => 'Ɍ' [expected 'Ɍ'] (line 498) # Converting 'ɍ' => 'Ɍ' [expected 'Ɍ'] (line 499) # Converting 'Ɏ' => 'Ɏ' [expected 'Ɏ'] (line 500) # Converting 'ɏ' => 'Ɏ' [expected 'Ɏ'] (line 501) # Converting 'ɐ' => 'Ɐ' [expected 'Ɐ'] (line 502) # Converting 'ɑ' => 'Ɑ' [expected 'Ɑ'] (line 503) # Converting 'ɒ' => 'Ɒ' [expected 'Ɒ'] (line 504) # Converting 'ɓ' => 'Ɓ' [expected 'Ɓ'] (line 505) # Converting 'ɔ' => 'Ɔ' [expected 'Ɔ'] (line 506) # Converting 'ɕ' => 'ɕ' [expected 'ɕ'] (line 507) # Converting 'ɖ' => 'Ɖ' [expected 'Ɖ'] (line 508) # Converting 'ɗ' => 'Ɗ' [expected 'Ɗ'] (line 509) # Converting 'ɘ' => 'ɘ' [expected 'ɘ'] (line 510) # Converting 'ə' => 'Ə' [expected 'Ə'] (line 511) # Converting 'ɚ' => 'ɚ' [expected 'ɚ'] (line 512) # Converting 'ɛ' => 'Ɛ' [expected 'Ɛ'] (line 513) # Converting 'ɜ' => 'Ɜ' [expected 'Ɜ'] (line 514) # Converting 'ɝ' => 'ɝ' [expected 'ɝ'] (line 515) # Converting 'ɞ' => 'ɞ' [expected 'ɞ'] (line 516) # Converting 'ɟ' => 'ɟ' [expected 'ɟ'] (line 517) # Converting 'ɠ' => 'Ɠ' [expected 'Ɠ'] (line 518) # Converting 'ɡ' => 'Ɡ' [expected 'Ɡ'] (line 519) # Converting 'ɢ' => 'ɢ' [expected 'ɢ'] (line 520) # Converting 'ɣ' => 'Ɣ' [expected 'Ɣ'] (line 521) # Converting 'ɤ' => 'Ɤ' [expected 'Ɤ'] (line 522) # Converting 'ɥ' => 'Ɥ' [expected 'Ɥ'] (line 523) # Converting 'ɦ' => 'Ɦ' [expected 'Ɦ'] (line 524) # Converting 'ɧ' => 'ɧ' [expected 'ɧ'] (line 525) # Converting 'ɨ' => 'Ɨ' [expected 'Ɨ'] (line 526) # Converting 'ɩ' => 'Ɩ' [expected 'Ɩ'] (line 527) # Converting 'ɪ' => 'Ɪ' [expected 'Ɪ'] (line 528) # Converting 'ɫ' => 'Ɫ' [expected 'Ɫ'] (line 529) # Converting 'ɬ' => 'Ɬ' [expected 'Ɬ'] (line 530) # Converting 'ɭ' => 'ɭ' [expected 'ɭ'] (line 531) # Converting 'ɮ' => 'ɮ' [expected 'ɮ'] (line 532) # Converting 'ɯ' => 'Ɯ' [expected 'Ɯ'] (line 533) # Converting 'ɰ' => 'ɰ' [expected 'ɰ'] (line 534) # Converting 'ɱ' => 'Ɱ' [expected 'Ɱ'] (line 535) # Converting 'ɲ' => 'Ɲ' [expected 'Ɲ'] (line 536) # Converting 'ɳ' => 'ɳ' [expected 'ɳ'] (line 537) # Converting 'ɴ' => 'ɴ' [expected 'ɴ'] (line 538) # Converting 'ɵ' => 'Ɵ' [expected 'Ɵ'] (line 539) # Converting 'ɶ' => 'ɶ' [expected 'ɶ'] (line 540) # Converting 'ɷ' => 'ɷ' [expected 'ɷ'] (line 541) # Converting 'ɸ' => 'ɸ' [expected 'ɸ'] (line 542) # Converting 'ɹ' => 'ɹ' [expected 'ɹ'] (line 543) # Converting 'ɺ' => 'ɺ' [expected 'ɺ'] (line 544) # Converting 'ɻ' => 'ɻ' [expected 'ɻ'] (line 545) # Converting 'ɼ' => 'ɼ' [expected 'ɼ'] (line 546) # Converting 'ɽ' => 'Ɽ' [expected 'Ɽ'] (line 547) # Converting 'ɾ' => 'ɾ' [expected 'ɾ'] (line 548) # Converting 'ɿ' => 'ɿ' [expected 'ɿ'] (line 549) # Converting 'ʀ' => 'Ʀ' [expected 'Ʀ'] (line 550) # Converting 'ʁ' => 'ʁ' [expected 'ʁ'] (line 551) # Converting 'ʂ' => 'Ʂ' [expected 'Ʂ'] (line 552) # Converting 'ʃ' => 'Ʃ' [expected 'Ʃ'] (line 553) # Converting 'ʄ' => 'ʄ' [expected 'ʄ'] (line 554) # Converting 'ʅ' => 'ʅ' [expected 'ʅ'] (line 555) # Converting 'ʆ' => 'ʆ' [expected 'ʆ'] (line 556) # Converting 'ʇ' => 'Ʇ' [expected 'Ʇ'] (line 557) # Converting 'ʈ' => 'Ʈ' [expected 'Ʈ'] (line 558) # Converting 'ʉ' => 'Ʉ' [expected 'Ʉ'] (line 559) # Converting 'ʊ' => 'Ʊ' [expected 'Ʊ'] (line 560) # Converting 'ʋ' => 'Ʋ' [expected 'Ʋ'] (line 561) # Converting 'ʌ' => 'Ʌ' [expected 'Ʌ'] (line 562) # Converting 'ʍ' => 'ʍ' [expected 'ʍ'] (line 563) # Converting 'ʎ' => 'ʎ' [expected 'ʎ'] (line 564) # Converting 'ʏ' => 'ʏ' [expected 'ʏ'] (line 565) # Converting 'ʐ' => 'ʐ' [expected 'ʐ'] (line 566) # Converting 'ʑ' => 'ʑ' [expected 'ʑ'] (line 567) # Converting 'ʒ' => 'Ʒ' [expected 'Ʒ'] (line 568) # Converting 'ʓ' => 'ʓ' [expected 'ʓ'] (line 569) # Converting 'ʖ' => 'ʖ' [expected 'ʖ'] (line 570) # Converting 'ʗ' => 'ʗ' [expected 'ʗ'] (line 571) # Converting 'ʘ' => 'ʘ' [expected 'ʘ'] (line 572) # Converting 'ʙ' => 'ʙ' [expected 'ʙ'] (line 573) # Converting 'ʚ' => 'ʚ' [expected 'ʚ'] (line 574) # Converting 'ʛ' => 'ʛ' [expected 'ʛ'] (line 575) # Converting 'ʜ' => 'ʜ' [expected 'ʜ'] (line 576) # Converting 'ʝ' => 'Ʝ' [expected 'Ʝ'] (line 577) # Converting 'ʞ' => 'Ʞ' [expected 'Ʞ'] (line 578) # Converting 'ʟ' => 'ʟ' [expected 'ʟ'] (line 579) # Converting 'ʠ' => 'ʠ' [expected 'ʠ'] (line 580) # Converting 'ʡ' => 'ʡ' [expected 'ʡ'] (line 581) # Converting 'ʢ' => 'ʢ' [expected 'ʢ'] (line 582) # Converting 'ʣ' => 'ʣ' [expected 'ʣ'] (line 583) # Converting 'ʤ' => 'ʤ' [expected 'ʤ'] (line 584) # Converting 'ʥ' => 'ʥ' [expected 'ʥ'] (line 585) # Converting 'ʦ' => 'ʦ' [expected 'ʦ'] (line 586) # Converting 'ʧ' => 'ʧ' [expected 'ʧ'] (line 587) # Converting 'ʨ' => 'ʨ' [expected 'ʨ'] (line 588) # Converting 'ʩ' => 'ʩ' [expected 'ʩ'] (line 589) # Converting 'ʪ' => 'ʪ' [expected 'ʪ'] (line 590) # Converting 'ʫ' => 'ʫ' [expected 'ʫ'] (line 591) # Converting 'ʬ' => 'ʬ' [expected 'ʬ'] (line 592) # Converting 'ʭ' => 'ʭ' [expected 'ʭ'] (line 593) # Converting 'ʮ' => 'ʮ' [expected 'ʮ'] (line 594) # Converting 'ʯ' => 'ʯ' [expected 'ʯ'] (line 595) # Converting 'Ͱ' => 'Ͱ' [expected 'Ͱ'] (line 596) # Converting 'ͱ' => 'Ͱ' [expected 'Ͱ'] (line 597) # Converting 'Ͳ' => 'Ͳ' [expected 'Ͳ'] (line 598) # Converting 'ͳ' => 'Ͳ' [expected 'Ͳ'] (line 599) # Converting 'Ͷ' => 'Ͷ' [expected 'Ͷ'] (line 600) # Converting 'ͷ' => 'Ͷ' [expected 'Ͷ'] (line 601) # Converting 'ͻ' => 'Ͻ' [expected 'Ͻ'] (line 602) # Converting 'ͼ' => 'Ͼ' [expected 'Ͼ'] (line 603) # Converting 'ͽ' => 'Ͽ' [expected 'Ͽ'] (line 604) # Converting 'Ϳ' => 'Ϳ' [expected 'Ϳ'] (line 605) # Converting 'Ά' => 'Ά' [expected 'Ά'] (line 606) # Converting 'Έ' => 'Έ' [expected 'Έ'] (line 607) # Converting 'Ή' => 'Ή' [expected 'Ή'] (line 608) # Converting 'Ί' => 'Ί' [expected 'Ί'] (line 609) # Converting 'Ό' => 'Ό' [expected 'Ό'] (line 610) # Converting 'Ύ' => 'Ύ' [expected 'Ύ'] (line 611) # Converting 'Ώ' => 'Ώ' [expected 'Ώ'] (line 612) # Converting 'ΐ' => 'Ϊ́' [expected 'Ϊ́'] (line 613) # Converting 'Α' => 'Α' [expected 'Α'] (line 614) # Converting 'Β' => 'Β' [expected 'Β'] (line 615) # Converting 'Γ' => 'Γ' [expected 'Γ'] (line 616) # Converting 'Δ' => 'Δ' [expected 'Δ'] (line 617) # Converting 'Ε' => 'Ε' [expected 'Ε'] (line 618) # Converting 'Ζ' => 'Ζ' [expected 'Ζ'] (line 619) # Converting 'Η' => 'Η' [expected 'Η'] (line 620) # Converting 'Θ' => 'Θ' [expected 'Θ'] (line 621) # Converting 'Ι' => 'Ι' [expected 'Ι'] (line 622) # Converting 'Κ' => 'Κ' [expected 'Κ'] (line 623) # Converting 'Λ' => 'Λ' [expected 'Λ'] (line 624) # Converting 'Μ' => 'Μ' [expected 'Μ'] (line 625) # Converting 'Ν' => 'Ν' [expected 'Ν'] (line 626) # Converting 'Ξ' => 'Ξ' [expected 'Ξ'] (line 627) # Converting 'Ο' => 'Ο' [expected 'Ο'] (line 628) # Converting 'Π' => 'Π' [expected 'Π'] (line 629) # Converting 'Ρ' => 'Ρ' [expected 'Ρ'] (line 630) # Converting 'Τ' => 'Τ' [expected 'Τ'] (line 631) # Converting 'Υ' => 'Υ' [expected 'Υ'] (line 632) # Converting 'Φ' => 'Φ' [expected 'Φ'] (line 633) # Converting 'Χ' => 'Χ' [expected 'Χ'] (line 634) # Converting 'Ψ' => 'Ψ' [expected 'Ψ'] (line 635) # Converting 'Ω' => 'Ω' [expected 'Ω'] (line 636) # Converting 'Ϊ' => 'Ϊ' [expected 'Ϊ'] (line 637) # Converting 'Ϋ' => 'Ϋ' [expected 'Ϋ'] (line 638) # Converting 'ά' => 'Ά' [expected 'Ά'] (line 639) # Converting 'έ' => 'Έ' [expected 'Έ'] (line 640) # Converting 'ή' => 'Ή' [expected 'Ή'] (line 641) # Converting 'ί' => 'Ί' [expected 'Ί'] (line 642) # Converting 'ΰ' => 'Ϋ́' [expected 'Ϋ́'] (line 643) # Converting 'α' => 'Α' [expected 'Α'] (line 644) # Converting 'β' => 'Β' [expected 'Β'] (line 645) # Converting 'γ' => 'Γ' [expected 'Γ'] (line 646) # Converting 'δ' => 'Δ' [expected 'Δ'] (line 647) # Converting 'ε' => 'Ε' [expected 'Ε'] (line 648) # Converting 'ζ' => 'Ζ' [expected 'Ζ'] (line 649) # Converting 'η' => 'Η' [expected 'Η'] (line 650) # Converting 'θ' => 'Θ' [expected 'Θ'] (line 651) # Converting 'ι' => 'Ι' [expected 'Ι'] (line 652) # Converting 'κ' => 'Κ' [expected 'Κ'] (line 653) # Converting 'λ' => 'Λ' [expected 'Λ'] (line 654) # Converting 'μ' => 'Μ' [expected 'Μ'] (line 655) # Converting 'ν' => 'Ν' [expected 'Ν'] (line 656) # Converting 'ξ' => 'Ξ' [expected 'Ξ'] (line 657) # Converting 'ο' => 'Ο' [expected 'Ο'] (line 658) # Converting 'π' => 'Π' [expected 'Π'] (line 659) # Converting 'ρ' => 'Ρ' [expected 'Ρ'] (line 660) # Converting 'ς' => 'Σ' [expected 'Σ'] (line 661) # Converting 'σ' => 'Σ' [expected 'Σ'] (line 662) # Converting 'τ' => 'Τ' [expected 'Τ'] (line 663) # Converting 'υ' => 'Υ' [expected 'Υ'] (line 664) # Converting 'φ' => 'Φ' [expected 'Φ'] (line 665) # Converting 'χ' => 'Χ' [expected 'Χ'] (line 666) # Converting 'ψ' => 'Ψ' [expected 'Ψ'] (line 667) # Converting 'ω' => 'Ω' [expected 'Ω'] (line 668) # Converting 'ϊ' => 'Ϊ' [expected 'Ϊ'] (line 669) # Converting 'ϋ' => 'Ϋ' [expected 'Ϋ'] (line 670) # Converting 'ό' => 'Ό' [expected 'Ό'] (line 671) # Converting 'ύ' => 'Ύ' [expected 'Ύ'] (line 672) # Converting 'ώ' => 'Ώ' [expected 'Ώ'] (line 673) # Converting 'Ϗ' => 'Ϗ' [expected 'Ϗ'] (line 674) # Converting 'ϐ' => 'Β' [expected 'Β'] (line 675) # Converting 'ϑ' => 'Θ' [expected 'Θ'] (line 676) # Converting 'ϒ' => 'ϒ' [expected 'ϒ'] (line 677) # Converting 'ϓ' => 'ϓ' [expected 'ϓ'] (line 678) # Converting 'ϔ' => 'ϔ' [expected 'ϔ'] (line 679) # Converting 'ϕ' => 'Φ' [expected 'Φ'] (line 680) # Converting 'ϖ' => 'Π' [expected 'Π'] (line 681) # Converting 'ϗ' => 'Ϗ' [expected 'Ϗ'] (line 682) # Converting 'Ϙ' => 'Ϙ' [expected 'Ϙ'] (line 683) # Converting 'ϙ' => 'Ϙ' [expected 'Ϙ'] (line 684) # Converting 'Ϛ' => 'Ϛ' [expected 'Ϛ'] (line 685) # Converting 'ϛ' => 'Ϛ' [expected 'Ϛ'] (line 686) # Converting 'Ϝ' => 'Ϝ' [expected 'Ϝ'] (line 687) # Converting 'ϝ' => 'Ϝ' [expected 'Ϝ'] (line 688) # Converting 'Ϟ' => 'Ϟ' [expected 'Ϟ'] (line 689) # Converting 'ϟ' => 'Ϟ' [expected 'Ϟ'] (line 690) # Converting 'Ϡ' => 'Ϡ' [expected 'Ϡ'] (line 691) # Converting 'ϡ' => 'Ϡ' [expected 'Ϡ'] (line 692) # Converting 'Ϣ' => 'Ϣ' [expected 'Ϣ'] (line 693) # Converting 'ϣ' => 'Ϣ' [expected 'Ϣ'] (line 694) # Converting 'Ϥ' => 'Ϥ' [expected 'Ϥ'] (line 695) # Converting 'ϥ' => 'Ϥ' [expected 'Ϥ'] (line 696) # Converting 'Ϧ' => 'Ϧ' [expected 'Ϧ'] (line 697) # Converting 'ϧ' => 'Ϧ' [expected 'Ϧ'] (line 698) # Converting 'Ϩ' => 'Ϩ' [expected 'Ϩ'] (line 699) # Converting 'ϩ' => 'Ϩ' [expected 'Ϩ'] (line 700) # Converting 'Ϫ' => 'Ϫ' [expected 'Ϫ'] (line 701) # Converting 'ϫ' => 'Ϫ' [expected 'Ϫ'] (line 702) # Converting 'Ϭ' => 'Ϭ' [expected 'Ϭ'] (line 703) # Converting 'ϭ' => 'Ϭ' [expected 'Ϭ'] (line 704) # Converting 'Ϯ' => 'Ϯ' [expected 'Ϯ'] (line 705) # Converting 'ϯ' => 'Ϯ' [expected 'Ϯ'] (line 706) # Converting 'ϰ' => 'Κ' [expected 'Κ'] (line 707) # Converting 'ϱ' => 'Ρ' [expected 'Ρ'] (line 708) # Converting 'ϲ' => 'Ϲ' [expected 'Ϲ'] (line 709) # Converting 'ϳ' => 'Ϳ' [expected 'Ϳ'] (line 710) # Converting 'ϴ' => 'ϴ' [expected 'ϴ'] (line 711) # Converting 'ϵ' => 'Ε' [expected 'Ε'] (line 712) # Converting 'Ϸ' => 'Ϸ' [expected 'Ϸ'] (line 713) # Converting 'ϸ' => 'Ϸ' [expected 'Ϸ'] (line 714) # Converting 'Ϲ' => 'Ϲ' [expected 'Ϲ'] (line 715) # Converting 'Ϻ' => 'Ϻ' [expected 'Ϻ'] (line 716) # Converting 'ϻ' => 'Ϻ' [expected 'Ϻ'] (line 717) # Converting 'ϼ' => 'ϼ' [expected 'ϼ'] (line 718) # Converting 'Ͻ' => 'Ͻ' [expected 'Ͻ'] (line 719) # Converting 'Ͼ' => 'Ͼ' [expected 'Ͼ'] (line 720) # Converting 'Ͽ' => 'Ͽ' [expected 'Ͽ'] (line 721) # Converting 'Ѐ' => 'Ѐ' [expected 'Ѐ'] (line 722) # Converting 'Ё' => 'Ё' [expected 'Ё'] (line 723) # Converting 'Ђ' => 'Ђ' [expected 'Ђ'] (line 724) # Converting 'Ѓ' => 'Ѓ' [expected 'Ѓ'] (line 725) # Converting 'Є' => 'Є' [expected 'Є'] (line 726) # Converting 'Ѕ' => 'Ѕ' [expected 'Ѕ'] (line 727) # Converting 'І' => 'І' [expected 'І'] (line 728) # Converting 'Ї' => 'Ї' [expected 'Ї'] (line 729) # Converting 'Ј' => 'Ј' [expected 'Ј'] (line 730) # Converting 'Љ' => 'Љ' [expected 'Љ'] (line 731) # Converting 'Њ' => 'Њ' [expected 'Њ'] (line 732) # Converting 'Ћ' => 'Ћ' [expected 'Ћ'] (line 733) # Converting 'Ќ' => 'Ќ' [expected 'Ќ'] (line 734) # Converting 'Ѝ' => 'Ѝ' [expected 'Ѝ'] (line 735) # Converting 'Ў' => 'Ў' [expected 'Ў'] (line 736) # Converting 'Џ' => 'Џ' [expected 'Џ'] (line 737) # Converting 'А' => 'А' [expected 'А'] (line 738) # Converting 'Б' => 'Б' [expected 'Б'] (line 739) # Converting 'В' => 'В' [expected 'В'] (line 740) # Converting 'Г' => 'Г' [expected 'Г'] (line 741) # Converting 'Д' => 'Д' [expected 'Д'] (line 742) # Converting 'Е' => 'Е' [expected 'Е'] (line 743) # Converting 'Ж' => 'Ж' [expected 'Ж'] (line 744) # Converting 'З' => 'З' [expected 'З'] (line 745) # Converting 'И' => 'И' [expected 'И'] (line 746) # Converting 'Й' => 'Й' [expected 'Й'] (line 747) # Converting 'К' => 'К' [expected 'К'] (line 748) # Converting 'Л' => 'Л' [expected 'Л'] (line 749) # Converting 'М' => 'М' [expected 'М'] (line 750) # Converting 'Н' => 'Н' [expected 'Н'] (line 751) # Converting 'О' => 'О' [expected 'О'] (line 752) # Converting 'П' => 'П' [expected 'П'] (line 753) # Converting 'Р' => 'Р' [expected 'Р'] (line 754) # Converting 'С' => 'С' [expected 'С'] (line 755) # Converting 'Т' => 'Т' [expected 'Т'] (line 756) # Converting 'У' => 'У' [expected 'У'] (line 757) # Converting 'Ф' => 'Ф' [expected 'Ф'] (line 758) # Converting 'Х' => 'Х' [expected 'Х'] (line 759) # Converting 'Ц' => 'Ц' [expected 'Ц'] (line 760) # Converting 'Ч' => 'Ч' [expected 'Ч'] (line 761) # Converting 'Ш' => 'Ш' [expected 'Ш'] (line 762) # Converting 'Щ' => 'Щ' [expected 'Щ'] (line 763) # Converting 'Ъ' => 'Ъ' [expected 'Ъ'] (line 764) # Converting 'Ы' => 'Ы' [expected 'Ы'] (line 765) # Converting 'Ь' => 'Ь' [expected 'Ь'] (line 766) # Converting 'Э' => 'Э' [expected 'Э'] (line 767) # Converting 'Ю' => 'Ю' [expected 'Ю'] (line 768) # Converting 'Я' => 'Я' [expected 'Я'] (line 769) # Converting 'а' => 'А' [expected 'А'] (line 770) # Converting 'б' => 'Б' [expected 'Б'] (line 771) # Converting 'в' => 'В' [expected 'В'] (line 772) # Converting 'г' => 'Г' [expected 'Г'] (line 773) # Converting 'д' => 'Д' [expected 'Д'] (line 774) # Converting 'е' => 'Е' [expected 'Е'] (line 775) # Converting 'ж' => 'Ж' [expected 'Ж'] (line 776) # Converting 'з' => 'З' [expected 'З'] (line 777) # Converting 'и' => 'И' [expected 'И'] (line 778) # Converting 'й' => 'Й' [expected 'Й'] (line 779) # Converting 'к' => 'К' [expected 'К'] (line 780) # Converting 'л' => 'Л' [expected 'Л'] (line 781) # Converting 'м' => 'М' [expected 'М'] (line 782) # Converting 'н' => 'Н' [expected 'Н'] (line 783) # Converting 'о' => 'О' [expected 'О'] (line 784) # Converting 'п' => 'П' [expected 'П'] (line 785) # Converting 'р' => 'Р' [expected 'Р'] (line 786) # Converting 'с' => 'С' [expected 'С'] (line 787) # Converting 'т' => 'Т' [expected 'Т'] (line 788) # Converting 'у' => 'У' [expected 'У'] (line 789) # Converting 'ф' => 'Ф' [expected 'Ф'] (line 790) # Converting 'х' => 'Х' [expected 'Х'] (line 791) # Converting 'ц' => 'Ц' [expected 'Ц'] (line 792) # Converting 'ч' => 'Ч' [expected 'Ч'] (line 793) # Converting 'ш' => 'Ш' [expected 'Ш'] (line 794) # Converting 'щ' => 'Щ' [expected 'Щ'] (line 795) # Converting 'ъ' => 'Ъ' [expected 'Ъ'] (line 796) # Converting 'ы' => 'Ы' [expected 'Ы'] (line 797) # Converting 'ь' => 'Ь' [expected 'Ь'] (line 798) # Converting 'э' => 'Э' [expected 'Э'] (line 799) # Converting 'ю' => 'Ю' [expected 'Ю'] (line 800) # Converting 'я' => 'Я' [expected 'Я'] (line 801) # Converting 'ѐ' => 'Ѐ' [expected 'Ѐ'] (line 802) # Converting 'ё' => 'Ё' [expected 'Ё'] (line 803) # Converting 'ђ' => 'Ђ' [expected 'Ђ'] (line 804) # Converting 'ѓ' => 'Ѓ' [expected 'Ѓ'] (line 805) # Converting 'є' => 'Є' [expected 'Є'] (line 806) # Converting 'ѕ' => 'Ѕ' [expected 'Ѕ'] (line 807) # Converting 'і' => 'І' [expected 'І'] (line 808) # Converting 'ї' => 'Ї' [expected 'Ї'] (line 809) # Converting 'ј' => 'Ј' [expected 'Ј'] (line 810) # Converting 'љ' => 'Љ' [expected 'Љ'] (line 811) # Converting 'њ' => 'Њ' [expected 'Њ'] (line 812) # Converting 'ћ' => 'Ћ' [expected 'Ћ'] (line 813) # Converting 'ќ' => 'Ќ' [expected 'Ќ'] (line 814) # Converting 'ѝ' => 'Ѝ' [expected 'Ѝ'] (line 815) # Converting 'ў' => 'Ў' [expected 'Ў'] (line 816) # Converting 'џ' => 'Џ' [expected 'Џ'] (line 817) # Converting 'Ѡ' => 'Ѡ' [expected 'Ѡ'] (line 818) # Converting 'ѡ' => 'Ѡ' [expected 'Ѡ'] (line 819) # Converting 'Ѣ' => 'Ѣ' [expected 'Ѣ'] (line 820) # Converting 'ѣ' => 'Ѣ' [expected 'Ѣ'] (line 821) # Converting 'Ѥ' => 'Ѥ' [expected 'Ѥ'] (line 822) # Converting 'ѥ' => 'Ѥ' [expected 'Ѥ'] (line 823) # Converting 'Ѧ' => 'Ѧ' [expected 'Ѧ'] (line 824) # Converting 'ѧ' => 'Ѧ' [expected 'Ѧ'] (line 825) # Converting 'Ѩ' => 'Ѩ' [expected 'Ѩ'] (line 826) # Converting 'ѩ' => 'Ѩ' [expected 'Ѩ'] (line 827) # Converting 'Ѫ' => 'Ѫ' [expected 'Ѫ'] (line 828) # Converting 'ѫ' => 'Ѫ' [expected 'Ѫ'] (line 829) # Converting 'Ѭ' => 'Ѭ' [expected 'Ѭ'] (line 830) # Converting 'ѭ' => 'Ѭ' [expected 'Ѭ'] (line 831) # Converting 'Ѯ' => 'Ѯ' [expected 'Ѯ'] (line 832) # Converting 'ѯ' => 'Ѯ' [expected 'Ѯ'] (line 833) # Converting 'Ѱ' => 'Ѱ' [expected 'Ѱ'] (line 834) # Converting 'ѱ' => 'Ѱ' [expected 'Ѱ'] (line 835) # Converting 'Ѳ' => 'Ѳ' [expected 'Ѳ'] (line 836) # Converting 'ѳ' => 'Ѳ' [expected 'Ѳ'] (line 837) # Converting 'Ѵ' => 'Ѵ' [expected 'Ѵ'] (line 838) # Converting 'ѵ' => 'Ѵ' [expected 'Ѵ'] (line 839) # Converting 'Ѷ' => 'Ѷ' [expected 'Ѷ'] (line 840) # Converting 'ѷ' => 'Ѷ' [expected 'Ѷ'] (line 841) # Converting 'Ѹ' => 'Ѹ' [expected 'Ѹ'] (line 842) # Converting 'ѹ' => 'Ѹ' [expected 'Ѹ'] (line 843) # Converting 'Ѻ' => 'Ѻ' [expected 'Ѻ'] (line 844) # Converting 'ѻ' => 'Ѻ' [expected 'Ѻ'] (line 845) # Converting 'Ѽ' => 'Ѽ' [expected 'Ѽ'] (line 846) # Converting 'ѽ' => 'Ѽ' [expected 'Ѽ'] (line 847) # Converting 'Ѿ' => 'Ѿ' [expected 'Ѿ'] (line 848) # Converting 'ѿ' => 'Ѿ' [expected 'Ѿ'] (line 849) # Converting 'Ҁ' => 'Ҁ' [expected 'Ҁ'] (line 850) # Converting 'ҁ' => 'Ҁ' [expected 'Ҁ'] (line 851) # Converting 'Ҋ' => 'Ҋ' [expected 'Ҋ'] (line 852) # Converting 'ҋ' => 'Ҋ' [expected 'Ҋ'] (line 853) # Converting 'Ҍ' => 'Ҍ' [expected 'Ҍ'] (line 854) # Converting 'ҍ' => 'Ҍ' [expected 'Ҍ'] (line 855) # Converting 'Ҏ' => 'Ҏ' [expected 'Ҏ'] (line 856) # Converting 'ҏ' => 'Ҏ' [expected 'Ҏ'] (line 857) # Converting 'Ґ' => 'Ґ' [expected 'Ґ'] (line 858) # Converting 'ґ' => 'Ґ' [expected 'Ґ'] (line 859) # Converting 'Ғ' => 'Ғ' [expected 'Ғ'] (line 860) # Converting 'ғ' => 'Ғ' [expected 'Ғ'] (line 861) # Converting 'Ҕ' => 'Ҕ' [expected 'Ҕ'] (line 862) # Converting 'ҕ' => 'Ҕ' [expected 'Ҕ'] (line 863) # Converting 'Җ' => 'Җ' [expected 'Җ'] (line 864) # Converting 'җ' => 'Җ' [expected 'Җ'] (line 865) # Converting 'Ҙ' => 'Ҙ' [expected 'Ҙ'] (line 866) # Converting 'ҙ' => 'Ҙ' [expected 'Ҙ'] (line 867) # Converting 'Қ' => 'Қ' [expected 'Қ'] (line 868) # Converting 'қ' => 'Қ' [expected 'Қ'] (line 869) # Converting 'Ҝ' => 'Ҝ' [expected 'Ҝ'] (line 870) # Converting 'ҝ' => 'Ҝ' [expected 'Ҝ'] (line 871) # Converting 'Ҟ' => 'Ҟ' [expected 'Ҟ'] (line 872) # Converting 'ҟ' => 'Ҟ' [expected 'Ҟ'] (line 873) # Converting 'Ҡ' => 'Ҡ' [expected 'Ҡ'] (line 874) # Converting 'ҡ' => 'Ҡ' [expected 'Ҡ'] (line 875) # Converting 'Ң' => 'Ң' [expected 'Ң'] (line 876) # Converting 'ң' => 'Ң' [expected 'Ң'] (line 877) # Converting 'Ҥ' => 'Ҥ' [expected 'Ҥ'] (line 878) # Converting 'ҥ' => 'Ҥ' [expected 'Ҥ'] (line 879) # Converting 'Ҧ' => 'Ҧ' [expected 'Ҧ'] (line 880) # Converting 'ҧ' => 'Ҧ' [expected 'Ҧ'] (line 881) # Converting 'Ҩ' => 'Ҩ' [expected 'Ҩ'] (line 882) # Converting 'ҩ' => 'Ҩ' [expected 'Ҩ'] (line 883) # Converting 'Ҫ' => 'Ҫ' [expected 'Ҫ'] (line 884) # Converting 'ҫ' => 'Ҫ' [expected 'Ҫ'] (line 885) # Converting 'Ҭ' => 'Ҭ' [expected 'Ҭ'] (line 886) # Converting 'ҭ' => 'Ҭ' [expected 'Ҭ'] (line 887) # Converting 'Ү' => 'Ү' [expected 'Ү'] (line 888) # Converting 'ү' => 'Ү' [expected 'Ү'] (line 889) # Converting 'Ұ' => 'Ұ' [expected 'Ұ'] (line 890) # Converting 'ұ' => 'Ұ' [expected 'Ұ'] (line 891) # Converting 'Ҳ' => 'Ҳ' [expected 'Ҳ'] (line 892) # Converting 'ҳ' => 'Ҳ' [expected 'Ҳ'] (line 893) # Converting 'Ҵ' => 'Ҵ' [expected 'Ҵ'] (line 894) # Converting 'ҵ' => 'Ҵ' [expected 'Ҵ'] (line 895) # Converting 'Ҷ' => 'Ҷ' [expected 'Ҷ'] (line 896) # Converting 'ҷ' => 'Ҷ' [expected 'Ҷ'] (line 897) # Converting 'Ҹ' => 'Ҹ' [expected 'Ҹ'] (line 898) # Converting 'ҹ' => 'Ҹ' [expected 'Ҹ'] (line 899) # Converting 'Һ' => 'Һ' [expected 'Һ'] (line 900) # Converting 'һ' => 'Һ' [expected 'Һ'] (line 901) # Converting 'Ҽ' => 'Ҽ' [expected 'Ҽ'] (line 902) # Converting 'ҽ' => 'Ҽ' [expected 'Ҽ'] (line 903) # Converting 'Ҿ' => 'Ҿ' [expected 'Ҿ'] (line 904) # Converting 'ҿ' => 'Ҿ' [expected 'Ҿ'] (line 905) # Converting 'Ӏ' => 'Ӏ' [expected 'Ӏ'] (line 906) # Converting 'Ӂ' => 'Ӂ' [expected 'Ӂ'] (line 907) # Converting 'ӂ' => 'Ӂ' [expected 'Ӂ'] (line 908) # Converting 'Ӄ' => 'Ӄ' [expected 'Ӄ'] (line 909) # Converting 'ӄ' => 'Ӄ' [expected 'Ӄ'] (line 910) # Converting 'Ӆ' => 'Ӆ' [expected 'Ӆ'] (line 911) # Converting 'ӆ' => 'Ӆ' [expected 'Ӆ'] (line 912) # Converting 'Ӈ' => 'Ӈ' [expected 'Ӈ'] (line 913) # Converting 'ӈ' => 'Ӈ' [expected 'Ӈ'] (line 914) # Converting 'Ӊ' => 'Ӊ' [expected 'Ӊ'] (line 915) # Converting 'ӊ' => 'Ӊ' [expected 'Ӊ'] (line 916) # Converting 'Ӌ' => 'Ӌ' [expected 'Ӌ'] (line 917) # Converting 'ӌ' => 'Ӌ' [expected 'Ӌ'] (line 918) # Converting 'Ӎ' => 'Ӎ' [expected 'Ӎ'] (line 919) # Converting 'ӎ' => 'Ӎ' [expected 'Ӎ'] (line 920) # Converting 'ӏ' => 'Ӏ' [expected 'Ӏ'] (line 921) # Converting 'Ӑ' => 'Ӑ' [expected 'Ӑ'] (line 922) # Converting 'ӑ' => 'Ӑ' [expected 'Ӑ'] (line 923) # Converting 'Ӓ' => 'Ӓ' [expected 'Ӓ'] (line 924) # Converting 'ӓ' => 'Ӓ' [expected 'Ӓ'] (line 925) # Converting 'Ӕ' => 'Ӕ' [expected 'Ӕ'] (line 926) # Converting 'ӕ' => 'Ӕ' [expected 'Ӕ'] (line 927) # Converting 'Ӗ' => 'Ӗ' [expected 'Ӗ'] (line 928) # Converting 'ӗ' => 'Ӗ' [expected 'Ӗ'] (line 929) # Converting 'Ә' => 'Ә' [expected 'Ә'] (line 930) # Converting 'ә' => 'Ә' [expected 'Ә'] (line 931) # Converting 'Ӛ' => 'Ӛ' [expected 'Ӛ'] (line 932) # Converting 'ӛ' => 'Ӛ' [expected 'Ӛ'] (line 933) # Converting 'Ӝ' => 'Ӝ' [expected 'Ӝ'] (line 934) # Converting 'ӝ' => 'Ӝ' [expected 'Ӝ'] (line 935) # Converting 'Ӟ' => 'Ӟ' [expected 'Ӟ'] (line 936) # Converting 'ӟ' => 'Ӟ' [expected 'Ӟ'] (line 937) # Converting 'Ӡ' => 'Ӡ' [expected 'Ӡ'] (line 938) # Converting 'ӡ' => 'Ӡ' [expected 'Ӡ'] (line 939) # Converting 'Ӣ' => 'Ӣ' [expected 'Ӣ'] (line 940) # Converting 'ӣ' => 'Ӣ' [expected 'Ӣ'] (line 941) # Converting 'Ӥ' => 'Ӥ' [expected 'Ӥ'] (line 942) # Converting 'ӥ' => 'Ӥ' [expected 'Ӥ'] (line 943) # Converting 'Ӧ' => 'Ӧ' [expected 'Ӧ'] (line 944) # Converting 'ӧ' => 'Ӧ' [expected 'Ӧ'] (line 945) # Converting 'Ө' => 'Ө' [expected 'Ө'] (line 946) # Converting 'ө' => 'Ө' [expected 'Ө'] (line 947) # Converting 'Ӫ' => 'Ӫ' [expected 'Ӫ'] (line 948) # Converting 'ӫ' => 'Ӫ' [expected 'Ӫ'] (line 949) # Converting 'Ӭ' => 'Ӭ' [expected 'Ӭ'] (line 950) # Converting 'ӭ' => 'Ӭ' [expected 'Ӭ'] (line 951) # Converting 'Ӯ' => 'Ӯ' [expected 'Ӯ'] (line 952) # Converting 'ӯ' => 'Ӯ' [expected 'Ӯ'] (line 953) # Converting 'Ӱ' => 'Ӱ' [expected 'Ӱ'] (line 954) # Converting 'ӱ' => 'Ӱ' [expected 'Ӱ'] (line 955) # Converting 'Ӳ' => 'Ӳ' [expected 'Ӳ'] (line 956) # Converting 'ӳ' => 'Ӳ' [expected 'Ӳ'] (line 957) # Converting 'Ӵ' => 'Ӵ' [expected 'Ӵ'] (line 958) # Converting 'ӵ' => 'Ӵ' [expected 'Ӵ'] (line 959) # Converting 'Ӷ' => 'Ӷ' [expected 'Ӷ'] (line 960) # Converting 'ӷ' => 'Ӷ' [expected 'Ӷ'] (line 961) # Converting 'Ӹ' => 'Ӹ' [expected 'Ӹ'] (line 962) # Converting 'ӹ' => 'Ӹ' [expected 'Ӹ'] (line 963) # Converting 'Ӻ' => 'Ӻ' [expected 'Ӻ'] (line 964) # Converting 'ӻ' => 'Ӻ' [expected 'Ӻ'] (line 965) # Converting 'Ӽ' => 'Ӽ' [expected 'Ӽ'] (line 966) # Converting 'ӽ' => 'Ӽ' [expected 'Ӽ'] (line 967) # Converting 'Ӿ' => 'Ӿ' [expected 'Ӿ'] (line 968) # Converting 'ӿ' => 'Ӿ' [expected 'Ӿ'] (line 969) # Converting 'Ԁ' => 'Ԁ' [expected 'Ԁ'] (line 970) # Converting 'ԁ' => 'Ԁ' [expected 'Ԁ'] (line 971) # Converting 'Ԃ' => 'Ԃ' [expected 'Ԃ'] (line 972) # Converting 'ԃ' => 'Ԃ' [expected 'Ԃ'] (line 973) # Converting 'Ԅ' => 'Ԅ' [expected 'Ԅ'] (line 974) # Converting 'ԅ' => 'Ԅ' [expected 'Ԅ'] (line 975) # Converting 'Ԇ' => 'Ԇ' [expected 'Ԇ'] (line 976) # Converting 'ԇ' => 'Ԇ' [expected 'Ԇ'] (line 977) # Converting 'Ԉ' => 'Ԉ' [expected 'Ԉ'] (line 978) # Converting 'ԉ' => 'Ԉ' [expected 'Ԉ'] (line 979) # Converting 'Ԋ' => 'Ԋ' [expected 'Ԋ'] (line 980) # Converting 'ԋ' => 'Ԋ' [expected 'Ԋ'] (line 981) # Converting 'Ԍ' => 'Ԍ' [expected 'Ԍ'] (line 982) # Converting 'ԍ' => 'Ԍ' [expected 'Ԍ'] (line 983) # Converting 'Ԏ' => 'Ԏ' [expected 'Ԏ'] (line 984) # Converting 'ԏ' => 'Ԏ' [expected 'Ԏ'] (line 985) # Converting 'Ԑ' => 'Ԑ' [expected 'Ԑ'] (line 986) # Converting 'ԑ' => 'Ԑ' [expected 'Ԑ'] (line 987) # Converting 'Ԓ' => 'Ԓ' [expected 'Ԓ'] (line 988) # Converting 'ԓ' => 'Ԓ' [expected 'Ԓ'] (line 989) # Converting 'Ԕ' => 'Ԕ' [expected 'Ԕ'] (line 990) # Converting 'ԕ' => 'Ԕ' [expected 'Ԕ'] (line 991) # Converting 'Ԗ' => 'Ԗ' [expected 'Ԗ'] (line 992) # Converting 'ԗ' => 'Ԗ' [expected 'Ԗ'] (line 993) # Converting 'Ԙ' => 'Ԙ' [expected 'Ԙ'] (line 994) # Converting 'ԙ' => 'Ԙ' [expected 'Ԙ'] (line 995) # Converting 'Ԛ' => 'Ԛ' [expected 'Ԛ'] (line 996) # Converting 'ԛ' => 'Ԛ' [expected 'Ԛ'] (line 997) # Converting 'Ԝ' => 'Ԝ' [expected 'Ԝ'] (line 998) # Converting 'ԝ' => 'Ԝ' [expected 'Ԝ'] (line 999) # Converting 'Ԟ' => 'Ԟ' [expected 'Ԟ'] (line 1000) # Converting 'ԟ' => 'Ԟ' [expected 'Ԟ'] (line 1001) # Converting 'Ԡ' => 'Ԡ' [expected 'Ԡ'] (line 1002) # Converting 'ԡ' => 'Ԡ' [expected 'Ԡ'] (line 1003) # Converting 'Ԣ' => 'Ԣ' [expected 'Ԣ'] (line 1004) # Converting 'ԣ' => 'Ԣ' [expected 'Ԣ'] (line 1005) # Converting 'Ԥ' => 'Ԥ' [expected 'Ԥ'] (line 1006) # Converting 'ԥ' => 'Ԥ' [expected 'Ԥ'] (line 1007) # Converting 'Ԧ' => 'Ԧ' [expected 'Ԧ'] (line 1008) # Converting 'ԧ' => 'Ԧ' [expected 'Ԧ'] (line 1009) # Converting 'Ԩ' => 'Ԩ' [expected 'Ԩ'] (line 1010) # Converting 'ԩ' => 'Ԩ' [expected 'Ԩ'] (line 1011) # Converting 'Ԫ' => 'Ԫ' [expected 'Ԫ'] (line 1012) # Converting 'ԫ' => 'Ԫ' [expected 'Ԫ'] (line 1013) # Converting 'Ԭ' => 'Ԭ' [expected 'Ԭ'] (line 1014) # Converting 'ԭ' => 'Ԭ' [expected 'Ԭ'] (line 1015) # Converting 'Ԯ' => 'Ԯ' [expected 'Ԯ'] (line 1016) # Converting 'ԯ' => 'Ԯ' [expected 'Ԯ'] (line 1017) # Converting 'Ա' => 'Ա' [expected 'Ա'] (line 1018) # Converting 'Բ' => 'Բ' [expected 'Բ'] (line 1019) # Converting 'Գ' => 'Գ' [expected 'Գ'] (line 1020) # Converting 'Դ' => 'Դ' [expected 'Դ'] (line 1021) # Converting 'Ե' => 'Ե' [expected 'Ե'] (line 1022) # Converting 'Զ' => 'Զ' [expected 'Զ'] (line 1023) # Converting 'Է' => 'Է' [expected 'Է'] (line 1024) # Converting 'Ը' => 'Ը' [expected 'Ը'] (line 1025) # Converting 'Թ' => 'Թ' [expected 'Թ'] (line 1026) # Converting 'Ժ' => 'Ժ' [expected 'Ժ'] (line 1027) # Converting 'Ի' => 'Ի' [expected 'Ի'] (line 1028) # Converting 'Լ' => 'Լ' [expected 'Լ'] (line 1029) # Converting 'Խ' => 'Խ' [expected 'Խ'] (line 1030) # Converting 'Ծ' => 'Ծ' [expected 'Ծ'] (line 1031) # Converting 'Կ' => 'Կ' [expected 'Կ'] (line 1032) # Converting 'Հ' => 'Հ' [expected 'Հ'] (line 1033) # Converting 'Ձ' => 'Ձ' [expected 'Ձ'] (line 1034) # Converting 'Ղ' => 'Ղ' [expected 'Ղ'] (line 1035) # Converting 'Ճ' => 'Ճ' [expected 'Ճ'] (line 1036) # Converting 'Մ' => 'Մ' [expected 'Մ'] (line 1037) # Converting 'Յ' => 'Յ' [expected 'Յ'] (line 1038) # Converting 'Ն' => 'Ն' [expected 'Ն'] (line 1039) # Converting 'Շ' => 'Շ' [expected 'Շ'] (line 1040) # Converting 'Ո' => 'Ո' [expected 'Ո'] (line 1041) # Converting 'Չ' => 'Չ' [expected 'Չ'] (line 1042) # Converting 'Պ' => 'Պ' [expected 'Պ'] (line 1043) # Converting 'Ջ' => 'Ջ' [expected 'Ջ'] (line 1044) # Converting 'Ռ' => 'Ռ' [expected 'Ռ'] (line 1045) # Converting 'Ս' => 'Ս' [expected 'Ս'] (line 1046) # Converting 'Վ' => 'Վ' [expected 'Վ'] (line 1047) # Converting 'Տ' => 'Տ' [expected 'Տ'] (line 1048) # Converting 'Ր' => 'Ր' [expected 'Ր'] (line 1049) # Converting 'Ց' => 'Ց' [expected 'Ց'] (line 1050) # Converting 'Ւ' => 'Ւ' [expected 'Ւ'] (line 1051) # Converting 'Փ' => 'Փ' [expected 'Փ'] (line 1052) # Converting 'Ք' => 'Ք' [expected 'Ք'] (line 1053) # Converting 'Օ' => 'Օ' [expected 'Օ'] (line 1054) # Converting 'Ֆ' => 'Ֆ' [expected 'Ֆ'] (line 1055) # Converting 'ՠ' => 'ՠ' [expected 'ՠ'] (line 1056) # Converting 'ա' => 'Ա' [expected 'Ա'] (line 1057) # Converting 'բ' => 'Բ' [expected 'Բ'] (line 1058) # Converting 'գ' => 'Գ' [expected 'Գ'] (line 1059) # Converting 'դ' => 'Դ' [expected 'Դ'] (line 1060) # Converting 'ե' => 'Ե' [expected 'Ե'] (line 1061) # Converting 'զ' => 'Զ' [expected 'Զ'] (line 1062) # Converting 'է' => 'Է' [expected 'Է'] (line 1063) # Converting 'ը' => 'Ը' [expected 'Ը'] (line 1064) # Converting 'թ' => 'Թ' [expected 'Թ'] (line 1065) # Converting 'ժ' => 'Ժ' [expected 'Ժ'] (line 1066) # Converting 'ի' => 'Ի' [expected 'Ի'] (line 1067) # Converting 'լ' => 'Լ' [expected 'Լ'] (line 1068) # Converting 'խ' => 'Խ' [expected 'Խ'] (line 1069) # Converting 'ծ' => 'Ծ' [expected 'Ծ'] (line 1070) # Converting 'կ' => 'Կ' [expected 'Կ'] (line 1071) # Converting 'հ' => 'Հ' [expected 'Հ'] (line 1072) # Converting 'ձ' => 'Ձ' [expected 'Ձ'] (line 1073) # Converting 'ղ' => 'Ղ' [expected 'Ղ'] (line 1074) # Converting 'ճ' => 'Ճ' [expected 'Ճ'] (line 1075) # Converting 'մ' => 'Մ' [expected 'Մ'] (line 1076) # Converting 'յ' => 'Յ' [expected 'Յ'] (line 1077) # Converting 'ն' => 'Ն' [expected 'Ն'] (line 1078) # Converting 'շ' => 'Շ' [expected 'Շ'] (line 1079) # Converting 'ո' => 'Ո' [expected 'Ո'] (line 1080) # Converting 'չ' => 'Չ' [expected 'Չ'] (line 1081) # Converting 'պ' => 'Պ' [expected 'Պ'] (line 1082) # Converting 'ջ' => 'Ջ' [expected 'Ջ'] (line 1083) # Converting 'ռ' => 'Ռ' [expected 'Ռ'] (line 1084) # Converting 'ս' => 'Ս' [expected 'Ս'] (line 1085) # Converting 'վ' => 'Վ' [expected 'Վ'] (line 1086) # Converting 'տ' => 'Տ' [expected 'Տ'] (line 1087) # Converting 'ր' => 'Ր' [expected 'Ր'] (line 1088) # Converting 'ց' => 'Ց' [expected 'Ց'] (line 1089) # Converting 'ւ' => 'Ւ' [expected 'Ւ'] (line 1090) # Converting 'փ' => 'Փ' [expected 'Փ'] (line 1091) # Converting 'ք' => 'Ք' [expected 'Ք'] (line 1092) # Converting 'օ' => 'Օ' [expected 'Օ'] (line 1093) # Converting 'ֆ' => 'Ֆ' [expected 'Ֆ'] (line 1094) # Converting 'և' => 'ԵՒ' [expected 'ԵՒ'] (line 1095) # Converting 'ֈ' => 'ֈ' [expected 'ֈ'] (line 1096) # Converting 'Ⴀ' => 'Ⴀ' [expected 'Ⴀ'] (line 1097) # Converting 'Ⴁ' => 'Ⴁ' [expected 'Ⴁ'] (line 1098) # Converting 'Ⴂ' => 'Ⴂ' [expected 'Ⴂ'] (line 1099) # Converting 'Ⴃ' => 'Ⴃ' [expected 'Ⴃ'] (line 1100) # Converting 'Ⴄ' => 'Ⴄ' [expected 'Ⴄ'] (line 1101) # Converting 'Ⴅ' => 'Ⴅ' [expected 'Ⴅ'] (line 1102) # Converting 'Ⴆ' => 'Ⴆ' [expected 'Ⴆ'] (line 1103) # Converting 'Ⴇ' => 'Ⴇ' [expected 'Ⴇ'] (line 1104) # Converting 'Ⴈ' => 'Ⴈ' [expected 'Ⴈ'] (line 1105) # Converting 'Ⴉ' => 'Ⴉ' [expected 'Ⴉ'] (line 1106) # Converting 'Ⴊ' => 'Ⴊ' [expected 'Ⴊ'] (line 1107) # Converting 'Ⴋ' => 'Ⴋ' [expected 'Ⴋ'] (line 1108) # Converting 'Ⴌ' => 'Ⴌ' [expected 'Ⴌ'] (line 1109) # Converting 'Ⴍ' => 'Ⴍ' [expected 'Ⴍ'] (line 1110) # Converting 'Ⴎ' => 'Ⴎ' [expected 'Ⴎ'] (line 1111) # Converting 'Ⴏ' => 'Ⴏ' [expected 'Ⴏ'] (line 1112) # Converting 'Ⴐ' => 'Ⴐ' [expected 'Ⴐ'] (line 1113) # Converting 'Ⴑ' => 'Ⴑ' [expected 'Ⴑ'] (line 1114) # Converting 'Ⴒ' => 'Ⴒ' [expected 'Ⴒ'] (line 1115) # Converting 'Ⴓ' => 'Ⴓ' [expected 'Ⴓ'] (line 1116) # Converting 'Ⴔ' => 'Ⴔ' [expected 'Ⴔ'] (line 1117) # Converting 'Ⴕ' => 'Ⴕ' [expected 'Ⴕ'] (line 1118) # Converting 'Ⴖ' => 'Ⴖ' [expected 'Ⴖ'] (line 1119) # Converting 'Ⴗ' => 'Ⴗ' [expected 'Ⴗ'] (line 1120) # Converting 'Ⴘ' => 'Ⴘ' [expected 'Ⴘ'] (line 1121) # Converting 'Ⴙ' => 'Ⴙ' [expected 'Ⴙ'] (line 1122) # Converting 'Ⴚ' => 'Ⴚ' [expected 'Ⴚ'] (line 1123) # Converting 'Ⴛ' => 'Ⴛ' [expected 'Ⴛ'] (line 1124) # Converting 'Ⴜ' => 'Ⴜ' [expected 'Ⴜ'] (line 1125) # Converting 'Ⴝ' => 'Ⴝ' [expected 'Ⴝ'] (line 1126) # Converting 'Ⴞ' => 'Ⴞ' [expected 'Ⴞ'] (line 1127) # Converting 'Ⴟ' => 'Ⴟ' [expected 'Ⴟ'] (line 1128) # Converting 'Ⴠ' => 'Ⴠ' [expected 'Ⴠ'] (line 1129) # Converting 'Ⴡ' => 'Ⴡ' [expected 'Ⴡ'] (line 1130) # Converting 'Ⴢ' => 'Ⴢ' [expected 'Ⴢ'] (line 1131) # Converting 'Ⴣ' => 'Ⴣ' [expected 'Ⴣ'] (line 1132) # Converting 'Ⴤ' => 'Ⴤ' [expected 'Ⴤ'] (line 1133) # Converting 'Ⴥ' => 'Ⴥ' [expected 'Ⴥ'] (line 1134) # Converting 'Ⴧ' => 'Ⴧ' [expected 'Ⴧ'] (line 1135) # Converting 'Ⴭ' => 'Ⴭ' [expected 'Ⴭ'] (line 1136) # Converting 'ა' => 'Ა' [expected 'Ა'] (line 1137) # Converting 'ბ' => 'Ბ' [expected 'Ბ'] (line 1138) # Converting 'გ' => 'Გ' [expected 'Გ'] (line 1139) # Converting 'დ' => 'Დ' [expected 'Დ'] (line 1140) # Converting 'ე' => 'Ე' [expected 'Ე'] (line 1141) # Converting 'ვ' => 'Ვ' [expected 'Ვ'] (line 1142) # Converting 'ზ' => 'Ზ' [expected 'Ზ'] (line 1143) # Converting 'თ' => 'Თ' [expected 'Თ'] (line 1144) # Converting 'ი' => 'Ი' [expected 'Ი'] (line 1145) # Converting 'კ' => 'Კ' [expected 'Კ'] (line 1146) # Converting 'ლ' => 'Ლ' [expected 'Ლ'] (line 1147) # Converting 'მ' => 'Მ' [expected 'Მ'] (line 1148) # Converting 'ნ' => 'Ნ' [expected 'Ნ'] (line 1149) # Converting 'ო' => 'Ო' [expected 'Ო'] (line 1150) # Converting 'პ' => 'Პ' [expected 'Პ'] (line 1151) # Converting 'ჟ' => 'Ჟ' [expected 'Ჟ'] (line 1152) # Converting 'რ' => 'Რ' [expected 'Რ'] (line 1153) # Converting 'ს' => 'Ს' [expected 'Ს'] (line 1154) # Converting 'ტ' => 'Ტ' [expected 'Ტ'] (line 1155) # Converting 'უ' => 'Უ' [expected 'Უ'] (line 1156) # Converting 'ფ' => 'Ფ' [expected 'Ფ'] (line 1157) # Converting 'ქ' => 'Ქ' [expected 'Ქ'] (line 1158) # Converting 'ღ' => 'Ღ' [expected 'Ღ'] (line 1159) # Converting 'ყ' => 'Ყ' [expected 'Ყ'] (line 1160) # Converting 'შ' => 'Შ' [expected 'Შ'] (line 1161) # Converting 'ჩ' => 'Ჩ' [expected 'Ჩ'] (line 1162) # Converting 'ც' => 'Ც' [expected 'Ც'] (line 1163) # Converting 'ძ' => 'Ძ' [expected 'Ძ'] (line 1164) # Converting 'წ' => 'Წ' [expected 'Წ'] (line 1165) # Converting 'ჭ' => 'Ჭ' [expected 'Ჭ'] (line 1166) # Converting 'ხ' => 'Ხ' [expected 'Ხ'] (line 1167) # Converting 'ჯ' => 'Ჯ' [expected 'Ჯ'] (line 1168) # Converting 'ჰ' => 'Ჰ' [expected 'Ჰ'] (line 1169) # Converting 'ჱ' => 'Ჱ' [expected 'Ჱ'] (line 1170) # Converting 'ჲ' => 'Ჲ' [expected 'Ჲ'] (line 1171) # Converting 'ჳ' => 'Ჳ' [expected 'Ჳ'] (line 1172) # Converting 'ჴ' => 'Ჴ' [expected 'Ჴ'] (line 1173) # Converting 'ჵ' => 'Ჵ' [expected 'Ჵ'] (line 1174) # Converting 'ჶ' => 'Ჶ' [expected 'Ჶ'] (line 1175) # Converting 'ჷ' => 'Ჷ' [expected 'Ჷ'] (line 1176) # Converting 'ჸ' => 'Ჸ' [expected 'Ჸ'] (line 1177) # Converting 'ჹ' => 'Ჹ' [expected 'Ჹ'] (line 1178) # Converting 'ჺ' => 'Ჺ' [expected 'Ჺ'] (line 1179) # Converting 'ჽ' => 'Ჽ' [expected 'Ჽ'] (line 1180) # Converting 'ჾ' => 'Ჾ' [expected 'Ჾ'] (line 1181) # Converting 'ჿ' => 'Ჿ' [expected 'Ჿ'] (line 1182) # Converting 'Ꭰ' => 'Ꭰ' [expected 'Ꭰ'] (line 1183) # Converting 'Ꭱ' => 'Ꭱ' [expected 'Ꭱ'] (line 1184) # Converting 'Ꭲ' => 'Ꭲ' [expected 'Ꭲ'] (line 1185) # Converting 'Ꭳ' => 'Ꭳ' [expected 'Ꭳ'] (line 1186) # Converting 'Ꭴ' => 'Ꭴ' [expected 'Ꭴ'] (line 1187) # Converting 'Ꭵ' => 'Ꭵ' [expected 'Ꭵ'] (line 1188) # Converting 'Ꭶ' => 'Ꭶ' [expected 'Ꭶ'] (line 1189) # Converting 'Ꭷ' => 'Ꭷ' [expected 'Ꭷ'] (line 1190) # Converting 'Ꭸ' => 'Ꭸ' [expected 'Ꭸ'] (line 1191) # Converting 'Ꭹ' => 'Ꭹ' [expected 'Ꭹ'] (line 1192) # Converting 'Ꭺ' => 'Ꭺ' [expected 'Ꭺ'] (line 1193) # Converting 'Ꭻ' => 'Ꭻ' [expected 'Ꭻ'] (line 1194) # Converting 'Ꭼ' => 'Ꭼ' [expected 'Ꭼ'] (line 1195) # Converting 'Ꭽ' => 'Ꭽ' [expected 'Ꭽ'] (line 1196) # Converting 'Ꭾ' => 'Ꭾ' [expected 'Ꭾ'] (line 1197) # Converting 'Ꭿ' => 'Ꭿ' [expected 'Ꭿ'] (line 1198) # Converting 'Ꮀ' => 'Ꮀ' [expected 'Ꮀ'] (line 1199) # Converting 'Ꮁ' => 'Ꮁ' [expected 'Ꮁ'] (line 1200) # Converting 'Ꮂ' => 'Ꮂ' [expected 'Ꮂ'] (line 1201) # Converting 'Ꮃ' => 'Ꮃ' [expected 'Ꮃ'] (line 1202) # Converting 'Ꮄ' => 'Ꮄ' [expected 'Ꮄ'] (line 1203) # Converting 'Ꮅ' => 'Ꮅ' [expected 'Ꮅ'] (line 1204) # Converting 'Ꮆ' => 'Ꮆ' [expected 'Ꮆ'] (line 1205) # Converting 'Ꮇ' => 'Ꮇ' [expected 'Ꮇ'] (line 1206) # Converting 'Ꮈ' => 'Ꮈ' [expected 'Ꮈ'] (line 1207) # Converting 'Ꮉ' => 'Ꮉ' [expected 'Ꮉ'] (line 1208) # Converting 'Ꮊ' => 'Ꮊ' [expected 'Ꮊ'] (line 1209) # Converting 'Ꮋ' => 'Ꮋ' [expected 'Ꮋ'] (line 1210) # Converting 'Ꮌ' => 'Ꮌ' [expected 'Ꮌ'] (line 1211) # Converting 'Ꮍ' => 'Ꮍ' [expected 'Ꮍ'] (line 1212) # Converting 'Ꮎ' => 'Ꮎ' [expected 'Ꮎ'] (line 1213) # Converting 'Ꮏ' => 'Ꮏ' [expected 'Ꮏ'] (line 1214) # Converting 'Ꮐ' => 'Ꮐ' [expected 'Ꮐ'] (line 1215) # Converting 'Ꮑ' => 'Ꮑ' [expected 'Ꮑ'] (line 1216) # Converting 'Ꮒ' => 'Ꮒ' [expected 'Ꮒ'] (line 1217) # Converting 'Ꮓ' => 'Ꮓ' [expected 'Ꮓ'] (line 1218) # Converting 'Ꮔ' => 'Ꮔ' [expected 'Ꮔ'] (line 1219) # Converting 'Ꮕ' => 'Ꮕ' [expected 'Ꮕ'] (line 1220) # Converting 'Ꮖ' => 'Ꮖ' [expected 'Ꮖ'] (line 1221) # Converting 'Ꮗ' => 'Ꮗ' [expected 'Ꮗ'] (line 1222) # Converting 'Ꮘ' => 'Ꮘ' [expected 'Ꮘ'] (line 1223) # Converting 'Ꮙ' => 'Ꮙ' [expected 'Ꮙ'] (line 1224) # Converting 'Ꮚ' => 'Ꮚ' [expected 'Ꮚ'] (line 1225) # Converting 'Ꮛ' => 'Ꮛ' [expected 'Ꮛ'] (line 1226) # Converting 'Ꮜ' => 'Ꮜ' [expected 'Ꮜ'] (line 1227) # Converting 'Ꮝ' => 'Ꮝ' [expected 'Ꮝ'] (line 1228) # Converting 'Ꮞ' => 'Ꮞ' [expected 'Ꮞ'] (line 1229) # Converting 'Ꮟ' => 'Ꮟ' [expected 'Ꮟ'] (line 1230) # Converting 'Ꮠ' => 'Ꮠ' [expected 'Ꮠ'] (line 1231) # Converting 'Ꮡ' => 'Ꮡ' [expected 'Ꮡ'] (line 1232) # Converting 'Ꮢ' => 'Ꮢ' [expected 'Ꮢ'] (line 1233) # Converting 'Ꮣ' => 'Ꮣ' [expected 'Ꮣ'] (line 1234) # Converting 'Ꮤ' => 'Ꮤ' [expected 'Ꮤ'] (line 1235) # Converting 'Ꮥ' => 'Ꮥ' [expected 'Ꮥ'] (line 1236) # Converting 'Ꮦ' => 'Ꮦ' [expected 'Ꮦ'] (line 1237) # Converting 'Ꮧ' => 'Ꮧ' [expected 'Ꮧ'] (line 1238) # Converting 'Ꮨ' => 'Ꮨ' [expected 'Ꮨ'] (line 1239) # Converting 'Ꮩ' => 'Ꮩ' [expected 'Ꮩ'] (line 1240) # Converting 'Ꮪ' => 'Ꮪ' [expected 'Ꮪ'] (line 1241) # Converting 'Ꮫ' => 'Ꮫ' [expected 'Ꮫ'] (line 1242) # Converting 'Ꮬ' => 'Ꮬ' [expected 'Ꮬ'] (line 1243) # Converting 'Ꮭ' => 'Ꮭ' [expected 'Ꮭ'] (line 1244) # Converting 'Ꮮ' => 'Ꮮ' [expected 'Ꮮ'] (line 1245) # Converting 'Ꮯ' => 'Ꮯ' [expected 'Ꮯ'] (line 1246) # Converting 'Ꮰ' => 'Ꮰ' [expected 'Ꮰ'] (line 1247) # Converting 'Ꮱ' => 'Ꮱ' [expected 'Ꮱ'] (line 1248) # Converting 'Ꮲ' => 'Ꮲ' [expected 'Ꮲ'] (line 1249) # Converting 'Ꮳ' => 'Ꮳ' [expected 'Ꮳ'] (line 1250) # Converting 'Ꮴ' => 'Ꮴ' [expected 'Ꮴ'] (line 1251) # Converting 'Ꮵ' => 'Ꮵ' [expected 'Ꮵ'] (line 1252) # Converting 'Ꮶ' => 'Ꮶ' [expected 'Ꮶ'] (line 1253) # Converting 'Ꮷ' => 'Ꮷ' [expected 'Ꮷ'] (line 1254) # Converting 'Ꮸ' => 'Ꮸ' [expected 'Ꮸ'] (line 1255) # Converting 'Ꮹ' => 'Ꮹ' [expected 'Ꮹ'] (line 1256) # Converting 'Ꮺ' => 'Ꮺ' [expected 'Ꮺ'] (line 1257) # Converting 'Ꮻ' => 'Ꮻ' [expected 'Ꮻ'] (line 1258) # Converting 'Ꮼ' => 'Ꮼ' [expected 'Ꮼ'] (line 1259) # Converting 'Ꮽ' => 'Ꮽ' [expected 'Ꮽ'] (line 1260) # Converting 'Ꮾ' => 'Ꮾ' [expected 'Ꮾ'] (line 1261) # Converting 'Ꮿ' => 'Ꮿ' [expected 'Ꮿ'] (line 1262) # Converting 'Ᏸ' => 'Ᏸ' [expected 'Ᏸ'] (line 1263) # Converting 'Ᏹ' => 'Ᏹ' [expected 'Ᏹ'] (line 1264) # Converting 'Ᏺ' => 'Ᏺ' [expected 'Ᏺ'] (line 1265) # Converting 'Ᏻ' => 'Ᏻ' [expected 'Ᏻ'] (line 1266) # Converting 'Ᏼ' => 'Ᏼ' [expected 'Ᏼ'] (line 1267) # Converting 'Ᏽ' => 'Ᏽ' [expected 'Ᏽ'] (line 1268) # Converting 'ᏸ' => 'Ᏸ' [expected 'Ᏸ'] (line 1269) # Converting 'ᏹ' => 'Ᏹ' [expected 'Ᏹ'] (line 1270) # Converting 'ᏺ' => 'Ᏺ' [expected 'Ᏺ'] (line 1271) # Converting 'ᏻ' => 'Ᏻ' [expected 'Ᏻ'] (line 1272) # Converting 'ᏼ' => 'Ᏼ' [expected 'Ᏼ'] (line 1273) # Converting 'ᏽ' => 'Ᏽ' [expected 'Ᏽ'] (line 1274) # Converting 'ᲀ' => 'В' [expected 'В'] (line 1275) # Converting 'ᲁ' => 'Д' [expected 'Д'] (line 1276) # Converting 'ᲂ' => 'О' [expected 'О'] (line 1277) # Converting 'ᲃ' => 'С' [expected 'С'] (line 1278) # Converting 'ᲄ' => 'Т' [expected 'Т'] (line 1279) # Converting 'ᲅ' => 'Т' [expected 'Т'] (line 1280) # Converting 'ᲆ' => 'Ъ' [expected 'Ъ'] (line 1281) # Converting 'ᲇ' => 'Ѣ' [expected 'Ѣ'] (line 1282) # Converting 'ᲈ' => 'Ꙋ' [expected 'Ꙋ'] (line 1283) # Converting 'Ᲊ' => 'Ᲊ' [expected 'Ᲊ'] (line 1284) # Converting 'ᲊ' => 'Ᲊ' [expected 'Ᲊ'] (line 1285) # Converting 'Ა' => 'Ა' [expected 'Ა'] (line 1286) # Converting 'Ბ' => 'Ბ' [expected 'Ბ'] (line 1287) # Converting 'Გ' => 'Გ' [expected 'Გ'] (line 1288) # Converting 'Დ' => 'Დ' [expected 'Დ'] (line 1289) # Converting 'Ე' => 'Ე' [expected 'Ე'] (line 1290) # Converting 'Ვ' => 'Ვ' [expected 'Ვ'] (line 1291) # Converting 'Ზ' => 'Ზ' [expected 'Ზ'] (line 1292) # Converting 'Თ' => 'Თ' [expected 'Თ'] (line 1293) # Converting 'Ი' => 'Ი' [expected 'Ი'] (line 1294) # Converting 'Კ' => 'Კ' [expected 'Კ'] (line 1295) # Converting 'Ლ' => 'Ლ' [expected 'Ლ'] (line 1296) # Converting 'Მ' => 'Მ' [expected 'Მ'] (line 1297) # Converting 'Ნ' => 'Ნ' [expected 'Ნ'] (line 1298) # Converting 'Ო' => 'Ო' [expected 'Ო'] (line 1299) # Converting 'Პ' => 'Პ' [expected 'Პ'] (line 1300) # Converting 'Ჟ' => 'Ჟ' [expected 'Ჟ'] (line 1301) # Converting 'Რ' => 'Რ' [expected 'Რ'] (line 1302) # Converting 'Ს' => 'Ს' [expected 'Ს'] (line 1303) # Converting 'Ტ' => 'Ტ' [expected 'Ტ'] (line 1304) # Converting 'Უ' => 'Უ' [expected 'Უ'] (line 1305) # Converting 'Ფ' => 'Ფ' [expected 'Ფ'] (line 1306) # Converting 'Ქ' => 'Ქ' [expected 'Ქ'] (line 1307) # Converting 'Ღ' => 'Ღ' [expected 'Ღ'] (line 1308) # Converting 'Ყ' => 'Ყ' [expected 'Ყ'] (line 1309) # Converting 'Შ' => 'Შ' [expected 'Შ'] (line 1310) # Converting 'Ჩ' => 'Ჩ' [expected 'Ჩ'] (line 1311) # Converting 'Ც' => 'Ც' [expected 'Ც'] (line 1312) # Converting 'Ძ' => 'Ძ' [expected 'Ძ'] (line 1313) # Converting 'Წ' => 'Წ' [expected 'Წ'] (line 1314) # Converting 'Ჭ' => 'Ჭ' [expected 'Ჭ'] (line 1315) # Converting 'Ხ' => 'Ხ' [expected 'Ხ'] (line 1316) # Converting 'Ჯ' => 'Ჯ' [expected 'Ჯ'] (line 1317) # Converting 'Ჰ' => 'Ჰ' [expected 'Ჰ'] (line 1318) # Converting 'Ჱ' => 'Ჱ' [expected 'Ჱ'] (line 1319) # Converting 'Ჲ' => 'Ჲ' [expected 'Ჲ'] (line 1320) # Converting 'Ჳ' => 'Ჳ' [expected 'Ჳ'] (line 1321) # Converting 'Ჴ' => 'Ჴ' [expected 'Ჴ'] (line 1322) # Converting 'Ჵ' => 'Ჵ' [expected 'Ჵ'] (line 1323) # Converting 'Ჶ' => 'Ჶ' [expected 'Ჶ'] (line 1324) # Converting 'Ჷ' => 'Ჷ' [expected 'Ჷ'] (line 1325) # Converting 'Ჸ' => 'Ჸ' [expected 'Ჸ'] (line 1326) # Converting 'Ჹ' => 'Ჹ' [expected 'Ჹ'] (line 1327) # Converting 'Ჺ' => 'Ჺ' [expected 'Ჺ'] (line 1328) # Converting 'Ჽ' => 'Ჽ' [expected 'Ჽ'] (line 1329) # Converting 'Ჾ' => 'Ჾ' [expected 'Ჾ'] (line 1330) # Converting 'Ჿ' => 'Ჿ' [expected 'Ჿ'] (line 1331) # Converting 'ᴀ' => 'ᴀ' [expected 'ᴀ'] (line 1332) # Converting 'ᴁ' => 'ᴁ' [expected 'ᴁ'] (line 1333) # Converting 'ᴂ' => 'ᴂ' [expected 'ᴂ'] (line 1334) # Converting 'ᴃ' => 'ᴃ' [expected 'ᴃ'] (line 1335) # Converting 'ᴄ' => 'ᴄ' [expected 'ᴄ'] (line 1336) # Converting 'ᴅ' => 'ᴅ' [expected 'ᴅ'] (line 1337) # Converting 'ᴆ' => 'ᴆ' [expected 'ᴆ'] (line 1338) # Converting 'ᴇ' => 'ᴇ' [expected 'ᴇ'] (line 1339) # Converting 'ᴈ' => 'ᴈ' [expected 'ᴈ'] (line 1340) # Converting 'ᴉ' => 'ᴉ' [expected 'ᴉ'] (line 1341) # Converting 'ᴊ' => 'ᴊ' [expected 'ᴊ'] (line 1342) # Converting 'ᴋ' => 'ᴋ' [expected 'ᴋ'] (line 1343) # Converting 'ᴌ' => 'ᴌ' [expected 'ᴌ'] (line 1344) # Converting 'ᴍ' => 'ᴍ' [expected 'ᴍ'] (line 1345) # Converting 'ᴎ' => 'ᴎ' [expected 'ᴎ'] (line 1346) # Converting 'ᴏ' => 'ᴏ' [expected 'ᴏ'] (line 1347) # Converting 'ᴐ' => 'ᴐ' [expected 'ᴐ'] (line 1348) # Converting 'ᴑ' => 'ᴑ' [expected 'ᴑ'] (line 1349) # Converting 'ᴒ' => 'ᴒ' [expected 'ᴒ'] (line 1350) # Converting 'ᴓ' => 'ᴓ' [expected 'ᴓ'] (line 1351) # Converting 'ᴔ' => 'ᴔ' [expected 'ᴔ'] (line 1352) # Converting 'ᴕ' => 'ᴕ' [expected 'ᴕ'] (line 1353) # Converting 'ᴖ' => 'ᴖ' [expected 'ᴖ'] (line 1354) # Converting 'ᴗ' => 'ᴗ' [expected 'ᴗ'] (line 1355) # Converting 'ᴘ' => 'ᴘ' [expected 'ᴘ'] (line 1356) # Converting 'ᴙ' => 'ᴙ' [expected 'ᴙ'] (line 1357) # Converting 'ᴚ' => 'ᴚ' [expected 'ᴚ'] (line 1358) # Converting 'ᴛ' => 'ᴛ' [expected 'ᴛ'] (line 1359) # Converting 'ᴜ' => 'ᴜ' [expected 'ᴜ'] (line 1360) # Converting 'ᴝ' => 'ᴝ' [expected 'ᴝ'] (line 1361) # Converting 'ᴞ' => 'ᴞ' [expected 'ᴞ'] (line 1362) # Converting 'ᴟ' => 'ᴟ' [expected 'ᴟ'] (line 1363) # Converting 'ᴠ' => 'ᴠ' [expected 'ᴠ'] (line 1364) # Converting 'ᴡ' => 'ᴡ' [expected 'ᴡ'] (line 1365) # Converting 'ᴢ' => 'ᴢ' [expected 'ᴢ'] (line 1366) # Converting 'ᴣ' => 'ᴣ' [expected 'ᴣ'] (line 1367) # Converting 'ᴤ' => 'ᴤ' [expected 'ᴤ'] (line 1368) # Converting 'ᴥ' => 'ᴥ' [expected 'ᴥ'] (line 1369) # Converting 'ᴦ' => 'ᴦ' [expected 'ᴦ'] (line 1370) # Converting 'ᴧ' => 'ᴧ' [expected 'ᴧ'] (line 1371) # Converting 'ᴨ' => 'ᴨ' [expected 'ᴨ'] (line 1372) # Converting 'ᴩ' => 'ᴩ' [expected 'ᴩ'] (line 1373) # Converting 'ᴪ' => 'ᴪ' [expected 'ᴪ'] (line 1374) # Converting 'ᴫ' => 'ᴫ' [expected 'ᴫ'] (line 1375) # Converting 'ᵫ' => 'ᵫ' [expected 'ᵫ'] (line 1376) # Converting 'ᵬ' => 'ᵬ' [expected 'ᵬ'] (line 1377) # Converting 'ᵭ' => 'ᵭ' [expected 'ᵭ'] (line 1378) # Converting 'ᵮ' => 'ᵮ' [expected 'ᵮ'] (line 1379) # Converting 'ᵯ' => 'ᵯ' [expected 'ᵯ'] (line 1380) # Converting 'ᵰ' => 'ᵰ' [expected 'ᵰ'] (line 1381) # Converting 'ᵱ' => 'ᵱ' [expected 'ᵱ'] (line 1382) # Converting 'ᵲ' => 'ᵲ' [expected 'ᵲ'] (line 1383) # Converting 'ᵳ' => 'ᵳ' [expected 'ᵳ'] (line 1384) # Converting 'ᵴ' => 'ᵴ' [expected 'ᵴ'] (line 1385) # Converting 'ᵵ' => 'ᵵ' [expected 'ᵵ'] (line 1386) # Converting 'ᵶ' => 'ᵶ' [expected 'ᵶ'] (line 1387) # Converting 'ᵷ' => 'ᵷ' [expected 'ᵷ'] (line 1388) # Converting 'ᵹ' => 'Ᵹ' [expected 'Ᵹ'] (line 1389) # Converting 'ᵺ' => 'ᵺ' [expected 'ᵺ'] (line 1390) # Converting 'ᵻ' => 'ᵻ' [expected 'ᵻ'] (line 1391) # Converting 'ᵼ' => 'ᵼ' [expected 'ᵼ'] (line 1392) # Converting 'ᵽ' => 'Ᵽ' [expected 'Ᵽ'] (line 1393) # Converting 'ᵾ' => 'ᵾ' [expected 'ᵾ'] (line 1394) # Converting 'ᵿ' => 'ᵿ' [expected 'ᵿ'] (line 1395) # Converting 'ᶀ' => 'ᶀ' [expected 'ᶀ'] (line 1396) # Converting 'ᶁ' => 'ᶁ' [expected 'ᶁ'] (line 1397) # Converting 'ᶂ' => 'ᶂ' [expected 'ᶂ'] (line 1398) # Converting 'ᶃ' => 'ᶃ' [expected 'ᶃ'] (line 1399) # Converting 'ᶄ' => 'ᶄ' [expected 'ᶄ'] (line 1400) # Converting 'ᶅ' => 'ᶅ' [expected 'ᶅ'] (line 1401) # Converting 'ᶆ' => 'ᶆ' [expected 'ᶆ'] (line 1402) # Converting 'ᶇ' => 'ᶇ' [expected 'ᶇ'] (line 1403) # Converting 'ᶈ' => 'ᶈ' [expected 'ᶈ'] (line 1404) # Converting 'ᶉ' => 'ᶉ' [expected 'ᶉ'] (line 1405) # Converting 'ᶊ' => 'ᶊ' [expected 'ᶊ'] (line 1406) # Converting 'ᶋ' => 'ᶋ' [expected 'ᶋ'] (line 1407) # Converting 'ᶌ' => 'ᶌ' [expected 'ᶌ'] (line 1408) # Converting 'ᶍ' => 'ᶍ' [expected 'ᶍ'] (line 1409) # Converting 'ᶎ' => 'Ᶎ' [expected 'Ᶎ'] (line 1410) # Converting 'ᶏ' => 'ᶏ' [expected 'ᶏ'] (line 1411) # Converting 'ᶐ' => 'ᶐ' [expected 'ᶐ'] (line 1412) # Converting 'ᶑ' => 'ᶑ' [expected 'ᶑ'] (line 1413) # Converting 'ᶒ' => 'ᶒ' [expected 'ᶒ'] (line 1414) # Converting 'ᶓ' => 'ᶓ' [expected 'ᶓ'] (line 1415) # Converting 'ᶔ' => 'ᶔ' [expected 'ᶔ'] (line 1416) # Converting 'ᶕ' => 'ᶕ' [expected 'ᶕ'] (line 1417) # Converting 'ᶖ' => 'ᶖ' [expected 'ᶖ'] (line 1418) # Converting 'ᶗ' => 'ᶗ' [expected 'ᶗ'] (line 1419) # Converting 'ᶘ' => 'ᶘ' [expected 'ᶘ'] (line 1420) # Converting 'ᶙ' => 'ᶙ' [expected 'ᶙ'] (line 1421) # Converting 'ᶚ' => 'ᶚ' [expected 'ᶚ'] (line 1422) # Converting 'Ḁ' => 'Ḁ' [expected 'Ḁ'] (line 1423) # Converting 'ḁ' => 'Ḁ' [expected 'Ḁ'] (line 1424) # Converting 'Ḃ' => 'Ḃ' [expected 'Ḃ'] (line 1425) # Converting 'ḃ' => 'Ḃ' [expected 'Ḃ'] (line 1426) # Converting 'Ḅ' => 'Ḅ' [expected 'Ḅ'] (line 1427) # Converting 'ḅ' => 'Ḅ' [expected 'Ḅ'] (line 1428) # Converting 'Ḇ' => 'Ḇ' [expected 'Ḇ'] (line 1429) # Converting 'ḇ' => 'Ḇ' [expected 'Ḇ'] (line 1430) # Converting 'Ḉ' => 'Ḉ' [expected 'Ḉ'] (line 1431) # Converting 'ḉ' => 'Ḉ' [expected 'Ḉ'] (line 1432) # Converting 'Ḋ' => 'Ḋ' [expected 'Ḋ'] (line 1433) # Converting 'ḋ' => 'Ḋ' [expected 'Ḋ'] (line 1434) # Converting 'Ḍ' => 'Ḍ' [expected 'Ḍ'] (line 1435) # Converting 'ḍ' => 'Ḍ' [expected 'Ḍ'] (line 1436) # Converting 'Ḏ' => 'Ḏ' [expected 'Ḏ'] (line 1437) # Converting 'ḏ' => 'Ḏ' [expected 'Ḏ'] (line 1438) # Converting 'Ḑ' => 'Ḑ' [expected 'Ḑ'] (line 1439) # Converting 'ḑ' => 'Ḑ' [expected 'Ḑ'] (line 1440) # Converting 'Ḓ' => 'Ḓ' [expected 'Ḓ'] (line 1441) # Converting 'ḓ' => 'Ḓ' [expected 'Ḓ'] (line 1442) # Converting 'Ḕ' => 'Ḕ' [expected 'Ḕ'] (line 1443) # Converting 'ḕ' => 'Ḕ' [expected 'Ḕ'] (line 1444) # Converting 'Ḗ' => 'Ḗ' [expected 'Ḗ'] (line 1445) # Converting 'ḗ' => 'Ḗ' [expected 'Ḗ'] (line 1446) # Converting 'Ḙ' => 'Ḙ' [expected 'Ḙ'] (line 1447) # Converting 'ḙ' => 'Ḙ' [expected 'Ḙ'] (line 1448) # Converting 'Ḛ' => 'Ḛ' [expected 'Ḛ'] (line 1449) # Converting 'ḛ' => 'Ḛ' [expected 'Ḛ'] (line 1450) # Converting 'Ḝ' => 'Ḝ' [expected 'Ḝ'] (line 1451) # Converting 'ḝ' => 'Ḝ' [expected 'Ḝ'] (line 1452) # Converting 'Ḟ' => 'Ḟ' [expected 'Ḟ'] (line 1453) # Converting 'ḟ' => 'Ḟ' [expected 'Ḟ'] (line 1454) # Converting 'Ḡ' => 'Ḡ' [expected 'Ḡ'] (line 1455) # Converting 'ḡ' => 'Ḡ' [expected 'Ḡ'] (line 1456) # Converting 'Ḣ' => 'Ḣ' [expected 'Ḣ'] (line 1457) # Converting 'ḣ' => 'Ḣ' [expected 'Ḣ'] (line 1458) # Converting 'Ḥ' => 'Ḥ' [expected 'Ḥ'] (line 1459) # Converting 'ḥ' => 'Ḥ' [expected 'Ḥ'] (line 1460) # Converting 'Ḧ' => 'Ḧ' [expected 'Ḧ'] (line 1461) # Converting 'ḧ' => 'Ḧ' [expected 'Ḧ'] (line 1462) # Converting 'Ḩ' => 'Ḩ' [expected 'Ḩ'] (line 1463) # Converting 'ḩ' => 'Ḩ' [expected 'Ḩ'] (line 1464) # Converting 'Ḫ' => 'Ḫ' [expected 'Ḫ'] (line 1465) # Converting 'ḫ' => 'Ḫ' [expected 'Ḫ'] (line 1466) # Converting 'Ḭ' => 'Ḭ' [expected 'Ḭ'] (line 1467) # Converting 'ḭ' => 'Ḭ' [expected 'Ḭ'] (line 1468) # Converting 'Ḯ' => 'Ḯ' [expected 'Ḯ'] (line 1469) # Converting 'ḯ' => 'Ḯ' [expected 'Ḯ'] (line 1470) # Converting 'Ḱ' => 'Ḱ' [expected 'Ḱ'] (line 1471) # Converting 'ḱ' => 'Ḱ' [expected 'Ḱ'] (line 1472) # Converting 'Ḳ' => 'Ḳ' [expected 'Ḳ'] (line 1473) # Converting 'ḳ' => 'Ḳ' [expected 'Ḳ'] (line 1474) # Converting 'Ḵ' => 'Ḵ' [expected 'Ḵ'] (line 1475) # Converting 'ḵ' => 'Ḵ' [expected 'Ḵ'] (line 1476) # Converting 'Ḷ' => 'Ḷ' [expected 'Ḷ'] (line 1477) # Converting 'ḷ' => 'Ḷ' [expected 'Ḷ'] (line 1478) # Converting 'Ḹ' => 'Ḹ' [expected 'Ḹ'] (line 1479) # Converting 'ḹ' => 'Ḹ' [expected 'Ḹ'] (line 1480) # Converting 'Ḻ' => 'Ḻ' [expected 'Ḻ'] (line 1481) # Converting 'ḻ' => 'Ḻ' [expected 'Ḻ'] (line 1482) # Converting 'Ḽ' => 'Ḽ' [expected 'Ḽ'] (line 1483) # Converting 'ḽ' => 'Ḽ' [expected 'Ḽ'] (line 1484) # Converting 'Ḿ' => 'Ḿ' [expected 'Ḿ'] (line 1485) # Converting 'ḿ' => 'Ḿ' [expected 'Ḿ'] (line 1486) # Converting 'Ṁ' => 'Ṁ' [expected 'Ṁ'] (line 1487) # Converting 'ṁ' => 'Ṁ' [expected 'Ṁ'] (line 1488) # Converting 'Ṃ' => 'Ṃ' [expected 'Ṃ'] (line 1489) # Converting 'ṃ' => 'Ṃ' [expected 'Ṃ'] (line 1490) # Converting 'Ṅ' => 'Ṅ' [expected 'Ṅ'] (line 1491) # Converting 'ṅ' => 'Ṅ' [expected 'Ṅ'] (line 1492) # Converting 'Ṇ' => 'Ṇ' [expected 'Ṇ'] (line 1493) # Converting 'ṇ' => 'Ṇ' [expected 'Ṇ'] (line 1494) # Converting 'Ṉ' => 'Ṉ' [expected 'Ṉ'] (line 1495) # Converting 'ṉ' => 'Ṉ' [expected 'Ṉ'] (line 1496) # Converting 'Ṋ' => 'Ṋ' [expected 'Ṋ'] (line 1497) # Converting 'ṋ' => 'Ṋ' [expected 'Ṋ'] (line 1498) # Converting 'Ṍ' => 'Ṍ' [expected 'Ṍ'] (line 1499) # Converting 'ṍ' => 'Ṍ' [expected 'Ṍ'] (line 1500) # Converting 'Ṏ' => 'Ṏ' [expected 'Ṏ'] (line 1501) # Converting 'ṏ' => 'Ṏ' [expected 'Ṏ'] (line 1502) # Converting 'Ṑ' => 'Ṑ' [expected 'Ṑ'] (line 1503) # Converting 'ṑ' => 'Ṑ' [expected 'Ṑ'] (line 1504) # Converting 'Ṓ' => 'Ṓ' [expected 'Ṓ'] (line 1505) # Converting 'ṓ' => 'Ṓ' [expected 'Ṓ'] (line 1506) # Converting 'Ṕ' => 'Ṕ' [expected 'Ṕ'] (line 1507) # Converting 'ṕ' => 'Ṕ' [expected 'Ṕ'] (line 1508) # Converting 'Ṗ' => 'Ṗ' [expected 'Ṗ'] (line 1509) # Converting 'ṗ' => 'Ṗ' [expected 'Ṗ'] (line 1510) # Converting 'Ṙ' => 'Ṙ' [expected 'Ṙ'] (line 1511) # Converting 'ṙ' => 'Ṙ' [expected 'Ṙ'] (line 1512) # Converting 'Ṛ' => 'Ṛ' [expected 'Ṛ'] (line 1513) # Converting 'ṛ' => 'Ṛ' [expected 'Ṛ'] (line 1514) # Converting 'Ṝ' => 'Ṝ' [expected 'Ṝ'] (line 1515) # Converting 'ṝ' => 'Ṝ' [expected 'Ṝ'] (line 1516) # Converting 'Ṟ' => 'Ṟ' [expected 'Ṟ'] (line 1517) # Converting 'ṟ' => 'Ṟ' [expected 'Ṟ'] (line 1518) # Converting 'Ṡ' => 'Ṡ' [expected 'Ṡ'] (line 1519) # Converting 'ṡ' => 'Ṡ' [expected 'Ṡ'] (line 1520) # Converting 'Ṣ' => 'Ṣ' [expected 'Ṣ'] (line 1521) # Converting 'ṣ' => 'Ṣ' [expected 'Ṣ'] (line 1522) # Converting 'Ṥ' => 'Ṥ' [expected 'Ṥ'] (line 1523) # Converting 'ṥ' => 'Ṥ' [expected 'Ṥ'] (line 1524) # Converting 'Ṧ' => 'Ṧ' [expected 'Ṧ'] (line 1525) # Converting 'ṧ' => 'Ṧ' [expected 'Ṧ'] (line 1526) # Converting 'Ṩ' => 'Ṩ' [expected 'Ṩ'] (line 1527) # Converting 'ṩ' => 'Ṩ' [expected 'Ṩ'] (line 1528) # Converting 'Ṫ' => 'Ṫ' [expected 'Ṫ'] (line 1529) # Converting 'ṫ' => 'Ṫ' [expected 'Ṫ'] (line 1530) # Converting 'Ṭ' => 'Ṭ' [expected 'Ṭ'] (line 1531) # Converting 'ṭ' => 'Ṭ' [expected 'Ṭ'] (line 1532) # Converting 'Ṯ' => 'Ṯ' [expected 'Ṯ'] (line 1533) # Converting 'ṯ' => 'Ṯ' [expected 'Ṯ'] (line 1534) # Converting 'Ṱ' => 'Ṱ' [expected 'Ṱ'] (line 1535) # Converting 'ṱ' => 'Ṱ' [expected 'Ṱ'] (line 1536) # Converting 'Ṳ' => 'Ṳ' [expected 'Ṳ'] (line 1537) # Converting 'ṳ' => 'Ṳ' [expected 'Ṳ'] (line 1538) # Converting 'Ṵ' => 'Ṵ' [expected 'Ṵ'] (line 1539) # Converting 'ṵ' => 'Ṵ' [expected 'Ṵ'] (line 1540) # Converting 'Ṷ' => 'Ṷ' [expected 'Ṷ'] (line 1541) # Converting 'ṷ' => 'Ṷ' [expected 'Ṷ'] (line 1542) # Converting 'Ṹ' => 'Ṹ' [expected 'Ṹ'] (line 1543) # Converting 'ṹ' => 'Ṹ' [expected 'Ṹ'] (line 1544) # Converting 'Ṻ' => 'Ṻ' [expected 'Ṻ'] (line 1545) # Converting 'ṻ' => 'Ṻ' [expected 'Ṻ'] (line 1546) # Converting 'Ṽ' => 'Ṽ' [expected 'Ṽ'] (line 1547) # Converting 'ṽ' => 'Ṽ' [expected 'Ṽ'] (line 1548) # Converting 'Ṿ' => 'Ṿ' [expected 'Ṿ'] (line 1549) # Converting 'ṿ' => 'Ṿ' [expected 'Ṿ'] (line 1550) # Converting 'Ẁ' => 'Ẁ' [expected 'Ẁ'] (line 1551) # Converting 'ẁ' => 'Ẁ' [expected 'Ẁ'] (line 1552) # Converting 'Ẃ' => 'Ẃ' [expected 'Ẃ'] (line 1553) # Converting 'ẃ' => 'Ẃ' [expected 'Ẃ'] (line 1554) # Converting 'Ẅ' => 'Ẅ' [expected 'Ẅ'] (line 1555) # Converting 'ẅ' => 'Ẅ' [expected 'Ẅ'] (line 1556) # Converting 'Ẇ' => 'Ẇ' [expected 'Ẇ'] (line 1557) # Converting 'ẇ' => 'Ẇ' [expected 'Ẇ'] (line 1558) # Converting 'Ẉ' => 'Ẉ' [expected 'Ẉ'] (line 1559) # Converting 'ẉ' => 'Ẉ' [expected 'Ẉ'] (line 1560) # Converting 'Ẋ' => 'Ẋ' [expected 'Ẋ'] (line 1561) # Converting 'ẋ' => 'Ẋ' [expected 'Ẋ'] (line 1562) # Converting 'Ẍ' => 'Ẍ' [expected 'Ẍ'] (line 1563) # Converting 'ẍ' => 'Ẍ' [expected 'Ẍ'] (line 1564) # Converting 'Ẏ' => 'Ẏ' [expected 'Ẏ'] (line 1565) # Converting 'ẏ' => 'Ẏ' [expected 'Ẏ'] (line 1566) # Converting 'Ẑ' => 'Ẑ' [expected 'Ẑ'] (line 1567) # Converting 'ẑ' => 'Ẑ' [expected 'Ẑ'] (line 1568) # Converting 'Ẓ' => 'Ẓ' [expected 'Ẓ'] (line 1569) # Converting 'ẓ' => 'Ẓ' [expected 'Ẓ'] (line 1570) # Converting 'Ẕ' => 'Ẕ' [expected 'Ẕ'] (line 1571) # Converting 'ẕ' => 'Ẕ' [expected 'Ẕ'] (line 1572) # Converting 'ẖ' => 'H̱' [expected 'H̱'] (line 1573) # Converting 'ẗ' => 'T̈' [expected 'T̈'] (line 1574) # Converting 'ẘ' => 'W̊' [expected 'W̊'] (line 1575) # Converting 'ẙ' => 'Y̊' [expected 'Y̊'] (line 1576) # Converting 'ẚ' => 'Aʾ' [expected 'Aʾ'] (line 1577) # Converting 'ẛ' => 'Ṡ' [expected 'Ṡ'] (line 1578) # Converting 'ẜ' => 'ẜ' [expected 'ẜ'] (line 1579) # Converting 'ẝ' => 'ẝ' [expected 'ẝ'] (line 1580) # Converting 'ẞ' => 'ẞ' [expected 'ẞ'] (line 1581) # Converting 'ẟ' => 'ẟ' [expected 'ẟ'] (line 1582) # Converting 'Ạ' => 'Ạ' [expected 'Ạ'] (line 1583) # Converting 'ạ' => 'Ạ' [expected 'Ạ'] (line 1584) # Converting 'Ả' => 'Ả' [expected 'Ả'] (line 1585) # Converting 'ả' => 'Ả' [expected 'Ả'] (line 1586) # Converting 'Ấ' => 'Ấ' [expected 'Ấ'] (line 1587) # Converting 'ấ' => 'Ấ' [expected 'Ấ'] (line 1588) # Converting 'Ầ' => 'Ầ' [expected 'Ầ'] (line 1589) # Converting 'ầ' => 'Ầ' [expected 'Ầ'] (line 1590) # Converting 'Ẩ' => 'Ẩ' [expected 'Ẩ'] (line 1591) # Converting 'ẩ' => 'Ẩ' [expected 'Ẩ'] (line 1592) # Converting 'Ẫ' => 'Ẫ' [expected 'Ẫ'] (line 1593) # Converting 'ẫ' => 'Ẫ' [expected 'Ẫ'] (line 1594) # Converting 'Ậ' => 'Ậ' [expected 'Ậ'] (line 1595) # Converting 'ậ' => 'Ậ' [expected 'Ậ'] (line 1596) # Converting 'Ắ' => 'Ắ' [expected 'Ắ'] (line 1597) # Converting 'ắ' => 'Ắ' [expected 'Ắ'] (line 1598) # Converting 'Ằ' => 'Ằ' [expected 'Ằ'] (line 1599) # Converting 'ằ' => 'Ằ' [expected 'Ằ'] (line 1600) # Converting 'Ẳ' => 'Ẳ' [expected 'Ẳ'] (line 1601) # Converting 'ẳ' => 'Ẳ' [expected 'Ẳ'] (line 1602) # Converting 'Ẵ' => 'Ẵ' [expected 'Ẵ'] (line 1603) # Converting 'ẵ' => 'Ẵ' [expected 'Ẵ'] (line 1604) # Converting 'Ặ' => 'Ặ' [expected 'Ặ'] (line 1605) # Converting 'ặ' => 'Ặ' [expected 'Ặ'] (line 1606) # Converting 'Ẹ' => 'Ẹ' [expected 'Ẹ'] (line 1607) # Converting 'ẹ' => 'Ẹ' [expected 'Ẹ'] (line 1608) # Converting 'Ẻ' => 'Ẻ' [expected 'Ẻ'] (line 1609) # Converting 'ẻ' => 'Ẻ' [expected 'Ẻ'] (line 1610) # Converting 'Ẽ' => 'Ẽ' [expected 'Ẽ'] (line 1611) # Converting 'ẽ' => 'Ẽ' [expected 'Ẽ'] (line 1612) # Converting 'Ế' => 'Ế' [expected 'Ế'] (line 1613) # Converting 'ế' => 'Ế' [expected 'Ế'] (line 1614) # Converting 'Ề' => 'Ề' [expected 'Ề'] (line 1615) # Converting 'ề' => 'Ề' [expected 'Ề'] (line 1616) # Converting 'Ể' => 'Ể' [expected 'Ể'] (line 1617) # Converting 'ể' => 'Ể' [expected 'Ể'] (line 1618) # Converting 'Ễ' => 'Ễ' [expected 'Ễ'] (line 1619) # Converting 'ễ' => 'Ễ' [expected 'Ễ'] (line 1620) # Converting 'Ệ' => 'Ệ' [expected 'Ệ'] (line 1621) # Converting 'ệ' => 'Ệ' [expected 'Ệ'] (line 1622) # Converting 'Ỉ' => 'Ỉ' [expected 'Ỉ'] (line 1623) # Converting 'ỉ' => 'Ỉ' [expected 'Ỉ'] (line 1624) # Converting 'Ị' => 'Ị' [expected 'Ị'] (line 1625) # Converting 'ị' => 'Ị' [expected 'Ị'] (line 1626) # Converting 'Ọ' => 'Ọ' [expected 'Ọ'] (line 1627) # Converting 'ọ' => 'Ọ' [expected 'Ọ'] (line 1628) # Converting 'Ỏ' => 'Ỏ' [expected 'Ỏ'] (line 1629) # Converting 'ỏ' => 'Ỏ' [expected 'Ỏ'] (line 1630) # Converting 'Ố' => 'Ố' [expected 'Ố'] (line 1631) # Converting 'ố' => 'Ố' [expected 'Ố'] (line 1632) # Converting 'Ồ' => 'Ồ' [expected 'Ồ'] (line 1633) # Converting 'ồ' => 'Ồ' [expected 'Ồ'] (line 1634) # Converting 'Ổ' => 'Ổ' [expected 'Ổ'] (line 1635) # Converting 'ổ' => 'Ổ' [expected 'Ổ'] (line 1636) # Converting 'Ỗ' => 'Ỗ' [expected 'Ỗ'] (line 1637) # Converting 'ỗ' => 'Ỗ' [expected 'Ỗ'] (line 1638) # Converting 'Ộ' => 'Ộ' [expected 'Ộ'] (line 1639) # Converting 'ộ' => 'Ộ' [expected 'Ộ'] (line 1640) # Converting 'Ớ' => 'Ớ' [expected 'Ớ'] (line 1641) # Converting 'ớ' => 'Ớ' [expected 'Ớ'] (line 1642) # Converting 'Ờ' => 'Ờ' [expected 'Ờ'] (line 1643) # Converting 'ờ' => 'Ờ' [expected 'Ờ'] (line 1644) # Converting 'Ở' => 'Ở' [expected 'Ở'] (line 1645) # Converting 'ở' => 'Ở' [expected 'Ở'] (line 1646) # Converting 'Ỡ' => 'Ỡ' [expected 'Ỡ'] (line 1647) # Converting 'ỡ' => 'Ỡ' [expected 'Ỡ'] (line 1648) # Converting 'Ợ' => 'Ợ' [expected 'Ợ'] (line 1649) # Converting 'ợ' => 'Ợ' [expected 'Ợ'] (line 1650) # Converting 'Ụ' => 'Ụ' [expected 'Ụ'] (line 1651) # Converting 'ụ' => 'Ụ' [expected 'Ụ'] (line 1652) # Converting 'Ủ' => 'Ủ' [expected 'Ủ'] (line 1653) # Converting 'ủ' => 'Ủ' [expected 'Ủ'] (line 1654) # Converting 'Ứ' => 'Ứ' [expected 'Ứ'] (line 1655) # Converting 'ứ' => 'Ứ' [expected 'Ứ'] (line 1656) # Converting 'Ừ' => 'Ừ' [expected 'Ừ'] (line 1657) # Converting 'ừ' => 'Ừ' [expected 'Ừ'] (line 1658) # Converting 'Ử' => 'Ử' [expected 'Ử'] (line 1659) # Converting 'ử' => 'Ử' [expected 'Ử'] (line 1660) # Converting 'Ữ' => 'Ữ' [expected 'Ữ'] (line 1661) # Converting 'ữ' => 'Ữ' [expected 'Ữ'] (line 1662) # Converting 'Ự' => 'Ự' [expected 'Ự'] (line 1663) # Converting 'ự' => 'Ự' [expected 'Ự'] (line 1664) # Converting 'Ỳ' => 'Ỳ' [expected 'Ỳ'] (line 1665) # Converting 'ỳ' => 'Ỳ' [expected 'Ỳ'] (line 1666) # Converting 'Ỵ' => 'Ỵ' [expected 'Ỵ'] (line 1667) # Converting 'ỵ' => 'Ỵ' [expected 'Ỵ'] (line 1668) # Converting 'Ỷ' => 'Ỷ' [expected 'Ỷ'] (line 1669) # Converting 'ỷ' => 'Ỷ' [expected 'Ỷ'] (line 1670) # Converting 'Ỹ' => 'Ỹ' [expected 'Ỹ'] (line 1671) # Converting 'ỹ' => 'Ỹ' [expected 'Ỹ'] (line 1672) # Converting 'Ỻ' => 'Ỻ' [expected 'Ỻ'] (line 1673) # Converting 'ỻ' => 'Ỻ' [expected 'Ỻ'] (line 1674) # Converting 'Ỽ' => 'Ỽ' [expected 'Ỽ'] (line 1675) # Converting 'ỽ' => 'Ỽ' [expected 'Ỽ'] (line 1676) # Converting 'Ỿ' => 'Ỿ' [expected 'Ỿ'] (line 1677) # Converting 'ỿ' => 'Ỿ' [expected 'Ỿ'] (line 1678) # Converting 'ἀ' => 'Ἀ' [expected 'Ἀ'] (line 1679) # Converting 'ἁ' => 'Ἁ' [expected 'Ἁ'] (line 1680) # Converting 'ἂ' => 'Ἂ' [expected 'Ἂ'] (line 1681) # Converting 'ἃ' => 'Ἃ' [expected 'Ἃ'] (line 1682) # Converting 'ἄ' => 'Ἄ' [expected 'Ἄ'] (line 1683) # Converting 'ἅ' => 'Ἅ' [expected 'Ἅ'] (line 1684) # Converting 'ἆ' => 'Ἆ' [expected 'Ἆ'] (line 1685) # Converting 'ἇ' => 'Ἇ' [expected 'Ἇ'] (line 1686) # Converting 'Ἀ' => 'Ἀ' [expected 'Ἀ'] (line 1687) # Converting 'Ἁ' => 'Ἁ' [expected 'Ἁ'] (line 1688) # Converting 'Ἂ' => 'Ἂ' [expected 'Ἂ'] (line 1689) # Converting 'Ἃ' => 'Ἃ' [expected 'Ἃ'] (line 1690) # Converting 'Ἄ' => 'Ἄ' [expected 'Ἄ'] (line 1691) # Converting 'Ἅ' => 'Ἅ' [expected 'Ἅ'] (line 1692) # Converting 'Ἆ' => 'Ἆ' [expected 'Ἆ'] (line 1693) # Converting 'Ἇ' => 'Ἇ' [expected 'Ἇ'] (line 1694) # Converting 'ἐ' => 'Ἐ' [expected 'Ἐ'] (line 1695) # Converting 'ἑ' => 'Ἑ' [expected 'Ἑ'] (line 1696) # Converting 'ἒ' => 'Ἒ' [expected 'Ἒ'] (line 1697) # Converting 'ἓ' => 'Ἓ' [expected 'Ἓ'] (line 1698) # Converting 'ἔ' => 'Ἔ' [expected 'Ἔ'] (line 1699) # Converting 'ἕ' => 'Ἕ' [expected 'Ἕ'] (line 1700) # Converting 'Ἐ' => 'Ἐ' [expected 'Ἐ'] (line 1701) # Converting 'Ἑ' => 'Ἑ' [expected 'Ἑ'] (line 1702) # Converting 'Ἒ' => 'Ἒ' [expected 'Ἒ'] (line 1703) # Converting 'Ἓ' => 'Ἓ' [expected 'Ἓ'] (line 1704) # Converting 'Ἔ' => 'Ἔ' [expected 'Ἔ'] (line 1705) # Converting 'Ἕ' => 'Ἕ' [expected 'Ἕ'] (line 1706) # Converting 'ἠ' => 'Ἠ' [expected 'Ἠ'] (line 1707) # Converting 'ἡ' => 'Ἡ' [expected 'Ἡ'] (line 1708) # Converting 'ἢ' => 'Ἢ' [expected 'Ἢ'] (line 1709) # Converting 'ἣ' => 'Ἣ' [expected 'Ἣ'] (line 1710) # Converting 'ἤ' => 'Ἤ' [expected 'Ἤ'] (line 1711) # Converting 'ἥ' => 'Ἥ' [expected 'Ἥ'] (line 1712) # Converting 'ἦ' => 'Ἦ' [expected 'Ἦ'] (line 1713) # Converting 'ἧ' => 'Ἧ' [expected 'Ἧ'] (line 1714) # Converting 'Ἠ' => 'Ἠ' [expected 'Ἠ'] (line 1715) # Converting 'Ἡ' => 'Ἡ' [expected 'Ἡ'] (line 1716) # Converting 'Ἢ' => 'Ἢ' [expected 'Ἢ'] (line 1717) # Converting 'Ἣ' => 'Ἣ' [expected 'Ἣ'] (line 1718) # Converting 'Ἤ' => 'Ἤ' [expected 'Ἤ'] (line 1719) # Converting 'Ἥ' => 'Ἥ' [expected 'Ἥ'] (line 1720) # Converting 'Ἦ' => 'Ἦ' [expected 'Ἦ'] (line 1721) # Converting 'Ἧ' => 'Ἧ' [expected 'Ἧ'] (line 1722) # Converting 'ἰ' => 'Ἰ' [expected 'Ἰ'] (line 1723) # Converting 'ἱ' => 'Ἱ' [expected 'Ἱ'] (line 1724) # Converting 'ἲ' => 'Ἲ' [expected 'Ἲ'] (line 1725) # Converting 'ἳ' => 'Ἳ' [expected 'Ἳ'] (line 1726) # Converting 'ἴ' => 'Ἴ' [expected 'Ἴ'] (line 1727) # Converting 'ἵ' => 'Ἵ' [expected 'Ἵ'] (line 1728) # Converting 'ἶ' => 'Ἶ' [expected 'Ἶ'] (line 1729) # Converting 'ἷ' => 'Ἷ' [expected 'Ἷ'] (line 1730) # Converting 'Ἰ' => 'Ἰ' [expected 'Ἰ'] (line 1731) # Converting 'Ἱ' => 'Ἱ' [expected 'Ἱ'] (line 1732) # Converting 'Ἲ' => 'Ἲ' [expected 'Ἲ'] (line 1733) # Converting 'Ἳ' => 'Ἳ' [expected 'Ἳ'] (line 1734) # Converting 'Ἴ' => 'Ἴ' [expected 'Ἴ'] (line 1735) # Converting 'Ἵ' => 'Ἵ' [expected 'Ἵ'] (line 1736) # Converting 'Ἶ' => 'Ἶ' [expected 'Ἶ'] (line 1737) # Converting 'Ἷ' => 'Ἷ' [expected 'Ἷ'] (line 1738) # Converting 'ὀ' => 'Ὀ' [expected 'Ὀ'] (line 1739) # Converting 'ὁ' => 'Ὁ' [expected 'Ὁ'] (line 1740) # Converting 'ὂ' => 'Ὂ' [expected 'Ὂ'] (line 1741) # Converting 'ὃ' => 'Ὃ' [expected 'Ὃ'] (line 1742) # Converting 'ὄ' => 'Ὄ' [expected 'Ὄ'] (line 1743) # Converting 'ὅ' => 'Ὅ' [expected 'Ὅ'] (line 1744) # Converting 'Ὀ' => 'Ὀ' [expected 'Ὀ'] (line 1745) # Converting 'Ὁ' => 'Ὁ' [expected 'Ὁ'] (line 1746) # Converting 'Ὂ' => 'Ὂ' [expected 'Ὂ'] (line 1747) # Converting 'Ὃ' => 'Ὃ' [expected 'Ὃ'] (line 1748) # Converting 'Ὄ' => 'Ὄ' [expected 'Ὄ'] (line 1749) # Converting 'Ὅ' => 'Ὅ' [expected 'Ὅ'] (line 1750) # Converting 'ὐ' => 'Υ̓' [expected 'Υ̓'] (line 1751) # Converting 'ὑ' => 'Ὑ' [expected 'Ὑ'] (line 1752) # Converting 'ὒ' => 'Υ̓̀' [expected 'Υ̓̀'] (line 1753) # Converting 'ὓ' => 'Ὓ' [expected 'Ὓ'] (line 1754) # Converting 'ὔ' => 'Υ̓́' [expected 'Υ̓́'] (line 1755) # Converting 'ὕ' => 'Ὕ' [expected 'Ὕ'] (line 1756) # Converting 'ὖ' => 'Υ̓͂' [expected 'Υ̓͂'] (line 1757) # Converting 'ὗ' => 'Ὗ' [expected 'Ὗ'] (line 1758) # Converting 'Ὑ' => 'Ὑ' [expected 'Ὑ'] (line 1759) # Converting 'Ὓ' => 'Ὓ' [expected 'Ὓ'] (line 1760) # Converting 'Ὕ' => 'Ὕ' [expected 'Ὕ'] (line 1761) # Converting 'Ὗ' => 'Ὗ' [expected 'Ὗ'] (line 1762) # Converting 'ὠ' => 'Ὠ' [expected 'Ὠ'] (line 1763) # Converting 'ὡ' => 'Ὡ' [expected 'Ὡ'] (line 1764) # Converting 'ὢ' => 'Ὢ' [expected 'Ὢ'] (line 1765) # Converting 'ὣ' => 'Ὣ' [expected 'Ὣ'] (line 1766) # Converting 'ὤ' => 'Ὤ' [expected 'Ὤ'] (line 1767) # Converting 'ὥ' => 'Ὥ' [expected 'Ὥ'] (line 1768) # Converting 'ὦ' => 'Ὦ' [expected 'Ὦ'] (line 1769) # Converting 'ὧ' => 'Ὧ' [expected 'Ὧ'] (line 1770) # Converting 'Ὠ' => 'Ὠ' [expected 'Ὠ'] (line 1771) # Converting 'Ὡ' => 'Ὡ' [expected 'Ὡ'] (line 1772) # Converting 'Ὢ' => 'Ὢ' [expected 'Ὢ'] (line 1773) # Converting 'Ὣ' => 'Ὣ' [expected 'Ὣ'] (line 1774) # Converting 'Ὤ' => 'Ὤ' [expected 'Ὤ'] (line 1775) # Converting 'Ὥ' => 'Ὥ' [expected 'Ὥ'] (line 1776) # Converting 'Ὦ' => 'Ὦ' [expected 'Ὦ'] (line 1777) # Converting 'Ὧ' => 'Ὧ' [expected 'Ὧ'] (line 1778) # Converting 'ὰ' => 'Ὰ' [expected 'Ὰ'] (line 1779) # Converting 'ά' => 'Ά' [expected 'Ά'] (line 1780) # Converting 'ὲ' => 'Ὲ' [expected 'Ὲ'] (line 1781) # Converting 'έ' => 'Έ' [expected 'Έ'] (line 1782) # Converting 'ὴ' => 'Ὴ' [expected 'Ὴ'] (line 1783) # Converting 'ή' => 'Ή' [expected 'Ή'] (line 1784) # Converting 'ὶ' => 'Ὶ' [expected 'Ὶ'] (line 1785) # Converting 'ί' => 'Ί' [expected 'Ί'] (line 1786) # Converting 'ὸ' => 'Ὸ' [expected 'Ὸ'] (line 1787) # Converting 'ό' => 'Ό' [expected 'Ό'] (line 1788) # Converting 'ὺ' => 'Ὺ' [expected 'Ὺ'] (line 1789) # Converting 'ύ' => 'Ύ' [expected 'Ύ'] (line 1790) # Converting 'ὼ' => 'Ὼ' [expected 'Ὼ'] (line 1791) # Converting 'ώ' => 'Ώ' [expected 'Ώ'] (line 1792) # Converting 'ᾀ' => 'ἈΙ' [expected 'ἈΙ'] (line 1793) # Converting 'ᾁ' => 'ἉΙ' [expected 'ἉΙ'] (line 1794) # Converting 'ᾂ' => 'ἊΙ' [expected 'ἊΙ'] (line 1795) # Converting 'ᾃ' => 'ἋΙ' [expected 'ἋΙ'] (line 1796) # Converting 'ᾄ' => 'ἌΙ' [expected 'ἌΙ'] (line 1797) # Converting 'ᾅ' => 'ἍΙ' [expected 'ἍΙ'] (line 1798) # Converting 'ᾆ' => 'ἎΙ' [expected 'ἎΙ'] (line 1799) # Converting 'ᾇ' => 'ἏΙ' [expected 'ἏΙ'] (line 1800) # Converting 'ᾈ' => 'ἈΙ' [expected 'ἈΙ'] (line 1801) # Converting 'ᾉ' => 'ἉΙ' [expected 'ἉΙ'] (line 1802) # Converting 'ᾊ' => 'ἊΙ' [expected 'ἊΙ'] (line 1803) # Converting 'ᾋ' => 'ἋΙ' [expected 'ἋΙ'] (line 1804) # Converting 'ᾌ' => 'ἌΙ' [expected 'ἌΙ'] (line 1805) # Converting 'ᾍ' => 'ἍΙ' [expected 'ἍΙ'] (line 1806) # Converting 'ᾎ' => 'ἎΙ' [expected 'ἎΙ'] (line 1807) # Converting 'ᾏ' => 'ἏΙ' [expected 'ἏΙ'] (line 1808) # Converting 'ᾐ' => 'ἨΙ' [expected 'ἨΙ'] (line 1809) # Converting 'ᾑ' => 'ἩΙ' [expected 'ἩΙ'] (line 1810) # Converting 'ᾒ' => 'ἪΙ' [expected 'ἪΙ'] (line 1811) # Converting 'ᾓ' => 'ἫΙ' [expected 'ἫΙ'] (line 1812) # Converting 'ᾔ' => 'ἬΙ' [expected 'ἬΙ'] (line 1813) # Converting 'ᾕ' => 'ἭΙ' [expected 'ἭΙ'] (line 1814) # Converting 'ᾖ' => 'ἮΙ' [expected 'ἮΙ'] (line 1815) # Converting 'ᾗ' => 'ἯΙ' [expected 'ἯΙ'] (line 1816) # Converting 'ᾘ' => 'ἨΙ' [expected 'ἨΙ'] (line 1817) # Converting 'ᾙ' => 'ἩΙ' [expected 'ἩΙ'] (line 1818) # Converting 'ᾚ' => 'ἪΙ' [expected 'ἪΙ'] (line 1819) # Converting 'ᾛ' => 'ἫΙ' [expected 'ἫΙ'] (line 1820) # Converting 'ᾜ' => 'ἬΙ' [expected 'ἬΙ'] (line 1821) # Converting 'ᾝ' => 'ἭΙ' [expected 'ἭΙ'] (line 1822) # Converting 'ᾞ' => 'ἮΙ' [expected 'ἮΙ'] (line 1823) # Converting 'ᾟ' => 'ἯΙ' [expected 'ἯΙ'] (line 1824) # Converting 'ᾠ' => 'ὨΙ' [expected 'ὨΙ'] (line 1825) # Converting 'ᾡ' => 'ὩΙ' [expected 'ὩΙ'] (line 1826) # Converting 'ᾢ' => 'ὪΙ' [expected 'ὪΙ'] (line 1827) # Converting 'ᾣ' => 'ὫΙ' [expected 'ὫΙ'] (line 1828) # Converting 'ᾤ' => 'ὬΙ' [expected 'ὬΙ'] (line 1829) # Converting 'ᾥ' => 'ὭΙ' [expected 'ὭΙ'] (line 1830) # Converting 'ᾦ' => 'ὮΙ' [expected 'ὮΙ'] (line 1831) # Converting 'ᾧ' => 'ὯΙ' [expected 'ὯΙ'] (line 1832) # Converting 'ᾨ' => 'ὨΙ' [expected 'ὨΙ'] (line 1833) # Converting 'ᾩ' => 'ὩΙ' [expected 'ὩΙ'] (line 1834) # Converting 'ᾪ' => 'ὪΙ' [expected 'ὪΙ'] (line 1835) # Converting 'ᾫ' => 'ὫΙ' [expected 'ὫΙ'] (line 1836) # Converting 'ᾬ' => 'ὬΙ' [expected 'ὬΙ'] (line 1837) # Converting 'ᾭ' => 'ὭΙ' [expected 'ὭΙ'] (line 1838) # Converting 'ᾮ' => 'ὮΙ' [expected 'ὮΙ'] (line 1839) # Converting 'ᾯ' => 'ὯΙ' [expected 'ὯΙ'] (line 1840) # Converting 'ᾰ' => 'Ᾰ' [expected 'Ᾰ'] (line 1841) # Converting 'ᾱ' => 'Ᾱ' [expected 'Ᾱ'] (line 1842) # Converting 'ᾲ' => 'ᾺΙ' [expected 'ᾺΙ'] (line 1843) # Converting 'ᾳ' => 'ΑΙ' [expected 'ΑΙ'] (line 1844) # Converting 'ᾴ' => 'ΆΙ' [expected 'ΆΙ'] (line 1845) # Converting 'ᾶ' => 'Α͂' [expected 'Α͂'] (line 1846) # Converting 'ᾷ' => 'Α͂Ι' [expected 'Α͂Ι'] (line 1847) # Converting 'Ᾰ' => 'Ᾰ' [expected 'Ᾰ'] (line 1848) # Converting 'Ᾱ' => 'Ᾱ' [expected 'Ᾱ'] (line 1849) # Converting 'Ὰ' => 'Ὰ' [expected 'Ὰ'] (line 1850) # Converting 'Ά' => 'Ά' [expected 'Ά'] (line 1851) # Converting 'ᾼ' => 'ΑΙ' [expected 'ΑΙ'] (line 1852) # Converting 'ι' => 'Ι' [expected 'Ι'] (line 1853) # Converting 'ῂ' => 'ῊΙ' [expected 'ῊΙ'] (line 1854) # Converting 'ῃ' => 'ΗΙ' [expected 'ΗΙ'] (line 1855) # Converting 'ῄ' => 'ΉΙ' [expected 'ΉΙ'] (line 1856) # Converting 'ῆ' => 'Η͂' [expected 'Η͂'] (line 1857) # Converting 'ῇ' => 'Η͂Ι' [expected 'Η͂Ι'] (line 1858) # Converting 'Ὲ' => 'Ὲ' [expected 'Ὲ'] (line 1859) # Converting 'Έ' => 'Έ' [expected 'Έ'] (line 1860) # Converting 'Ὴ' => 'Ὴ' [expected 'Ὴ'] (line 1861) # Converting 'Ή' => 'Ή' [expected 'Ή'] (line 1862) # Converting 'ῌ' => 'ΗΙ' [expected 'ΗΙ'] (line 1863) # Converting 'ῐ' => 'Ῐ' [expected 'Ῐ'] (line 1864) # Converting 'ῑ' => 'Ῑ' [expected 'Ῑ'] (line 1865) # Converting 'ῒ' => 'Ϊ̀' [expected 'Ϊ̀'] (line 1866) # Converting 'ΐ' => 'Ϊ́' [expected 'Ϊ́'] (line 1867) # Converting 'ῖ' => 'Ι͂' [expected 'Ι͂'] (line 1868) # Converting 'ῗ' => 'Ϊ͂' [expected 'Ϊ͂'] (line 1869) # Converting 'Ῐ' => 'Ῐ' [expected 'Ῐ'] (line 1870) # Converting 'Ῑ' => 'Ῑ' [expected 'Ῑ'] (line 1871) # Converting 'Ὶ' => 'Ὶ' [expected 'Ὶ'] (line 1872) # Converting 'Ί' => 'Ί' [expected 'Ί'] (line 1873) # Converting 'ῠ' => 'Ῠ' [expected 'Ῠ'] (line 1874) # Converting 'ῡ' => 'Ῡ' [expected 'Ῡ'] (line 1875) # Converting 'ῢ' => 'Ϋ̀' [expected 'Ϋ̀'] (line 1876) # Converting 'ΰ' => 'Ϋ́' [expected 'Ϋ́'] (line 1877) # Converting 'ῤ' => 'Ρ̓' [expected 'Ρ̓'] (line 1878) # Converting 'ῥ' => 'Ῥ' [expected 'Ῥ'] (line 1879) # Converting 'ῦ' => 'Υ͂' [expected 'Υ͂'] (line 1880) # Converting 'ῧ' => 'Ϋ͂' [expected 'Ϋ͂'] (line 1881) # Converting 'Ῠ' => 'Ῠ' [expected 'Ῠ'] (line 1882) # Converting 'Ῡ' => 'Ῡ' [expected 'Ῡ'] (line 1883) # Converting 'Ὺ' => 'Ὺ' [expected 'Ὺ'] (line 1884) # Converting 'Ύ' => 'Ύ' [expected 'Ύ'] (line 1885) # Converting 'Ῥ' => 'Ῥ' [expected 'Ῥ'] (line 1886) # Converting 'ῲ' => 'ῺΙ' [expected 'ῺΙ'] (line 1887) # Converting 'ῳ' => 'ΩΙ' [expected 'ΩΙ'] (line 1888) # Converting 'ῴ' => 'ΏΙ' [expected 'ΏΙ'] (line 1889) # Converting 'ῶ' => 'Ω͂' [expected 'Ω͂'] (line 1890) # Converting 'ῷ' => 'Ω͂Ι' [expected 'Ω͂Ι'] (line 1891) # Converting 'Ὸ' => 'Ὸ' [expected 'Ὸ'] (line 1892) # Converting 'Ό' => 'Ό' [expected 'Ό'] (line 1893) # Converting 'Ὼ' => 'Ὼ' [expected 'Ὼ'] (line 1894) # Converting 'Ώ' => 'Ώ' [expected 'Ώ'] (line 1895) # Converting 'ῼ' => 'ΩΙ' [expected 'ΩΙ'] (line 1896) # Converting 'ℂ' => 'ℂ' [expected 'ℂ'] (line 1897) # Converting 'ℇ' => 'ℇ' [expected 'ℇ'] (line 1898) # Converting 'ℊ' => 'ℊ' [expected 'ℊ'] (line 1899) # Converting 'ℋ' => 'ℋ' [expected 'ℋ'] (line 1900) # Converting 'ℌ' => 'ℌ' [expected 'ℌ'] (line 1901) # Converting 'ℍ' => 'ℍ' [expected 'ℍ'] (line 1902) # Converting 'ℎ' => 'ℎ' [expected 'ℎ'] (line 1903) # Converting 'ℏ' => 'ℏ' [expected 'ℏ'] (line 1904) # Converting 'ℐ' => 'ℐ' [expected 'ℐ'] (line 1905) # Converting 'ℑ' => 'ℑ' [expected 'ℑ'] (line 1906) # Converting 'ℒ' => 'ℒ' [expected 'ℒ'] (line 1907) # Converting 'ℓ' => 'ℓ' [expected 'ℓ'] (line 1908) # Converting 'ℕ' => 'ℕ' [expected 'ℕ'] (line 1909) # Converting 'ℙ' => 'ℙ' [expected 'ℙ'] (line 1910) # Converting 'ℚ' => 'ℚ' [expected 'ℚ'] (line 1911) # Converting 'ℛ' => 'ℛ' [expected 'ℛ'] (line 1912) # Converting 'ℜ' => 'ℜ' [expected 'ℜ'] (line 1913) # Converting 'ℝ' => 'ℝ' [expected 'ℝ'] (line 1914) # Converting 'ℤ' => 'ℤ' [expected 'ℤ'] (line 1915) # Converting 'Ω' => 'Ω' [expected 'Ω'] (line 1916) # Converting 'ℨ' => 'ℨ' [expected 'ℨ'] (line 1917) # Converting 'K' => 'K' [expected 'K'] (line 1918) # Converting 'Å' => 'Å' [expected 'Å'] (line 1919) # Converting 'ℬ' => 'ℬ' [expected 'ℬ'] (line 1920) # Converting 'ℭ' => 'ℭ' [expected 'ℭ'] (line 1921) # Converting 'ℯ' => 'ℯ' [expected 'ℯ'] (line 1922) # Converting 'ℰ' => 'ℰ' [expected 'ℰ'] (line 1923) # Converting 'ℱ' => 'ℱ' [expected 'ℱ'] (line 1924) # Converting 'Ⅎ' => 'Ⅎ' [expected 'Ⅎ'] (line 1925) # Converting 'ℳ' => 'ℳ' [expected 'ℳ'] (line 1926) # Converting 'ℴ' => 'ℴ' [expected 'ℴ'] (line 1927) # Converting 'ℹ' => 'ℹ' [expected 'ℹ'] (line 1928) # Converting 'ℼ' => 'ℼ' [expected 'ℼ'] (line 1929) # Converting 'ℽ' => 'ℽ' [expected 'ℽ'] (line 1930) # Converting 'ℾ' => 'ℾ' [expected 'ℾ'] (line 1931) # Converting 'ℿ' => 'ℿ' [expected 'ℿ'] (line 1932) # Converting 'ⅅ' => 'ⅅ' [expected 'ⅅ'] (line 1933) # Converting 'ⅆ' => 'ⅆ' [expected 'ⅆ'] (line 1934) # Converting 'ⅇ' => 'ⅇ' [expected 'ⅇ'] (line 1935) # Converting 'ⅈ' => 'ⅈ' [expected 'ⅈ'] (line 1936) # Converting 'ⅉ' => 'ⅉ' [expected 'ⅉ'] (line 1937) # Converting 'ⅎ' => 'Ⅎ' [expected 'Ⅎ'] (line 1938) # Converting 'Ↄ' => 'Ↄ' [expected 'Ↄ'] (line 1939) # Converting 'ↄ' => 'Ↄ' [expected 'Ↄ'] (line 1940) # Converting 'Ⰰ' => 'Ⰰ' [expected 'Ⰰ'] (line 1941) # Converting 'Ⰱ' => 'Ⰱ' [expected 'Ⰱ'] (line 1942) # Converting 'Ⰲ' => 'Ⰲ' [expected 'Ⰲ'] (line 1943) # Converting 'Ⰳ' => 'Ⰳ' [expected 'Ⰳ'] (line 1944) # Converting 'Ⰴ' => 'Ⰴ' [expected 'Ⰴ'] (line 1945) # Converting 'Ⰵ' => 'Ⰵ' [expected 'Ⰵ'] (line 1946) # Converting 'Ⰶ' => 'Ⰶ' [expected 'Ⰶ'] (line 1947) # Converting 'Ⰷ' => 'Ⰷ' [expected 'Ⰷ'] (line 1948) # Converting 'Ⰸ' => 'Ⰸ' [expected 'Ⰸ'] (line 1949) # Converting 'Ⰹ' => 'Ⰹ' [expected 'Ⰹ'] (line 1950) # Converting 'Ⰺ' => 'Ⰺ' [expected 'Ⰺ'] (line 1951) # Converting 'Ⰻ' => 'Ⰻ' [expected 'Ⰻ'] (line 1952) # Converting 'Ⰼ' => 'Ⰼ' [expected 'Ⰼ'] (line 1953) # Converting 'Ⰽ' => 'Ⰽ' [expected 'Ⰽ'] (line 1954) # Converting 'Ⰾ' => 'Ⰾ' [expected 'Ⰾ'] (line 1955) # Converting 'Ⰿ' => 'Ⰿ' [expected 'Ⰿ'] (line 1956) # Converting 'Ⱀ' => 'Ⱀ' [expected 'Ⱀ'] (line 1957) # Converting 'Ⱁ' => 'Ⱁ' [expected 'Ⱁ'] (line 1958) # Converting 'Ⱂ' => 'Ⱂ' [expected 'Ⱂ'] (line 1959) # Converting 'Ⱃ' => 'Ⱃ' [expected 'Ⱃ'] (line 1960) # Converting 'Ⱄ' => 'Ⱄ' [expected 'Ⱄ'] (line 1961) # Converting 'Ⱅ' => 'Ⱅ' [expected 'Ⱅ'] (line 1962) # Converting 'Ⱆ' => 'Ⱆ' [expected 'Ⱆ'] (line 1963) # Converting 'Ⱇ' => 'Ⱇ' [expected 'Ⱇ'] (line 1964) # Converting 'Ⱈ' => 'Ⱈ' [expected 'Ⱈ'] (line 1965) # Converting 'Ⱉ' => 'Ⱉ' [expected 'Ⱉ'] (line 1966) # Converting 'Ⱊ' => 'Ⱊ' [expected 'Ⱊ'] (line 1967) # Converting 'Ⱋ' => 'Ⱋ' [expected 'Ⱋ'] (line 1968) # Converting 'Ⱌ' => 'Ⱌ' [expected 'Ⱌ'] (line 1969) # Converting 'Ⱍ' => 'Ⱍ' [expected 'Ⱍ'] (line 1970) # Converting 'Ⱎ' => 'Ⱎ' [expected 'Ⱎ'] (line 1971) # Converting 'Ⱏ' => 'Ⱏ' [expected 'Ⱏ'] (line 1972) # Converting 'Ⱐ' => 'Ⱐ' [expected 'Ⱐ'] (line 1973) # Converting 'Ⱑ' => 'Ⱑ' [expected 'Ⱑ'] (line 1974) # Converting 'Ⱒ' => 'Ⱒ' [expected 'Ⱒ'] (line 1975) # Converting 'Ⱓ' => 'Ⱓ' [expected 'Ⱓ'] (line 1976) # Converting 'Ⱔ' => 'Ⱔ' [expected 'Ⱔ'] (line 1977) # Converting 'Ⱕ' => 'Ⱕ' [expected 'Ⱕ'] (line 1978) # Converting 'Ⱖ' => 'Ⱖ' [expected 'Ⱖ'] (line 1979) # Converting 'Ⱗ' => 'Ⱗ' [expected 'Ⱗ'] (line 1980) # Converting 'Ⱘ' => 'Ⱘ' [expected 'Ⱘ'] (line 1981) # Converting 'Ⱙ' => 'Ⱙ' [expected 'Ⱙ'] (line 1982) # Converting 'Ⱚ' => 'Ⱚ' [expected 'Ⱚ'] (line 1983) # Converting 'Ⱛ' => 'Ⱛ' [expected 'Ⱛ'] (line 1984) # Converting 'Ⱜ' => 'Ⱜ' [expected 'Ⱜ'] (line 1985) # Converting 'Ⱝ' => 'Ⱝ' [expected 'Ⱝ'] (line 1986) # Converting 'Ⱞ' => 'Ⱞ' [expected 'Ⱞ'] (line 1987) # Converting 'Ⱟ' => 'Ⱟ' [expected 'Ⱟ'] (line 1988) # Converting 'ⰰ' => 'Ⰰ' [expected 'Ⰰ'] (line 1989) # Converting 'ⰱ' => 'Ⰱ' [expected 'Ⰱ'] (line 1990) # Converting 'ⰲ' => 'Ⰲ' [expected 'Ⰲ'] (line 1991) # Converting 'ⰳ' => 'Ⰳ' [expected 'Ⰳ'] (line 1992) # Converting 'ⰴ' => 'Ⰴ' [expected 'Ⰴ'] (line 1993) # Converting 'ⰵ' => 'Ⰵ' [expected 'Ⰵ'] (line 1994) # Converting 'ⰶ' => 'Ⰶ' [expected 'Ⰶ'] (line 1995) # Converting 'ⰷ' => 'Ⰷ' [expected 'Ⰷ'] (line 1996) # Converting 'ⰸ' => 'Ⰸ' [expected 'Ⰸ'] (line 1997) # Converting 'ⰹ' => 'Ⰹ' [expected 'Ⰹ'] (line 1998) # Converting 'ⰺ' => 'Ⰺ' [expected 'Ⰺ'] (line 1999) # Converting 'ⰻ' => 'Ⰻ' [expected 'Ⰻ'] (line 2000) # Converting 'ⰼ' => 'Ⰼ' [expected 'Ⰼ'] (line 2001) # Converting 'ⰽ' => 'Ⰽ' [expected 'Ⰽ'] (line 2002) # Converting 'ⰾ' => 'Ⰾ' [expected 'Ⰾ'] (line 2003) # Converting 'ⰿ' => 'Ⰿ' [expected 'Ⰿ'] (line 2004) # Converting 'ⱀ' => 'Ⱀ' [expected 'Ⱀ'] (line 2005) # Converting 'ⱁ' => 'Ⱁ' [expected 'Ⱁ'] (line 2006) # Converting 'ⱂ' => 'Ⱂ' [expected 'Ⱂ'] (line 2007) # Converting 'ⱃ' => 'Ⱃ' [expected 'Ⱃ'] (line 2008) # Converting 'ⱄ' => 'Ⱄ' [expected 'Ⱄ'] (line 2009) # Converting 'ⱅ' => 'Ⱅ' [expected 'Ⱅ'] (line 2010) # Converting 'ⱆ' => 'Ⱆ' [expected 'Ⱆ'] (line 2011) # Converting 'ⱇ' => 'Ⱇ' [expected 'Ⱇ'] (line 2012) # Converting 'ⱈ' => 'Ⱈ' [expected 'Ⱈ'] (line 2013) # Converting 'ⱉ' => 'Ⱉ' [expected 'Ⱉ'] (line 2014) # Converting 'ⱊ' => 'Ⱊ' [expected 'Ⱊ'] (line 2015) # Converting 'ⱋ' => 'Ⱋ' [expected 'Ⱋ'] (line 2016) # Converting 'ⱌ' => 'Ⱌ' [expected 'Ⱌ'] (line 2017) # Converting 'ⱍ' => 'Ⱍ' [expected 'Ⱍ'] (line 2018) # Converting 'ⱎ' => 'Ⱎ' [expected 'Ⱎ'] (line 2019) # Converting 'ⱏ' => 'Ⱏ' [expected 'Ⱏ'] (line 2020) # Converting 'ⱐ' => 'Ⱐ' [expected 'Ⱐ'] (line 2021) # Converting 'ⱑ' => 'Ⱑ' [expected 'Ⱑ'] (line 2022) # Converting 'ⱒ' => 'Ⱒ' [expected 'Ⱒ'] (line 2023) # Converting 'ⱓ' => 'Ⱓ' [expected 'Ⱓ'] (line 2024) # Converting 'ⱔ' => 'Ⱔ' [expected 'Ⱔ'] (line 2025) # Converting 'ⱕ' => 'Ⱕ' [expected 'Ⱕ'] (line 2026) # Converting 'ⱖ' => 'Ⱖ' [expected 'Ⱖ'] (line 2027) # Converting 'ⱗ' => 'Ⱗ' [expected 'Ⱗ'] (line 2028) # Converting 'ⱘ' => 'Ⱘ' [expected 'Ⱘ'] (line 2029) # Converting 'ⱙ' => 'Ⱙ' [expected 'Ⱙ'] (line 2030) # Converting 'ⱚ' => 'Ⱚ' [expected 'Ⱚ'] (line 2031) # Converting 'ⱛ' => 'Ⱛ' [expected 'Ⱛ'] (line 2032) # Converting 'ⱜ' => 'Ⱜ' [expected 'Ⱜ'] (line 2033) # Converting 'ⱝ' => 'Ⱝ' [expected 'Ⱝ'] (line 2034) # Converting 'ⱞ' => 'Ⱞ' [expected 'Ⱞ'] (line 2035) # Converting 'ⱟ' => 'Ⱟ' [expected 'Ⱟ'] (line 2036) # Converting 'Ⱡ' => 'Ⱡ' [expected 'Ⱡ'] (line 2037) # Converting 'ⱡ' => 'Ⱡ' [expected 'Ⱡ'] (line 2038) # Converting 'Ɫ' => 'Ɫ' [expected 'Ɫ'] (line 2039) # Converting 'Ᵽ' => 'Ᵽ' [expected 'Ᵽ'] (line 2040) # Converting 'Ɽ' => 'Ɽ' [expected 'Ɽ'] (line 2041) # Converting 'ⱥ' => 'Ⱥ' [expected 'Ⱥ'] (line 2042) # Converting 'ⱦ' => 'Ⱦ' [expected 'Ⱦ'] (line 2043) # Converting 'Ⱨ' => 'Ⱨ' [expected 'Ⱨ'] (line 2044) # Converting 'ⱨ' => 'Ⱨ' [expected 'Ⱨ'] (line 2045) # Converting 'Ⱪ' => 'Ⱪ' [expected 'Ⱪ'] (line 2046) # Converting 'ⱪ' => 'Ⱪ' [expected 'Ⱪ'] (line 2047) # Converting 'Ⱬ' => 'Ⱬ' [expected 'Ⱬ'] (line 2048) # Converting 'ⱬ' => 'Ⱬ' [expected 'Ⱬ'] (line 2049) # Converting 'Ɑ' => 'Ɑ' [expected 'Ɑ'] (line 2050) # Converting 'Ɱ' => 'Ɱ' [expected 'Ɱ'] (line 2051) # Converting 'Ɐ' => 'Ɐ' [expected 'Ɐ'] (line 2052) # Converting 'Ɒ' => 'Ɒ' [expected 'Ɒ'] (line 2053) # Converting 'ⱱ' => 'ⱱ' [expected 'ⱱ'] (line 2054) # Converting 'Ⱳ' => 'Ⱳ' [expected 'Ⱳ'] (line 2055) # Converting 'ⱳ' => 'Ⱳ' [expected 'Ⱳ'] (line 2056) # Converting 'ⱴ' => 'ⱴ' [expected 'ⱴ'] (line 2057) # Converting 'Ⱶ' => 'Ⱶ' [expected 'Ⱶ'] (line 2058) # Converting 'ⱶ' => 'Ⱶ' [expected 'Ⱶ'] (line 2059) # Converting 'ⱷ' => 'ⱷ' [expected 'ⱷ'] (line 2060) # Converting 'ⱸ' => 'ⱸ' [expected 'ⱸ'] (line 2061) # Converting 'ⱹ' => 'ⱹ' [expected 'ⱹ'] (line 2062) # Converting 'ⱺ' => 'ⱺ' [expected 'ⱺ'] (line 2063) # Converting 'ⱻ' => 'ⱻ' [expected 'ⱻ'] (line 2064) # Converting 'Ȿ' => 'Ȿ' [expected 'Ȿ'] (line 2065) # Converting 'Ɀ' => 'Ɀ' [expected 'Ɀ'] (line 2066) # Converting 'Ⲁ' => 'Ⲁ' [expected 'Ⲁ'] (line 2067) # Converting 'ⲁ' => 'Ⲁ' [expected 'Ⲁ'] (line 2068) # Converting 'Ⲃ' => 'Ⲃ' [expected 'Ⲃ'] (line 2069) # Converting 'ⲃ' => 'Ⲃ' [expected 'Ⲃ'] (line 2070) # Converting 'Ⲅ' => 'Ⲅ' [expected 'Ⲅ'] (line 2071) # Converting 'ⲅ' => 'Ⲅ' [expected 'Ⲅ'] (line 2072) # Converting 'Ⲇ' => 'Ⲇ' [expected 'Ⲇ'] (line 2073) # Converting 'ⲇ' => 'Ⲇ' [expected 'Ⲇ'] (line 2074) # Converting 'Ⲉ' => 'Ⲉ' [expected 'Ⲉ'] (line 2075) # Converting 'ⲉ' => 'Ⲉ' [expected 'Ⲉ'] (line 2076) # Converting 'Ⲋ' => 'Ⲋ' [expected 'Ⲋ'] (line 2077) # Converting 'ⲋ' => 'Ⲋ' [expected 'Ⲋ'] (line 2078) # Converting 'Ⲍ' => 'Ⲍ' [expected 'Ⲍ'] (line 2079) # Converting 'ⲍ' => 'Ⲍ' [expected 'Ⲍ'] (line 2080) # Converting 'Ⲏ' => 'Ⲏ' [expected 'Ⲏ'] (line 2081) # Converting 'ⲏ' => 'Ⲏ' [expected 'Ⲏ'] (line 2082) # Converting 'Ⲑ' => 'Ⲑ' [expected 'Ⲑ'] (line 2083) # Converting 'ⲑ' => 'Ⲑ' [expected 'Ⲑ'] (line 2084) # Converting 'Ⲓ' => 'Ⲓ' [expected 'Ⲓ'] (line 2085) # Converting 'ⲓ' => 'Ⲓ' [expected 'Ⲓ'] (line 2086) # Converting 'Ⲕ' => 'Ⲕ' [expected 'Ⲕ'] (line 2087) # Converting 'ⲕ' => 'Ⲕ' [expected 'Ⲕ'] (line 2088) # Converting 'Ⲗ' => 'Ⲗ' [expected 'Ⲗ'] (line 2089) # Converting 'ⲗ' => 'Ⲗ' [expected 'Ⲗ'] (line 2090) # Converting 'Ⲙ' => 'Ⲙ' [expected 'Ⲙ'] (line 2091) # Converting 'ⲙ' => 'Ⲙ' [expected 'Ⲙ'] (line 2092) # Converting 'Ⲛ' => 'Ⲛ' [expected 'Ⲛ'] (line 2093) # Converting 'ⲛ' => 'Ⲛ' [expected 'Ⲛ'] (line 2094) # Converting 'Ⲝ' => 'Ⲝ' [expected 'Ⲝ'] (line 2095) # Converting 'ⲝ' => 'Ⲝ' [expected 'Ⲝ'] (line 2096) # Converting 'Ⲟ' => 'Ⲟ' [expected 'Ⲟ'] (line 2097) # Converting 'ⲟ' => 'Ⲟ' [expected 'Ⲟ'] (line 2098) # Converting 'Ⲡ' => 'Ⲡ' [expected 'Ⲡ'] (line 2099) # Converting 'ⲡ' => 'Ⲡ' [expected 'Ⲡ'] (line 2100) # Converting 'Ⲣ' => 'Ⲣ' [expected 'Ⲣ'] (line 2101) # Converting 'ⲣ' => 'Ⲣ' [expected 'Ⲣ'] (line 2102) # Converting 'Ⲥ' => 'Ⲥ' [expected 'Ⲥ'] (line 2103) # Converting 'ⲥ' => 'Ⲥ' [expected 'Ⲥ'] (line 2104) # Converting 'Ⲧ' => 'Ⲧ' [expected 'Ⲧ'] (line 2105) # Converting 'ⲧ' => 'Ⲧ' [expected 'Ⲧ'] (line 2106) # Converting 'Ⲩ' => 'Ⲩ' [expected 'Ⲩ'] (line 2107) # Converting 'ⲩ' => 'Ⲩ' [expected 'Ⲩ'] (line 2108) # Converting 'Ⲫ' => 'Ⲫ' [expected 'Ⲫ'] (line 2109) # Converting 'ⲫ' => 'Ⲫ' [expected 'Ⲫ'] (line 2110) # Converting 'Ⲭ' => 'Ⲭ' [expected 'Ⲭ'] (line 2111) # Converting 'ⲭ' => 'Ⲭ' [expected 'Ⲭ'] (line 2112) # Converting 'Ⲯ' => 'Ⲯ' [expected 'Ⲯ'] (line 2113) # Converting 'ⲯ' => 'Ⲯ' [expected 'Ⲯ'] (line 2114) # Converting 'Ⲱ' => 'Ⲱ' [expected 'Ⲱ'] (line 2115) # Converting 'ⲱ' => 'Ⲱ' [expected 'Ⲱ'] (line 2116) # Converting 'Ⲳ' => 'Ⲳ' [expected 'Ⲳ'] (line 2117) # Converting 'ⲳ' => 'Ⲳ' [expected 'Ⲳ'] (line 2118) # Converting 'Ⲵ' => 'Ⲵ' [expected 'Ⲵ'] (line 2119) # Converting 'ⲵ' => 'Ⲵ' [expected 'Ⲵ'] (line 2120) # Converting 'Ⲷ' => 'Ⲷ' [expected 'Ⲷ'] (line 2121) # Converting 'ⲷ' => 'Ⲷ' [expected 'Ⲷ'] (line 2122) # Converting 'Ⲹ' => 'Ⲹ' [expected 'Ⲹ'] (line 2123) # Converting 'ⲹ' => 'Ⲹ' [expected 'Ⲹ'] (line 2124) # Converting 'Ⲻ' => 'Ⲻ' [expected 'Ⲻ'] (line 2125) # Converting 'ⲻ' => 'Ⲻ' [expected 'Ⲻ'] (line 2126) # Converting 'Ⲽ' => 'Ⲽ' [expected 'Ⲽ'] (line 2127) # Converting 'ⲽ' => 'Ⲽ' [expected 'Ⲽ'] (line 2128) # Converting 'Ⲿ' => 'Ⲿ' [expected 'Ⲿ'] (line 2129) # Converting 'ⲿ' => 'Ⲿ' [expected 'Ⲿ'] (line 2130) # Converting 'Ⳁ' => 'Ⳁ' [expected 'Ⳁ'] (line 2131) # Converting 'ⳁ' => 'Ⳁ' [expected 'Ⳁ'] (line 2132) # Converting 'Ⳃ' => 'Ⳃ' [expected 'Ⳃ'] (line 2133) # Converting 'ⳃ' => 'Ⳃ' [expected 'Ⳃ'] (line 2134) # Converting 'Ⳅ' => 'Ⳅ' [expected 'Ⳅ'] (line 2135) # Converting 'ⳅ' => 'Ⳅ' [expected 'Ⳅ'] (line 2136) # Converting 'Ⳇ' => 'Ⳇ' [expected 'Ⳇ'] (line 2137) # Converting 'ⳇ' => 'Ⳇ' [expected 'Ⳇ'] (line 2138) # Converting 'Ⳉ' => 'Ⳉ' [expected 'Ⳉ'] (line 2139) # Converting 'ⳉ' => 'Ⳉ' [expected 'Ⳉ'] (line 2140) # Converting 'Ⳋ' => 'Ⳋ' [expected 'Ⳋ'] (line 2141) # Converting 'ⳋ' => 'Ⳋ' [expected 'Ⳋ'] (line 2142) # Converting 'Ⳍ' => 'Ⳍ' [expected 'Ⳍ'] (line 2143) # Converting 'ⳍ' => 'Ⳍ' [expected 'Ⳍ'] (line 2144) # Converting 'Ⳏ' => 'Ⳏ' [expected 'Ⳏ'] (line 2145) # Converting 'ⳏ' => 'Ⳏ' [expected 'Ⳏ'] (line 2146) # Converting 'Ⳑ' => 'Ⳑ' [expected 'Ⳑ'] (line 2147) # Converting 'ⳑ' => 'Ⳑ' [expected 'Ⳑ'] (line 2148) # Converting 'Ⳓ' => 'Ⳓ' [expected 'Ⳓ'] (line 2149) # Converting 'ⳓ' => 'Ⳓ' [expected 'Ⳓ'] (line 2150) # Converting 'Ⳕ' => 'Ⳕ' [expected 'Ⳕ'] (line 2151) # Converting 'ⳕ' => 'Ⳕ' [expected 'Ⳕ'] (line 2152) # Converting 'Ⳗ' => 'Ⳗ' [expected 'Ⳗ'] (line 2153) # Converting 'ⳗ' => 'Ⳗ' [expected 'Ⳗ'] (line 2154) # Converting 'Ⳙ' => 'Ⳙ' [expected 'Ⳙ'] (line 2155) # Converting 'ⳙ' => 'Ⳙ' [expected 'Ⳙ'] (line 2156) # Converting 'Ⳛ' => 'Ⳛ' [expected 'Ⳛ'] (line 2157) # Converting 'ⳛ' => 'Ⳛ' [expected 'Ⳛ'] (line 2158) # Converting 'Ⳝ' => 'Ⳝ' [expected 'Ⳝ'] (line 2159) # Converting 'ⳝ' => 'Ⳝ' [expected 'Ⳝ'] (line 2160) # Converting 'Ⳟ' => 'Ⳟ' [expected 'Ⳟ'] (line 2161) # Converting 'ⳟ' => 'Ⳟ' [expected 'Ⳟ'] (line 2162) # Converting 'Ⳡ' => 'Ⳡ' [expected 'Ⳡ'] (line 2163) # Converting 'ⳡ' => 'Ⳡ' [expected 'Ⳡ'] (line 2164) # Converting 'Ⳣ' => 'Ⳣ' [expected 'Ⳣ'] (line 2165) # Converting 'ⳣ' => 'Ⳣ' [expected 'Ⳣ'] (line 2166) # Converting 'ⳤ' => 'ⳤ' [expected 'ⳤ'] (line 2167) # Converting 'Ⳬ' => 'Ⳬ' [expected 'Ⳬ'] (line 2168) # Converting 'ⳬ' => 'Ⳬ' [expected 'Ⳬ'] (line 2169) # Converting 'Ⳮ' => 'Ⳮ' [expected 'Ⳮ'] (line 2170) # Converting 'ⳮ' => 'Ⳮ' [expected 'Ⳮ'] (line 2171) # Converting 'Ⳳ' => 'Ⳳ' [expected 'Ⳳ'] (line 2172) # Converting 'ⳳ' => 'Ⳳ' [expected 'Ⳳ'] (line 2173) # Converting 'ⴀ' => 'Ⴀ' [expected 'Ⴀ'] (line 2174) # Converting 'ⴁ' => 'Ⴁ' [expected 'Ⴁ'] (line 2175) # Converting 'ⴂ' => 'Ⴂ' [expected 'Ⴂ'] (line 2176) # Converting 'ⴃ' => 'Ⴃ' [expected 'Ⴃ'] (line 2177) # Converting 'ⴄ' => 'Ⴄ' [expected 'Ⴄ'] (line 2178) # Converting 'ⴅ' => 'Ⴅ' [expected 'Ⴅ'] (line 2179) # Converting 'ⴆ' => 'Ⴆ' [expected 'Ⴆ'] (line 2180) # Converting 'ⴇ' => 'Ⴇ' [expected 'Ⴇ'] (line 2181) # Converting 'ⴈ' => 'Ⴈ' [expected 'Ⴈ'] (line 2182) # Converting 'ⴉ' => 'Ⴉ' [expected 'Ⴉ'] (line 2183) # Converting 'ⴊ' => 'Ⴊ' [expected 'Ⴊ'] (line 2184) # Converting 'ⴋ' => 'Ⴋ' [expected 'Ⴋ'] (line 2185) # Converting 'ⴌ' => 'Ⴌ' [expected 'Ⴌ'] (line 2186) # Converting 'ⴍ' => 'Ⴍ' [expected 'Ⴍ'] (line 2187) # Converting 'ⴎ' => 'Ⴎ' [expected 'Ⴎ'] (line 2188) # Converting 'ⴏ' => 'Ⴏ' [expected 'Ⴏ'] (line 2189) # Converting 'ⴐ' => 'Ⴐ' [expected 'Ⴐ'] (line 2190) # Converting 'ⴑ' => 'Ⴑ' [expected 'Ⴑ'] (line 2191) # Converting 'ⴒ' => 'Ⴒ' [expected 'Ⴒ'] (line 2192) # Converting 'ⴓ' => 'Ⴓ' [expected 'Ⴓ'] (line 2193) # Converting 'ⴔ' => 'Ⴔ' [expected 'Ⴔ'] (line 2194) # Converting 'ⴕ' => 'Ⴕ' [expected 'Ⴕ'] (line 2195) # Converting 'ⴖ' => 'Ⴖ' [expected 'Ⴖ'] (line 2196) # Converting 'ⴗ' => 'Ⴗ' [expected 'Ⴗ'] (line 2197) # Converting 'ⴘ' => 'Ⴘ' [expected 'Ⴘ'] (line 2198) # Converting 'ⴙ' => 'Ⴙ' [expected 'Ⴙ'] (line 2199) # Converting 'ⴚ' => 'Ⴚ' [expected 'Ⴚ'] (line 2200) # Converting 'ⴛ' => 'Ⴛ' [expected 'Ⴛ'] (line 2201) # Converting 'ⴜ' => 'Ⴜ' [expected 'Ⴜ'] (line 2202) # Converting 'ⴝ' => 'Ⴝ' [expected 'Ⴝ'] (line 2203) # Converting 'ⴞ' => 'Ⴞ' [expected 'Ⴞ'] (line 2204) # Converting 'ⴟ' => 'Ⴟ' [expected 'Ⴟ'] (line 2205) # Converting 'ⴠ' => 'Ⴠ' [expected 'Ⴠ'] (line 2206) # Converting 'ⴡ' => 'Ⴡ' [expected 'Ⴡ'] (line 2207) # Converting 'ⴢ' => 'Ⴢ' [expected 'Ⴢ'] (line 2208) # Converting 'ⴣ' => 'Ⴣ' [expected 'Ⴣ'] (line 2209) # Converting 'ⴤ' => 'Ⴤ' [expected 'Ⴤ'] (line 2210) # Converting 'ⴥ' => 'Ⴥ' [expected 'Ⴥ'] (line 2211) # Converting 'ⴧ' => 'Ⴧ' [expected 'Ⴧ'] (line 2212) # Converting 'ⴭ' => 'Ⴭ' [expected 'Ⴭ'] (line 2213) # Converting 'Ꙁ' => 'Ꙁ' [expected 'Ꙁ'] (line 2214) # Converting 'ꙁ' => 'Ꙁ' [expected 'Ꙁ'] (line 2215) # Converting 'Ꙃ' => 'Ꙃ' [expected 'Ꙃ'] (line 2216) # Converting 'ꙃ' => 'Ꙃ' [expected 'Ꙃ'] (line 2217) # Converting 'Ꙅ' => 'Ꙅ' [expected 'Ꙅ'] (line 2218) # Converting 'ꙅ' => 'Ꙅ' [expected 'Ꙅ'] (line 2219) # Converting 'Ꙇ' => 'Ꙇ' [expected 'Ꙇ'] (line 2220) # Converting 'ꙇ' => 'Ꙇ' [expected 'Ꙇ'] (line 2221) # Converting 'Ꙉ' => 'Ꙉ' [expected 'Ꙉ'] (line 2222) # Converting 'ꙉ' => 'Ꙉ' [expected 'Ꙉ'] (line 2223) # Converting 'Ꙋ' => 'Ꙋ' [expected 'Ꙋ'] (line 2224) # Converting 'ꙋ' => 'Ꙋ' [expected 'Ꙋ'] (line 2225) # Converting 'Ꙍ' => 'Ꙍ' [expected 'Ꙍ'] (line 2226) # Converting 'ꙍ' => 'Ꙍ' [expected 'Ꙍ'] (line 2227) # Converting 'Ꙏ' => 'Ꙏ' [expected 'Ꙏ'] (line 2228) # Converting 'ꙏ' => 'Ꙏ' [expected 'Ꙏ'] (line 2229) # Converting 'Ꙑ' => 'Ꙑ' [expected 'Ꙑ'] (line 2230) # Converting 'ꙑ' => 'Ꙑ' [expected 'Ꙑ'] (line 2231) # Converting 'Ꙓ' => 'Ꙓ' [expected 'Ꙓ'] (line 2232) # Converting 'ꙓ' => 'Ꙓ' [expected 'Ꙓ'] (line 2233) # Converting 'Ꙕ' => 'Ꙕ' [expected 'Ꙕ'] (line 2234) # Converting 'ꙕ' => 'Ꙕ' [expected 'Ꙕ'] (line 2235) # Converting 'Ꙗ' => 'Ꙗ' [expected 'Ꙗ'] (line 2236) # Converting 'ꙗ' => 'Ꙗ' [expected 'Ꙗ'] (line 2237) # Converting 'Ꙙ' => 'Ꙙ' [expected 'Ꙙ'] (line 2238) # Converting 'ꙙ' => 'Ꙙ' [expected 'Ꙙ'] (line 2239) # Converting 'Ꙛ' => 'Ꙛ' [expected 'Ꙛ'] (line 2240) # Converting 'ꙛ' => 'Ꙛ' [expected 'Ꙛ'] (line 2241) # Converting 'Ꙝ' => 'Ꙝ' [expected 'Ꙝ'] (line 2242) # Converting 'ꙝ' => 'Ꙝ' [expected 'Ꙝ'] (line 2243) # Converting 'Ꙟ' => 'Ꙟ' [expected 'Ꙟ'] (line 2244) # Converting 'ꙟ' => 'Ꙟ' [expected 'Ꙟ'] (line 2245) # Converting 'Ꙡ' => 'Ꙡ' [expected 'Ꙡ'] (line 2246) # Converting 'ꙡ' => 'Ꙡ' [expected 'Ꙡ'] (line 2247) # Converting 'Ꙣ' => 'Ꙣ' [expected 'Ꙣ'] (line 2248) # Converting 'ꙣ' => 'Ꙣ' [expected 'Ꙣ'] (line 2249) # Converting 'Ꙥ' => 'Ꙥ' [expected 'Ꙥ'] (line 2250) # Converting 'ꙥ' => 'Ꙥ' [expected 'Ꙥ'] (line 2251) # Converting 'Ꙧ' => 'Ꙧ' [expected 'Ꙧ'] (line 2252) # Converting 'ꙧ' => 'Ꙧ' [expected 'Ꙧ'] (line 2253) # Converting 'Ꙩ' => 'Ꙩ' [expected 'Ꙩ'] (line 2254) # Converting 'ꙩ' => 'Ꙩ' [expected 'Ꙩ'] (line 2255) # Converting 'Ꙫ' => 'Ꙫ' [expected 'Ꙫ'] (line 2256) # Converting 'ꙫ' => 'Ꙫ' [expected 'Ꙫ'] (line 2257) # Converting 'Ꙭ' => 'Ꙭ' [expected 'Ꙭ'] (line 2258) # Converting 'ꙭ' => 'Ꙭ' [expected 'Ꙭ'] (line 2259) # Converting 'Ꚁ' => 'Ꚁ' [expected 'Ꚁ'] (line 2260) # Converting 'ꚁ' => 'Ꚁ' [expected 'Ꚁ'] (line 2261) # Converting 'Ꚃ' => 'Ꚃ' [expected 'Ꚃ'] (line 2262) # Converting 'ꚃ' => 'Ꚃ' [expected 'Ꚃ'] (line 2263) # Converting 'Ꚅ' => 'Ꚅ' [expected 'Ꚅ'] (line 2264) # Converting 'ꚅ' => 'Ꚅ' [expected 'Ꚅ'] (line 2265) # Converting 'Ꚇ' => 'Ꚇ' [expected 'Ꚇ'] (line 2266) # Converting 'ꚇ' => 'Ꚇ' [expected 'Ꚇ'] (line 2267) # Converting 'Ꚉ' => 'Ꚉ' [expected 'Ꚉ'] (line 2268) # Converting 'ꚉ' => 'Ꚉ' [expected 'Ꚉ'] (line 2269) # Converting 'Ꚋ' => 'Ꚋ' [expected 'Ꚋ'] (line 2270) # Converting 'ꚋ' => 'Ꚋ' [expected 'Ꚋ'] (line 2271) # Converting 'Ꚍ' => 'Ꚍ' [expected 'Ꚍ'] (line 2272) # Converting 'ꚍ' => 'Ꚍ' [expected 'Ꚍ'] (line 2273) # Converting 'Ꚏ' => 'Ꚏ' [expected 'Ꚏ'] (line 2274) # Converting 'ꚏ' => 'Ꚏ' [expected 'Ꚏ'] (line 2275) # Converting 'Ꚑ' => 'Ꚑ' [expected 'Ꚑ'] (line 2276) # Converting 'ꚑ' => 'Ꚑ' [expected 'Ꚑ'] (line 2277) # Converting 'Ꚓ' => 'Ꚓ' [expected 'Ꚓ'] (line 2278) # Converting 'ꚓ' => 'Ꚓ' [expected 'Ꚓ'] (line 2279) # Converting 'Ꚕ' => 'Ꚕ' [expected 'Ꚕ'] (line 2280) # Converting 'ꚕ' => 'Ꚕ' [expected 'Ꚕ'] (line 2281) # Converting 'Ꚗ' => 'Ꚗ' [expected 'Ꚗ'] (line 2282) # Converting 'ꚗ' => 'Ꚗ' [expected 'Ꚗ'] (line 2283) # Converting 'Ꚙ' => 'Ꚙ' [expected 'Ꚙ'] (line 2284) # Converting 'ꚙ' => 'Ꚙ' [expected 'Ꚙ'] (line 2285) # Converting 'Ꚛ' => 'Ꚛ' [expected 'Ꚛ'] (line 2286) # Converting 'ꚛ' => 'Ꚛ' [expected 'Ꚛ'] (line 2287) # Converting 'Ꜣ' => 'Ꜣ' [expected 'Ꜣ'] (line 2288) # Converting 'ꜣ' => 'Ꜣ' [expected 'Ꜣ'] (line 2289) # Converting 'Ꜥ' => 'Ꜥ' [expected 'Ꜥ'] (line 2290) # Converting 'ꜥ' => 'Ꜥ' [expected 'Ꜥ'] (line 2291) # Converting 'Ꜧ' => 'Ꜧ' [expected 'Ꜧ'] (line 2292) # Converting 'ꜧ' => 'Ꜧ' [expected 'Ꜧ'] (line 2293) # Converting 'Ꜩ' => 'Ꜩ' [expected 'Ꜩ'] (line 2294) # Converting 'ꜩ' => 'Ꜩ' [expected 'Ꜩ'] (line 2295) # Converting 'Ꜫ' => 'Ꜫ' [expected 'Ꜫ'] (line 2296) # Converting 'ꜫ' => 'Ꜫ' [expected 'Ꜫ'] (line 2297) # Converting 'Ꜭ' => 'Ꜭ' [expected 'Ꜭ'] (line 2298) # Converting 'ꜭ' => 'Ꜭ' [expected 'Ꜭ'] (line 2299) # Converting 'Ꜯ' => 'Ꜯ' [expected 'Ꜯ'] (line 2300) # Converting 'ꜯ' => 'Ꜯ' [expected 'Ꜯ'] (line 2301) # Converting 'ꜰ' => 'ꜰ' [expected 'ꜰ'] (line 2302) # Converting 'ꜱ' => 'ꜱ' [expected 'ꜱ'] (line 2303) # Converting 'Ꜳ' => 'Ꜳ' [expected 'Ꜳ'] (line 2304) # Converting 'ꜳ' => 'Ꜳ' [expected 'Ꜳ'] (line 2305) # Converting 'Ꜵ' => 'Ꜵ' [expected 'Ꜵ'] (line 2306) # Converting 'ꜵ' => 'Ꜵ' [expected 'Ꜵ'] (line 2307) # Converting 'Ꜷ' => 'Ꜷ' [expected 'Ꜷ'] (line 2308) # Converting 'ꜷ' => 'Ꜷ' [expected 'Ꜷ'] (line 2309) # Converting 'Ꜹ' => 'Ꜹ' [expected 'Ꜹ'] (line 2310) # Converting 'ꜹ' => 'Ꜹ' [expected 'Ꜹ'] (line 2311) # Converting 'Ꜻ' => 'Ꜻ' [expected 'Ꜻ'] (line 2312) # Converting 'ꜻ' => 'Ꜻ' [expected 'Ꜻ'] (line 2313) # Converting 'Ꜽ' => 'Ꜽ' [expected 'Ꜽ'] (line 2314) # Converting 'ꜽ' => 'Ꜽ' [expected 'Ꜽ'] (line 2315) # Converting 'Ꜿ' => 'Ꜿ' [expected 'Ꜿ'] (line 2316) # Converting 'ꜿ' => 'Ꜿ' [expected 'Ꜿ'] (line 2317) # Converting 'Ꝁ' => 'Ꝁ' [expected 'Ꝁ'] (line 2318) # Converting 'ꝁ' => 'Ꝁ' [expected 'Ꝁ'] (line 2319) # Converting 'Ꝃ' => 'Ꝃ' [expected 'Ꝃ'] (line 2320) # Converting 'ꝃ' => 'Ꝃ' [expected 'Ꝃ'] (line 2321) # Converting 'Ꝅ' => 'Ꝅ' [expected 'Ꝅ'] (line 2322) # Converting 'ꝅ' => 'Ꝅ' [expected 'Ꝅ'] (line 2323) # Converting 'Ꝇ' => 'Ꝇ' [expected 'Ꝇ'] (line 2324) # Converting 'ꝇ' => 'Ꝇ' [expected 'Ꝇ'] (line 2325) # Converting 'Ꝉ' => 'Ꝉ' [expected 'Ꝉ'] (line 2326) # Converting 'ꝉ' => 'Ꝉ' [expected 'Ꝉ'] (line 2327) # Converting 'Ꝋ' => 'Ꝋ' [expected 'Ꝋ'] (line 2328) # Converting 'ꝋ' => 'Ꝋ' [expected 'Ꝋ'] (line 2329) # Converting 'Ꝍ' => 'Ꝍ' [expected 'Ꝍ'] (line 2330) # Converting 'ꝍ' => 'Ꝍ' [expected 'Ꝍ'] (line 2331) # Converting 'Ꝏ' => 'Ꝏ' [expected 'Ꝏ'] (line 2332) # Converting 'ꝏ' => 'Ꝏ' [expected 'Ꝏ'] (line 2333) # Converting 'Ꝑ' => 'Ꝑ' [expected 'Ꝑ'] (line 2334) # Converting 'ꝑ' => 'Ꝑ' [expected 'Ꝑ'] (line 2335) # Converting 'Ꝓ' => 'Ꝓ' [expected 'Ꝓ'] (line 2336) # Converting 'ꝓ' => 'Ꝓ' [expected 'Ꝓ'] (line 2337) # Converting 'Ꝕ' => 'Ꝕ' [expected 'Ꝕ'] (line 2338) # Converting 'ꝕ' => 'Ꝕ' [expected 'Ꝕ'] (line 2339) # Converting 'Ꝗ' => 'Ꝗ' [expected 'Ꝗ'] (line 2340) # Converting 'ꝗ' => 'Ꝗ' [expected 'Ꝗ'] (line 2341) # Converting 'Ꝙ' => 'Ꝙ' [expected 'Ꝙ'] (line 2342) # Converting 'ꝙ' => 'Ꝙ' [expected 'Ꝙ'] (line 2343) # Converting 'Ꝛ' => 'Ꝛ' [expected 'Ꝛ'] (line 2344) # Converting 'ꝛ' => 'Ꝛ' [expected 'Ꝛ'] (line 2345) # Converting 'Ꝝ' => 'Ꝝ' [expected 'Ꝝ'] (line 2346) # Converting 'ꝝ' => 'Ꝝ' [expected 'Ꝝ'] (line 2347) # Converting 'Ꝟ' => 'Ꝟ' [expected 'Ꝟ'] (line 2348) # Converting 'ꝟ' => 'Ꝟ' [expected 'Ꝟ'] (line 2349) # Converting 'Ꝡ' => 'Ꝡ' [expected 'Ꝡ'] (line 2350) # Converting 'ꝡ' => 'Ꝡ' [expected 'Ꝡ'] (line 2351) # Converting 'Ꝣ' => 'Ꝣ' [expected 'Ꝣ'] (line 2352) # Converting 'ꝣ' => 'Ꝣ' [expected 'Ꝣ'] (line 2353) # Converting 'Ꝥ' => 'Ꝥ' [expected 'Ꝥ'] (line 2354) # Converting 'ꝥ' => 'Ꝥ' [expected 'Ꝥ'] (line 2355) # Converting 'Ꝧ' => 'Ꝧ' [expected 'Ꝧ'] (line 2356) # Converting 'ꝧ' => 'Ꝧ' [expected 'Ꝧ'] (line 2357) # Converting 'Ꝩ' => 'Ꝩ' [expected 'Ꝩ'] (line 2358) # Converting 'ꝩ' => 'Ꝩ' [expected 'Ꝩ'] (line 2359) # Converting 'Ꝫ' => 'Ꝫ' [expected 'Ꝫ'] (line 2360) # Converting 'ꝫ' => 'Ꝫ' [expected 'Ꝫ'] (line 2361) # Converting 'Ꝭ' => 'Ꝭ' [expected 'Ꝭ'] (line 2362) # Converting 'ꝭ' => 'Ꝭ' [expected 'Ꝭ'] (line 2363) # Converting 'Ꝯ' => 'Ꝯ' [expected 'Ꝯ'] (line 2364) # Converting 'ꝯ' => 'Ꝯ' [expected 'Ꝯ'] (line 2365) # Converting 'ꝱ' => 'ꝱ' [expected 'ꝱ'] (line 2366) # Converting 'ꝲ' => 'ꝲ' [expected 'ꝲ'] (line 2367) # Converting 'ꝳ' => 'ꝳ' [expected 'ꝳ'] (line 2368) # Converting 'ꝴ' => 'ꝴ' [expected 'ꝴ'] (line 2369) # Converting 'ꝵ' => 'ꝵ' [expected 'ꝵ'] (line 2370) # Converting 'ꝶ' => 'ꝶ' [expected 'ꝶ'] (line 2371) # Converting 'ꝷ' => 'ꝷ' [expected 'ꝷ'] (line 2372) # Converting 'ꝸ' => 'ꝸ' [expected 'ꝸ'] (line 2373) # Converting 'Ꝺ' => 'Ꝺ' [expected 'Ꝺ'] (line 2374) # Converting 'ꝺ' => 'Ꝺ' [expected 'Ꝺ'] (line 2375) # Converting 'Ꝼ' => 'Ꝼ' [expected 'Ꝼ'] (line 2376) # Converting 'ꝼ' => 'Ꝼ' [expected 'Ꝼ'] (line 2377) # Converting 'Ᵹ' => 'Ᵹ' [expected 'Ᵹ'] (line 2378) # Converting 'Ꝿ' => 'Ꝿ' [expected 'Ꝿ'] (line 2379) # Converting 'ꝿ' => 'Ꝿ' [expected 'Ꝿ'] (line 2380) # Converting 'Ꞁ' => 'Ꞁ' [expected 'Ꞁ'] (line 2381) # Converting 'ꞁ' => 'Ꞁ' [expected 'Ꞁ'] (line 2382) # Converting 'Ꞃ' => 'Ꞃ' [expected 'Ꞃ'] (line 2383) # Converting 'ꞃ' => 'Ꞃ' [expected 'Ꞃ'] (line 2384) # Converting 'Ꞅ' => 'Ꞅ' [expected 'Ꞅ'] (line 2385) # Converting 'ꞅ' => 'Ꞅ' [expected 'Ꞅ'] (line 2386) # Converting 'Ꞇ' => 'Ꞇ' [expected 'Ꞇ'] (line 2387) # Converting 'ꞇ' => 'Ꞇ' [expected 'Ꞇ'] (line 2388) # Converting 'Ꞌ' => 'Ꞌ' [expected 'Ꞌ'] (line 2389) # Converting 'ꞌ' => 'Ꞌ' [expected 'Ꞌ'] (line 2390) # Converting 'Ɥ' => 'Ɥ' [expected 'Ɥ'] (line 2391) # Converting 'ꞎ' => 'ꞎ' [expected 'ꞎ'] (line 2392) # Converting 'Ꞑ' => 'Ꞑ' [expected 'Ꞑ'] (line 2393) # Converting 'ꞑ' => 'Ꞑ' [expected 'Ꞑ'] (line 2394) # Converting 'Ꞓ' => 'Ꞓ' [expected 'Ꞓ'] (line 2395) # Converting 'ꞓ' => 'Ꞓ' [expected 'Ꞓ'] (line 2396) # Converting 'ꞔ' => 'Ꞔ' [expected 'Ꞔ'] (line 2397) # Converting 'ꞕ' => 'ꞕ' [expected 'ꞕ'] (line 2398) # Converting 'Ꞗ' => 'Ꞗ' [expected 'Ꞗ'] (line 2399) # Converting 'ꞗ' => 'Ꞗ' [expected 'Ꞗ'] (line 2400) # Converting 'Ꞙ' => 'Ꞙ' [expected 'Ꞙ'] (line 2401) # Converting 'ꞙ' => 'Ꞙ' [expected 'Ꞙ'] (line 2402) # Converting 'Ꞛ' => 'Ꞛ' [expected 'Ꞛ'] (line 2403) # Converting 'ꞛ' => 'Ꞛ' [expected 'Ꞛ'] (line 2404) # Converting 'Ꞝ' => 'Ꞝ' [expected 'Ꞝ'] (line 2405) # Converting 'ꞝ' => 'Ꞝ' [expected 'Ꞝ'] (line 2406) # Converting 'Ꞟ' => 'Ꞟ' [expected 'Ꞟ'] (line 2407) # Converting 'ꞟ' => 'Ꞟ' [expected 'Ꞟ'] (line 2408) # Converting 'Ꞡ' => 'Ꞡ' [expected 'Ꞡ'] (line 2409) # Converting 'ꞡ' => 'Ꞡ' [expected 'Ꞡ'] (line 2410) # Converting 'Ꞣ' => 'Ꞣ' [expected 'Ꞣ'] (line 2411) # Converting 'ꞣ' => 'Ꞣ' [expected 'Ꞣ'] (line 2412) # Converting 'Ꞥ' => 'Ꞥ' [expected 'Ꞥ'] (line 2413) # Converting 'ꞥ' => 'Ꞥ' [expected 'Ꞥ'] (line 2414) # Converting 'Ꞧ' => 'Ꞧ' [expected 'Ꞧ'] (line 2415) # Converting 'ꞧ' => 'Ꞧ' [expected 'Ꞧ'] (line 2416) # Converting 'Ꞩ' => 'Ꞩ' [expected 'Ꞩ'] (line 2417) # Converting 'ꞩ' => 'Ꞩ' [expected 'Ꞩ'] (line 2418) # Converting 'Ɦ' => 'Ɦ' [expected 'Ɦ'] (line 2419) # Converting 'Ɜ' => 'Ɜ' [expected 'Ɜ'] (line 2420) # Converting 'Ɡ' => 'Ɡ' [expected 'Ɡ'] (line 2421) # Converting 'Ɬ' => 'Ɬ' [expected 'Ɬ'] (line 2422) # Converting 'Ɪ' => 'Ɪ' [expected 'Ɪ'] (line 2423) # Converting 'ꞯ' => 'ꞯ' [expected 'ꞯ'] (line 2424) # Converting 'Ʞ' => 'Ʞ' [expected 'Ʞ'] (line 2425) # Converting 'Ʇ' => 'Ʇ' [expected 'Ʇ'] (line 2426) # Converting 'Ʝ' => 'Ʝ' [expected 'Ʝ'] (line 2427) # Converting 'Ꭓ' => 'Ꭓ' [expected 'Ꭓ'] (line 2428) # Converting 'Ꞵ' => 'Ꞵ' [expected 'Ꞵ'] (line 2429) # Converting 'ꞵ' => 'Ꞵ' [expected 'Ꞵ'] (line 2430) # Converting 'Ꞷ' => 'Ꞷ' [expected 'Ꞷ'] (line 2431) # Converting 'ꞷ' => 'Ꞷ' [expected 'Ꞷ'] (line 2432) # Converting 'Ꞹ' => 'Ꞹ' [expected 'Ꞹ'] (line 2433) # Converting 'ꞹ' => 'Ꞹ' [expected 'Ꞹ'] (line 2434) # Converting 'Ꞻ' => 'Ꞻ' [expected 'Ꞻ'] (line 2435) # Converting 'ꞻ' => 'Ꞻ' [expected 'Ꞻ'] (line 2436) # Converting 'Ꞽ' => 'Ꞽ' [expected 'Ꞽ'] (line 2437) # Converting 'ꞽ' => 'Ꞽ' [expected 'Ꞽ'] (line 2438) # Converting 'Ꞿ' => 'Ꞿ' [expected 'Ꞿ'] (line 2439) # Converting 'ꞿ' => 'Ꞿ' [expected 'Ꞿ'] (line 2440) # Converting 'Ꟁ' => 'Ꟁ' [expected 'Ꟁ'] (line 2441) # Converting 'ꟁ' => 'Ꟁ' [expected 'Ꟁ'] (line 2442) # Converting 'Ꟃ' => 'Ꟃ' [expected 'Ꟃ'] (line 2443) # Converting 'ꟃ' => 'Ꟃ' [expected 'Ꟃ'] (line 2444) # Converting 'Ꞔ' => 'Ꞔ' [expected 'Ꞔ'] (line 2445) # Converting 'Ʂ' => 'Ʂ' [expected 'Ʂ'] (line 2446) # Converting 'Ᶎ' => 'Ᶎ' [expected 'Ᶎ'] (line 2447) # Converting 'Ꟈ' => 'Ꟈ' [expected 'Ꟈ'] (line 2448) # Converting 'ꟈ' => 'Ꟈ' [expected 'Ꟈ'] (line 2449) # Converting 'Ꟊ' => 'Ꟊ' [expected 'Ꟊ'] (line 2450) # Converting 'ꟊ' => 'Ꟊ' [expected 'Ꟊ'] (line 2451) # Converting 'Ɤ' => 'Ɤ' [expected 'Ɤ'] (line 2452) # Converting 'Ꟍ' => 'Ꟍ' [expected 'Ꟍ'] (line 2453) # Converting 'ꟍ' => 'Ꟍ' [expected 'Ꟍ'] (line 2454) # Converting '꟎' => '꟎' [expected '꟎'] (line 2455) # Converting '꟏' => '꟎' [expected '꟎'] (line 2456) # Converting 'Ꟑ' => 'Ꟑ' [expected 'Ꟑ'] (line 2457) # Converting 'ꟑ' => 'Ꟑ' [expected 'Ꟑ'] (line 2458) # Converting '꟒' => '꟒' [expected '꟒'] (line 2459) # Converting 'ꟓ' => '꟒' [expected '꟒'] (line 2460) # Converting '꟔' => '꟔' [expected '꟔'] (line 2461) # Converting 'ꟕ' => '꟔' [expected '꟔'] (line 2462) # Converting 'Ꟗ' => 'Ꟗ' [expected 'Ꟗ'] (line 2463) # Converting 'ꟗ' => 'Ꟗ' [expected 'Ꟗ'] (line 2464) # Converting 'Ꟙ' => 'Ꟙ' [expected 'Ꟙ'] (line 2465) # Converting 'ꟙ' => 'Ꟙ' [expected 'Ꟙ'] (line 2466) # Converting 'Ꟛ' => 'Ꟛ' [expected 'Ꟛ'] (line 2467) # Converting 'ꟛ' => 'Ꟛ' [expected 'Ꟛ'] (line 2468) # Converting 'Ƛ' => 'Ƛ' [expected 'Ƛ'] (line 2469) # Converting 'Ꟶ' => 'Ꟶ' [expected 'Ꟶ'] (line 2470) # Converting 'ꟶ' => 'Ꟶ' [expected 'Ꟶ'] (line 2471) # Converting 'ꟺ' => 'ꟺ' [expected 'ꟺ'] (line 2472) # Converting 'ꬰ' => 'ꬰ' [expected 'ꬰ'] (line 2473) # Converting 'ꬱ' => 'ꬱ' [expected 'ꬱ'] (line 2474) # Converting 'ꬲ' => 'ꬲ' [expected 'ꬲ'] (line 2475) # Converting 'ꬳ' => 'ꬳ' [expected 'ꬳ'] (line 2476) # Converting 'ꬴ' => 'ꬴ' [expected 'ꬴ'] (line 2477) # Converting 'ꬵ' => 'ꬵ' [expected 'ꬵ'] (line 2478) # Converting 'ꬶ' => 'ꬶ' [expected 'ꬶ'] (line 2479) # Converting 'ꬷ' => 'ꬷ' [expected 'ꬷ'] (line 2480) # Converting 'ꬸ' => 'ꬸ' [expected 'ꬸ'] (line 2481) # Converting 'ꬹ' => 'ꬹ' [expected 'ꬹ'] (line 2482) # Converting 'ꬺ' => 'ꬺ' [expected 'ꬺ'] (line 2483) # Converting 'ꬻ' => 'ꬻ' [expected 'ꬻ'] (line 2484) # Converting 'ꬼ' => 'ꬼ' [expected 'ꬼ'] (line 2485) # Converting 'ꬽ' => 'ꬽ' [expected 'ꬽ'] (line 2486) # Converting 'ꬾ' => 'ꬾ' [expected 'ꬾ'] (line 2487) # Converting 'ꬿ' => 'ꬿ' [expected 'ꬿ'] (line 2488) # Converting 'ꭀ' => 'ꭀ' [expected 'ꭀ'] (line 2489) # Converting 'ꭁ' => 'ꭁ' [expected 'ꭁ'] (line 2490) # Converting 'ꭂ' => 'ꭂ' [expected 'ꭂ'] (line 2491) # Converting 'ꭃ' => 'ꭃ' [expected 'ꭃ'] (line 2492) # Converting 'ꭄ' => 'ꭄ' [expected 'ꭄ'] (line 2493) # Converting 'ꭅ' => 'ꭅ' [expected 'ꭅ'] (line 2494) # Converting 'ꭆ' => 'ꭆ' [expected 'ꭆ'] (line 2495) # Converting 'ꭇ' => 'ꭇ' [expected 'ꭇ'] (line 2496) # Converting 'ꭈ' => 'ꭈ' [expected 'ꭈ'] (line 2497) # Converting 'ꭉ' => 'ꭉ' [expected 'ꭉ'] (line 2498) # Converting 'ꭊ' => 'ꭊ' [expected 'ꭊ'] (line 2499) # Converting 'ꭋ' => 'ꭋ' [expected 'ꭋ'] (line 2500) # Converting 'ꭌ' => 'ꭌ' [expected 'ꭌ'] (line 2501) # Converting 'ꭍ' => 'ꭍ' [expected 'ꭍ'] (line 2502) # Converting 'ꭎ' => 'ꭎ' [expected 'ꭎ'] (line 2503) # Converting 'ꭏ' => 'ꭏ' [expected 'ꭏ'] (line 2504) # Converting 'ꭐ' => 'ꭐ' [expected 'ꭐ'] (line 2505) # Converting 'ꭑ' => 'ꭑ' [expected 'ꭑ'] (line 2506) # Converting 'ꭒ' => 'ꭒ' [expected 'ꭒ'] (line 2507) # Converting 'ꭓ' => 'Ꭓ' [expected 'Ꭓ'] (line 2508) # Converting 'ꭔ' => 'ꭔ' [expected 'ꭔ'] (line 2509) # Converting 'ꭕ' => 'ꭕ' [expected 'ꭕ'] (line 2510) # Converting 'ꭖ' => 'ꭖ' [expected 'ꭖ'] (line 2511) # Converting 'ꭗ' => 'ꭗ' [expected 'ꭗ'] (line 2512) # Converting 'ꭘ' => 'ꭘ' [expected 'ꭘ'] (line 2513) # Converting 'ꭙ' => 'ꭙ' [expected 'ꭙ'] (line 2514) # Converting 'ꭚ' => 'ꭚ' [expected 'ꭚ'] (line 2515) # Converting 'ꭠ' => 'ꭠ' [expected 'ꭠ'] (line 2516) # Converting 'ꭡ' => 'ꭡ' [expected 'ꭡ'] (line 2517) # Converting 'ꭢ' => 'ꭢ' [expected 'ꭢ'] (line 2518) # Converting 'ꭣ' => 'ꭣ' [expected 'ꭣ'] (line 2519) # Converting 'ꭤ' => 'ꭤ' [expected 'ꭤ'] (line 2520) # Converting 'ꭥ' => 'ꭥ' [expected 'ꭥ'] (line 2521) # Converting 'ꭦ' => 'ꭦ' [expected 'ꭦ'] (line 2522) # Converting 'ꭧ' => 'ꭧ' [expected 'ꭧ'] (line 2523) # Converting 'ꭨ' => 'ꭨ' [expected 'ꭨ'] (line 2524) # Converting 'ꭰ' => 'Ꭰ' [expected 'Ꭰ'] (line 2525) # Converting 'ꭱ' => 'Ꭱ' [expected 'Ꭱ'] (line 2526) # Converting 'ꭲ' => 'Ꭲ' [expected 'Ꭲ'] (line 2527) # Converting 'ꭳ' => 'Ꭳ' [expected 'Ꭳ'] (line 2528) # Converting 'ꭴ' => 'Ꭴ' [expected 'Ꭴ'] (line 2529) # Converting 'ꭵ' => 'Ꭵ' [expected 'Ꭵ'] (line 2530) # Converting 'ꭶ' => 'Ꭶ' [expected 'Ꭶ'] (line 2531) # Converting 'ꭷ' => 'Ꭷ' [expected 'Ꭷ'] (line 2532) # Converting 'ꭸ' => 'Ꭸ' [expected 'Ꭸ'] (line 2533) # Converting 'ꭹ' => 'Ꭹ' [expected 'Ꭹ'] (line 2534) # Converting 'ꭺ' => 'Ꭺ' [expected 'Ꭺ'] (line 2535) # Converting 'ꭻ' => 'Ꭻ' [expected 'Ꭻ'] (line 2536) # Converting 'ꭼ' => 'Ꭼ' [expected 'Ꭼ'] (line 2537) # Converting 'ꭽ' => 'Ꭽ' [expected 'Ꭽ'] (line 2538) # Converting 'ꭾ' => 'Ꭾ' [expected 'Ꭾ'] (line 2539) # Converting 'ꭿ' => 'Ꭿ' [expected 'Ꭿ'] (line 2540) # Converting 'ꮀ' => 'Ꮀ' [expected 'Ꮀ'] (line 2541) # Converting 'ꮁ' => 'Ꮁ' [expected 'Ꮁ'] (line 2542) # Converting 'ꮂ' => 'Ꮂ' [expected 'Ꮂ'] (line 2543) # Converting 'ꮃ' => 'Ꮃ' [expected 'Ꮃ'] (line 2544) # Converting 'ꮄ' => 'Ꮄ' [expected 'Ꮄ'] (line 2545) # Converting 'ꮅ' => 'Ꮅ' [expected 'Ꮅ'] (line 2546) # Converting 'ꮆ' => 'Ꮆ' [expected 'Ꮆ'] (line 2547) # Converting 'ꮇ' => 'Ꮇ' [expected 'Ꮇ'] (line 2548) # Converting 'ꮈ' => 'Ꮈ' [expected 'Ꮈ'] (line 2549) # Converting 'ꮉ' => 'Ꮉ' [expected 'Ꮉ'] (line 2550) # Converting 'ꮊ' => 'Ꮊ' [expected 'Ꮊ'] (line 2551) # Converting 'ꮋ' => 'Ꮋ' [expected 'Ꮋ'] (line 2552) # Converting 'ꮌ' => 'Ꮌ' [expected 'Ꮌ'] (line 2553) # Converting 'ꮍ' => 'Ꮍ' [expected 'Ꮍ'] (line 2554) # Converting 'ꮎ' => 'Ꮎ' [expected 'Ꮎ'] (line 2555) # Converting 'ꮏ' => 'Ꮏ' [expected 'Ꮏ'] (line 2556) # Converting 'ꮐ' => 'Ꮐ' [expected 'Ꮐ'] (line 2557) # Converting 'ꮑ' => 'Ꮑ' [expected 'Ꮑ'] (line 2558) # Converting 'ꮒ' => 'Ꮒ' [expected 'Ꮒ'] (line 2559) # Converting 'ꮓ' => 'Ꮓ' [expected 'Ꮓ'] (line 2560) # Converting 'ꮔ' => 'Ꮔ' [expected 'Ꮔ'] (line 2561) # Converting 'ꮕ' => 'Ꮕ' [expected 'Ꮕ'] (line 2562) # Converting 'ꮖ' => 'Ꮖ' [expected 'Ꮖ'] (line 2563) # Converting 'ꮗ' => 'Ꮗ' [expected 'Ꮗ'] (line 2564) # Converting 'ꮘ' => 'Ꮘ' [expected 'Ꮘ'] (line 2565) # Converting 'ꮙ' => 'Ꮙ' [expected 'Ꮙ'] (line 2566) # Converting 'ꮚ' => 'Ꮚ' [expected 'Ꮚ'] (line 2567) # Converting 'ꮛ' => 'Ꮛ' [expected 'Ꮛ'] (line 2568) # Converting 'ꮜ' => 'Ꮜ' [expected 'Ꮜ'] (line 2569) # Converting 'ꮝ' => 'Ꮝ' [expected 'Ꮝ'] (line 2570) # Converting 'ꮞ' => 'Ꮞ' [expected 'Ꮞ'] (line 2571) # Converting 'ꮟ' => 'Ꮟ' [expected 'Ꮟ'] (line 2572) # Converting 'ꮠ' => 'Ꮠ' [expected 'Ꮠ'] (line 2573) # Converting 'ꮡ' => 'Ꮡ' [expected 'Ꮡ'] (line 2574) # Converting 'ꮢ' => 'Ꮢ' [expected 'Ꮢ'] (line 2575) # Converting 'ꮣ' => 'Ꮣ' [expected 'Ꮣ'] (line 2576) # Converting 'ꮤ' => 'Ꮤ' [expected 'Ꮤ'] (line 2577) # Converting 'ꮥ' => 'Ꮥ' [expected 'Ꮥ'] (line 2578) # Converting 'ꮦ' => 'Ꮦ' [expected 'Ꮦ'] (line 2579) # Converting 'ꮧ' => 'Ꮧ' [expected 'Ꮧ'] (line 2580) # Converting 'ꮨ' => 'Ꮨ' [expected 'Ꮨ'] (line 2581) # Converting 'ꮩ' => 'Ꮩ' [expected 'Ꮩ'] (line 2582) # Converting 'ꮪ' => 'Ꮪ' [expected 'Ꮪ'] (line 2583) # Converting 'ꮫ' => 'Ꮫ' [expected 'Ꮫ'] (line 2584) # Converting 'ꮬ' => 'Ꮬ' [expected 'Ꮬ'] (line 2585) # Converting 'ꮭ' => 'Ꮭ' [expected 'Ꮭ'] (line 2586) # Converting 'ꮮ' => 'Ꮮ' [expected 'Ꮮ'] (line 2587) # Converting 'ꮯ' => 'Ꮯ' [expected 'Ꮯ'] (line 2588) # Converting 'ꮰ' => 'Ꮰ' [expected 'Ꮰ'] (line 2589) # Converting 'ꮱ' => 'Ꮱ' [expected 'Ꮱ'] (line 2590) # Converting 'ꮲ' => 'Ꮲ' [expected 'Ꮲ'] (line 2591) # Converting 'ꮳ' => 'Ꮳ' [expected 'Ꮳ'] (line 2592) # Converting 'ꮴ' => 'Ꮴ' [expected 'Ꮴ'] (line 2593) # Converting 'ꮵ' => 'Ꮵ' [expected 'Ꮵ'] (line 2594) # Converting 'ꮶ' => 'Ꮶ' [expected 'Ꮶ'] (line 2595) # Converting 'ꮷ' => 'Ꮷ' [expected 'Ꮷ'] (line 2596) # Converting 'ꮸ' => 'Ꮸ' [expected 'Ꮸ'] (line 2597) # Converting 'ꮹ' => 'Ꮹ' [expected 'Ꮹ'] (line 2598) # Converting 'ꮺ' => 'Ꮺ' [expected 'Ꮺ'] (line 2599) # Converting 'ꮻ' => 'Ꮻ' [expected 'Ꮻ'] (line 2600) # Converting 'ꮼ' => 'Ꮼ' [expected 'Ꮼ'] (line 2601) # Converting 'ꮽ' => 'Ꮽ' [expected 'Ꮽ'] (line 2602) # Converting 'ꮾ' => 'Ꮾ' [expected 'Ꮾ'] (line 2603) # Converting 'ꮿ' => 'Ꮿ' [expected 'Ꮿ'] (line 2604) # Converting 'ff' => 'FF' [expected 'FF'] (line 2605) # Converting 'fi' => 'FI' [expected 'FI'] (line 2606) # Converting 'fl' => 'FL' [expected 'FL'] (line 2607) # Converting 'ffi' => 'FFI' [expected 'FFI'] (line 2608) # Converting 'ffl' => 'FFL' [expected 'FFL'] (line 2609) # Converting 'ſt' => 'ST' [expected 'ST'] (line 2610) # Converting 'st' => 'ST' [expected 'ST'] (line 2611) # Converting 'ﬓ' => 'ՄՆ' [expected 'ՄՆ'] (line 2612) # Converting 'ﬔ' => 'ՄԵ' [expected 'ՄԵ'] (line 2613) # Converting 'ﬕ' => 'ՄԻ' [expected 'ՄԻ'] (line 2614) # Converting 'ﬖ' => 'ՎՆ' [expected 'ՎՆ'] (line 2615) # Converting 'ﬗ' => 'ՄԽ' [expected 'ՄԽ'] (line 2616) # Converting 'A' => 'A' [expected 'A'] (line 2617) # Converting 'B' => 'B' [expected 'B'] (line 2618) # Converting 'C' => 'C' [expected 'C'] (line 2619) # Converting 'D' => 'D' [expected 'D'] (line 2620) # Converting 'E' => 'E' [expected 'E'] (line 2621) # Converting 'F' => 'F' [expected 'F'] (line 2622) # Converting 'G' => 'G' [expected 'G'] (line 2623) # Converting 'H' => 'H' [expected 'H'] (line 2624) # Converting 'I' => 'I' [expected 'I'] (line 2625) # Converting 'J' => 'J' [expected 'J'] (line 2626) # Converting 'K' => 'K' [expected 'K'] (line 2627) # Converting 'L' => 'L' [expected 'L'] (line 2628) # Converting 'M' => 'M' [expected 'M'] (line 2629) # Converting 'N' => 'N' [expected 'N'] (line 2630) # Converting 'O' => 'O' [expected 'O'] (line 2631) # Converting 'P' => 'P' [expected 'P'] (line 2632) # Converting 'Q' => 'Q' [expected 'Q'] (line 2633) # Converting 'R' => 'R' [expected 'R'] (line 2634) # Converting 'S' => 'S' [expected 'S'] (line 2635) # Converting 'T' => 'T' [expected 'T'] (line 2636) # Converting 'U' => 'U' [expected 'U'] (line 2637) # Converting 'V' => 'V' [expected 'V'] (line 2638) # Converting 'W' => 'W' [expected 'W'] (line 2639) # Converting 'X' => 'X' [expected 'X'] (line 2640) # Converting 'Y' => 'Y' [expected 'Y'] (line 2641) # Converting 'Z' => 'Z' [expected 'Z'] (line 2642) # Converting 'a' => 'A' [expected 'A'] (line 2643) # Converting 'b' => 'B' [expected 'B'] (line 2644) # Converting 'c' => 'C' [expected 'C'] (line 2645) # Converting 'd' => 'D' [expected 'D'] (line 2646) # Converting 'e' => 'E' [expected 'E'] (line 2647) # Converting 'f' => 'F' [expected 'F'] (line 2648) # Converting 'g' => 'G' [expected 'G'] (line 2649) # Converting 'h' => 'H' [expected 'H'] (line 2650) # Converting 'i' => 'I' [expected 'I'] (line 2651) # Converting 'j' => 'J' [expected 'J'] (line 2652) # Converting 'k' => 'K' [expected 'K'] (line 2653) # Converting 'l' => 'L' [expected 'L'] (line 2654) # Converting 'm' => 'M' [expected 'M'] (line 2655) # Converting 'n' => 'N' [expected 'N'] (line 2656) # Converting 'o' => 'O' [expected 'O'] (line 2657) # Converting 'p' => 'P' [expected 'P'] (line 2658) # Converting 'q' => 'Q' [expected 'Q'] (line 2659) # Converting 'r' => 'R' [expected 'R'] (line 2660) # Converting 's' => 'S' [expected 'S'] (line 2661) # Converting 't' => 'T' [expected 'T'] (line 2662) # Converting 'u' => 'U' [expected 'U'] (line 2663) # Converting 'v' => 'V' [expected 'V'] (line 2664) # Converting 'w' => 'W' [expected 'W'] (line 2665) # Converting 'x' => 'X' [expected 'X'] (line 2666) # Converting 'y' => 'Y' [expected 'Y'] (line 2667) # Converting 'z' => 'Z' [expected 'Z'] (line 2668) # Converting '𐐀' => '𐐀' [expected '𐐀'] (line 2669) # Converting '𐐁' => '𐐁' [expected '𐐁'] (line 2670) # Converting '𐐂' => '𐐂' [expected '𐐂'] (line 2671) # Converting '𐐃' => '𐐃' [expected '𐐃'] (line 2672) # Converting '𐐄' => '𐐄' [expected '𐐄'] (line 2673) # Converting '𐐅' => '𐐅' [expected '𐐅'] (line 2674) # Converting '𐐆' => '𐐆' [expected '𐐆'] (line 2675) # Converting '𐐇' => '𐐇' [expected '𐐇'] (line 2676) # Converting '𐐈' => '𐐈' [expected '𐐈'] (line 2677) # Converting '𐐉' => '𐐉' [expected '𐐉'] (line 2678) # Converting '𐐊' => '𐐊' [expected '𐐊'] (line 2679) # Converting '𐐋' => '𐐋' [expected '𐐋'] (line 2680) # Converting '𐐌' => '𐐌' [expected '𐐌'] (line 2681) # Converting '𐐍' => '𐐍' [expected '𐐍'] (line 2682) # Converting '𐐎' => '𐐎' [expected '𐐎'] (line 2683) # Converting '𐐏' => '𐐏' [expected '𐐏'] (line 2684) # Converting '𐐐' => '𐐐' [expected '𐐐'] (line 2685) # Converting '𐐑' => '𐐑' [expected '𐐑'] (line 2686) # Converting '𐐒' => '𐐒' [expected '𐐒'] (line 2687) # Converting '𐐓' => '𐐓' [expected '𐐓'] (line 2688) # Converting '𐐔' => '𐐔' [expected '𐐔'] (line 2689) # Converting '𐐕' => '𐐕' [expected '𐐕'] (line 2690) # Converting '𐐖' => '𐐖' [expected '𐐖'] (line 2691) # Converting '𐐗' => '𐐗' [expected '𐐗'] (line 2692) # Converting '𐐘' => '𐐘' [expected '𐐘'] (line 2693) # Converting '𐐙' => '𐐙' [expected '𐐙'] (line 2694) # Converting '𐐚' => '𐐚' [expected '𐐚'] (line 2695) # Converting '𐐛' => '𐐛' [expected '𐐛'] (line 2696) # Converting '𐐜' => '𐐜' [expected '𐐜'] (line 2697) # Converting '𐐝' => '𐐝' [expected '𐐝'] (line 2698) # Converting '𐐞' => '𐐞' [expected '𐐞'] (line 2699) # Converting '𐐟' => '𐐟' [expected '𐐟'] (line 2700) # Converting '𐐠' => '𐐠' [expected '𐐠'] (line 2701) # Converting '𐐡' => '𐐡' [expected '𐐡'] (line 2702) # Converting '𐐢' => '𐐢' [expected '𐐢'] (line 2703) # Converting '𐐣' => '𐐣' [expected '𐐣'] (line 2704) # Converting '𐐤' => '𐐤' [expected '𐐤'] (line 2705) # Converting '𐐥' => '𐐥' [expected '𐐥'] (line 2706) # Converting '𐐦' => '𐐦' [expected '𐐦'] (line 2707) # Converting '𐐧' => '𐐧' [expected '𐐧'] (line 2708) # Converting '𐐨' => '𐐀' [expected '𐐀'] (line 2709) # Converting '𐐩' => '𐐁' [expected '𐐁'] (line 2710) # Converting '𐐪' => '𐐂' [expected '𐐂'] (line 2711) # Converting '𐐫' => '𐐃' [expected '𐐃'] (line 2712) # Converting '𐐬' => '𐐄' [expected '𐐄'] (line 2713) # Converting '𐐭' => '𐐅' [expected '𐐅'] (line 2714) # Converting '𐐮' => '𐐆' [expected '𐐆'] (line 2715) # Converting '𐐯' => '𐐇' [expected '𐐇'] (line 2716) # Converting '𐐰' => '𐐈' [expected '𐐈'] (line 2717) # Converting '𐐱' => '𐐉' [expected '𐐉'] (line 2718) # Converting '𐐲' => '𐐊' [expected '𐐊'] (line 2719) # Converting '𐐳' => '𐐋' [expected '𐐋'] (line 2720) # Converting '𐐴' => '𐐌' [expected '𐐌'] (line 2721) # Converting '𐐵' => '𐐍' [expected '𐐍'] (line 2722) # Converting '𐐶' => '𐐎' [expected '𐐎'] (line 2723) # Converting '𐐷' => '𐐏' [expected '𐐏'] (line 2724) # Converting '𐐸' => '𐐐' [expected '𐐐'] (line 2725) # Converting '𐐹' => '𐐑' [expected '𐐑'] (line 2726) # Converting '𐐺' => '𐐒' [expected '𐐒'] (line 2727) # Converting '𐐻' => '𐐓' [expected '𐐓'] (line 2728) # Converting '𐐼' => '𐐔' [expected '𐐔'] (line 2729) # Converting '𐐽' => '𐐕' [expected '𐐕'] (line 2730) # Converting '𐐾' => '𐐖' [expected '𐐖'] (line 2731) # Converting '𐐿' => '𐐗' [expected '𐐗'] (line 2732) # Converting '𐑀' => '𐐘' [expected '𐐘'] (line 2733) # Converting '𐑁' => '𐐙' [expected '𐐙'] (line 2734) # Converting '𐑂' => '𐐚' [expected '𐐚'] (line 2735) # Converting '𐑃' => '𐐛' [expected '𐐛'] (line 2736) # Converting '𐑄' => '𐐜' [expected '𐐜'] (line 2737) # Converting '𐑅' => '𐐝' [expected '𐐝'] (line 2738) # Converting '𐑆' => '𐐞' [expected '𐐞'] (line 2739) # Converting '𐑇' => '𐐟' [expected '𐐟'] (line 2740) # Converting '𐑈' => '𐐠' [expected '𐐠'] (line 2741) # Converting '𐑉' => '𐐡' [expected '𐐡'] (line 2742) # Converting '𐑊' => '𐐢' [expected '𐐢'] (line 2743) # Converting '𐑋' => '𐐣' [expected '𐐣'] (line 2744) # Converting '𐑌' => '𐐤' [expected '𐐤'] (line 2745) # Converting '𐑍' => '𐐥' [expected '𐐥'] (line 2746) # Converting '𐑎' => '𐐦' [expected '𐐦'] (line 2747) # Converting '𐑏' => '𐐧' [expected '𐐧'] (line 2748) # Converting '𐒰' => '𐒰' [expected '𐒰'] (line 2749) # Converting '𐒱' => '𐒱' [expected '𐒱'] (line 2750) # Converting '𐒲' => '𐒲' [expected '𐒲'] (line 2751) # Converting '𐒳' => '𐒳' [expected '𐒳'] (line 2752) # Converting '𐒴' => '𐒴' [expected '𐒴'] (line 2753) # Converting '𐒵' => '𐒵' [expected '𐒵'] (line 2754) # Converting '𐒶' => '𐒶' [expected '𐒶'] (line 2755) # Converting '𐒷' => '𐒷' [expected '𐒷'] (line 2756) # Converting '𐒸' => '𐒸' [expected '𐒸'] (line 2757) # Converting '𐒹' => '𐒹' [expected '𐒹'] (line 2758) # Converting '𐒺' => '𐒺' [expected '𐒺'] (line 2759) # Converting '𐒻' => '𐒻' [expected '𐒻'] (line 2760) # Converting '𐒼' => '𐒼' [expected '𐒼'] (line 2761) # Converting '𐒽' => '𐒽' [expected '𐒽'] (line 2762) # Converting '𐒾' => '𐒾' [expected '𐒾'] (line 2763) # Converting '𐒿' => '𐒿' [expected '𐒿'] (line 2764) # Converting '𐓀' => '𐓀' [expected '𐓀'] (line 2765) # Converting '𐓁' => '𐓁' [expected '𐓁'] (line 2766) # Converting '𐓂' => '𐓂' [expected '𐓂'] (line 2767) # Converting '𐓃' => '𐓃' [expected '𐓃'] (line 2768) # Converting '𐓄' => '𐓄' [expected '𐓄'] (line 2769) # Converting '𐓅' => '𐓅' [expected '𐓅'] (line 2770) # Converting '𐓆' => '𐓆' [expected '𐓆'] (line 2771) # Converting '𐓇' => '𐓇' [expected '𐓇'] (line 2772) # Converting '𐓈' => '𐓈' [expected '𐓈'] (line 2773) # Converting '𐓉' => '𐓉' [expected '𐓉'] (line 2774) # Converting '𐓊' => '𐓊' [expected '𐓊'] (line 2775) # Converting '𐓋' => '𐓋' [expected '𐓋'] (line 2776) # Converting '𐓌' => '𐓌' [expected '𐓌'] (line 2777) # Converting '𐓍' => '𐓍' [expected '𐓍'] (line 2778) # Converting '𐓎' => '𐓎' [expected '𐓎'] (line 2779) # Converting '𐓏' => '𐓏' [expected '𐓏'] (line 2780) # Converting '𐓐' => '𐓐' [expected '𐓐'] (line 2781) # Converting '𐓑' => '𐓑' [expected '𐓑'] (line 2782) # Converting '𐓒' => '𐓒' [expected '𐓒'] (line 2783) # Converting '𐓓' => '𐓓' [expected '𐓓'] (line 2784) # Converting '𐓘' => '𐒰' [expected '𐒰'] (line 2785) # Converting '𐓙' => '𐒱' [expected '𐒱'] (line 2786) # Converting '𐓚' => '𐒲' [expected '𐒲'] (line 2787) # Converting '𐓛' => '𐒳' [expected '𐒳'] (line 2788) # Converting '𐓜' => '𐒴' [expected '𐒴'] (line 2789) # Converting '𐓝' => '𐒵' [expected '𐒵'] (line 2790) # Converting '𐓞' => '𐒶' [expected '𐒶'] (line 2791) # Converting '𐓟' => '𐒷' [expected '𐒷'] (line 2792) # Converting '𐓠' => '𐒸' [expected '𐒸'] (line 2793) # Converting '𐓡' => '𐒹' [expected '𐒹'] (line 2794) # Converting '𐓢' => '𐒺' [expected '𐒺'] (line 2795) # Converting '𐓣' => '𐒻' [expected '𐒻'] (line 2796) # Converting '𐓤' => '𐒼' [expected '𐒼'] (line 2797) # Converting '𐓥' => '𐒽' [expected '𐒽'] (line 2798) # Converting '𐓦' => '𐒾' [expected '𐒾'] (line 2799) # Converting '𐓧' => '𐒿' [expected '𐒿'] (line 2800) # Converting '𐓨' => '𐓀' [expected '𐓀'] (line 2801) # Converting '𐓩' => '𐓁' [expected '𐓁'] (line 2802) # Converting '𐓪' => '𐓂' [expected '𐓂'] (line 2803) # Converting '𐓫' => '𐓃' [expected '𐓃'] (line 2804) # Converting '𐓬' => '𐓄' [expected '𐓄'] (line 2805) # Converting '𐓭' => '𐓅' [expected '𐓅'] (line 2806) # Converting '𐓮' => '𐓆' [expected '𐓆'] (line 2807) # Converting '𐓯' => '𐓇' [expected '𐓇'] (line 2808) # Converting '𐓰' => '𐓈' [expected '𐓈'] (line 2809) # Converting '𐓱' => '𐓉' [expected '𐓉'] (line 2810) # Converting '𐓲' => '𐓊' [expected '𐓊'] (line 2811) # Converting '𐓳' => '𐓋' [expected '𐓋'] (line 2812) # Converting '𐓴' => '𐓌' [expected '𐓌'] (line 2813) # Converting '𐓵' => '𐓍' [expected '𐓍'] (line 2814) # Converting '𐓶' => '𐓎' [expected '𐓎'] (line 2815) # Converting '𐓷' => '𐓏' [expected '𐓏'] (line 2816) # Converting '𐓸' => '𐓐' [expected '𐓐'] (line 2817) # Converting '𐓹' => '𐓑' [expected '𐓑'] (line 2818) # Converting '𐓺' => '𐓒' [expected '𐓒'] (line 2819) # Converting '𐓻' => '𐓓' [expected '𐓓'] (line 2820) # Converting '𐕰' => '𐕰' [expected '𐕰'] (line 2821) # Converting '𐕱' => '𐕱' [expected '𐕱'] (line 2822) # Converting '𐕲' => '𐕲' [expected '𐕲'] (line 2823) # Converting '𐕳' => '𐕳' [expected '𐕳'] (line 2824) # Converting '𐕴' => '𐕴' [expected '𐕴'] (line 2825) # Converting '𐕵' => '𐕵' [expected '𐕵'] (line 2826) # Converting '𐕶' => '𐕶' [expected '𐕶'] (line 2827) # Converting '𐕷' => '𐕷' [expected '𐕷'] (line 2828) # Converting '𐕸' => '𐕸' [expected '𐕸'] (line 2829) # Converting '𐕹' => '𐕹' [expected '𐕹'] (line 2830) # Converting '𐕺' => '𐕺' [expected '𐕺'] (line 2831) # Converting '𐕼' => '𐕼' [expected '𐕼'] (line 2832) # Converting '𐕽' => '𐕽' [expected '𐕽'] (line 2833) # Converting '𐕾' => '𐕾' [expected '𐕾'] (line 2834) # Converting '𐕿' => '𐕿' [expected '𐕿'] (line 2835) # Converting '𐖀' => '𐖀' [expected '𐖀'] (line 2836) # Converting '𐖁' => '𐖁' [expected '𐖁'] (line 2837) # Converting '𐖂' => '𐖂' [expected '𐖂'] (line 2838) # Converting '𐖃' => '𐖃' [expected '𐖃'] (line 2839) # Converting '𐖄' => '𐖄' [expected '𐖄'] (line 2840) # Converting '𐖅' => '𐖅' [expected '𐖅'] (line 2841) # Converting '𐖆' => '𐖆' [expected '𐖆'] (line 2842) # Converting '𐖇' => '𐖇' [expected '𐖇'] (line 2843) # Converting '𐖈' => '𐖈' [expected '𐖈'] (line 2844) # Converting '𐖉' => '𐖉' [expected '𐖉'] (line 2845) # Converting '𐖊' => '𐖊' [expected '𐖊'] (line 2846) # Converting '𐖌' => '𐖌' [expected '𐖌'] (line 2847) # Converting '𐖍' => '𐖍' [expected '𐖍'] (line 2848) # Converting '𐖎' => '𐖎' [expected '𐖎'] (line 2849) # Converting '𐖏' => '𐖏' [expected '𐖏'] (line 2850) # Converting '𐖐' => '𐖐' [expected '𐖐'] (line 2851) # Converting '𐖑' => '𐖑' [expected '𐖑'] (line 2852) # Converting '𐖒' => '𐖒' [expected '𐖒'] (line 2853) # Converting '𐖔' => '𐖔' [expected '𐖔'] (line 2854) # Converting '𐖕' => '𐖕' [expected '𐖕'] (line 2855) # Converting '𐖗' => '𐕰' [expected '𐕰'] (line 2856) # Converting '𐖘' => '𐕱' [expected '𐕱'] (line 2857) # Converting '𐖙' => '𐕲' [expected '𐕲'] (line 2858) # Converting '𐖚' => '𐕳' [expected '𐕳'] (line 2859) # Converting '𐖛' => '𐕴' [expected '𐕴'] (line 2860) # Converting '𐖜' => '𐕵' [expected '𐕵'] (line 2861) # Converting '𐖝' => '𐕶' [expected '𐕶'] (line 2862) # Converting '𐖞' => '𐕷' [expected '𐕷'] (line 2863) # Converting '𐖟' => '𐕸' [expected '𐕸'] (line 2864) # Converting '𐖠' => '𐕹' [expected '𐕹'] (line 2865) # Converting '𐖡' => '𐕺' [expected '𐕺'] (line 2866) # Converting '𐖣' => '𐕼' [expected '𐕼'] (line 2867) # Converting '𐖤' => '𐕽' [expected '𐕽'] (line 2868) # Converting '𐖥' => '𐕾' [expected '𐕾'] (line 2869) # Converting '𐖦' => '𐕿' [expected '𐕿'] (line 2870) # Converting '𐖧' => '𐖀' [expected '𐖀'] (line 2871) # Converting '𐖨' => '𐖁' [expected '𐖁'] (line 2872) # Converting '𐖩' => '𐖂' [expected '𐖂'] (line 2873) # Converting '𐖪' => '𐖃' [expected '𐖃'] (line 2874) # Converting '𐖫' => '𐖄' [expected '𐖄'] (line 2875) # Converting '𐖬' => '𐖅' [expected '𐖅'] (line 2876) # Converting '𐖭' => '𐖆' [expected '𐖆'] (line 2877) # Converting '𐖮' => '𐖇' [expected '𐖇'] (line 2878) # Converting '𐖯' => '𐖈' [expected '𐖈'] (line 2879) # Converting '𐖰' => '𐖉' [expected '𐖉'] (line 2880) # Converting '𐖱' => '𐖊' [expected '𐖊'] (line 2881) # Converting '𐖳' => '𐖌' [expected '𐖌'] (line 2882) # Converting '𐖴' => '𐖍' [expected '𐖍'] (line 2883) # Converting '𐖵' => '𐖎' [expected '𐖎'] (line 2884) # Converting '𐖶' => '𐖏' [expected '𐖏'] (line 2885) # Converting '𐖷' => '𐖐' [expected '𐖐'] (line 2886) # Converting '𐖸' => '𐖑' [expected '𐖑'] (line 2887) # Converting '𐖹' => '𐖒' [expected '𐖒'] (line 2888) # Converting '𐖻' => '𐖔' [expected '𐖔'] (line 2889) # Converting '𐖼' => '𐖕' [expected '𐖕'] (line 2890) # Converting '𐲀' => '𐲀' [expected '𐲀'] (line 2891) # Converting '𐲁' => '𐲁' [expected '𐲁'] (line 2892) # Converting '𐲂' => '𐲂' [expected '𐲂'] (line 2893) # Converting '𐲃' => '𐲃' [expected '𐲃'] (line 2894) # Converting '𐲄' => '𐲄' [expected '𐲄'] (line 2895) # Converting '𐲅' => '𐲅' [expected '𐲅'] (line 2896) # Converting '𐲆' => '𐲆' [expected '𐲆'] (line 2897) # Converting '𐲇' => '𐲇' [expected '𐲇'] (line 2898) # Converting '𐲈' => '𐲈' [expected '𐲈'] (line 2899) # Converting '𐲉' => '𐲉' [expected '𐲉'] (line 2900) # Converting '𐲊' => '𐲊' [expected '𐲊'] (line 2901) # Converting '𐲋' => '𐲋' [expected '𐲋'] (line 2902) # Converting '𐲌' => '𐲌' [expected '𐲌'] (line 2903) # Converting '𐲍' => '𐲍' [expected '𐲍'] (line 2904) # Converting '𐲎' => '𐲎' [expected '𐲎'] (line 2905) # Converting '𐲏' => '𐲏' [expected '𐲏'] (line 2906) # Converting '𐲐' => '𐲐' [expected '𐲐'] (line 2907) # Converting '𐲑' => '𐲑' [expected '𐲑'] (line 2908) # Converting '𐲒' => '𐲒' [expected '𐲒'] (line 2909) # Converting '𐲓' => '𐲓' [expected '𐲓'] (line 2910) # Converting '𐲔' => '𐲔' [expected '𐲔'] (line 2911) # Converting '𐲕' => '𐲕' [expected '𐲕'] (line 2912) # Converting '𐲖' => '𐲖' [expected '𐲖'] (line 2913) # Converting '𐲗' => '𐲗' [expected '𐲗'] (line 2914) # Converting '𐲘' => '𐲘' [expected '𐲘'] (line 2915) # Converting '𐲙' => '𐲙' [expected '𐲙'] (line 2916) # Converting '𐲚' => '𐲚' [expected '𐲚'] (line 2917) # Converting '𐲛' => '𐲛' [expected '𐲛'] (line 2918) # Converting '𐲜' => '𐲜' [expected '𐲜'] (line 2919) # Converting '𐲝' => '𐲝' [expected '𐲝'] (line 2920) # Converting '𐲞' => '𐲞' [expected '𐲞'] (line 2921) # Converting '𐲟' => '𐲟' [expected '𐲟'] (line 2922) # Converting '𐲠' => '𐲠' [expected '𐲠'] (line 2923) # Converting '𐲡' => '𐲡' [expected '𐲡'] (line 2924) # Converting '𐲢' => '𐲢' [expected '𐲢'] (line 2925) # Converting '𐲣' => '𐲣' [expected '𐲣'] (line 2926) # Converting '𐲤' => '𐲤' [expected '𐲤'] (line 2927) # Converting '𐲥' => '𐲥' [expected '𐲥'] (line 2928) # Converting '𐲦' => '𐲦' [expected '𐲦'] (line 2929) # Converting '𐲧' => '𐲧' [expected '𐲧'] (line 2930) # Converting '𐲨' => '𐲨' [expected '𐲨'] (line 2931) # Converting '𐲩' => '𐲩' [expected '𐲩'] (line 2932) # Converting '𐲪' => '𐲪' [expected '𐲪'] (line 2933) # Converting '𐲫' => '𐲫' [expected '𐲫'] (line 2934) # Converting '𐲬' => '𐲬' [expected '𐲬'] (line 2935) # Converting '𐲭' => '𐲭' [expected '𐲭'] (line 2936) # Converting '𐲮' => '𐲮' [expected '𐲮'] (line 2937) # Converting '𐲯' => '𐲯' [expected '𐲯'] (line 2938) # Converting '𐲰' => '𐲰' [expected '𐲰'] (line 2939) # Converting '𐲱' => '𐲱' [expected '𐲱'] (line 2940) # Converting '𐲲' => '𐲲' [expected '𐲲'] (line 2941) # Converting '𐳀' => '𐲀' [expected '𐲀'] (line 2942) # Converting '𐳁' => '𐲁' [expected '𐲁'] (line 2943) # Converting '𐳂' => '𐲂' [expected '𐲂'] (line 2944) # Converting '𐳃' => '𐲃' [expected '𐲃'] (line 2945) # Converting '𐳄' => '𐲄' [expected '𐲄'] (line 2946) # Converting '𐳅' => '𐲅' [expected '𐲅'] (line 2947) # Converting '𐳆' => '𐲆' [expected '𐲆'] (line 2948) # Converting '𐳇' => '𐲇' [expected '𐲇'] (line 2949) # Converting '𐳈' => '𐲈' [expected '𐲈'] (line 2950) # Converting '𐳉' => '𐲉' [expected '𐲉'] (line 2951) # Converting '𐳊' => '𐲊' [expected '𐲊'] (line 2952) # Converting '𐳋' => '𐲋' [expected '𐲋'] (line 2953) # Converting '𐳌' => '𐲌' [expected '𐲌'] (line 2954) # Converting '𐳍' => '𐲍' [expected '𐲍'] (line 2955) # Converting '𐳎' => '𐲎' [expected '𐲎'] (line 2956) # Converting '𐳏' => '𐲏' [expected '𐲏'] (line 2957) # Converting '𐳐' => '𐲐' [expected '𐲐'] (line 2958) # Converting '𐳑' => '𐲑' [expected '𐲑'] (line 2959) # Converting '𐳒' => '𐲒' [expected '𐲒'] (line 2960) # Converting '𐳓' => '𐲓' [expected '𐲓'] (line 2961) # Converting '𐳔' => '𐲔' [expected '𐲔'] (line 2962) # Converting '𐳕' => '𐲕' [expected '𐲕'] (line 2963) # Converting '𐳖' => '𐲖' [expected '𐲖'] (line 2964) # Converting '𐳗' => '𐲗' [expected '𐲗'] (line 2965) # Converting '𐳘' => '𐲘' [expected '𐲘'] (line 2966) # Converting '𐳙' => '𐲙' [expected '𐲙'] (line 2967) # Converting '𐳚' => '𐲚' [expected '𐲚'] (line 2968) # Converting '𐳛' => '𐲛' [expected '𐲛'] (line 2969) # Converting '𐳜' => '𐲜' [expected '𐲜'] (line 2970) # Converting '𐳝' => '𐲝' [expected '𐲝'] (line 2971) # Converting '𐳞' => '𐲞' [expected '𐲞'] (line 2972) # Converting '𐳟' => '𐲟' [expected '𐲟'] (line 2973) # Converting '𐳠' => '𐲠' [expected '𐲠'] (line 2974) # Converting '𐳡' => '𐲡' [expected '𐲡'] (line 2975) # Converting '𐳢' => '𐲢' [expected '𐲢'] (line 2976) # Converting '𐳣' => '𐲣' [expected '𐲣'] (line 2977) # Converting '𐳤' => '𐲤' [expected '𐲤'] (line 2978) # Converting '𐳥' => '𐲥' [expected '𐲥'] (line 2979) # Converting '𐳦' => '𐲦' [expected '𐲦'] (line 2980) # Converting '𐳧' => '𐲧' [expected '𐲧'] (line 2981) # Converting '𐳨' => '𐲨' [expected '𐲨'] (line 2982) # Converting '𐳩' => '𐲩' [expected '𐲩'] (line 2983) # Converting '𐳪' => '𐲪' [expected '𐲪'] (line 2984) # Converting '𐳫' => '𐲫' [expected '𐲫'] (line 2985) # Converting '𐳬' => '𐲬' [expected '𐲬'] (line 2986) # Converting '𐳭' => '𐲭' [expected '𐲭'] (line 2987) # Converting '𐳮' => '𐲮' [expected '𐲮'] (line 2988) # Converting '𐳯' => '𐲯' [expected '𐲯'] (line 2989) # Converting '𐳰' => '𐲰' [expected '𐲰'] (line 2990) # Converting '𐳱' => '𐲱' [expected '𐲱'] (line 2991) # Converting '𐳲' => '𐲲' [expected '𐲲'] (line 2992) # Converting '𐵐' => '𐵐' [expected '𐵐'] (line 2993) # Converting '𐵑' => '𐵑' [expected '𐵑'] (line 2994) # Converting '𐵒' => '𐵒' [expected '𐵒'] (line 2995) # Converting '𐵓' => '𐵓' [expected '𐵓'] (line 2996) # Converting '𐵔' => '𐵔' [expected '𐵔'] (line 2997) # Converting '𐵕' => '𐵕' [expected '𐵕'] (line 2998) # Converting '𐵖' => '𐵖' [expected '𐵖'] (line 2999) # Converting '𐵗' => '𐵗' [expected '𐵗'] (line 3000) # Converting '𐵘' => '𐵘' [expected '𐵘'] (line 3001) # Converting '𐵙' => '𐵙' [expected '𐵙'] (line 3002) # Converting '𐵚' => '𐵚' [expected '𐵚'] (line 3003) # Converting '𐵛' => '𐵛' [expected '𐵛'] (line 3004) # Converting '𐵜' => '𐵜' [expected '𐵜'] (line 3005) # Converting '𐵝' => '𐵝' [expected '𐵝'] (line 3006) # Converting '𐵞' => '𐵞' [expected '𐵞'] (line 3007) # Converting '𐵟' => '𐵟' [expected '𐵟'] (line 3008) # Converting '𐵠' => '𐵠' [expected '𐵠'] (line 3009) # Converting '𐵡' => '𐵡' [expected '𐵡'] (line 3010) # Converting '𐵢' => '𐵢' [expected '𐵢'] (line 3011) # Converting '𐵣' => '𐵣' [expected '𐵣'] (line 3012) # Converting '𐵤' => '𐵤' [expected '𐵤'] (line 3013) # Converting '𐵥' => '𐵥' [expected '𐵥'] (line 3014) # Converting '𐵰' => '𐵐' [expected '𐵐'] (line 3015) # Converting '𐵱' => '𐵑' [expected '𐵑'] (line 3016) # Converting '𐵲' => '𐵒' [expected '𐵒'] (line 3017) # Converting '𐵳' => '𐵓' [expected '𐵓'] (line 3018) # Converting '𐵴' => '𐵔' [expected '𐵔'] (line 3019) # Converting '𐵵' => '𐵕' [expected '𐵕'] (line 3020) # Converting '𐵶' => '𐵖' [expected '𐵖'] (line 3021) # Converting '𐵷' => '𐵗' [expected '𐵗'] (line 3022) # Converting '𐵸' => '𐵘' [expected '𐵘'] (line 3023) # Converting '𐵹' => '𐵙' [expected '𐵙'] (line 3024) # Converting '𐵺' => '𐵚' [expected '𐵚'] (line 3025) # Converting '𐵻' => '𐵛' [expected '𐵛'] (line 3026) # Converting '𐵼' => '𐵜' [expected '𐵜'] (line 3027) # Converting '𐵽' => '𐵝' [expected '𐵝'] (line 3028) # Converting '𐵾' => '𐵞' [expected '𐵞'] (line 3029) # Converting '𐵿' => '𐵟' [expected '𐵟'] (line 3030) # Converting '𐶀' => '𐵠' [expected '𐵠'] (line 3031) # Converting '𐶁' => '𐵡' [expected '𐵡'] (line 3032) # Converting '𐶂' => '𐵢' [expected '𐵢'] (line 3033) # Converting '𐶃' => '𐵣' [expected '𐵣'] (line 3034) # Converting '𐶄' => '𐵤' [expected '𐵤'] (line 3035) # Converting '𐶅' => '𐵥' [expected '𐵥'] (line 3036) # Converting '𑢠' => '𑢠' [expected '𑢠'] (line 3037) # Converting '𑢡' => '𑢡' [expected '𑢡'] (line 3038) # Converting '𑢢' => '𑢢' [expected '𑢢'] (line 3039) # Converting '𑢣' => '𑢣' [expected '𑢣'] (line 3040) # Converting '𑢤' => '𑢤' [expected '𑢤'] (line 3041) # Converting '𑢥' => '𑢥' [expected '𑢥'] (line 3042) # Converting '𑢦' => '𑢦' [expected '𑢦'] (line 3043) # Converting '𑢧' => '𑢧' [expected '𑢧'] (line 3044) # Converting '𑢨' => '𑢨' [expected '𑢨'] (line 3045) # Converting '𑢩' => '𑢩' [expected '𑢩'] (line 3046) # Converting '𑢪' => '𑢪' [expected '𑢪'] (line 3047) # Converting '𑢫' => '𑢫' [expected '𑢫'] (line 3048) # Converting '𑢬' => '𑢬' [expected '𑢬'] (line 3049) # Converting '𑢭' => '𑢭' [expected '𑢭'] (line 3050) # Converting '𑢮' => '𑢮' [expected '𑢮'] (line 3051) # Converting '𑢯' => '𑢯' [expected '𑢯'] (line 3052) # Converting '𑢰' => '𑢰' [expected '𑢰'] (line 3053) # Converting '𑢱' => '𑢱' [expected '𑢱'] (line 3054) # Converting '𑢲' => '𑢲' [expected '𑢲'] (line 3055) # Converting '𑢳' => '𑢳' [expected '𑢳'] (line 3056) # Converting '𑢴' => '𑢴' [expected '𑢴'] (line 3057) # Converting '𑢵' => '𑢵' [expected '𑢵'] (line 3058) # Converting '𑢶' => '𑢶' [expected '𑢶'] (line 3059) # Converting '𑢷' => '𑢷' [expected '𑢷'] (line 3060) # Converting '𑢸' => '𑢸' [expected '𑢸'] (line 3061) # Converting '𑢹' => '𑢹' [expected '𑢹'] (line 3062) # Converting '𑢺' => '𑢺' [expected '𑢺'] (line 3063) # Converting '𑢻' => '𑢻' [expected '𑢻'] (line 3064) # Converting '𑢼' => '𑢼' [expected '𑢼'] (line 3065) # Converting '𑢽' => '𑢽' [expected '𑢽'] (line 3066) # Converting '𑢾' => '𑢾' [expected '𑢾'] (line 3067) # Converting '𑢿' => '𑢿' [expected '𑢿'] (line 3068) # Converting '𑣀' => '𑢠' [expected '𑢠'] (line 3069) # Converting '𑣁' => '𑢡' [expected '𑢡'] (line 3070) # Converting '𑣂' => '𑢢' [expected '𑢢'] (line 3071) # Converting '𑣃' => '𑢣' [expected '𑢣'] (line 3072) # Converting '𑣄' => '𑢤' [expected '𑢤'] (line 3073) # Converting '𑣅' => '𑢥' [expected '𑢥'] (line 3074) # Converting '𑣆' => '𑢦' [expected '𑢦'] (line 3075) # Converting '𑣇' => '𑢧' [expected '𑢧'] (line 3076) # Converting '𑣈' => '𑢨' [expected '𑢨'] (line 3077) # Converting '𑣉' => '𑢩' [expected '𑢩'] (line 3078) # Converting '𑣊' => '𑢪' [expected '𑢪'] (line 3079) # Converting '𑣋' => '𑢫' [expected '𑢫'] (line 3080) # Converting '𑣌' => '𑢬' [expected '𑢬'] (line 3081) # Converting '𑣍' => '𑢭' [expected '𑢭'] (line 3082) # Converting '𑣎' => '𑢮' [expected '𑢮'] (line 3083) # Converting '𑣏' => '𑢯' [expected '𑢯'] (line 3084) # Converting '𑣐' => '𑢰' [expected '𑢰'] (line 3085) # Converting '𑣑' => '𑢱' [expected '𑢱'] (line 3086) # Converting '𑣒' => '𑢲' [expected '𑢲'] (line 3087) # Converting '𑣓' => '𑢳' [expected '𑢳'] (line 3088) # Converting '𑣔' => '𑢴' [expected '𑢴'] (line 3089) # Converting '𑣕' => '𑢵' [expected '𑢵'] (line 3090) # Converting '𑣖' => '𑢶' [expected '𑢶'] (line 3091) # Converting '𑣗' => '𑢷' [expected '𑢷'] (line 3092) # Converting '𑣘' => '𑢸' [expected '𑢸'] (line 3093) # Converting '𑣙' => '𑢹' [expected '𑢹'] (line 3094) # Converting '𑣚' => '𑢺' [expected '𑢺'] (line 3095) # Converting '𑣛' => '𑢻' [expected '𑢻'] (line 3096) # Converting '𑣜' => '𑢼' [expected '𑢼'] (line 3097) # Converting '𑣝' => '𑢽' [expected '𑢽'] (line 3098) # Converting '𑣞' => '𑢾' [expected '𑢾'] (line 3099) # Converting '𑣟' => '𑢿' [expected '𑢿'] (line 3100) # Converting '𖹀' => '𖹀' [expected '𖹀'] (line 3101) # Converting '𖹁' => '𖹁' [expected '𖹁'] (line 3102) # Converting '𖹂' => '𖹂' [expected '𖹂'] (line 3103) # Converting '𖹃' => '𖹃' [expected '𖹃'] (line 3104) # Converting '𖹄' => '𖹄' [expected '𖹄'] (line 3105) # Converting '𖹅' => '𖹅' [expected '𖹅'] (line 3106) # Converting '𖹆' => '𖹆' [expected '𖹆'] (line 3107) # Converting '𖹇' => '𖹇' [expected '𖹇'] (line 3108) # Converting '𖹈' => '𖹈' [expected '𖹈'] (line 3109) # Converting '𖹉' => '𖹉' [expected '𖹉'] (line 3110) # Converting '𖹊' => '𖹊' [expected '𖹊'] (line 3111) # Converting '𖹋' => '𖹋' [expected '𖹋'] (line 3112) # Converting '𖹌' => '𖹌' [expected '𖹌'] (line 3113) # Converting '𖹍' => '𖹍' [expected '𖹍'] (line 3114) # Converting '𖹎' => '𖹎' [expected '𖹎'] (line 3115) # Converting '𖹏' => '𖹏' [expected '𖹏'] (line 3116) # Converting '𖹐' => '𖹐' [expected '𖹐'] (line 3117) # Converting '𖹑' => '𖹑' [expected '𖹑'] (line 3118) # Converting '𖹒' => '𖹒' [expected '𖹒'] (line 3119) # Converting '𖹓' => '𖹓' [expected '𖹓'] (line 3120) # Converting '𖹔' => '𖹔' [expected '𖹔'] (line 3121) # Converting '𖹕' => '𖹕' [expected '𖹕'] (line 3122) # Converting '𖹖' => '𖹖' [expected '𖹖'] (line 3123) # Converting '𖹗' => '𖹗' [expected '𖹗'] (line 3124) # Converting '𖹘' => '𖹘' [expected '𖹘'] (line 3125) # Converting '𖹙' => '𖹙' [expected '𖹙'] (line 3126) # Converting '𖹚' => '𖹚' [expected '𖹚'] (line 3127) # Converting '𖹛' => '𖹛' [expected '𖹛'] (line 3128) # Converting '𖹜' => '𖹜' [expected '𖹜'] (line 3129) # Converting '𖹝' => '𖹝' [expected '𖹝'] (line 3130) # Converting '𖹞' => '𖹞' [expected '𖹞'] (line 3131) # Converting '𖹟' => '𖹟' [expected '𖹟'] (line 3132) # Converting '𖹠' => '𖹀' [expected '𖹀'] (line 3133) # Converting '𖹡' => '𖹁' [expected '𖹁'] (line 3134) # Converting '𖹢' => '𖹂' [expected '𖹂'] (line 3135) # Converting '𖹣' => '𖹃' [expected '𖹃'] (line 3136) # Converting '𖹤' => '𖹄' [expected '𖹄'] (line 3137) # Converting '𖹥' => '𖹅' [expected '𖹅'] (line 3138) # Converting '𖹦' => '𖹆' [expected '𖹆'] (line 3139) # Converting '𖹧' => '𖹇' [expected '𖹇'] (line 3140) # Converting '𖹨' => '𖹈' [expected '𖹈'] (line 3141) # Converting '𖹩' => '𖹉' [expected '𖹉'] (line 3142) # Converting '𖹪' => '𖹊' [expected '𖹊'] (line 3143) # Converting '𖹫' => '𖹋' [expected '𖹋'] (line 3144) # Converting '𖹬' => '𖹌' [expected '𖹌'] (line 3145) # Converting '𖹭' => '𖹍' [expected '𖹍'] (line 3146) # Converting '𖹮' => '𖹎' [expected '𖹎'] (line 3147) # Converting '𖹯' => '𖹏' [expected '𖹏'] (line 3148) # Converting '𖹰' => '𖹐' [expected '𖹐'] (line 3149) # Converting '𖹱' => '𖹑' [expected '𖹑'] (line 3150) # Converting '𖹲' => '𖹒' [expected '𖹒'] (line 3151) # Converting '𖹳' => '𖹓' [expected '𖹓'] (line 3152) # Converting '𖹴' => '𖹔' [expected '𖹔'] (line 3153) # Converting '𖹵' => '𖹕' [expected '𖹕'] (line 3154) # Converting '𖹶' => '𖹖' [expected '𖹖'] (line 3155) # Converting '𖹷' => '𖹗' [expected '𖹗'] (line 3156) # Converting '𖹸' => '𖹘' [expected '𖹘'] (line 3157) # Converting '𖹹' => '𖹙' [expected '𖹙'] (line 3158) # Converting '𖹺' => '𖹚' [expected '𖹚'] (line 3159) # Converting '𖹻' => '𖹛' [expected '𖹛'] (line 3160) # Converting '𖹼' => '𖹜' [expected '𖹜'] (line 3161) # Converting '𖹽' => '𖹝' [expected '𖹝'] (line 3162) # Converting '𖹾' => '𖹞' [expected '𖹞'] (line 3163) # Converting '𖹿' => '𖹟' [expected '𖹟'] (line 3164) # Converting '𖺠' => '𖺠' [expected '𖺠'] (line 3165) # Converting '𖺡' => '𖺡' [expected '𖺡'] (line 3166) # Converting '𖺢' => '𖺢' [expected '𖺢'] (line 3167) # Converting '𖺣' => '𖺣' [expected '𖺣'] (line 3168) # Converting '𖺤' => '𖺤' [expected '𖺤'] (line 3169) # Converting '𖺥' => '𖺥' [expected '𖺥'] (line 3170) # Converting '𖺦' => '𖺦' [expected '𖺦'] (line 3171) # Converting '𖺧' => '𖺧' [expected '𖺧'] (line 3172) # Converting '𖺨' => '𖺨' [expected '𖺨'] (line 3173) # Converting '𖺩' => '𖺩' [expected '𖺩'] (line 3174) # Converting '𖺪' => '𖺪' [expected '𖺪'] (line 3175) # Converting '𖺫' => '𖺫' [expected '𖺫'] (line 3176) # Converting '𖺬' => '𖺬' [expected '𖺬'] (line 3177) # Converting '𖺭' => '𖺭' [expected '𖺭'] (line 3178) # Converting '𖺮' => '𖺮' [expected '𖺮'] (line 3179) # Converting '𖺯' => '𖺯' [expected '𖺯'] (line 3180) # Converting '𖺰' => '𖺰' [expected '𖺰'] (line 3181) # Converting '𖺱' => '𖺱' [expected '𖺱'] (line 3182) # Converting '𖺲' => '𖺲' [expected '𖺲'] (line 3183) # Converting '𖺳' => '𖺳' [expected '𖺳'] (line 3184) # Converting '𖺴' => '𖺴' [expected '𖺴'] (line 3185) # Converting '𖺵' => '𖺵' [expected '𖺵'] (line 3186) # Converting '𖺶' => '𖺶' [expected '𖺶'] (line 3187) # Converting '𖺷' => '𖺷' [expected '𖺷'] (line 3188) # Converting '𖺸' => '𖺸' [expected '𖺸'] (line 3189) # Converting '𖺻' => '𖺠' [expected '𖺠'] (line 3190) # Converting '𖺼' => '𖺡' [expected '𖺡'] (line 3191) # Converting '𖺽' => '𖺢' [expected '𖺢'] (line 3192) # Converting '𖺾' => '𖺣' [expected '𖺣'] (line 3193) # Converting '𖺿' => '𖺤' [expected '𖺤'] (line 3194) # Converting '𖻀' => '𖺥' [expected '𖺥'] (line 3195) # Converting '𖻁' => '𖺦' [expected '𖺦'] (line 3196) # Converting '𖻂' => '𖺧' [expected '𖺧'] (line 3197) # Converting '𖻃' => '𖺨' [expected '𖺨'] (line 3198) # Converting '𖻄' => '𖺩' [expected '𖺩'] (line 3199) # Converting '𖻅' => '𖺪' [expected '𖺪'] (line 3200) # Converting '𖻆' => '𖺫' [expected '𖺫'] (line 3201) # Converting '𖻇' => '𖺬' [expected '𖺬'] (line 3202) # Converting '𖻈' => '𖺭' [expected '𖺭'] (line 3203) # Converting '𖻉' => '𖺮' [expected '𖺮'] (line 3204) # Converting '𖻊' => '𖺯' [expected '𖺯'] (line 3205) # Converting '𖻋' => '𖺰' [expected '𖺰'] (line 3206) # Converting '𖻌' => '𖺱' [expected '𖺱'] (line 3207) # Converting '𖻍' => '𖺲' [expected '𖺲'] (line 3208) # Converting '𖻎' => '𖺳' [expected '𖺳'] (line 3209) # Converting '𖻏' => '𖺴' [expected '𖺴'] (line 3210) # Converting '𖻐' => '𖺵' [expected '𖺵'] (line 3211) # Converting '𖻑' => '𖺶' [expected '𖺶'] (line 3212) # Converting '𖻒' => '𖺷' [expected '𖺷'] (line 3213) # Converting '𖻓' => '𖺸' [expected '𖺸'] (line 3214) # Converting '𝐀' => '𝐀' [expected '𝐀'] (line 3215) # Converting '𝐁' => '𝐁' [expected '𝐁'] (line 3216) # Converting '𝐂' => '𝐂' [expected '𝐂'] (line 3217) # Converting '𝐃' => '𝐃' [expected '𝐃'] (line 3218) # Converting '𝐄' => '𝐄' [expected '𝐄'] (line 3219) # Converting '𝐅' => '𝐅' [expected '𝐅'] (line 3220) # Converting '𝐆' => '𝐆' [expected '𝐆'] (line 3221) # Converting '𝐇' => '𝐇' [expected '𝐇'] (line 3222) # Converting '𝐈' => '𝐈' [expected '𝐈'] (line 3223) # Converting '𝐉' => '𝐉' [expected '𝐉'] (line 3224) # Converting '𝐊' => '𝐊' [expected '𝐊'] (line 3225) # Converting '𝐋' => '𝐋' [expected '𝐋'] (line 3226) # Converting '𝐌' => '𝐌' [expected '𝐌'] (line 3227) # Converting '𝐍' => '𝐍' [expected '𝐍'] (line 3228) # Converting '𝐎' => '𝐎' [expected '𝐎'] (line 3229) # Converting '𝐏' => '𝐏' [expected '𝐏'] (line 3230) # Converting '𝐐' => '𝐐' [expected '𝐐'] (line 3231) # Converting '𝐑' => '𝐑' [expected '𝐑'] (line 3232) # Converting '𝐒' => '𝐒' [expected '𝐒'] (line 3233) # Converting '𝐓' => '𝐓' [expected '𝐓'] (line 3234) # Converting '𝐔' => '𝐔' [expected '𝐔'] (line 3235) # Converting '𝐕' => '𝐕' [expected '𝐕'] (line 3236) # Converting '𝐖' => '𝐖' [expected '𝐖'] (line 3237) # Converting '𝐗' => '𝐗' [expected '𝐗'] (line 3238) # Converting '𝐘' => '𝐘' [expected '𝐘'] (line 3239) # Converting '𝐙' => '𝐙' [expected '𝐙'] (line 3240) # Converting '𝐚' => '𝐚' [expected '𝐚'] (line 3241) # Converting '𝐛' => '𝐛' [expected '𝐛'] (line 3242) # Converting '𝐜' => '𝐜' [expected '𝐜'] (line 3243) # Converting '𝐝' => '𝐝' [expected '𝐝'] (line 3244) # Converting '𝐞' => '𝐞' [expected '𝐞'] (line 3245) # Converting '𝐟' => '𝐟' [expected '𝐟'] (line 3246) # Converting '𝐠' => '𝐠' [expected '𝐠'] (line 3247) # Converting '𝐡' => '𝐡' [expected '𝐡'] (line 3248) # Converting '𝐢' => '𝐢' [expected '𝐢'] (line 3249) # Converting '𝐣' => '𝐣' [expected '𝐣'] (line 3250) # Converting '𝐤' => '𝐤' [expected '𝐤'] (line 3251) # Converting '𝐥' => '𝐥' [expected '𝐥'] (line 3252) # Converting '𝐦' => '𝐦' [expected '𝐦'] (line 3253) # Converting '𝐧' => '𝐧' [expected '𝐧'] (line 3254) # Converting '𝐨' => '𝐨' [expected '𝐨'] (line 3255) # Converting '𝐩' => '𝐩' [expected '𝐩'] (line 3256) # Converting '𝐪' => '𝐪' [expected '𝐪'] (line 3257) # Converting '𝐫' => '𝐫' [expected '𝐫'] (line 3258) # Converting '𝐬' => '𝐬' [expected '𝐬'] (line 3259) # Converting '𝐭' => '𝐭' [expected '𝐭'] (line 3260) # Converting '𝐮' => '𝐮' [expected '𝐮'] (line 3261) # Converting '𝐯' => '𝐯' [expected '𝐯'] (line 3262) # Converting '𝐰' => '𝐰' [expected '𝐰'] (line 3263) # Converting '𝐱' => '𝐱' [expected '𝐱'] (line 3264) # Converting '𝐲' => '𝐲' [expected '𝐲'] (line 3265) # Converting '𝐳' => '𝐳' [expected '𝐳'] (line 3266) # Converting '𝐴' => '𝐴' [expected '𝐴'] (line 3267) # Converting '𝐵' => '𝐵' [expected '𝐵'] (line 3268) # Converting '𝐶' => '𝐶' [expected '𝐶'] (line 3269) # Converting '𝐷' => '𝐷' [expected '𝐷'] (line 3270) # Converting '𝐸' => '𝐸' [expected '𝐸'] (line 3271) # Converting '𝐹' => '𝐹' [expected '𝐹'] (line 3272) # Converting '𝐺' => '𝐺' [expected '𝐺'] (line 3273) # Converting '𝐻' => '𝐻' [expected '𝐻'] (line 3274) # Converting '𝐼' => '𝐼' [expected '𝐼'] (line 3275) # Converting '𝐽' => '𝐽' [expected '𝐽'] (line 3276) # Converting '𝐾' => '𝐾' [expected '𝐾'] (line 3277) # Converting '𝐿' => '𝐿' [expected '𝐿'] (line 3278) # Converting '𝑀' => '𝑀' [expected '𝑀'] (line 3279) # Converting '𝑁' => '𝑁' [expected '𝑁'] (line 3280) # Converting '𝑂' => '𝑂' [expected '𝑂'] (line 3281) # Converting '𝑃' => '𝑃' [expected '𝑃'] (line 3282) # Converting '𝑄' => '𝑄' [expected '𝑄'] (line 3283) # Converting '𝑅' => '𝑅' [expected '𝑅'] (line 3284) # Converting '𝑆' => '𝑆' [expected '𝑆'] (line 3285) # Converting '𝑇' => '𝑇' [expected '𝑇'] (line 3286) # Converting '𝑈' => '𝑈' [expected '𝑈'] (line 3287) # Converting '𝑉' => '𝑉' [expected '𝑉'] (line 3288) # Converting '𝑊' => '𝑊' [expected '𝑊'] (line 3289) # Converting '𝑋' => '𝑋' [expected '𝑋'] (line 3290) # Converting '𝑌' => '𝑌' [expected '𝑌'] (line 3291) # Converting '𝑍' => '𝑍' [expected '𝑍'] (line 3292) # Converting '𝑎' => '𝑎' [expected '𝑎'] (line 3293) # Converting '𝑏' => '𝑏' [expected '𝑏'] (line 3294) # Converting '𝑐' => '𝑐' [expected '𝑐'] (line 3295) # Converting '𝑑' => '𝑑' [expected '𝑑'] (line 3296) # Converting '𝑒' => '𝑒' [expected '𝑒'] (line 3297) # Converting '𝑓' => '𝑓' [expected '𝑓'] (line 3298) # Converting '𝑔' => '𝑔' [expected '𝑔'] (line 3299) # Converting '𝑖' => '𝑖' [expected '𝑖'] (line 3300) # Converting '𝑗' => '𝑗' [expected '𝑗'] (line 3301) # Converting '𝑘' => '𝑘' [expected '𝑘'] (line 3302) # Converting '𝑙' => '𝑙' [expected '𝑙'] (line 3303) # Converting '𝑚' => '𝑚' [expected '𝑚'] (line 3304) # Converting '𝑛' => '𝑛' [expected '𝑛'] (line 3305) # Converting '𝑜' => '𝑜' [expected '𝑜'] (line 3306) # Converting '𝑝' => '𝑝' [expected '𝑝'] (line 3307) # Converting '𝑞' => '𝑞' [expected '𝑞'] (line 3308) # Converting '𝑟' => '𝑟' [expected '𝑟'] (line 3309) # Converting '𝑠' => '𝑠' [expected '𝑠'] (line 3310) # Converting '𝑡' => '𝑡' [expected '𝑡'] (line 3311) # Converting '𝑢' => '𝑢' [expected '𝑢'] (line 3312) # Converting '𝑣' => '𝑣' [expected '𝑣'] (line 3313) # Converting '𝑤' => '𝑤' [expected '𝑤'] (line 3314) # Converting '𝑥' => '𝑥' [expected '𝑥'] (line 3315) # Converting '𝑦' => '𝑦' [expected '𝑦'] (line 3316) # Converting '𝑧' => '𝑧' [expected '𝑧'] (line 3317) # Converting '𝑨' => '𝑨' [expected '𝑨'] (line 3318) # Converting '𝑩' => '𝑩' [expected '𝑩'] (line 3319) # Converting '𝑪' => '𝑪' [expected '𝑪'] (line 3320) # Converting '𝑫' => '𝑫' [expected '𝑫'] (line 3321) # Converting '𝑬' => '𝑬' [expected '𝑬'] (line 3322) # Converting '𝑭' => '𝑭' [expected '𝑭'] (line 3323) # Converting '𝑮' => '𝑮' [expected '𝑮'] (line 3324) # Converting '𝑯' => '𝑯' [expected '𝑯'] (line 3325) # Converting '𝑰' => '𝑰' [expected '𝑰'] (line 3326) # Converting '𝑱' => '𝑱' [expected '𝑱'] (line 3327) # Converting '𝑲' => '𝑲' [expected '𝑲'] (line 3328) # Converting '𝑳' => '𝑳' [expected '𝑳'] (line 3329) # Converting '𝑴' => '𝑴' [expected '𝑴'] (line 3330) # Converting '𝑵' => '𝑵' [expected '𝑵'] (line 3331) # Converting '𝑶' => '𝑶' [expected '𝑶'] (line 3332) # Converting '𝑷' => '𝑷' [expected '𝑷'] (line 3333) # Converting '𝑸' => '𝑸' [expected '𝑸'] (line 3334) # Converting '𝑹' => '𝑹' [expected '𝑹'] (line 3335) # Converting '𝑺' => '𝑺' [expected '𝑺'] (line 3336) # Converting '𝑻' => '𝑻' [expected '𝑻'] (line 3337) # Converting '𝑼' => '𝑼' [expected '𝑼'] (line 3338) # Converting '𝑽' => '𝑽' [expected '𝑽'] (line 3339) # Converting '𝑾' => '𝑾' [expected '𝑾'] (line 3340) # Converting '𝑿' => '𝑿' [expected '𝑿'] (line 3341) # Converting '𝒀' => '𝒀' [expected '𝒀'] (line 3342) # Converting '𝒁' => '𝒁' [expected '𝒁'] (line 3343) # Converting '𝒂' => '𝒂' [expected '𝒂'] (line 3344) # Converting '𝒃' => '𝒃' [expected '𝒃'] (line 3345) # Converting '𝒄' => '𝒄' [expected '𝒄'] (line 3346) # Converting '𝒅' => '𝒅' [expected '𝒅'] (line 3347) # Converting '𝒆' => '𝒆' [expected '𝒆'] (line 3348) # Converting '𝒇' => '𝒇' [expected '𝒇'] (line 3349) # Converting '𝒈' => '𝒈' [expected '𝒈'] (line 3350) # Converting '𝒉' => '𝒉' [expected '𝒉'] (line 3351) # Converting '𝒊' => '𝒊' [expected '𝒊'] (line 3352) # Converting '𝒋' => '𝒋' [expected '𝒋'] (line 3353) # Converting '𝒌' => '𝒌' [expected '𝒌'] (line 3354) # Converting '𝒍' => '𝒍' [expected '𝒍'] (line 3355) # Converting '𝒎' => '𝒎' [expected '𝒎'] (line 3356) # Converting '𝒏' => '𝒏' [expected '𝒏'] (line 3357) # Converting '𝒐' => '𝒐' [expected '𝒐'] (line 3358) # Converting '𝒑' => '𝒑' [expected '𝒑'] (line 3359) # Converting '𝒒' => '𝒒' [expected '𝒒'] (line 3360) # Converting '𝒓' => '𝒓' [expected '𝒓'] (line 3361) # Converting '𝒔' => '𝒔' [expected '𝒔'] (line 3362) # Converting '𝒕' => '𝒕' [expected '𝒕'] (line 3363) # Converting '𝒖' => '𝒖' [expected '𝒖'] (line 3364) # Converting '𝒗' => '𝒗' [expected '𝒗'] (line 3365) # Converting '𝒘' => '𝒘' [expected '𝒘'] (line 3366) # Converting '𝒙' => '𝒙' [expected '𝒙'] (line 3367) # Converting '𝒚' => '𝒚' [expected '𝒚'] (line 3368) # Converting '𝒛' => '𝒛' [expected '𝒛'] (line 3369) # Converting '𝒜' => '𝒜' [expected '𝒜'] (line 3370) # Converting '𝒞' => '𝒞' [expected '𝒞'] (line 3371) # Converting '𝒟' => '𝒟' [expected '𝒟'] (line 3372) # Converting '𝒢' => '𝒢' [expected '𝒢'] (line 3373) # Converting '𝒥' => '𝒥' [expected '𝒥'] (line 3374) # Converting '𝒦' => '𝒦' [expected '𝒦'] (line 3375) # Converting '𝒩' => '𝒩' [expected '𝒩'] (line 3376) # Converting '𝒪' => '𝒪' [expected '𝒪'] (line 3377) # Converting '𝒫' => '𝒫' [expected '𝒫'] (line 3378) # Converting '𝒬' => '𝒬' [expected '𝒬'] (line 3379) # Converting '𝒮' => '𝒮' [expected '𝒮'] (line 3380) # Converting '𝒯' => '𝒯' [expected '𝒯'] (line 3381) # Converting '𝒰' => '𝒰' [expected '𝒰'] (line 3382) # Converting '𝒱' => '𝒱' [expected '𝒱'] (line 3383) # Converting '𝒲' => '𝒲' [expected '𝒲'] (line 3384) # Converting '𝒳' => '𝒳' [expected '𝒳'] (line 3385) # Converting '𝒴' => '𝒴' [expected '𝒴'] (line 3386) # Converting '𝒵' => '𝒵' [expected '𝒵'] (line 3387) # Converting '𝒶' => '𝒶' [expected '𝒶'] (line 3388) # Converting '𝒷' => '𝒷' [expected '𝒷'] (line 3389) # Converting '𝒸' => '𝒸' [expected '𝒸'] (line 3390) # Converting '𝒹' => '𝒹' [expected '𝒹'] (line 3391) # Converting '𝒻' => '𝒻' [expected '𝒻'] (line 3392) # Converting '𝒽' => '𝒽' [expected '𝒽'] (line 3393) # Converting '𝒾' => '𝒾' [expected '𝒾'] (line 3394) # Converting '𝒿' => '𝒿' [expected '𝒿'] (line 3395) # Converting '𝓀' => '𝓀' [expected '𝓀'] (line 3396) # Converting '𝓁' => '𝓁' [expected '𝓁'] (line 3397) # Converting '𝓂' => '𝓂' [expected '𝓂'] (line 3398) # Converting '𝓃' => '𝓃' [expected '𝓃'] (line 3399) # Converting '𝓅' => '𝓅' [expected '𝓅'] (line 3400) # Converting '𝓆' => '𝓆' [expected '𝓆'] (line 3401) # Converting '𝓇' => '𝓇' [expected '𝓇'] (line 3402) # Converting '𝓈' => '𝓈' [expected '𝓈'] (line 3403) # Converting '𝓉' => '𝓉' [expected '𝓉'] (line 3404) # Converting '𝓊' => '𝓊' [expected '𝓊'] (line 3405) # Converting '𝓋' => '𝓋' [expected '𝓋'] (line 3406) # Converting '𝓌' => '𝓌' [expected '𝓌'] (line 3407) # Converting '𝓍' => '𝓍' [expected '𝓍'] (line 3408) # Converting '𝓎' => '𝓎' [expected '𝓎'] (line 3409) # Converting '𝓏' => '𝓏' [expected '𝓏'] (line 3410) # Converting '𝓐' => '𝓐' [expected '𝓐'] (line 3411) # Converting '𝓑' => '𝓑' [expected '𝓑'] (line 3412) # Converting '𝓒' => '𝓒' [expected '𝓒'] (line 3413) # Converting '𝓓' => '𝓓' [expected '𝓓'] (line 3414) # Converting '𝓔' => '𝓔' [expected '𝓔'] (line 3415) # Converting '𝓕' => '𝓕' [expected '𝓕'] (line 3416) # Converting '𝓖' => '𝓖' [expected '𝓖'] (line 3417) # Converting '𝓗' => '𝓗' [expected '𝓗'] (line 3418) # Converting '𝓘' => '𝓘' [expected '𝓘'] (line 3419) # Converting '𝓙' => '𝓙' [expected '𝓙'] (line 3420) # Converting '𝓚' => '𝓚' [expected '𝓚'] (line 3421) # Converting '𝓛' => '𝓛' [expected '𝓛'] (line 3422) # Converting '𝓜' => '𝓜' [expected '𝓜'] (line 3423) # Converting '𝓝' => '𝓝' [expected '𝓝'] (line 3424) # Converting '𝓞' => '𝓞' [expected '𝓞'] (line 3425) # Converting '𝓟' => '𝓟' [expected '𝓟'] (line 3426) # Converting '𝓠' => '𝓠' [expected '𝓠'] (line 3427) # Converting '𝓡' => '𝓡' [expected '𝓡'] (line 3428) # Converting '𝓢' => '𝓢' [expected '𝓢'] (line 3429) # Converting '𝓣' => '𝓣' [expected '𝓣'] (line 3430) # Converting '𝓤' => '𝓤' [expected '𝓤'] (line 3431) # Converting '𝓥' => '𝓥' [expected '𝓥'] (line 3432) # Converting '𝓦' => '𝓦' [expected '𝓦'] (line 3433) # Converting '𝓧' => '𝓧' [expected '𝓧'] (line 3434) # Converting '𝓨' => '𝓨' [expected '𝓨'] (line 3435) # Converting '𝓩' => '𝓩' [expected '𝓩'] (line 3436) # Converting '𝓪' => '𝓪' [expected '𝓪'] (line 3437) # Converting '𝓫' => '𝓫' [expected '𝓫'] (line 3438) # Converting '𝓬' => '𝓬' [expected '𝓬'] (line 3439) # Converting '𝓭' => '𝓭' [expected '𝓭'] (line 3440) # Converting '𝓮' => '𝓮' [expected '𝓮'] (line 3441) # Converting '𝓯' => '𝓯' [expected '𝓯'] (line 3442) # Converting '𝓰' => '𝓰' [expected '𝓰'] (line 3443) # Converting '𝓱' => '𝓱' [expected '𝓱'] (line 3444) # Converting '𝓲' => '𝓲' [expected '𝓲'] (line 3445) # Converting '𝓳' => '𝓳' [expected '𝓳'] (line 3446) # Converting '𝓴' => '𝓴' [expected '𝓴'] (line 3447) # Converting '𝓵' => '𝓵' [expected '𝓵'] (line 3448) # Converting '𝓶' => '𝓶' [expected '𝓶'] (line 3449) # Converting '𝓷' => '𝓷' [expected '𝓷'] (line 3450) # Converting '𝓸' => '𝓸' [expected '𝓸'] (line 3451) # Converting '𝓹' => '𝓹' [expected '𝓹'] (line 3452) # Converting '𝓺' => '𝓺' [expected '𝓺'] (line 3453) # Converting '𝓻' => '𝓻' [expected '𝓻'] (line 3454) # Converting '𝓼' => '𝓼' [expected '𝓼'] (line 3455) # Converting '𝓽' => '𝓽' [expected '𝓽'] (line 3456) # Converting '𝓾' => '𝓾' [expected '𝓾'] (line 3457) # Converting '𝓿' => '𝓿' [expected '𝓿'] (line 3458) # Converting '𝔀' => '𝔀' [expected '𝔀'] (line 3459) # Converting '𝔁' => '𝔁' [expected '𝔁'] (line 3460) # Converting '𝔂' => '𝔂' [expected '𝔂'] (line 3461) # Converting '𝔃' => '𝔃' [expected '𝔃'] (line 3462) # Converting '𝔄' => '𝔄' [expected '𝔄'] (line 3463) # Converting '𝔅' => '𝔅' [expected '𝔅'] (line 3464) # Converting '𝔇' => '𝔇' [expected '𝔇'] (line 3465) # Converting '𝔈' => '𝔈' [expected '𝔈'] (line 3466) # Converting '𝔉' => '𝔉' [expected '𝔉'] (line 3467) # Converting '𝔊' => '𝔊' [expected '𝔊'] (line 3468) # Converting '𝔍' => '𝔍' [expected '𝔍'] (line 3469) # Converting '𝔎' => '𝔎' [expected '𝔎'] (line 3470) # Converting '𝔏' => '𝔏' [expected '𝔏'] (line 3471) # Converting '𝔐' => '𝔐' [expected '𝔐'] (line 3472) # Converting '𝔑' => '𝔑' [expected '𝔑'] (line 3473) # Converting '𝔒' => '𝔒' [expected '𝔒'] (line 3474) # Converting '𝔓' => '𝔓' [expected '𝔓'] (line 3475) # Converting '𝔔' => '𝔔' [expected '𝔔'] (line 3476) # Converting '𝔖' => '𝔖' [expected '𝔖'] (line 3477) # Converting '𝔗' => '𝔗' [expected '𝔗'] (line 3478) # Converting '𝔘' => '𝔘' [expected '𝔘'] (line 3479) # Converting '𝔙' => '𝔙' [expected '𝔙'] (line 3480) # Converting '𝔚' => '𝔚' [expected '𝔚'] (line 3481) # Converting '𝔛' => '𝔛' [expected '𝔛'] (line 3482) # Converting '𝔜' => '𝔜' [expected '𝔜'] (line 3483) # Converting '𝔞' => '𝔞' [expected '𝔞'] (line 3484) # Converting '𝔟' => '𝔟' [expected '𝔟'] (line 3485) # Converting '𝔠' => '𝔠' [expected '𝔠'] (line 3486) # Converting '𝔡' => '𝔡' [expected '𝔡'] (line 3487) # Converting '𝔢' => '𝔢' [expected '𝔢'] (line 3488) # Converting '𝔣' => '𝔣' [expected '𝔣'] (line 3489) # Converting '𝔤' => '𝔤' [expected '𝔤'] (line 3490) # Converting '𝔥' => '𝔥' [expected '𝔥'] (line 3491) # Converting '𝔦' => '𝔦' [expected '𝔦'] (line 3492) # Converting '𝔧' => '𝔧' [expected '𝔧'] (line 3493) # Converting '𝔨' => '𝔨' [expected '𝔨'] (line 3494) # Converting '𝔩' => '𝔩' [expected '𝔩'] (line 3495) # Converting '𝔪' => '𝔪' [expected '𝔪'] (line 3496) # Converting '𝔫' => '𝔫' [expected '𝔫'] (line 3497) # Converting '𝔬' => '𝔬' [expected '𝔬'] (line 3498) # Converting '𝔭' => '𝔭' [expected '𝔭'] (line 3499) # Converting '𝔮' => '𝔮' [expected '𝔮'] (line 3500) # Converting '𝔯' => '𝔯' [expected '𝔯'] (line 3501) # Converting '𝔰' => '𝔰' [expected '𝔰'] (line 3502) # Converting '𝔱' => '𝔱' [expected '𝔱'] (line 3503) # Converting '𝔲' => '𝔲' [expected '𝔲'] (line 3504) # Converting '𝔳' => '𝔳' [expected '𝔳'] (line 3505) # Converting '𝔴' => '𝔴' [expected '𝔴'] (line 3506) # Converting '𝔵' => '𝔵' [expected '𝔵'] (line 3507) # Converting '𝔶' => '𝔶' [expected '𝔶'] (line 3508) # Converting '𝔷' => '𝔷' [expected '𝔷'] (line 3509) # Converting '𝔸' => '𝔸' [expected '𝔸'] (line 3510) # Converting '𝔹' => '𝔹' [expected '𝔹'] (line 3511) # Converting '𝔻' => '𝔻' [expected '𝔻'] (line 3512) # Converting '𝔼' => '𝔼' [expected '𝔼'] (line 3513) # Converting '𝔽' => '𝔽' [expected '𝔽'] (line 3514) # Converting '𝔾' => '𝔾' [expected '𝔾'] (line 3515) # Converting '𝕀' => '𝕀' [expected '𝕀'] (line 3516) # Converting '𝕁' => '𝕁' [expected '𝕁'] (line 3517) # Converting '𝕂' => '𝕂' [expected '𝕂'] (line 3518) # Converting '𝕃' => '𝕃' [expected '𝕃'] (line 3519) # Converting '𝕄' => '𝕄' [expected '𝕄'] (line 3520) # Converting '𝕆' => '𝕆' [expected '𝕆'] (line 3521) # Converting '𝕊' => '𝕊' [expected '𝕊'] (line 3522) # Converting '𝕋' => '𝕋' [expected '𝕋'] (line 3523) # Converting '𝕌' => '𝕌' [expected '𝕌'] (line 3524) # Converting '𝕍' => '𝕍' [expected '𝕍'] (line 3525) # Converting '𝕎' => '𝕎' [expected '𝕎'] (line 3526) # Converting '𝕏' => '𝕏' [expected '𝕏'] (line 3527) # Converting '𝕐' => '𝕐' [expected '𝕐'] (line 3528) # Converting '𝕒' => '𝕒' [expected '𝕒'] (line 3529) # Converting '𝕓' => '𝕓' [expected '𝕓'] (line 3530) # Converting '𝕔' => '𝕔' [expected '𝕔'] (line 3531) # Converting '𝕕' => '𝕕' [expected '𝕕'] (line 3532) # Converting '𝕖' => '𝕖' [expected '𝕖'] (line 3533) # Converting '𝕗' => '𝕗' [expected '𝕗'] (line 3534) # Converting '𝕘' => '𝕘' [expected '𝕘'] (line 3535) # Converting '𝕙' => '𝕙' [expected '𝕙'] (line 3536) # Converting '𝕚' => '𝕚' [expected '𝕚'] (line 3537) # Converting '𝕛' => '𝕛' [expected '𝕛'] (line 3538) # Converting '𝕜' => '𝕜' [expected '𝕜'] (line 3539) # Converting '𝕝' => '𝕝' [expected '𝕝'] (line 3540) # Converting '𝕞' => '𝕞' [expected '𝕞'] (line 3541) # Converting '𝕟' => '𝕟' [expected '𝕟'] (line 3542) # Converting '𝕠' => '𝕠' [expected '𝕠'] (line 3543) # Converting '𝕡' => '𝕡' [expected '𝕡'] (line 3544) # Converting '𝕢' => '𝕢' [expected '𝕢'] (line 3545) # Converting '𝕣' => '𝕣' [expected '𝕣'] (line 3546) # Converting '𝕤' => '𝕤' [expected '𝕤'] (line 3547) # Converting '𝕥' => '𝕥' [expected '𝕥'] (line 3548) # Converting '𝕦' => '𝕦' [expected '𝕦'] (line 3549) # Converting '𝕧' => '𝕧' [expected '𝕧'] (line 3550) # Converting '𝕨' => '𝕨' [expected '𝕨'] (line 3551) # Converting '𝕩' => '𝕩' [expected '𝕩'] (line 3552) # Converting '𝕪' => '𝕪' [expected '𝕪'] (line 3553) # Converting '𝕫' => '𝕫' [expected '𝕫'] (line 3554) # Converting '𝕬' => '𝕬' [expected '𝕬'] (line 3555) # Converting '𝕭' => '𝕭' [expected '𝕭'] (line 3556) # Converting '𝕮' => '𝕮' [expected '𝕮'] (line 3557) # Converting '𝕯' => '𝕯' [expected '𝕯'] (line 3558) # Converting '𝕰' => '𝕰' [expected '𝕰'] (line 3559) # Converting '𝕱' => '𝕱' [expected '𝕱'] (line 3560) # Converting '𝕲' => '𝕲' [expected '𝕲'] (line 3561) # Converting '𝕳' => '𝕳' [expected '𝕳'] (line 3562) # Converting '𝕴' => '𝕴' [expected '𝕴'] (line 3563) # Converting '𝕵' => '𝕵' [expected '𝕵'] (line 3564) # Converting '𝕶' => '𝕶' [expected '𝕶'] (line 3565) # Converting '𝕷' => '𝕷' [expected '𝕷'] (line 3566) # Converting '𝕸' => '𝕸' [expected '𝕸'] (line 3567) # Converting '𝕹' => '𝕹' [expected '𝕹'] (line 3568) # Converting '𝕺' => '𝕺' [expected '𝕺'] (line 3569) # Converting '𝕻' => '𝕻' [expected '𝕻'] (line 3570) # Converting '𝕼' => '𝕼' [expected '𝕼'] (line 3571) # Converting '𝕽' => '𝕽' [expected '𝕽'] (line 3572) # Converting '𝕾' => '𝕾' [expected '𝕾'] (line 3573) # Converting '𝕿' => '𝕿' [expected '𝕿'] (line 3574) # Converting '𝖀' => '𝖀' [expected '𝖀'] (line 3575) # Converting '𝖁' => '𝖁' [expected '𝖁'] (line 3576) # Converting '𝖂' => '𝖂' [expected '𝖂'] (line 3577) # Converting '𝖃' => '𝖃' [expected '𝖃'] (line 3578) # Converting '𝖄' => '𝖄' [expected '𝖄'] (line 3579) # Converting '𝖅' => '𝖅' [expected '𝖅'] (line 3580) # Converting '𝖆' => '𝖆' [expected '𝖆'] (line 3581) # Converting '𝖇' => '𝖇' [expected '𝖇'] (line 3582) # Converting '𝖈' => '𝖈' [expected '𝖈'] (line 3583) # Converting '𝖉' => '𝖉' [expected '𝖉'] (line 3584) # Converting '𝖊' => '𝖊' [expected '𝖊'] (line 3585) # Converting '𝖋' => '𝖋' [expected '𝖋'] (line 3586) # Converting '𝖌' => '𝖌' [expected '𝖌'] (line 3587) # Converting '𝖍' => '𝖍' [expected '𝖍'] (line 3588) # Converting '𝖎' => '𝖎' [expected '𝖎'] (line 3589) # Converting '𝖏' => '𝖏' [expected '𝖏'] (line 3590) # Converting '𝖐' => '𝖐' [expected '𝖐'] (line 3591) # Converting '𝖑' => '𝖑' [expected '𝖑'] (line 3592) # Converting '𝖒' => '𝖒' [expected '𝖒'] (line 3593) # Converting '𝖓' => '𝖓' [expected '𝖓'] (line 3594) # Converting '𝖔' => '𝖔' [expected '𝖔'] (line 3595) # Converting '𝖕' => '𝖕' [expected '𝖕'] (line 3596) # Converting '𝖖' => '𝖖' [expected '𝖖'] (line 3597) # Converting '𝖗' => '𝖗' [expected '𝖗'] (line 3598) # Converting '𝖘' => '𝖘' [expected '𝖘'] (line 3599) # Converting '𝖙' => '𝖙' [expected '𝖙'] (line 3600) # Converting '𝖚' => '𝖚' [expected '𝖚'] (line 3601) # Converting '𝖛' => '𝖛' [expected '𝖛'] (line 3602) # Converting '𝖜' => '𝖜' [expected '𝖜'] (line 3603) # Converting '𝖝' => '𝖝' [expected '𝖝'] (line 3604) # Converting '𝖞' => '𝖞' [expected '𝖞'] (line 3605) # Converting '𝖟' => '𝖟' [expected '𝖟'] (line 3606) # Converting '𝖠' => '𝖠' [expected '𝖠'] (line 3607) # Converting '𝖡' => '𝖡' [expected '𝖡'] (line 3608) # Converting '𝖢' => '𝖢' [expected '𝖢'] (line 3609) # Converting '𝖣' => '𝖣' [expected '𝖣'] (line 3610) # Converting '𝖤' => '𝖤' [expected '𝖤'] (line 3611) # Converting '𝖥' => '𝖥' [expected '𝖥'] (line 3612) # Converting '𝖦' => '𝖦' [expected '𝖦'] (line 3613) # Converting '𝖧' => '𝖧' [expected '𝖧'] (line 3614) # Converting '𝖨' => '𝖨' [expected '𝖨'] (line 3615) # Converting '𝖩' => '𝖩' [expected '𝖩'] (line 3616) # Converting '𝖪' => '𝖪' [expected '𝖪'] (line 3617) # Converting '𝖫' => '𝖫' [expected '𝖫'] (line 3618) # Converting '𝖬' => '𝖬' [expected '𝖬'] (line 3619) # Converting '𝖭' => '𝖭' [expected '𝖭'] (line 3620) # Converting '𝖮' => '𝖮' [expected '𝖮'] (line 3621) # Converting '𝖯' => '𝖯' [expected '𝖯'] (line 3622) # Converting '𝖰' => '𝖰' [expected '𝖰'] (line 3623) # Converting '𝖱' => '𝖱' [expected '𝖱'] (line 3624) # Converting '𝖲' => '𝖲' [expected '𝖲'] (line 3625) # Converting '𝖳' => '𝖳' [expected '𝖳'] (line 3626) # Converting '𝖴' => '𝖴' [expected '𝖴'] (line 3627) # Converting '𝖵' => '𝖵' [expected '𝖵'] (line 3628) # Converting '𝖶' => '𝖶' [expected '𝖶'] (line 3629) # Converting '𝖷' => '𝖷' [expected '𝖷'] (line 3630) # Converting '𝖸' => '𝖸' [expected '𝖸'] (line 3631) # Converting '𝖹' => '𝖹' [expected '𝖹'] (line 3632) # Converting '𝖺' => '𝖺' [expected '𝖺'] (line 3633) # Converting '𝖻' => '𝖻' [expected '𝖻'] (line 3634) # Converting '𝖼' => '𝖼' [expected '𝖼'] (line 3635) # Converting '𝖽' => '𝖽' [expected '𝖽'] (line 3636) # Converting '𝖾' => '𝖾' [expected '𝖾'] (line 3637) # Converting '𝖿' => '𝖿' [expected '𝖿'] (line 3638) # Converting '𝗀' => '𝗀' [expected '𝗀'] (line 3639) # Converting '𝗁' => '𝗁' [expected '𝗁'] (line 3640) # Converting '𝗂' => '𝗂' [expected '𝗂'] (line 3641) # Converting '𝗃' => '𝗃' [expected '𝗃'] (line 3642) # Converting '𝗄' => '𝗄' [expected '𝗄'] (line 3643) # Converting '𝗅' => '𝗅' [expected '𝗅'] (line 3644) # Converting '𝗆' => '𝗆' [expected '𝗆'] (line 3645) # Converting '𝗇' => '𝗇' [expected '𝗇'] (line 3646) # Converting '𝗈' => '𝗈' [expected '𝗈'] (line 3647) # Converting '𝗉' => '𝗉' [expected '𝗉'] (line 3648) # Converting '𝗊' => '𝗊' [expected '𝗊'] (line 3649) # Converting '𝗋' => '𝗋' [expected '𝗋'] (line 3650) # Converting '𝗌' => '𝗌' [expected '𝗌'] (line 3651) # Converting '𝗍' => '𝗍' [expected '𝗍'] (line 3652) # Converting '𝗎' => '𝗎' [expected '𝗎'] (line 3653) # Converting '𝗏' => '𝗏' [expected '𝗏'] (line 3654) # Converting '𝗐' => '𝗐' [expected '𝗐'] (line 3655) # Converting '𝗑' => '𝗑' [expected '𝗑'] (line 3656) # Converting '𝗒' => '𝗒' [expected '𝗒'] (line 3657) # Converting '𝗓' => '𝗓' [expected '𝗓'] (line 3658) # Converting '𝗔' => '𝗔' [expected '𝗔'] (line 3659) # Converting '𝗕' => '𝗕' [expected '𝗕'] (line 3660) # Converting '𝗖' => '𝗖' [expected '𝗖'] (line 3661) # Converting '𝗗' => '𝗗' [expected '𝗗'] (line 3662) # Converting '𝗘' => '𝗘' [expected '𝗘'] (line 3663) # Converting '𝗙' => '𝗙' [expected '𝗙'] (line 3664) # Converting '𝗚' => '𝗚' [expected '𝗚'] (line 3665) # Converting '𝗛' => '𝗛' [expected '𝗛'] (line 3666) # Converting '𝗜' => '𝗜' [expected '𝗜'] (line 3667) # Converting '𝗝' => '𝗝' [expected '𝗝'] (line 3668) # Converting '𝗞' => '𝗞' [expected '𝗞'] (line 3669) # Converting '𝗟' => '𝗟' [expected '𝗟'] (line 3670) # Converting '𝗠' => '𝗠' [expected '𝗠'] (line 3671) # Converting '𝗡' => '𝗡' [expected '𝗡'] (line 3672) # Converting '𝗢' => '𝗢' [expected '𝗢'] (line 3673) # Converting '𝗣' => '𝗣' [expected '𝗣'] (line 3674) # Converting '𝗤' => '𝗤' [expected '𝗤'] (line 3675) # Converting '𝗥' => '𝗥' [expected '𝗥'] (line 3676) # Converting '𝗦' => '𝗦' [expected '𝗦'] (line 3677) # Converting '𝗧' => '𝗧' [expected '𝗧'] (line 3678) # Converting '𝗨' => '𝗨' [expected '𝗨'] (line 3679) # Converting '𝗩' => '𝗩' [expected '𝗩'] (line 3680) # Converting '𝗪' => '𝗪' [expected '𝗪'] (line 3681) # Converting '𝗫' => '𝗫' [expected '𝗫'] (line 3682) # Converting '𝗬' => '𝗬' [expected '𝗬'] (line 3683) # Converting '𝗭' => '𝗭' [expected '𝗭'] (line 3684) # Converting '𝗮' => '𝗮' [expected '𝗮'] (line 3685) # Converting '𝗯' => '𝗯' [expected '𝗯'] (line 3686) # Converting '𝗰' => '𝗰' [expected '𝗰'] (line 3687) # Converting '𝗱' => '𝗱' [expected '𝗱'] (line 3688) # Converting '𝗲' => '𝗲' [expected '𝗲'] (line 3689) # Converting '𝗳' => '𝗳' [expected '𝗳'] (line 3690) # Converting '𝗴' => '𝗴' [expected '𝗴'] (line 3691) # Converting '𝗵' => '𝗵' [expected '𝗵'] (line 3692) # Converting '𝗶' => '𝗶' [expected '𝗶'] (line 3693) # Converting '𝗷' => '𝗷' [expected '𝗷'] (line 3694) # Converting '𝗸' => '𝗸' [expected '𝗸'] (line 3695) # Converting '𝗹' => '𝗹' [expected '𝗹'] (line 3696) # Converting '𝗺' => '𝗺' [expected '𝗺'] (line 3697) # Converting '𝗻' => '𝗻' [expected '𝗻'] (line 3698) # Converting '𝗼' => '𝗼' [expected '𝗼'] (line 3699) # Converting '𝗽' => '𝗽' [expected '𝗽'] (line 3700) # Converting '𝗾' => '𝗾' [expected '𝗾'] (line 3701) # Converting '𝗿' => '𝗿' [expected '𝗿'] (line 3702) # Converting '𝘀' => '𝘀' [expected '𝘀'] (line 3703) # Converting '𝘁' => '𝘁' [expected '𝘁'] (line 3704) # Converting '𝘂' => '𝘂' [expected '𝘂'] (line 3705) # Converting '𝘃' => '𝘃' [expected '𝘃'] (line 3706) # Converting '𝘄' => '𝘄' [expected '𝘄'] (line 3707) # Converting '𝘅' => '𝘅' [expected '𝘅'] (line 3708) # Converting '𝘆' => '𝘆' [expected '𝘆'] (line 3709) # Converting '𝘇' => '𝘇' [expected '𝘇'] (line 3710) # Converting '𝘈' => '𝘈' [expected '𝘈'] (line 3711) # Converting '𝘉' => '𝘉' [expected '𝘉'] (line 3712) # Converting '𝘊' => '𝘊' [expected '𝘊'] (line 3713) # Converting '𝘋' => '𝘋' [expected '𝘋'] (line 3714) # Converting '𝘌' => '𝘌' [expected '𝘌'] (line 3715) # Converting '𝘍' => '𝘍' [expected '𝘍'] (line 3716) # Converting '𝘎' => '𝘎' [expected '𝘎'] (line 3717) # Converting '𝘏' => '𝘏' [expected '𝘏'] (line 3718) # Converting '𝘐' => '𝘐' [expected '𝘐'] (line 3719) # Converting '𝘑' => '𝘑' [expected '𝘑'] (line 3720) # Converting '𝘒' => '𝘒' [expected '𝘒'] (line 3721) # Converting '𝘓' => '𝘓' [expected '𝘓'] (line 3722) # Converting '𝘔' => '𝘔' [expected '𝘔'] (line 3723) # Converting '𝘕' => '𝘕' [expected '𝘕'] (line 3724) # Converting '𝘖' => '𝘖' [expected '𝘖'] (line 3725) # Converting '𝘗' => '𝘗' [expected '𝘗'] (line 3726) # Converting '𝘘' => '𝘘' [expected '𝘘'] (line 3727) # Converting '𝘙' => '𝘙' [expected '𝘙'] (line 3728) # Converting '𝘚' => '𝘚' [expected '𝘚'] (line 3729) # Converting '𝘛' => '𝘛' [expected '𝘛'] (line 3730) # Converting '𝘜' => '𝘜' [expected '𝘜'] (line 3731) # Converting '𝘝' => '𝘝' [expected '𝘝'] (line 3732) # Converting '𝘞' => '𝘞' [expected '𝘞'] (line 3733) # Converting '𝘟' => '𝘟' [expected '𝘟'] (line 3734) # Converting '𝘠' => '𝘠' [expected '𝘠'] (line 3735) # Converting '𝘡' => '𝘡' [expected '𝘡'] (line 3736) # Converting '𝘢' => '𝘢' [expected '𝘢'] (line 3737) # Converting '𝘣' => '𝘣' [expected '𝘣'] (line 3738) # Converting '𝘤' => '𝘤' [expected '𝘤'] (line 3739) # Converting '𝘥' => '𝘥' [expected '𝘥'] (line 3740) # Converting '𝘦' => '𝘦' [expected '𝘦'] (line 3741) # Converting '𝘧' => '𝘧' [expected '𝘧'] (line 3742) # Converting '𝘨' => '𝘨' [expected '𝘨'] (line 3743) # Converting '𝘩' => '𝘩' [expected '𝘩'] (line 3744) # Converting '𝘪' => '𝘪' [expected '𝘪'] (line 3745) # Converting '𝘫' => '𝘫' [expected '𝘫'] (line 3746) # Converting '𝘬' => '𝘬' [expected '𝘬'] (line 3747) # Converting '𝘭' => '𝘭' [expected '𝘭'] (line 3748) # Converting '𝘮' => '𝘮' [expected '𝘮'] (line 3749) # Converting '𝘯' => '𝘯' [expected '𝘯'] (line 3750) # Converting '𝘰' => '𝘰' [expected '𝘰'] (line 3751) # Converting '𝘱' => '𝘱' [expected '𝘱'] (line 3752) # Converting '𝘲' => '𝘲' [expected '𝘲'] (line 3753) # Converting '𝘳' => '𝘳' [expected '𝘳'] (line 3754) # Converting '𝘴' => '𝘴' [expected '𝘴'] (line 3755) # Converting '𝘵' => '𝘵' [expected '𝘵'] (line 3756) # Converting '𝘶' => '𝘶' [expected '𝘶'] (line 3757) # Converting '𝘷' => '𝘷' [expected '𝘷'] (line 3758) # Converting '𝘸' => '𝘸' [expected '𝘸'] (line 3759) # Converting '𝘹' => '𝘹' [expected '𝘹'] (line 3760) # Converting '𝘺' => '𝘺' [expected '𝘺'] (line 3761) # Converting '𝘻' => '𝘻' [expected '𝘻'] (line 3762) # Converting '𝘼' => '𝘼' [expected '𝘼'] (line 3763) # Converting '𝘽' => '𝘽' [expected '𝘽'] (line 3764) # Converting '𝘾' => '𝘾' [expected '𝘾'] (line 3765) # Converting '𝘿' => '𝘿' [expected '𝘿'] (line 3766) # Converting '𝙀' => '𝙀' [expected '𝙀'] (line 3767) # Converting '𝙁' => '𝙁' [expected '𝙁'] (line 3768) # Converting '𝙂' => '𝙂' [expected '𝙂'] (line 3769) # Converting '𝙃' => '𝙃' [expected '𝙃'] (line 3770) # Converting '𝙄' => '𝙄' [expected '𝙄'] (line 3771) # Converting '𝙅' => '𝙅' [expected '𝙅'] (line 3772) # Converting '𝙆' => '𝙆' [expected '𝙆'] (line 3773) # Converting '𝙇' => '𝙇' [expected '𝙇'] (line 3774) # Converting '𝙈' => '𝙈' [expected '𝙈'] (line 3775) # Converting '𝙉' => '𝙉' [expected '𝙉'] (line 3776) # Converting '𝙊' => '𝙊' [expected '𝙊'] (line 3777) # Converting '𝙋' => '𝙋' [expected '𝙋'] (line 3778) # Converting '𝙌' => '𝙌' [expected '𝙌'] (line 3779) # Converting '𝙍' => '𝙍' [expected '𝙍'] (line 3780) # Converting '𝙎' => '𝙎' [expected '𝙎'] (line 3781) # Converting '𝙏' => '𝙏' [expected '𝙏'] (line 3782) # Converting '𝙐' => '𝙐' [expected '𝙐'] (line 3783) # Converting '𝙑' => '𝙑' [expected '𝙑'] (line 3784) # Converting '𝙒' => '𝙒' [expected '𝙒'] (line 3785) # Converting '𝙓' => '𝙓' [expected '𝙓'] (line 3786) # Converting '𝙔' => '𝙔' [expected '𝙔'] (line 3787) # Converting '𝙕' => '𝙕' [expected '𝙕'] (line 3788) # Converting '𝙖' => '𝙖' [expected '𝙖'] (line 3789) # Converting '𝙗' => '𝙗' [expected '𝙗'] (line 3790) # Converting '𝙘' => '𝙘' [expected '𝙘'] (line 3791) # Converting '𝙙' => '𝙙' [expected '𝙙'] (line 3792) # Converting '𝙚' => '𝙚' [expected '𝙚'] (line 3793) # Converting '𝙛' => '𝙛' [expected '𝙛'] (line 3794) # Converting '𝙜' => '𝙜' [expected '𝙜'] (line 3795) # Converting '𝙝' => '𝙝' [expected '𝙝'] (line 3796) # Converting '𝙞' => '𝙞' [expected '𝙞'] (line 3797) # Converting '𝙟' => '𝙟' [expected '𝙟'] (line 3798) # Converting '𝙠' => '𝙠' [expected '𝙠'] (line 3799) # Converting '𝙡' => '𝙡' [expected '𝙡'] (line 3800) # Converting '𝙢' => '𝙢' [expected '𝙢'] (line 3801) # Converting '𝙣' => '𝙣' [expected '𝙣'] (line 3802) # Converting '𝙤' => '𝙤' [expected '𝙤'] (line 3803) # Converting '𝙥' => '𝙥' [expected '𝙥'] (line 3804) # Converting '𝙦' => '𝙦' [expected '𝙦'] (line 3805) # Converting '𝙧' => '𝙧' [expected '𝙧'] (line 3806) # Converting '𝙨' => '𝙨' [expected '𝙨'] (line 3807) # Converting '𝙩' => '𝙩' [expected '𝙩'] (line 3808) # Converting '𝙪' => '𝙪' [expected '𝙪'] (line 3809) # Converting '𝙫' => '𝙫' [expected '𝙫'] (line 3810) # Converting '𝙬' => '𝙬' [expected '𝙬'] (line 3811) # Converting '𝙭' => '𝙭' [expected '𝙭'] (line 3812) # Converting '𝙮' => '𝙮' [expected '𝙮'] (line 3813) # Converting '𝙯' => '𝙯' [expected '𝙯'] (line 3814) # Converting '𝙰' => '𝙰' [expected '𝙰'] (line 3815) # Converting '𝙱' => '𝙱' [expected '𝙱'] (line 3816) # Converting '𝙲' => '𝙲' [expected '𝙲'] (line 3817) # Converting '𝙳' => '𝙳' [expected '𝙳'] (line 3818) # Converting '𝙴' => '𝙴' [expected '𝙴'] (line 3819) # Converting '𝙵' => '𝙵' [expected '𝙵'] (line 3820) # Converting '𝙶' => '𝙶' [expected '𝙶'] (line 3821) # Converting '𝙷' => '𝙷' [expected '𝙷'] (line 3822) # Converting '𝙸' => '𝙸' [expected '𝙸'] (line 3823) # Converting '𝙹' => '𝙹' [expected '𝙹'] (line 3824) # Converting '𝙺' => '𝙺' [expected '𝙺'] (line 3825) # Converting '𝙻' => '𝙻' [expected '𝙻'] (line 3826) # Converting '𝙼' => '𝙼' [expected '𝙼'] (line 3827) # Converting '𝙽' => '𝙽' [expected '𝙽'] (line 3828) # Converting '𝙾' => '𝙾' [expected '𝙾'] (line 3829) # Converting '𝙿' => '𝙿' [expected '𝙿'] (line 3830) # Converting '𝚀' => '𝚀' [expected '𝚀'] (line 3831) # Converting '𝚁' => '𝚁' [expected '𝚁'] (line 3832) # Converting '𝚂' => '𝚂' [expected '𝚂'] (line 3833) # Converting '𝚃' => '𝚃' [expected '𝚃'] (line 3834) # Converting '𝚄' => '𝚄' [expected '𝚄'] (line 3835) # Converting '𝚅' => '𝚅' [expected '𝚅'] (line 3836) # Converting '𝚆' => '𝚆' [expected '𝚆'] (line 3837) # Converting '𝚇' => '𝚇' [expected '𝚇'] (line 3838) # Converting '𝚈' => '𝚈' [expected '𝚈'] (line 3839) # Converting '𝚉' => '𝚉' [expected '𝚉'] (line 3840) # Converting '𝚊' => '𝚊' [expected '𝚊'] (line 3841) # Converting '𝚋' => '𝚋' [expected '𝚋'] (line 3842) # Converting '𝚌' => '𝚌' [expected '𝚌'] (line 3843) # Converting '𝚍' => '𝚍' [expected '𝚍'] (line 3844) # Converting '𝚎' => '𝚎' [expected '𝚎'] (line 3845) # Converting '𝚏' => '𝚏' [expected '𝚏'] (line 3846) # Converting '𝚐' => '𝚐' [expected '𝚐'] (line 3847) # Converting '𝚑' => '𝚑' [expected '𝚑'] (line 3848) # Converting '𝚒' => '𝚒' [expected '𝚒'] (line 3849) # Converting '𝚓' => '𝚓' [expected '𝚓'] (line 3850) # Converting '𝚔' => '𝚔' [expected '𝚔'] (line 3851) # Converting '𝚕' => '𝚕' [expected '𝚕'] (line 3852) # Converting '𝚖' => '𝚖' [expected '𝚖'] (line 3853) # Converting '𝚗' => '𝚗' [expected '𝚗'] (line 3854) # Converting '𝚘' => '𝚘' [expected '𝚘'] (line 3855) # Converting '𝚙' => '𝚙' [expected '𝚙'] (line 3856) # Converting '𝚚' => '𝚚' [expected '𝚚'] (line 3857) # Converting '𝚛' => '𝚛' [expected '𝚛'] (line 3858) # Converting '𝚜' => '𝚜' [expected '𝚜'] (line 3859) # Converting '𝚝' => '𝚝' [expected '𝚝'] (line 3860) # Converting '𝚞' => '𝚞' [expected '𝚞'] (line 3861) # Converting '𝚟' => '𝚟' [expected '𝚟'] (line 3862) # Converting '𝚠' => '𝚠' [expected '𝚠'] (line 3863) # Converting '𝚡' => '𝚡' [expected '𝚡'] (line 3864) # Converting '𝚢' => '𝚢' [expected '𝚢'] (line 3865) # Converting '𝚣' => '𝚣' [expected '𝚣'] (line 3866) # Converting '𝚤' => '𝚤' [expected '𝚤'] (line 3867) # Converting '𝚥' => '𝚥' [expected '𝚥'] (line 3868) # Converting '𝚨' => '𝚨' [expected '𝚨'] (line 3869) # Converting '𝚩' => '𝚩' [expected '𝚩'] (line 3870) # Converting '𝚪' => '𝚪' [expected '𝚪'] (line 3871) # Converting '𝚫' => '𝚫' [expected '𝚫'] (line 3872) # Converting '𝚬' => '𝚬' [expected '𝚬'] (line 3873) # Converting '𝚭' => '𝚭' [expected '𝚭'] (line 3874) # Converting '𝚮' => '𝚮' [expected '𝚮'] (line 3875) # Converting '𝚯' => '𝚯' [expected '𝚯'] (line 3876) # Converting '𝚰' => '𝚰' [expected '𝚰'] (line 3877) # Converting '𝚱' => '𝚱' [expected '𝚱'] (line 3878) # Converting '𝚲' => '𝚲' [expected '𝚲'] (line 3879) # Converting '𝚳' => '𝚳' [expected '𝚳'] (line 3880) # Converting '𝚴' => '𝚴' [expected '𝚴'] (line 3881) # Converting '𝚵' => '𝚵' [expected '𝚵'] (line 3882) # Converting '𝚶' => '𝚶' [expected '𝚶'] (line 3883) # Converting '𝚷' => '𝚷' [expected '𝚷'] (line 3884) # Converting '𝚸' => '𝚸' [expected '𝚸'] (line 3885) # Converting '𝚹' => '𝚹' [expected '𝚹'] (line 3886) # Converting '𝚺' => '𝚺' [expected '𝚺'] (line 3887) # Converting '𝚻' => '𝚻' [expected '𝚻'] (line 3888) # Converting '𝚼' => '𝚼' [expected '𝚼'] (line 3889) # Converting '𝚽' => '𝚽' [expected '𝚽'] (line 3890) # Converting '𝚾' => '𝚾' [expected '𝚾'] (line 3891) # Converting '𝚿' => '𝚿' [expected '𝚿'] (line 3892) # Converting '𝛀' => '𝛀' [expected '𝛀'] (line 3893) # Converting '𝛂' => '𝛂' [expected '𝛂'] (line 3894) # Converting '𝛃' => '𝛃' [expected '𝛃'] (line 3895) # Converting '𝛄' => '𝛄' [expected '𝛄'] (line 3896) # Converting '𝛅' => '𝛅' [expected '𝛅'] (line 3897) # Converting '𝛆' => '𝛆' [expected '𝛆'] (line 3898) # Converting '𝛇' => '𝛇' [expected '𝛇'] (line 3899) # Converting '𝛈' => '𝛈' [expected '𝛈'] (line 3900) # Converting '𝛉' => '𝛉' [expected '𝛉'] (line 3901) # Converting '𝛊' => '𝛊' [expected '𝛊'] (line 3902) # Converting '𝛋' => '𝛋' [expected '𝛋'] (line 3903) # Converting '𝛌' => '𝛌' [expected '𝛌'] (line 3904) # Converting '𝛍' => '𝛍' [expected '𝛍'] (line 3905) # Converting '𝛎' => '𝛎' [expected '𝛎'] (line 3906) # Converting '𝛏' => '𝛏' [expected '𝛏'] (line 3907) # Converting '𝛐' => '𝛐' [expected '𝛐'] (line 3908) # Converting '𝛑' => '𝛑' [expected '𝛑'] (line 3909) # Converting '𝛒' => '𝛒' [expected '𝛒'] (line 3910) # Converting '𝛓' => '𝛓' [expected '𝛓'] (line 3911) # Converting '𝛔' => '𝛔' [expected '𝛔'] (line 3912) # Converting '𝛕' => '𝛕' [expected '𝛕'] (line 3913) # Converting '𝛖' => '𝛖' [expected '𝛖'] (line 3914) # Converting '𝛗' => '𝛗' [expected '𝛗'] (line 3915) # Converting '𝛘' => '𝛘' [expected '𝛘'] (line 3916) # Converting '𝛙' => '𝛙' [expected '𝛙'] (line 3917) # Converting '𝛚' => '𝛚' [expected '𝛚'] (line 3918) # Converting '𝛜' => '𝛜' [expected '𝛜'] (line 3919) # Converting '𝛝' => '𝛝' [expected '𝛝'] (line 3920) # Converting '𝛞' => '𝛞' [expected '𝛞'] (line 3921) # Converting '𝛟' => '𝛟' [expected '𝛟'] (line 3922) # Converting '𝛠' => '𝛠' [expected '𝛠'] (line 3923) # Converting '𝛡' => '𝛡' [expected '𝛡'] (line 3924) # Converting '𝛢' => '𝛢' [expected '𝛢'] (line 3925) # Converting '𝛣' => '𝛣' [expected '𝛣'] (line 3926) # Converting '𝛤' => '𝛤' [expected '𝛤'] (line 3927) # Converting '𝛥' => '𝛥' [expected '𝛥'] (line 3928) # Converting '𝛦' => '𝛦' [expected '𝛦'] (line 3929) # Converting '𝛧' => '𝛧' [expected '𝛧'] (line 3930) # Converting '𝛨' => '𝛨' [expected '𝛨'] (line 3931) # Converting '𝛩' => '𝛩' [expected '𝛩'] (line 3932) # Converting '𝛪' => '𝛪' [expected '𝛪'] (line 3933) # Converting '𝛫' => '𝛫' [expected '𝛫'] (line 3934) # Converting '𝛬' => '𝛬' [expected '𝛬'] (line 3935) # Converting '𝛭' => '𝛭' [expected '𝛭'] (line 3936) # Converting '𝛮' => '𝛮' [expected '𝛮'] (line 3937) # Converting '𝛯' => '𝛯' [expected '𝛯'] (line 3938) # Converting '𝛰' => '𝛰' [expected '𝛰'] (line 3939) # Converting '𝛱' => '𝛱' [expected '𝛱'] (line 3940) # Converting '𝛲' => '𝛲' [expected '𝛲'] (line 3941) # Converting '𝛳' => '𝛳' [expected '𝛳'] (line 3942) # Converting '𝛴' => '𝛴' [expected '𝛴'] (line 3943) # Converting '𝛵' => '𝛵' [expected '𝛵'] (line 3944) # Converting '𝛶' => '𝛶' [expected '𝛶'] (line 3945) # Converting '𝛷' => '𝛷' [expected '𝛷'] (line 3946) # Converting '𝛸' => '𝛸' [expected '𝛸'] (line 3947) # Converting '𝛹' => '𝛹' [expected '𝛹'] (line 3948) # Converting '𝛺' => '𝛺' [expected '𝛺'] (line 3949) # Converting '𝛼' => '𝛼' [expected '𝛼'] (line 3950) # Converting '𝛽' => '𝛽' [expected '𝛽'] (line 3951) # Converting '𝛾' => '𝛾' [expected '𝛾'] (line 3952) # Converting '𝛿' => '𝛿' [expected '𝛿'] (line 3953) # Converting '𝜀' => '𝜀' [expected '𝜀'] (line 3954) # Converting '𝜁' => '𝜁' [expected '𝜁'] (line 3955) # Converting '𝜂' => '𝜂' [expected '𝜂'] (line 3956) # Converting '𝜃' => '𝜃' [expected '𝜃'] (line 3957) # Converting '𝜄' => '𝜄' [expected '𝜄'] (line 3958) # Converting '𝜅' => '𝜅' [expected '𝜅'] (line 3959) # Converting '𝜆' => '𝜆' [expected '𝜆'] (line 3960) # Converting '𝜇' => '𝜇' [expected '𝜇'] (line 3961) # Converting '𝜈' => '𝜈' [expected '𝜈'] (line 3962) # Converting '𝜉' => '𝜉' [expected '𝜉'] (line 3963) # Converting '𝜊' => '𝜊' [expected '𝜊'] (line 3964) # Converting '𝜋' => '𝜋' [expected '𝜋'] (line 3965) # Converting '𝜌' => '𝜌' [expected '𝜌'] (line 3966) # Converting '𝜍' => '𝜍' [expected '𝜍'] (line 3967) # Converting '𝜎' => '𝜎' [expected '𝜎'] (line 3968) # Converting '𝜏' => '𝜏' [expected '𝜏'] (line 3969) # Converting '𝜐' => '𝜐' [expected '𝜐'] (line 3970) # Converting '𝜑' => '𝜑' [expected '𝜑'] (line 3971) # Converting '𝜒' => '𝜒' [expected '𝜒'] (line 3972) # Converting '𝜓' => '𝜓' [expected '𝜓'] (line 3973) # Converting '𝜔' => '𝜔' [expected '𝜔'] (line 3974) # Converting '𝜖' => '𝜖' [expected '𝜖'] (line 3975) # Converting '𝜗' => '𝜗' [expected '𝜗'] (line 3976) # Converting '𝜘' => '𝜘' [expected '𝜘'] (line 3977) # Converting '𝜙' => '𝜙' [expected '𝜙'] (line 3978) # Converting '𝜚' => '𝜚' [expected '𝜚'] (line 3979) # Converting '𝜛' => '𝜛' [expected '𝜛'] (line 3980) # Converting '𝜜' => '𝜜' [expected '𝜜'] (line 3981) # Converting '𝜝' => '𝜝' [expected '𝜝'] (line 3982) # Converting '𝜞' => '𝜞' [expected '𝜞'] (line 3983) # Converting '𝜟' => '𝜟' [expected '𝜟'] (line 3984) # Converting '𝜠' => '𝜠' [expected '𝜠'] (line 3985) # Converting '𝜡' => '𝜡' [expected '𝜡'] (line 3986) # Converting '𝜢' => '𝜢' [expected '𝜢'] (line 3987) # Converting '𝜣' => '𝜣' [expected '𝜣'] (line 3988) # Converting '𝜤' => '𝜤' [expected '𝜤'] (line 3989) # Converting '𝜥' => '𝜥' [expected '𝜥'] (line 3990) # Converting '𝜦' => '𝜦' [expected '𝜦'] (line 3991) # Converting '𝜧' => '𝜧' [expected '𝜧'] (line 3992) # Converting '𝜨' => '𝜨' [expected '𝜨'] (line 3993) # Converting '𝜩' => '𝜩' [expected '𝜩'] (line 3994) # Converting '𝜪' => '𝜪' [expected '𝜪'] (line 3995) # Converting '𝜫' => '𝜫' [expected '𝜫'] (line 3996) # Converting '𝜬' => '𝜬' [expected '𝜬'] (line 3997) # Converting '𝜭' => '𝜭' [expected '𝜭'] (line 3998) # Converting '𝜮' => '𝜮' [expected '𝜮'] (line 3999) # Converting '𝜯' => '𝜯' [expected '𝜯'] (line 4000) # Converting '𝜰' => '𝜰' [expected '𝜰'] (line 4001) # Converting '𝜱' => '𝜱' [expected '𝜱'] (line 4002) # Converting '𝜲' => '𝜲' [expected '𝜲'] (line 4003) # Converting '𝜳' => '𝜳' [expected '𝜳'] (line 4004) # Converting '𝜴' => '𝜴' [expected '𝜴'] (line 4005) # Converting '𝜶' => '𝜶' [expected '𝜶'] (line 4006) # Converting '𝜷' => '𝜷' [expected '𝜷'] (line 4007) # Converting '𝜸' => '𝜸' [expected '𝜸'] (line 4008) # Converting '𝜹' => '𝜹' [expected '𝜹'] (line 4009) # Converting '𝜺' => '𝜺' [expected '𝜺'] (line 4010) # Converting '𝜻' => '𝜻' [expected '𝜻'] (line 4011) # Converting '𝜼' => '𝜼' [expected '𝜼'] (line 4012) # Converting '𝜽' => '𝜽' [expected '𝜽'] (line 4013) # Converting '𝜾' => '𝜾' [expected '𝜾'] (line 4014) # Converting '𝜿' => '𝜿' [expected '𝜿'] (line 4015) # Converting '𝝀' => '𝝀' [expected '𝝀'] (line 4016) # Converting '𝝁' => '𝝁' [expected '𝝁'] (line 4017) # Converting '𝝂' => '𝝂' [expected '𝝂'] (line 4018) # Converting '𝝃' => '𝝃' [expected '𝝃'] (line 4019) # Converting '𝝄' => '𝝄' [expected '𝝄'] (line 4020) # Converting '𝝅' => '𝝅' [expected '𝝅'] (line 4021) # Converting '𝝆' => '𝝆' [expected '𝝆'] (line 4022) # Converting '𝝇' => '𝝇' [expected '𝝇'] (line 4023) # Converting '𝝈' => '𝝈' [expected '𝝈'] (line 4024) # Converting '𝝉' => '𝝉' [expected '𝝉'] (line 4025) # Converting '𝝊' => '𝝊' [expected '𝝊'] (line 4026) # Converting '𝝋' => '𝝋' [expected '𝝋'] (line 4027) # Converting '𝝌' => '𝝌' [expected '𝝌'] (line 4028) # Converting '𝝍' => '𝝍' [expected '𝝍'] (line 4029) # Converting '𝝎' => '𝝎' [expected '𝝎'] (line 4030) # Converting '𝝐' => '𝝐' [expected '𝝐'] (line 4031) # Converting '𝝑' => '𝝑' [expected '𝝑'] (line 4032) # Converting '𝝒' => '𝝒' [expected '𝝒'] (line 4033) # Converting '𝝓' => '𝝓' [expected '𝝓'] (line 4034) # Converting '𝝔' => '𝝔' [expected '𝝔'] (line 4035) # Converting '𝝕' => '𝝕' [expected '𝝕'] (line 4036) # Converting '𝝖' => '𝝖' [expected '𝝖'] (line 4037) # Converting '𝝗' => '𝝗' [expected '𝝗'] (line 4038) # Converting '𝝘' => '𝝘' [expected '𝝘'] (line 4039) # Converting '𝝙' => '𝝙' [expected '𝝙'] (line 4040) # Converting '𝝚' => '𝝚' [expected '𝝚'] (line 4041) # Converting '𝝛' => '𝝛' [expected '𝝛'] (line 4042) # Converting '𝝜' => '𝝜' [expected '𝝜'] (line 4043) # Converting '𝝝' => '𝝝' [expected '𝝝'] (line 4044) # Converting '𝝞' => '𝝞' [expected '𝝞'] (line 4045) # Converting '𝝟' => '𝝟' [expected '𝝟'] (line 4046) # Converting '𝝠' => '𝝠' [expected '𝝠'] (line 4047) # Converting '𝝡' => '𝝡' [expected '𝝡'] (line 4048) # Converting '𝝢' => '𝝢' [expected '𝝢'] (line 4049) # Converting '𝝣' => '𝝣' [expected '𝝣'] (line 4050) # Converting '𝝤' => '𝝤' [expected '𝝤'] (line 4051) # Converting '𝝥' => '𝝥' [expected '𝝥'] (line 4052) # Converting '𝝦' => '𝝦' [expected '𝝦'] (line 4053) # Converting '𝝧' => '𝝧' [expected '𝝧'] (line 4054) # Converting '𝝨' => '𝝨' [expected '𝝨'] (line 4055) # Converting '𝝩' => '𝝩' [expected '𝝩'] (line 4056) # Converting '𝝪' => '𝝪' [expected '𝝪'] (line 4057) # Converting '𝝫' => '𝝫' [expected '𝝫'] (line 4058) # Converting '𝝬' => '𝝬' [expected '𝝬'] (line 4059) # Converting '𝝭' => '𝝭' [expected '𝝭'] (line 4060) # Converting '𝝮' => '𝝮' [expected '𝝮'] (line 4061) # Converting '𝝰' => '𝝰' [expected '𝝰'] (line 4062) # Converting '𝝱' => '𝝱' [expected '𝝱'] (line 4063) # Converting '𝝲' => '𝝲' [expected '𝝲'] (line 4064) # Converting '𝝳' => '𝝳' [expected '𝝳'] (line 4065) # Converting '𝝴' => '𝝴' [expected '𝝴'] (line 4066) # Converting '𝝵' => '𝝵' [expected '𝝵'] (line 4067) # Converting '𝝶' => '𝝶' [expected '𝝶'] (line 4068) # Converting '𝝷' => '𝝷' [expected '𝝷'] (line 4069) # Converting '𝝸' => '𝝸' [expected '𝝸'] (line 4070) # Converting '𝝹' => '𝝹' [expected '𝝹'] (line 4071) # Converting '𝝺' => '𝝺' [expected '𝝺'] (line 4072) # Converting '𝝻' => '𝝻' [expected '𝝻'] (line 4073) # Converting '𝝼' => '𝝼' [expected '𝝼'] (line 4074) # Converting '𝝽' => '𝝽' [expected '𝝽'] (line 4075) # Converting '𝝾' => '𝝾' [expected '𝝾'] (line 4076) # Converting '𝝿' => '𝝿' [expected '𝝿'] (line 4077) # Converting '𝞀' => '𝞀' [expected '𝞀'] (line 4078) # Converting '𝞁' => '𝞁' [expected '𝞁'] (line 4079) # Converting '𝞂' => '𝞂' [expected '𝞂'] (line 4080) # Converting '𝞃' => '𝞃' [expected '𝞃'] (line 4081) # Converting '𝞄' => '𝞄' [expected '𝞄'] (line 4082) # Converting '𝞅' => '𝞅' [expected '𝞅'] (line 4083) # Converting '𝞆' => '𝞆' [expected '𝞆'] (line 4084) # Converting '𝞇' => '𝞇' [expected '𝞇'] (line 4085) # Converting '𝞈' => '𝞈' [expected '𝞈'] (line 4086) # Converting '𝞊' => '𝞊' [expected '𝞊'] (line 4087) # Converting '𝞋' => '𝞋' [expected '𝞋'] (line 4088) # Converting '𝞌' => '𝞌' [expected '𝞌'] (line 4089) # Converting '𝞍' => '𝞍' [expected '𝞍'] (line 4090) # Converting '𝞎' => '𝞎' [expected '𝞎'] (line 4091) # Converting '𝞏' => '𝞏' [expected '𝞏'] (line 4092) # Converting '𝞐' => '𝞐' [expected '𝞐'] (line 4093) # Converting '𝞑' => '𝞑' [expected '𝞑'] (line 4094) # Converting '𝞒' => '𝞒' [expected '𝞒'] (line 4095) # Converting '𝞓' => '𝞓' [expected '𝞓'] (line 4096) # Converting '𝞔' => '𝞔' [expected '𝞔'] (line 4097) # Converting '𝞕' => '𝞕' [expected '𝞕'] (line 4098) # Converting '𝞖' => '𝞖' [expected '𝞖'] (line 4099) # Converting '𝞗' => '𝞗' [expected '𝞗'] (line 4100) # Converting '𝞘' => '𝞘' [expected '𝞘'] (line 4101) # Converting '𝞙' => '𝞙' [expected '𝞙'] (line 4102) # Converting '𝞚' => '𝞚' [expected '𝞚'] (line 4103) # Converting '𝞛' => '𝞛' [expected '𝞛'] (line 4104) # Converting '𝞜' => '𝞜' [expected '𝞜'] (line 4105) # Converting '𝞝' => '𝞝' [expected '𝞝'] (line 4106) # Converting '𝞞' => '𝞞' [expected '𝞞'] (line 4107) # Converting '𝞟' => '𝞟' [expected '𝞟'] (line 4108) # Converting '𝞠' => '𝞠' [expected '𝞠'] (line 4109) # Converting '𝞡' => '𝞡' [expected '𝞡'] (line 4110) # Converting '𝞢' => '𝞢' [expected '𝞢'] (line 4111) # Converting '𝞣' => '𝞣' [expected '𝞣'] (line 4112) # Converting '𝞤' => '𝞤' [expected '𝞤'] (line 4113) # Converting '𝞥' => '𝞥' [expected '𝞥'] (line 4114) # Converting '𝞦' => '𝞦' [expected '𝞦'] (line 4115) # Converting '𝞧' => '𝞧' [expected '𝞧'] (line 4116) # Converting '𝞨' => '𝞨' [expected '𝞨'] (line 4117) # Converting '𝞪' => '𝞪' [expected '𝞪'] (line 4118) # Converting '𝞫' => '𝞫' [expected '𝞫'] (line 4119) # Converting '𝞬' => '𝞬' [expected '𝞬'] (line 4120) # Converting '𝞭' => '𝞭' [expected '𝞭'] (line 4121) # Converting '𝞮' => '𝞮' [expected '𝞮'] (line 4122) # Converting '𝞯' => '𝞯' [expected '𝞯'] (line 4123) # Converting '𝞰' => '𝞰' [expected '𝞰'] (line 4124) # Converting '𝞱' => '𝞱' [expected '𝞱'] (line 4125) # Converting '𝞲' => '𝞲' [expected '𝞲'] (line 4126) # Converting '𝞳' => '𝞳' [expected '𝞳'] (line 4127) # Converting '𝞴' => '𝞴' [expected '𝞴'] (line 4128) # Converting '𝞵' => '𝞵' [expected '𝞵'] (line 4129) # Converting '𝞶' => '𝞶' [expected '𝞶'] (line 4130) # Converting '𝞷' => '𝞷' [expected '𝞷'] (line 4131) # Converting '𝞸' => '𝞸' [expected '𝞸'] (line 4132) # Converting '𝞹' => '𝞹' [expected '𝞹'] (line 4133) # Converting '𝞺' => '𝞺' [expected '𝞺'] (line 4134) # Converting '𝞻' => '𝞻' [expected '𝞻'] (line 4135) # Converting '𝞼' => '𝞼' [expected '𝞼'] (line 4136) # Converting '𝞽' => '𝞽' [expected '𝞽'] (line 4137) # Converting '𝞾' => '𝞾' [expected '𝞾'] (line 4138) # Converting '𝞿' => '𝞿' [expected '𝞿'] (line 4139) # Converting '𝟀' => '𝟀' [expected '𝟀'] (line 4140) # Converting '𝟁' => '𝟁' [expected '𝟁'] (line 4141) # Converting '𝟂' => '𝟂' [expected '𝟂'] (line 4142) # Converting '𝟄' => '𝟄' [expected '𝟄'] (line 4143) # Converting '𝟅' => '𝟅' [expected '𝟅'] (line 4144) # Converting '𝟆' => '𝟆' [expected '𝟆'] (line 4145) # Converting '𝟇' => '𝟇' [expected '𝟇'] (line 4146) # Converting '𝟈' => '𝟈' [expected '𝟈'] (line 4147) # Converting '𝟉' => '𝟉' [expected '𝟉'] (line 4148) # Converting '𝟊' => '𝟊' [expected '𝟊'] (line 4149) # Converting '𝟋' => '𝟋' [expected '𝟋'] (line 4150) # Converting '𝼀' => '𝼀' [expected '𝼀'] (line 4151) # Converting '𝼁' => '𝼁' [expected '𝼁'] (line 4152) # Converting '𝼂' => '𝼂' [expected '𝼂'] (line 4153) # Converting '𝼃' => '𝼃' [expected '𝼃'] (line 4154) # Converting '𝼄' => '𝼄' [expected '𝼄'] (line 4155) # Converting '𝼅' => '𝼅' [expected '𝼅'] (line 4156) # Converting '𝼆' => '𝼆' [expected '𝼆'] (line 4157) # Converting '𝼇' => '𝼇' [expected '𝼇'] (line 4158) # Converting '𝼈' => '𝼈' [expected '𝼈'] (line 4159) # Converting '𝼉' => '𝼉' [expected '𝼉'] (line 4160) # Converting '𝼋' => '𝼋' [expected '𝼋'] (line 4161) # Converting '𝼌' => '𝼌' [expected '𝼌'] (line 4162) # Converting '𝼍' => '𝼍' [expected '𝼍'] (line 4163) # Converting '𝼎' => '𝼎' [expected '𝼎'] (line 4164) # Converting '𝼏' => '𝼏' [expected '𝼏'] (line 4165) # Converting '𝼐' => '𝼐' [expected '𝼐'] (line 4166) # Converting '𝼑' => '𝼑' [expected '𝼑'] (line 4167) # Converting '𝼒' => '𝼒' [expected '𝼒'] (line 4168) # Converting '𝼓' => '𝼓' [expected '𝼓'] (line 4169) # Converting '𝼔' => '𝼔' [expected '𝼔'] (line 4170) # Converting '𝼕' => '𝼕' [expected '𝼕'] (line 4171) # Converting '𝼖' => '𝼖' [expected '𝼖'] (line 4172) # Converting '𝼗' => '𝼗' [expected '𝼗'] (line 4173) # Converting '𝼘' => '𝼘' [expected '𝼘'] (line 4174) # Converting '𝼙' => '𝼙' [expected '𝼙'] (line 4175) # Converting '𝼚' => '𝼚' [expected '𝼚'] (line 4176) # Converting '𝼛' => '𝼛' [expected '𝼛'] (line 4177) # Converting '𝼜' => '𝼜' [expected '𝼜'] (line 4178) # Converting '𝼝' => '𝼝' [expected '𝼝'] (line 4179) # Converting '𝼞' => '𝼞' [expected '𝼞'] (line 4180) # Converting '𝼥' => '𝼥' [expected '𝼥'] (line 4181) # Converting '𝼦' => '𝼦' [expected '𝼦'] (line 4182) # Converting '𝼧' => '𝼧' [expected '𝼧'] (line 4183) # Converting '𝼨' => '𝼨' [expected '𝼨'] (line 4184) # Converting '𝼩' => '𝼩' [expected '𝼩'] (line 4185) # Converting '𝼪' => '𝼪' [expected '𝼪'] (line 4186) # Converting '𞤀' => '𞤀' [expected '𞤀'] (line 4187) # Converting '𞤁' => '𞤁' [expected '𞤁'] (line 4188) # Converting '𞤂' => '𞤂' [expected '𞤂'] (line 4189) # Converting '𞤃' => '𞤃' [expected '𞤃'] (line 4190) # Converting '𞤄' => '𞤄' [expected '𞤄'] (line 4191) # Converting '𞤅' => '𞤅' [expected '𞤅'] (line 4192) # Converting '𞤆' => '𞤆' [expected '𞤆'] (line 4193) # Converting '𞤇' => '𞤇' [expected '𞤇'] (line 4194) # Converting '𞤈' => '𞤈' [expected '𞤈'] (line 4195) # Converting '𞤉' => '𞤉' [expected '𞤉'] (line 4196) # Converting '𞤊' => '𞤊' [expected '𞤊'] (line 4197) # Converting '𞤋' => '𞤋' [expected '𞤋'] (line 4198) # Converting '𞤌' => '𞤌' [expected '𞤌'] (line 4199) # Converting '𞤍' => '𞤍' [expected '𞤍'] (line 4200) # Converting '𞤎' => '𞤎' [expected '𞤎'] (line 4201) # Converting '𞤏' => '𞤏' [expected '𞤏'] (line 4202) # Converting '𞤐' => '𞤐' [expected '𞤐'] (line 4203) # Converting '𞤑' => '𞤑' [expected '𞤑'] (line 4204) # Converting '𞤒' => '𞤒' [expected '𞤒'] (line 4205) # Converting '𞤓' => '𞤓' [expected '𞤓'] (line 4206) # Converting '𞤔' => '𞤔' [expected '𞤔'] (line 4207) # Converting '𞤕' => '𞤕' [expected '𞤕'] (line 4208) # Converting '𞤖' => '𞤖' [expected '𞤖'] (line 4209) # Converting '𞤗' => '𞤗' [expected '𞤗'] (line 4210) # Converting '𞤘' => '𞤘' [expected '𞤘'] (line 4211) # Converting '𞤙' => '𞤙' [expected '𞤙'] (line 4212) # Converting '𞤚' => '𞤚' [expected '𞤚'] (line 4213) # Converting '𞤛' => '𞤛' [expected '𞤛'] (line 4214) # Converting '𞤜' => '𞤜' [expected '𞤜'] (line 4215) # Converting '𞤝' => '𞤝' [expected '𞤝'] (line 4216) # Converting '𞤞' => '𞤞' [expected '𞤞'] (line 4217) # Converting '𞤟' => '𞤟' [expected '𞤟'] (line 4218) # Converting '𞤠' => '𞤠' [expected '𞤠'] (line 4219) # Converting '𞤡' => '𞤡' [expected '𞤡'] (line 4220) # Converting '𞤢' => '𞤀' [expected '𞤀'] (line 4221) # Converting '𞤣' => '𞤁' [expected '𞤁'] (line 4222) # Converting '𞤤' => '𞤂' [expected '𞤂'] (line 4223) # Converting '𞤥' => '𞤃' [expected '𞤃'] (line 4224) # Converting '𞤦' => '𞤄' [expected '𞤄'] (line 4225) # Converting '𞤧' => '𞤅' [expected '𞤅'] (line 4226) # Converting '𞤨' => '𞤆' [expected '𞤆'] (line 4227) # Converting '𞤩' => '𞤇' [expected '𞤇'] (line 4228) # Converting '𞤪' => '𞤈' [expected '𞤈'] (line 4229) # Converting '𞤫' => '𞤉' [expected '𞤉'] (line 4230) # Converting '𞤬' => '𞤊' [expected '𞤊'] (line 4231) # Converting '𞤭' => '𞤋' [expected '𞤋'] (line 4232) # Converting '𞤮' => '𞤌' [expected '𞤌'] (line 4233) # Converting '𞤯' => '𞤍' [expected '𞤍'] (line 4234) # Converting '𞤰' => '𞤎' [expected '𞤎'] (line 4235) # Converting '𞤱' => '𞤏' [expected '𞤏'] (line 4236) # Converting '𞤲' => '𞤐' [expected '𞤐'] (line 4237) # Converting '𞤳' => '𞤑' [expected '𞤑'] (line 4238) # Converting '𞤴' => '𞤒' [expected '𞤒'] (line 4239) # Converting '𞤵' => '𞤓' [expected '𞤓'] (line 4240) # Converting '𞤶' => '𞤔' [expected '𞤔'] (line 4241) # Converting '𞤷' => '𞤕' [expected '𞤕'] (line 4242) # Converting '𞤸' => '𞤖' [expected '𞤖'] (line 4243) # Converting '𞤹' => '𞤗' [expected '𞤗'] (line 4244) # Converting '𞤺' => '𞤘' [expected '𞤘'] (line 4245) # Converting '𞤻' => '𞤙' [expected '𞤙'] (line 4246) # Converting '𞤼' => '𞤚' [expected '𞤚'] (line 4247) # Converting '𞤽' => '𞤛' [expected '𞤛'] (line 4248) # Converting '𞤾' => '𞤜' [expected '𞤜'] (line 4249) # Converting '𞤿' => '𞤝' [expected '𞤝'] (line 4250) # Converting '𞥀' => '𞤞' [expected '𞤞'] (line 4251) # Converting '𞥁' => '𞤟' [expected '𞤟'] (line 4252) # Converting '𞥂' => '𞤠' [expected '𞤠'] (line 4253) # Converting '𞥃' => '𞤡' [expected '𞤡'] (line 4254) # Converting 'AaBbCc@@' => 'aabbcc@@' [expected 'aabbcc@@'] (line 6) # Converting 'A' => 'a' [expected 'a'] (line 10) # Converting 'B' => 'b' [expected 'b'] (line 11) # Converting 'C' => 'c' [expected 'c'] (line 12) # Converting 'D' => 'd' [expected 'd'] (line 13) # Converting 'E' => 'e' [expected 'e'] (line 14) # Converting 'F' => 'f' [expected 'f'] (line 15) # Converting 'G' => 'g' [expected 'g'] (line 16) # Converting 'H' => 'h' [expected 'h'] (line 17) # Converting 'I' => 'i' [expected 'i'] (line 18) # Converting 'J' => 'j' [expected 'j'] (line 19) # Converting 'K' => 'k' [expected 'k'] (line 20) # Converting 'L' => 'l' [expected 'l'] (line 21) # Converting 'M' => 'm' [expected 'm'] (line 22) # Converting 'N' => 'n' [expected 'n'] (line 23) # Converting 'O' => 'o' [expected 'o'] (line 24) # Converting 'P' => 'p' [expected 'p'] (line 25) # Converting 'Q' => 'q' [expected 'q'] (line 26) # Converting 'R' => 'r' [expected 'r'] (line 27) # Converting 'S' => 's' [expected 's'] (line 28) # Converting 'T' => 't' [expected 't'] (line 29) # Converting 'U' => 'u' [expected 'u'] (line 30) # Converting 'V' => 'v' [expected 'v'] (line 31) # Converting 'W' => 'w' [expected 'w'] (line 32) # Converting 'X' => 'x' [expected 'x'] (line 33) # Converting 'Y' => 'y' [expected 'y'] (line 34) # Converting 'Z' => 'z' [expected 'z'] (line 35) # Converting 'µ' => 'μ' [expected 'μ'] (line 36) # Converting 'À' => 'à' [expected 'à'] (line 37) # Converting 'Á' => 'á' [expected 'á'] (line 38) # Converting 'Â' => 'â' [expected 'â'] (line 39) # Converting 'Ã' => 'ã' [expected 'ã'] (line 40) # Converting 'Ä' => 'ä' [expected 'ä'] (line 41) # Converting 'Å' => 'å' [expected 'å'] (line 42) # Converting 'Æ' => 'æ' [expected 'æ'] (line 43) # Converting 'Ç' => 'ç' [expected 'ç'] (line 44) # Converting 'È' => 'è' [expected 'è'] (line 45) # Converting 'É' => 'é' [expected 'é'] (line 46) # Converting 'Ê' => 'ê' [expected 'ê'] (line 47) # Converting 'Ë' => 'ë' [expected 'ë'] (line 48) # Converting 'Ì' => 'ì' [expected 'ì'] (line 49) # Converting 'Í' => 'í' [expected 'í'] (line 50) # Converting 'Î' => 'î' [expected 'î'] (line 51) # Converting 'Ï' => 'ï' [expected 'ï'] (line 52) # Converting 'Ð' => 'ð' [expected 'ð'] (line 53) # Converting 'Ñ' => 'ñ' [expected 'ñ'] (line 54) # Converting 'Ò' => 'ò' [expected 'ò'] (line 55) # Converting 'Ó' => 'ó' [expected 'ó'] (line 56) # Converting 'Ô' => 'ô' [expected 'ô'] (line 57) # Converting 'Õ' => 'õ' [expected 'õ'] (line 58) # Converting 'Ö' => 'ö' [expected 'ö'] (line 59) # Converting 'Ø' => 'ø' [expected 'ø'] (line 60) # Converting 'Ù' => 'ù' [expected 'ù'] (line 61) # Converting 'Ú' => 'ú' [expected 'ú'] (line 62) # Converting 'Û' => 'û' [expected 'û'] (line 63) # Converting 'Ü' => 'ü' [expected 'ü'] (line 64) # Converting 'Ý' => 'ý' [expected 'ý'] (line 65) # Converting 'Þ' => 'þ' [expected 'þ'] (line 66) # Converting 'ß' => 'ss' [expected 'ss'] (line 67) # Converting 'Ā' => 'ā' [expected 'ā'] (line 68) # Converting 'Ă' => 'ă' [expected 'ă'] (line 69) # Converting 'Ą' => 'ą' [expected 'ą'] (line 70) # Converting 'Ć' => 'ć' [expected 'ć'] (line 71) # Converting 'Ĉ' => 'ĉ' [expected 'ĉ'] (line 72) # Converting 'Ċ' => 'ċ' [expected 'ċ'] (line 73) # Converting 'Č' => 'č' [expected 'č'] (line 74) # Converting 'Ď' => 'ď' [expected 'ď'] (line 75) # Converting 'Đ' => 'đ' [expected 'đ'] (line 76) # Converting 'Ē' => 'ē' [expected 'ē'] (line 77) # Converting 'Ĕ' => 'ĕ' [expected 'ĕ'] (line 78) # Converting 'Ė' => 'ė' [expected 'ė'] (line 79) # Converting 'Ę' => 'ę' [expected 'ę'] (line 80) # Converting 'Ě' => 'ě' [expected 'ě'] (line 81) # Converting 'Ĝ' => 'ĝ' [expected 'ĝ'] (line 82) # Converting 'Ğ' => 'ğ' [expected 'ğ'] (line 83) # Converting 'Ġ' => 'ġ' [expected 'ġ'] (line 84) # Converting 'Ģ' => 'ģ' [expected 'ģ'] (line 85) # Converting 'Ĥ' => 'ĥ' [expected 'ĥ'] (line 86) # Converting 'Ħ' => 'ħ' [expected 'ħ'] (line 87) # Converting 'Ĩ' => 'ĩ' [expected 'ĩ'] (line 88) # Converting 'Ī' => 'ī' [expected 'ī'] (line 89) # Converting 'Ĭ' => 'ĭ' [expected 'ĭ'] (line 90) # Converting 'Į' => 'į' [expected 'į'] (line 91) # Converting 'İ' => 'i̇' [expected 'i̇'] (line 92) # Converting 'IJ' => 'ij' [expected 'ij'] (line 93) # Converting 'Ĵ' => 'ĵ' [expected 'ĵ'] (line 94) # Converting 'Ķ' => 'ķ' [expected 'ķ'] (line 95) # Converting 'Ĺ' => 'ĺ' [expected 'ĺ'] (line 96) # Converting 'Ļ' => 'ļ' [expected 'ļ'] (line 97) # Converting 'Ľ' => 'ľ' [expected 'ľ'] (line 98) # Converting 'Ŀ' => 'ŀ' [expected 'ŀ'] (line 99) # Converting 'Ł' => 'ł' [expected 'ł'] (line 100) # Converting 'Ń' => 'ń' [expected 'ń'] (line 101) # Converting 'Ņ' => 'ņ' [expected 'ņ'] (line 102) # Converting 'Ň' => 'ň' [expected 'ň'] (line 103) # Converting 'ʼn' => 'ʼn' [expected 'ʼn'] (line 104) # Converting 'Ŋ' => 'ŋ' [expected 'ŋ'] (line 105) # Converting 'Ō' => 'ō' [expected 'ō'] (line 106) # Converting 'Ŏ' => 'ŏ' [expected 'ŏ'] (line 107) # Converting 'Ő' => 'ő' [expected 'ő'] (line 108) # Converting 'Œ' => 'œ' [expected 'œ'] (line 109) # Converting 'Ŕ' => 'ŕ' [expected 'ŕ'] (line 110) # Converting 'Ŗ' => 'ŗ' [expected 'ŗ'] (line 111) # Converting 'Ř' => 'ř' [expected 'ř'] (line 112) # Converting 'Ś' => 'ś' [expected 'ś'] (line 113) # Converting 'Ŝ' => 'ŝ' [expected 'ŝ'] (line 114) # Converting 'Ş' => 'ş' [expected 'ş'] (line 115) # Converting 'Š' => 'š' [expected 'š'] (line 116) # Converting 'Ţ' => 'ţ' [expected 'ţ'] (line 117) # Converting 'Ť' => 'ť' [expected 'ť'] (line 118) # Converting 'Ŧ' => 'ŧ' [expected 'ŧ'] (line 119) # Converting 'Ũ' => 'ũ' [expected 'ũ'] (line 120) # Converting 'Ū' => 'ū' [expected 'ū'] (line 121) # Converting 'Ŭ' => 'ŭ' [expected 'ŭ'] (line 122) # Converting 'Ů' => 'ů' [expected 'ů'] (line 123) # Converting 'Ű' => 'ű' [expected 'ű'] (line 124) # Converting 'Ų' => 'ų' [expected 'ų'] (line 125) # Converting 'Ŵ' => 'ŵ' [expected 'ŵ'] (line 126) # Converting 'Ŷ' => 'ŷ' [expected 'ŷ'] (line 127) # Converting 'Ÿ' => 'ÿ' [expected 'ÿ'] (line 128) # Converting 'Ź' => 'ź' [expected 'ź'] (line 129) # Converting 'Ż' => 'ż' [expected 'ż'] (line 130) # Converting 'Ž' => 'ž' [expected 'ž'] (line 131) # Converting 'ſ' => 's' [expected 's'] (line 132) # Converting 'Ɓ' => 'ɓ' [expected 'ɓ'] (line 133) # Converting 'Ƃ' => 'ƃ' [expected 'ƃ'] (line 134) # Converting 'Ƅ' => 'ƅ' [expected 'ƅ'] (line 135) # Converting 'Ɔ' => 'ɔ' [expected 'ɔ'] (line 136) # Converting 'Ƈ' => 'ƈ' [expected 'ƈ'] (line 137) # Converting 'Ɖ' => 'ɖ' [expected 'ɖ'] (line 138) # Converting 'Ɗ' => 'ɗ' [expected 'ɗ'] (line 139) # Converting 'Ƌ' => 'ƌ' [expected 'ƌ'] (line 140) # Converting 'Ǝ' => 'ǝ' [expected 'ǝ'] (line 141) # Converting 'Ə' => 'ə' [expected 'ə'] (line 142) # Converting 'Ɛ' => 'ɛ' [expected 'ɛ'] (line 143) # Converting 'Ƒ' => 'ƒ' [expected 'ƒ'] (line 144) # Converting 'Ɠ' => 'ɠ' [expected 'ɠ'] (line 145) # Converting 'Ɣ' => 'ɣ' [expected 'ɣ'] (line 146) # Converting 'Ɩ' => 'ɩ' [expected 'ɩ'] (line 147) # Converting 'Ɨ' => 'ɨ' [expected 'ɨ'] (line 148) # Converting 'Ƙ' => 'ƙ' [expected 'ƙ'] (line 149) # Converting 'Ɯ' => 'ɯ' [expected 'ɯ'] (line 150) # Converting 'Ɲ' => 'ɲ' [expected 'ɲ'] (line 151) # Converting 'Ɵ' => 'ɵ' [expected 'ɵ'] (line 152) # Converting 'Ơ' => 'ơ' [expected 'ơ'] (line 153) # Converting 'Ƣ' => 'ƣ' [expected 'ƣ'] (line 154) # Converting 'Ƥ' => 'ƥ' [expected 'ƥ'] (line 155) # Converting 'Ʀ' => 'ʀ' [expected 'ʀ'] (line 156) # Converting 'Ƨ' => 'ƨ' [expected 'ƨ'] (line 157) # Converting 'Ʃ' => 'ʃ' [expected 'ʃ'] (line 158) # Converting 'Ƭ' => 'ƭ' [expected 'ƭ'] (line 159) # Converting 'Ʈ' => 'ʈ' [expected 'ʈ'] (line 160) # Converting 'Ư' => 'ư' [expected 'ư'] (line 161) # Converting 'Ʊ' => 'ʊ' [expected 'ʊ'] (line 162) # Converting 'Ʋ' => 'ʋ' [expected 'ʋ'] (line 163) # Converting 'Ƴ' => 'ƴ' [expected 'ƴ'] (line 164) # Converting 'Ƶ' => 'ƶ' [expected 'ƶ'] (line 165) # Converting 'Ʒ' => 'ʒ' [expected 'ʒ'] (line 166) # Converting 'Ƹ' => 'ƹ' [expected 'ƹ'] (line 167) # Converting 'Ƽ' => 'ƽ' [expected 'ƽ'] (line 168) # Converting 'DŽ' => 'dž' [expected 'dž'] (line 169) # Converting 'Dž' => 'dž' [expected 'dž'] (line 170) # Converting 'LJ' => 'lj' [expected 'lj'] (line 171) # Converting 'Lj' => 'lj' [expected 'lj'] (line 172) # Converting 'NJ' => 'nj' [expected 'nj'] (line 173) # Converting 'Nj' => 'nj' [expected 'nj'] (line 174) # Converting 'Ǎ' => 'ǎ' [expected 'ǎ'] (line 175) # Converting 'Ǐ' => 'ǐ' [expected 'ǐ'] (line 176) # Converting 'Ǒ' => 'ǒ' [expected 'ǒ'] (line 177) # Converting 'Ǔ' => 'ǔ' [expected 'ǔ'] (line 178) # Converting 'Ǖ' => 'ǖ' [expected 'ǖ'] (line 179) # Converting 'Ǘ' => 'ǘ' [expected 'ǘ'] (line 180) # Converting 'Ǚ' => 'ǚ' [expected 'ǚ'] (line 181) # Converting 'Ǜ' => 'ǜ' [expected 'ǜ'] (line 182) # Converting 'Ǟ' => 'ǟ' [expected 'ǟ'] (line 183) # Converting 'Ǡ' => 'ǡ' [expected 'ǡ'] (line 184) # Converting 'Ǣ' => 'ǣ' [expected 'ǣ'] (line 185) # Converting 'Ǥ' => 'ǥ' [expected 'ǥ'] (line 186) # Converting 'Ǧ' => 'ǧ' [expected 'ǧ'] (line 187) # Converting 'Ǩ' => 'ǩ' [expected 'ǩ'] (line 188) # Converting 'Ǫ' => 'ǫ' [expected 'ǫ'] (line 189) # Converting 'Ǭ' => 'ǭ' [expected 'ǭ'] (line 190) # Converting 'Ǯ' => 'ǯ' [expected 'ǯ'] (line 191) # Converting 'ǰ' => 'ǰ' [expected 'ǰ'] (line 192) # Converting 'DZ' => 'dz' [expected 'dz'] (line 193) # Converting 'Dz' => 'dz' [expected 'dz'] (line 194) # Converting 'Ǵ' => 'ǵ' [expected 'ǵ'] (line 195) # Converting 'Ƕ' => 'ƕ' [expected 'ƕ'] (line 196) # Converting 'Ƿ' => 'ƿ' [expected 'ƿ'] (line 197) # Converting 'Ǹ' => 'ǹ' [expected 'ǹ'] (line 198) # Converting 'Ǻ' => 'ǻ' [expected 'ǻ'] (line 199) # Converting 'Ǽ' => 'ǽ' [expected 'ǽ'] (line 200) # Converting 'Ǿ' => 'ǿ' [expected 'ǿ'] (line 201) # Converting 'Ȁ' => 'ȁ' [expected 'ȁ'] (line 202) # Converting 'Ȃ' => 'ȃ' [expected 'ȃ'] (line 203) # Converting 'Ȅ' => 'ȅ' [expected 'ȅ'] (line 204) # Converting 'Ȇ' => 'ȇ' [expected 'ȇ'] (line 205) # Converting 'Ȉ' => 'ȉ' [expected 'ȉ'] (line 206) # Converting 'Ȋ' => 'ȋ' [expected 'ȋ'] (line 207) # Converting 'Ȍ' => 'ȍ' [expected 'ȍ'] (line 208) # Converting 'Ȏ' => 'ȏ' [expected 'ȏ'] (line 209) # Converting 'Ȑ' => 'ȑ' [expected 'ȑ'] (line 210) # Converting 'Ȓ' => 'ȓ' [expected 'ȓ'] (line 211) # Converting 'Ȕ' => 'ȕ' [expected 'ȕ'] (line 212) # Converting 'Ȗ' => 'ȗ' [expected 'ȗ'] (line 213) # Converting 'Ș' => 'ș' [expected 'ș'] (line 214) # Converting 'Ț' => 'ț' [expected 'ț'] (line 215) # Converting 'Ȝ' => 'ȝ' [expected 'ȝ'] (line 216) # Converting 'Ȟ' => 'ȟ' [expected 'ȟ'] (line 217) # Converting 'Ƞ' => 'ƞ' [expected 'ƞ'] (line 218) # Converting 'Ȣ' => 'ȣ' [expected 'ȣ'] (line 219) # Converting 'Ȥ' => 'ȥ' [expected 'ȥ'] (line 220) # Converting 'Ȧ' => 'ȧ' [expected 'ȧ'] (line 221) # Converting 'Ȩ' => 'ȩ' [expected 'ȩ'] (line 222) # Converting 'Ȫ' => 'ȫ' [expected 'ȫ'] (line 223) # Converting 'Ȭ' => 'ȭ' [expected 'ȭ'] (line 224) # Converting 'Ȯ' => 'ȯ' [expected 'ȯ'] (line 225) # Converting 'Ȱ' => 'ȱ' [expected 'ȱ'] (line 226) # Converting 'Ȳ' => 'ȳ' [expected 'ȳ'] (line 227) # Converting 'Ⱥ' => 'ⱥ' [expected 'ⱥ'] (line 228) # Converting 'Ȼ' => 'ȼ' [expected 'ȼ'] (line 229) # Converting 'Ƚ' => 'ƚ' [expected 'ƚ'] (line 230) # Converting 'Ⱦ' => 'ⱦ' [expected 'ⱦ'] (line 231) # Converting 'Ɂ' => 'ɂ' [expected 'ɂ'] (line 232) # Converting 'Ƀ' => 'ƀ' [expected 'ƀ'] (line 233) # Converting 'Ʉ' => 'ʉ' [expected 'ʉ'] (line 234) # Converting 'Ʌ' => 'ʌ' [expected 'ʌ'] (line 235) # Converting 'Ɇ' => 'ɇ' [expected 'ɇ'] (line 236) # Converting 'Ɉ' => 'ɉ' [expected 'ɉ'] (line 237) # Converting 'Ɋ' => 'ɋ' [expected 'ɋ'] (line 238) # Converting 'Ɍ' => 'ɍ' [expected 'ɍ'] (line 239) # Converting 'Ɏ' => 'ɏ' [expected 'ɏ'] (line 240) # Converting 'ͅ' => 'ι' [expected 'ι'] (line 241) # Converting 'Ͱ' => 'ͱ' [expected 'ͱ'] (line 242) # Converting 'Ͳ' => 'ͳ' [expected 'ͳ'] (line 243) # Converting 'Ͷ' => 'ͷ' [expected 'ͷ'] (line 244) # Converting 'Ϳ' => 'ϳ' [expected 'ϳ'] (line 245) # Converting 'Ά' => 'ά' [expected 'ά'] (line 246) # Converting 'Έ' => 'έ' [expected 'έ'] (line 247) # Converting 'Ή' => 'ή' [expected 'ή'] (line 248) # Converting 'Ί' => 'ί' [expected 'ί'] (line 249) # Converting 'Ό' => 'ό' [expected 'ό'] (line 250) # Converting 'Ύ' => 'ύ' [expected 'ύ'] (line 251) # Converting 'Ώ' => 'ώ' [expected 'ώ'] (line 252) # Converting 'ΐ' => 'ΐ' [expected 'ΐ'] (line 253) # Converting 'Α' => 'α' [expected 'α'] (line 254) # Converting 'Β' => 'β' [expected 'β'] (line 255) # Converting 'Γ' => 'γ' [expected 'γ'] (line 256) # Converting 'Δ' => 'δ' [expected 'δ'] (line 257) # Converting 'Ε' => 'ε' [expected 'ε'] (line 258) # Converting 'Ζ' => 'ζ' [expected 'ζ'] (line 259) # Converting 'Η' => 'η' [expected 'η'] (line 260) # Converting 'Θ' => 'θ' [expected 'θ'] (line 261) # Converting 'Ι' => 'ι' [expected 'ι'] (line 262) # Converting 'Κ' => 'κ' [expected 'κ'] (line 263) # Converting 'Λ' => 'λ' [expected 'λ'] (line 264) # Converting 'Μ' => 'μ' [expected 'μ'] (line 265) # Converting 'Ν' => 'ν' [expected 'ν'] (line 266) # Converting 'Ξ' => 'ξ' [expected 'ξ'] (line 267) # Converting 'Ο' => 'ο' [expected 'ο'] (line 268) # Converting 'Π' => 'π' [expected 'π'] (line 269) # Converting 'Ρ' => 'ρ' [expected 'ρ'] (line 270) # Converting 'Σ' => 'σ' [expected 'σ'] (line 271) # Converting 'Τ' => 'τ' [expected 'τ'] (line 272) # Converting 'Υ' => 'υ' [expected 'υ'] (line 273) # Converting 'Φ' => 'φ' [expected 'φ'] (line 274) # Converting 'Χ' => 'χ' [expected 'χ'] (line 275) # Converting 'Ψ' => 'ψ' [expected 'ψ'] (line 276) # Converting 'Ω' => 'ω' [expected 'ω'] (line 277) # Converting 'Ϊ' => 'ϊ' [expected 'ϊ'] (line 278) # Converting 'Ϋ' => 'ϋ' [expected 'ϋ'] (line 279) # Converting 'ΰ' => 'ΰ' [expected 'ΰ'] (line 280) # Converting 'ς' => 'σ' [expected 'σ'] (line 281) # Converting 'Ϗ' => 'ϗ' [expected 'ϗ'] (line 282) # Converting 'ϐ' => 'β' [expected 'β'] (line 283) # Converting 'ϑ' => 'θ' [expected 'θ'] (line 284) # Converting 'ϕ' => 'φ' [expected 'φ'] (line 285) # Converting 'ϖ' => 'π' [expected 'π'] (line 286) # Converting 'Ϙ' => 'ϙ' [expected 'ϙ'] (line 287) # Converting 'Ϛ' => 'ϛ' [expected 'ϛ'] (line 288) # Converting 'Ϝ' => 'ϝ' [expected 'ϝ'] (line 289) # Converting 'Ϟ' => 'ϟ' [expected 'ϟ'] (line 290) # Converting 'Ϡ' => 'ϡ' [expected 'ϡ'] (line 291) # Converting 'Ϣ' => 'ϣ' [expected 'ϣ'] (line 292) # Converting 'Ϥ' => 'ϥ' [expected 'ϥ'] (line 293) # Converting 'Ϧ' => 'ϧ' [expected 'ϧ'] (line 294) # Converting 'Ϩ' => 'ϩ' [expected 'ϩ'] (line 295) # Converting 'Ϫ' => 'ϫ' [expected 'ϫ'] (line 296) # Converting 'Ϭ' => 'ϭ' [expected 'ϭ'] (line 297) # Converting 'Ϯ' => 'ϯ' [expected 'ϯ'] (line 298) # Converting 'ϰ' => 'κ' [expected 'κ'] (line 299) # Converting 'ϱ' => 'ρ' [expected 'ρ'] (line 300) # Converting 'ϴ' => 'θ' [expected 'θ'] (line 301) # Converting 'ϵ' => 'ε' [expected 'ε'] (line 302) # Converting 'Ϸ' => 'ϸ' [expected 'ϸ'] (line 303) # Converting 'Ϲ' => 'ϲ' [expected 'ϲ'] (line 304) # Converting 'Ϻ' => 'ϻ' [expected 'ϻ'] (line 305) # Converting 'Ͻ' => 'ͻ' [expected 'ͻ'] (line 306) # Converting 'Ͼ' => 'ͼ' [expected 'ͼ'] (line 307) # Converting 'Ͽ' => 'ͽ' [expected 'ͽ'] (line 308) # Converting 'Ѐ' => 'ѐ' [expected 'ѐ'] (line 309) # Converting 'Ё' => 'ё' [expected 'ё'] (line 310) # Converting 'Ђ' => 'ђ' [expected 'ђ'] (line 311) # Converting 'Ѓ' => 'ѓ' [expected 'ѓ'] (line 312) # Converting 'Є' => 'є' [expected 'є'] (line 313) # Converting 'Ѕ' => 'ѕ' [expected 'ѕ'] (line 314) # Converting 'І' => 'і' [expected 'і'] (line 315) # Converting 'Ї' => 'ї' [expected 'ї'] (line 316) # Converting 'Ј' => 'ј' [expected 'ј'] (line 317) # Converting 'Љ' => 'љ' [expected 'љ'] (line 318) # Converting 'Њ' => 'њ' [expected 'њ'] (line 319) # Converting 'Ћ' => 'ћ' [expected 'ћ'] (line 320) # Converting 'Ќ' => 'ќ' [expected 'ќ'] (line 321) # Converting 'Ѝ' => 'ѝ' [expected 'ѝ'] (line 322) # Converting 'Ў' => 'ў' [expected 'ў'] (line 323) # Converting 'Џ' => 'џ' [expected 'џ'] (line 324) # Converting 'А' => 'а' [expected 'а'] (line 325) # Converting 'Б' => 'б' [expected 'б'] (line 326) # Converting 'В' => 'в' [expected 'в'] (line 327) # Converting 'Г' => 'г' [expected 'г'] (line 328) # Converting 'Д' => 'д' [expected 'д'] (line 329) # Converting 'Е' => 'е' [expected 'е'] (line 330) # Converting 'Ж' => 'ж' [expected 'ж'] (line 331) # Converting 'З' => 'з' [expected 'з'] (line 332) # Converting 'И' => 'и' [expected 'и'] (line 333) # Converting 'Й' => 'й' [expected 'й'] (line 334) # Converting 'К' => 'к' [expected 'к'] (line 335) # Converting 'Л' => 'л' [expected 'л'] (line 336) # Converting 'М' => 'м' [expected 'м'] (line 337) # Converting 'Н' => 'н' [expected 'н'] (line 338) # Converting 'О' => 'о' [expected 'о'] (line 339) # Converting 'П' => 'п' [expected 'п'] (line 340) # Converting 'Р' => 'р' [expected 'р'] (line 341) # Converting 'С' => 'с' [expected 'с'] (line 342) # Converting 'Т' => 'т' [expected 'т'] (line 343) # Converting 'У' => 'у' [expected 'у'] (line 344) # Converting 'Ф' => 'ф' [expected 'ф'] (line 345) # Converting 'Х' => 'х' [expected 'х'] (line 346) # Converting 'Ц' => 'ц' [expected 'ц'] (line 347) # Converting 'Ч' => 'ч' [expected 'ч'] (line 348) # Converting 'Ш' => 'ш' [expected 'ш'] (line 349) # Converting 'Щ' => 'щ' [expected 'щ'] (line 350) # Converting 'Ъ' => 'ъ' [expected 'ъ'] (line 351) # Converting 'Ы' => 'ы' [expected 'ы'] (line 352) # Converting 'Ь' => 'ь' [expected 'ь'] (line 353) # Converting 'Э' => 'э' [expected 'э'] (line 354) # Converting 'Ю' => 'ю' [expected 'ю'] (line 355) # Converting 'Я' => 'я' [expected 'я'] (line 356) # Converting 'Ѡ' => 'ѡ' [expected 'ѡ'] (line 357) # Converting 'Ѣ' => 'ѣ' [expected 'ѣ'] (line 358) # Converting 'Ѥ' => 'ѥ' [expected 'ѥ'] (line 359) # Converting 'Ѧ' => 'ѧ' [expected 'ѧ'] (line 360) # Converting 'Ѩ' => 'ѩ' [expected 'ѩ'] (line 361) # Converting 'Ѫ' => 'ѫ' [expected 'ѫ'] (line 362) # Converting 'Ѭ' => 'ѭ' [expected 'ѭ'] (line 363) # Converting 'Ѯ' => 'ѯ' [expected 'ѯ'] (line 364) # Converting 'Ѱ' => 'ѱ' [expected 'ѱ'] (line 365) # Converting 'Ѳ' => 'ѳ' [expected 'ѳ'] (line 366) # Converting 'Ѵ' => 'ѵ' [expected 'ѵ'] (line 367) # Converting 'Ѷ' => 'ѷ' [expected 'ѷ'] (line 368) # Converting 'Ѹ' => 'ѹ' [expected 'ѹ'] (line 369) # Converting 'Ѻ' => 'ѻ' [expected 'ѻ'] (line 370) # Converting 'Ѽ' => 'ѽ' [expected 'ѽ'] (line 371) # Converting 'Ѿ' => 'ѿ' [expected 'ѿ'] (line 372) # Converting 'Ҁ' => 'ҁ' [expected 'ҁ'] (line 373) # Converting 'Ҋ' => 'ҋ' [expected 'ҋ'] (line 374) # Converting 'Ҍ' => 'ҍ' [expected 'ҍ'] (line 375) # Converting 'Ҏ' => 'ҏ' [expected 'ҏ'] (line 376) # Converting 'Ґ' => 'ґ' [expected 'ґ'] (line 377) # Converting 'Ғ' => 'ғ' [expected 'ғ'] (line 378) # Converting 'Ҕ' => 'ҕ' [expected 'ҕ'] (line 379) # Converting 'Җ' => 'җ' [expected 'җ'] (line 380) # Converting 'Ҙ' => 'ҙ' [expected 'ҙ'] (line 381) # Converting 'Қ' => 'қ' [expected 'қ'] (line 382) # Converting 'Ҝ' => 'ҝ' [expected 'ҝ'] (line 383) # Converting 'Ҟ' => 'ҟ' [expected 'ҟ'] (line 384) # Converting 'Ҡ' => 'ҡ' [expected 'ҡ'] (line 385) # Converting 'Ң' => 'ң' [expected 'ң'] (line 386) # Converting 'Ҥ' => 'ҥ' [expected 'ҥ'] (line 387) # Converting 'Ҧ' => 'ҧ' [expected 'ҧ'] (line 388) # Converting 'Ҩ' => 'ҩ' [expected 'ҩ'] (line 389) # Converting 'Ҫ' => 'ҫ' [expected 'ҫ'] (line 390) # Converting 'Ҭ' => 'ҭ' [expected 'ҭ'] (line 391) # Converting 'Ү' => 'ү' [expected 'ү'] (line 392) # Converting 'Ұ' => 'ұ' [expected 'ұ'] (line 393) # Converting 'Ҳ' => 'ҳ' [expected 'ҳ'] (line 394) # Converting 'Ҵ' => 'ҵ' [expected 'ҵ'] (line 395) # Converting 'Ҷ' => 'ҷ' [expected 'ҷ'] (line 396) # Converting 'Ҹ' => 'ҹ' [expected 'ҹ'] (line 397) # Converting 'Һ' => 'һ' [expected 'һ'] (line 398) # Converting 'Ҽ' => 'ҽ' [expected 'ҽ'] (line 399) # Converting 'Ҿ' => 'ҿ' [expected 'ҿ'] (line 400) # Converting 'Ӏ' => 'ӏ' [expected 'ӏ'] (line 401) # Converting 'Ӂ' => 'ӂ' [expected 'ӂ'] (line 402) # Converting 'Ӄ' => 'ӄ' [expected 'ӄ'] (line 403) # Converting 'Ӆ' => 'ӆ' [expected 'ӆ'] (line 404) # Converting 'Ӈ' => 'ӈ' [expected 'ӈ'] (line 405) # Converting 'Ӊ' => 'ӊ' [expected 'ӊ'] (line 406) # Converting 'Ӌ' => 'ӌ' [expected 'ӌ'] (line 407) # Converting 'Ӎ' => 'ӎ' [expected 'ӎ'] (line 408) # Converting 'Ӑ' => 'ӑ' [expected 'ӑ'] (line 409) # Converting 'Ӓ' => 'ӓ' [expected 'ӓ'] (line 410) # Converting 'Ӕ' => 'ӕ' [expected 'ӕ'] (line 411) # Converting 'Ӗ' => 'ӗ' [expected 'ӗ'] (line 412) # Converting 'Ә' => 'ә' [expected 'ә'] (line 413) # Converting 'Ӛ' => 'ӛ' [expected 'ӛ'] (line 414) # Converting 'Ӝ' => 'ӝ' [expected 'ӝ'] (line 415) # Converting 'Ӟ' => 'ӟ' [expected 'ӟ'] (line 416) # Converting 'Ӡ' => 'ӡ' [expected 'ӡ'] (line 417) # Converting 'Ӣ' => 'ӣ' [expected 'ӣ'] (line 418) # Converting 'Ӥ' => 'ӥ' [expected 'ӥ'] (line 419) # Converting 'Ӧ' => 'ӧ' [expected 'ӧ'] (line 420) # Converting 'Ө' => 'ө' [expected 'ө'] (line 421) # Converting 'Ӫ' => 'ӫ' [expected 'ӫ'] (line 422) # Converting 'Ӭ' => 'ӭ' [expected 'ӭ'] (line 423) # Converting 'Ӯ' => 'ӯ' [expected 'ӯ'] (line 424) # Converting 'Ӱ' => 'ӱ' [expected 'ӱ'] (line 425) # Converting 'Ӳ' => 'ӳ' [expected 'ӳ'] (line 426) # Converting 'Ӵ' => 'ӵ' [expected 'ӵ'] (line 427) # Converting 'Ӷ' => 'ӷ' [expected 'ӷ'] (line 428) # Converting 'Ӹ' => 'ӹ' [expected 'ӹ'] (line 429) # Converting 'Ӻ' => 'ӻ' [expected 'ӻ'] (line 430) # Converting 'Ӽ' => 'ӽ' [expected 'ӽ'] (line 431) # Converting 'Ӿ' => 'ӿ' [expected 'ӿ'] (line 432) # Converting 'Ԁ' => 'ԁ' [expected 'ԁ'] (line 433) # Converting 'Ԃ' => 'ԃ' [expected 'ԃ'] (line 434) # Converting 'Ԅ' => 'ԅ' [expected 'ԅ'] (line 435) # Converting 'Ԇ' => 'ԇ' [expected 'ԇ'] (line 436) # Converting 'Ԉ' => 'ԉ' [expected 'ԉ'] (line 437) # Converting 'Ԋ' => 'ԋ' [expected 'ԋ'] (line 438) # Converting 'Ԍ' => 'ԍ' [expected 'ԍ'] (line 439) # Converting 'Ԏ' => 'ԏ' [expected 'ԏ'] (line 440) # Converting 'Ԑ' => 'ԑ' [expected 'ԑ'] (line 441) # Converting 'Ԓ' => 'ԓ' [expected 'ԓ'] (line 442) # Converting 'Ԕ' => 'ԕ' [expected 'ԕ'] (line 443) # Converting 'Ԗ' => 'ԗ' [expected 'ԗ'] (line 444) # Converting 'Ԙ' => 'ԙ' [expected 'ԙ'] (line 445) # Converting 'Ԛ' => 'ԛ' [expected 'ԛ'] (line 446) # Converting 'Ԝ' => 'ԝ' [expected 'ԝ'] (line 447) # Converting 'Ԟ' => 'ԟ' [expected 'ԟ'] (line 448) # Converting 'Ԡ' => 'ԡ' [expected 'ԡ'] (line 449) # Converting 'Ԣ' => 'ԣ' [expected 'ԣ'] (line 450) # Converting 'Ԥ' => 'ԥ' [expected 'ԥ'] (line 451) # Converting 'Ԧ' => 'ԧ' [expected 'ԧ'] (line 452) # Converting 'Ԩ' => 'ԩ' [expected 'ԩ'] (line 453) # Converting 'Ԫ' => 'ԫ' [expected 'ԫ'] (line 454) # Converting 'Ԭ' => 'ԭ' [expected 'ԭ'] (line 455) # Converting 'Ԯ' => 'ԯ' [expected 'ԯ'] (line 456) # Converting 'Ա' => 'ա' [expected 'ա'] (line 457) # Converting 'Բ' => 'բ' [expected 'բ'] (line 458) # Converting 'Գ' => 'գ' [expected 'գ'] (line 459) # Converting 'Դ' => 'դ' [expected 'դ'] (line 460) # Converting 'Ե' => 'ե' [expected 'ե'] (line 461) # Converting 'Զ' => 'զ' [expected 'զ'] (line 462) # Converting 'Է' => 'է' [expected 'է'] (line 463) # Converting 'Ը' => 'ը' [expected 'ը'] (line 464) # Converting 'Թ' => 'թ' [expected 'թ'] (line 465) # Converting 'Ժ' => 'ժ' [expected 'ժ'] (line 466) # Converting 'Ի' => 'ի' [expected 'ի'] (line 467) # Converting 'Լ' => 'լ' [expected 'լ'] (line 468) # Converting 'Խ' => 'խ' [expected 'խ'] (line 469) # Converting 'Ծ' => 'ծ' [expected 'ծ'] (line 470) # Converting 'Կ' => 'կ' [expected 'կ'] (line 471) # Converting 'Հ' => 'հ' [expected 'հ'] (line 472) # Converting 'Ձ' => 'ձ' [expected 'ձ'] (line 473) # Converting 'Ղ' => 'ղ' [expected 'ղ'] (line 474) # Converting 'Ճ' => 'ճ' [expected 'ճ'] (line 475) # Converting 'Մ' => 'մ' [expected 'մ'] (line 476) # Converting 'Յ' => 'յ' [expected 'յ'] (line 477) # Converting 'Ն' => 'ն' [expected 'ն'] (line 478) # Converting 'Շ' => 'շ' [expected 'շ'] (line 479) # Converting 'Ո' => 'ո' [expected 'ո'] (line 480) # Converting 'Չ' => 'չ' [expected 'չ'] (line 481) # Converting 'Պ' => 'պ' [expected 'պ'] (line 482) # Converting 'Ջ' => 'ջ' [expected 'ջ'] (line 483) # Converting 'Ռ' => 'ռ' [expected 'ռ'] (line 484) # Converting 'Ս' => 'ս' [expected 'ս'] (line 485) # Converting 'Վ' => 'վ' [expected 'վ'] (line 486) # Converting 'Տ' => 'տ' [expected 'տ'] (line 487) # Converting 'Ր' => 'ր' [expected 'ր'] (line 488) # Converting 'Ց' => 'ց' [expected 'ց'] (line 489) # Converting 'Ւ' => 'ւ' [expected 'ւ'] (line 490) # Converting 'Փ' => 'փ' [expected 'փ'] (line 491) # Converting 'Ք' => 'ք' [expected 'ք'] (line 492) # Converting 'Օ' => 'օ' [expected 'օ'] (line 493) # Converting 'Ֆ' => 'ֆ' [expected 'ֆ'] (line 494) # Converting 'և' => 'եւ' [expected 'եւ'] (line 495) # Converting 'Ⴀ' => 'ⴀ' [expected 'ⴀ'] (line 496) # Converting 'Ⴁ' => 'ⴁ' [expected 'ⴁ'] (line 497) # Converting 'Ⴂ' => 'ⴂ' [expected 'ⴂ'] (line 498) # Converting 'Ⴃ' => 'ⴃ' [expected 'ⴃ'] (line 499) # Converting 'Ⴄ' => 'ⴄ' [expected 'ⴄ'] (line 500) # Converting 'Ⴅ' => 'ⴅ' [expected 'ⴅ'] (line 501) # Converting 'Ⴆ' => 'ⴆ' [expected 'ⴆ'] (line 502) # Converting 'Ⴇ' => 'ⴇ' [expected 'ⴇ'] (line 503) # Converting 'Ⴈ' => 'ⴈ' [expected 'ⴈ'] (line 504) # Converting 'Ⴉ' => 'ⴉ' [expected 'ⴉ'] (line 505) # Converting 'Ⴊ' => 'ⴊ' [expected 'ⴊ'] (line 506) # Converting 'Ⴋ' => 'ⴋ' [expected 'ⴋ'] (line 507) # Converting 'Ⴌ' => 'ⴌ' [expected 'ⴌ'] (line 508) # Converting 'Ⴍ' => 'ⴍ' [expected 'ⴍ'] (line 509) # Converting 'Ⴎ' => 'ⴎ' [expected 'ⴎ'] (line 510) # Converting 'Ⴏ' => 'ⴏ' [expected 'ⴏ'] (line 511) # Converting 'Ⴐ' => 'ⴐ' [expected 'ⴐ'] (line 512) # Converting 'Ⴑ' => 'ⴑ' [expected 'ⴑ'] (line 513) # Converting 'Ⴒ' => 'ⴒ' [expected 'ⴒ'] (line 514) # Converting 'Ⴓ' => 'ⴓ' [expected 'ⴓ'] (line 515) # Converting 'Ⴔ' => 'ⴔ' [expected 'ⴔ'] (line 516) # Converting 'Ⴕ' => 'ⴕ' [expected 'ⴕ'] (line 517) # Converting 'Ⴖ' => 'ⴖ' [expected 'ⴖ'] (line 518) # Converting 'Ⴗ' => 'ⴗ' [expected 'ⴗ'] (line 519) # Converting 'Ⴘ' => 'ⴘ' [expected 'ⴘ'] (line 520) # Converting 'Ⴙ' => 'ⴙ' [expected 'ⴙ'] (line 521) # Converting 'Ⴚ' => 'ⴚ' [expected 'ⴚ'] (line 522) # Converting 'Ⴛ' => 'ⴛ' [expected 'ⴛ'] (line 523) # Converting 'Ⴜ' => 'ⴜ' [expected 'ⴜ'] (line 524) # Converting 'Ⴝ' => 'ⴝ' [expected 'ⴝ'] (line 525) # Converting 'Ⴞ' => 'ⴞ' [expected 'ⴞ'] (line 526) # Converting 'Ⴟ' => 'ⴟ' [expected 'ⴟ'] (line 527) # Converting 'Ⴠ' => 'ⴠ' [expected 'ⴠ'] (line 528) # Converting 'Ⴡ' => 'ⴡ' [expected 'ⴡ'] (line 529) # Converting 'Ⴢ' => 'ⴢ' [expected 'ⴢ'] (line 530) # Converting 'Ⴣ' => 'ⴣ' [expected 'ⴣ'] (line 531) # Converting 'Ⴤ' => 'ⴤ' [expected 'ⴤ'] (line 532) # Converting 'Ⴥ' => 'ⴥ' [expected 'ⴥ'] (line 533) # Converting 'Ⴧ' => 'ⴧ' [expected 'ⴧ'] (line 534) # Converting 'Ⴭ' => 'ⴭ' [expected 'ⴭ'] (line 535) # Converting 'ᏸ' => 'Ᏸ' [expected 'Ᏸ'] (line 536) # Converting 'ᏹ' => 'Ᏹ' [expected 'Ᏹ'] (line 537) # Converting 'ᏺ' => 'Ᏺ' [expected 'Ᏺ'] (line 538) # Converting 'ᏻ' => 'Ᏻ' [expected 'Ᏻ'] (line 539) # Converting 'ᏼ' => 'Ᏼ' [expected 'Ᏼ'] (line 540) # Converting 'ᏽ' => 'Ᏽ' [expected 'Ᏽ'] (line 541) # Converting 'ᲀ' => 'в' [expected 'в'] (line 542) # Converting 'ᲁ' => 'д' [expected 'д'] (line 543) # Converting 'ᲂ' => 'о' [expected 'о'] (line 544) # Converting 'ᲃ' => 'с' [expected 'с'] (line 545) # Converting 'ᲄ' => 'т' [expected 'т'] (line 546) # Converting 'ᲅ' => 'т' [expected 'т'] (line 547) # Converting 'ᲆ' => 'ъ' [expected 'ъ'] (line 548) # Converting 'ᲇ' => 'ѣ' [expected 'ѣ'] (line 549) # Converting 'ᲈ' => 'ꙋ' [expected 'ꙋ'] (line 550) # Converting 'Ᲊ' => 'ᲊ' [expected 'ᲊ'] (line 551) # Converting 'Ა' => 'ა' [expected 'ა'] (line 552) # Converting 'Ბ' => 'ბ' [expected 'ბ'] (line 553) # Converting 'Გ' => 'გ' [expected 'გ'] (line 554) # Converting 'Დ' => 'დ' [expected 'დ'] (line 555) # Converting 'Ე' => 'ე' [expected 'ე'] (line 556) # Converting 'Ვ' => 'ვ' [expected 'ვ'] (line 557) # Converting 'Ზ' => 'ზ' [expected 'ზ'] (line 558) # Converting 'Თ' => 'თ' [expected 'თ'] (line 559) # Converting 'Ი' => 'ი' [expected 'ი'] (line 560) # Converting 'Კ' => 'კ' [expected 'კ'] (line 561) # Converting 'Ლ' => 'ლ' [expected 'ლ'] (line 562) # Converting 'Მ' => 'მ' [expected 'მ'] (line 563) # Converting 'Ნ' => 'ნ' [expected 'ნ'] (line 564) # Converting 'Ო' => 'ო' [expected 'ო'] (line 565) # Converting 'Პ' => 'პ' [expected 'პ'] (line 566) # Converting 'Ჟ' => 'ჟ' [expected 'ჟ'] (line 567) # Converting 'Რ' => 'რ' [expected 'რ'] (line 568) # Converting 'Ს' => 'ს' [expected 'ს'] (line 569) # Converting 'Ტ' => 'ტ' [expected 'ტ'] (line 570) # Converting 'Უ' => 'უ' [expected 'უ'] (line 571) # Converting 'Ფ' => 'ფ' [expected 'ფ'] (line 572) # Converting 'Ქ' => 'ქ' [expected 'ქ'] (line 573) # Converting 'Ღ' => 'ღ' [expected 'ღ'] (line 574) # Converting 'Ყ' => 'ყ' [expected 'ყ'] (line 575) # Converting 'Შ' => 'შ' [expected 'შ'] (line 576) # Converting 'Ჩ' => 'ჩ' [expected 'ჩ'] (line 577) # Converting 'Ც' => 'ც' [expected 'ც'] (line 578) # Converting 'Ძ' => 'ძ' [expected 'ძ'] (line 579) # Converting 'Წ' => 'წ' [expected 'წ'] (line 580) # Converting 'Ჭ' => 'ჭ' [expected 'ჭ'] (line 581) # Converting 'Ხ' => 'ხ' [expected 'ხ'] (line 582) # Converting 'Ჯ' => 'ჯ' [expected 'ჯ'] (line 583) # Converting 'Ჰ' => 'ჰ' [expected 'ჰ'] (line 584) # Converting 'Ჱ' => 'ჱ' [expected 'ჱ'] (line 585) # Converting 'Ჲ' => 'ჲ' [expected 'ჲ'] (line 586) # Converting 'Ჳ' => 'ჳ' [expected 'ჳ'] (line 587) # Converting 'Ჴ' => 'ჴ' [expected 'ჴ'] (line 588) # Converting 'Ჵ' => 'ჵ' [expected 'ჵ'] (line 589) # Converting 'Ჶ' => 'ჶ' [expected 'ჶ'] (line 590) # Converting 'Ჷ' => 'ჷ' [expected 'ჷ'] (line 591) # Converting 'Ჸ' => 'ჸ' [expected 'ჸ'] (line 592) # Converting 'Ჹ' => 'ჹ' [expected 'ჹ'] (line 593) # Converting 'Ჺ' => 'ჺ' [expected 'ჺ'] (line 594) # Converting 'Ჽ' => 'ჽ' [expected 'ჽ'] (line 595) # Converting 'Ჾ' => 'ჾ' [expected 'ჾ'] (line 596) # Converting 'Ჿ' => 'ჿ' [expected 'ჿ'] (line 597) # Converting 'Ḁ' => 'ḁ' [expected 'ḁ'] (line 598) # Converting 'Ḃ' => 'ḃ' [expected 'ḃ'] (line 599) # Converting 'Ḅ' => 'ḅ' [expected 'ḅ'] (line 600) # Converting 'Ḇ' => 'ḇ' [expected 'ḇ'] (line 601) # Converting 'Ḉ' => 'ḉ' [expected 'ḉ'] (line 602) # Converting 'Ḋ' => 'ḋ' [expected 'ḋ'] (line 603) # Converting 'Ḍ' => 'ḍ' [expected 'ḍ'] (line 604) # Converting 'Ḏ' => 'ḏ' [expected 'ḏ'] (line 605) # Converting 'Ḑ' => 'ḑ' [expected 'ḑ'] (line 606) # Converting 'Ḓ' => 'ḓ' [expected 'ḓ'] (line 607) # Converting 'Ḕ' => 'ḕ' [expected 'ḕ'] (line 608) # Converting 'Ḗ' => 'ḗ' [expected 'ḗ'] (line 609) # Converting 'Ḙ' => 'ḙ' [expected 'ḙ'] (line 610) # Converting 'Ḛ' => 'ḛ' [expected 'ḛ'] (line 611) # Converting 'Ḝ' => 'ḝ' [expected 'ḝ'] (line 612) # Converting 'Ḟ' => 'ḟ' [expected 'ḟ'] (line 613) # Converting 'Ḡ' => 'ḡ' [expected 'ḡ'] (line 614) # Converting 'Ḣ' => 'ḣ' [expected 'ḣ'] (line 615) # Converting 'Ḥ' => 'ḥ' [expected 'ḥ'] (line 616) # Converting 'Ḧ' => 'ḧ' [expected 'ḧ'] (line 617) # Converting 'Ḩ' => 'ḩ' [expected 'ḩ'] (line 618) # Converting 'Ḫ' => 'ḫ' [expected 'ḫ'] (line 619) # Converting 'Ḭ' => 'ḭ' [expected 'ḭ'] (line 620) # Converting 'Ḯ' => 'ḯ' [expected 'ḯ'] (line 621) # Converting 'Ḱ' => 'ḱ' [expected 'ḱ'] (line 622) # Converting 'Ḳ' => 'ḳ' [expected 'ḳ'] (line 623) # Converting 'Ḵ' => 'ḵ' [expected 'ḵ'] (line 624) # Converting 'Ḷ' => 'ḷ' [expected 'ḷ'] (line 625) # Converting 'Ḹ' => 'ḹ' [expected 'ḹ'] (line 626) # Converting 'Ḻ' => 'ḻ' [expected 'ḻ'] (line 627) # Converting 'Ḽ' => 'ḽ' [expected 'ḽ'] (line 628) # Converting 'Ḿ' => 'ḿ' [expected 'ḿ'] (line 629) # Converting 'Ṁ' => 'ṁ' [expected 'ṁ'] (line 630) # Converting 'Ṃ' => 'ṃ' [expected 'ṃ'] (line 631) # Converting 'Ṅ' => 'ṅ' [expected 'ṅ'] (line 632) # Converting 'Ṇ' => 'ṇ' [expected 'ṇ'] (line 633) # Converting 'Ṉ' => 'ṉ' [expected 'ṉ'] (line 634) # Converting 'Ṋ' => 'ṋ' [expected 'ṋ'] (line 635) # Converting 'Ṍ' => 'ṍ' [expected 'ṍ'] (line 636) # Converting 'Ṏ' => 'ṏ' [expected 'ṏ'] (line 637) # Converting 'Ṑ' => 'ṑ' [expected 'ṑ'] (line 638) # Converting 'Ṓ' => 'ṓ' [expected 'ṓ'] (line 639) # Converting 'Ṕ' => 'ṕ' [expected 'ṕ'] (line 640) # Converting 'Ṗ' => 'ṗ' [expected 'ṗ'] (line 641) # Converting 'Ṙ' => 'ṙ' [expected 'ṙ'] (line 642) # Converting 'Ṛ' => 'ṛ' [expected 'ṛ'] (line 643) # Converting 'Ṝ' => 'ṝ' [expected 'ṝ'] (line 644) # Converting 'Ṟ' => 'ṟ' [expected 'ṟ'] (line 645) # Converting 'Ṡ' => 'ṡ' [expected 'ṡ'] (line 646) # Converting 'Ṣ' => 'ṣ' [expected 'ṣ'] (line 647) # Converting 'Ṥ' => 'ṥ' [expected 'ṥ'] (line 648) # Converting 'Ṧ' => 'ṧ' [expected 'ṧ'] (line 649) # Converting 'Ṩ' => 'ṩ' [expected 'ṩ'] (line 650) # Converting 'Ṫ' => 'ṫ' [expected 'ṫ'] (line 651) # Converting 'Ṭ' => 'ṭ' [expected 'ṭ'] (line 652) # Converting 'Ṯ' => 'ṯ' [expected 'ṯ'] (line 653) # Converting 'Ṱ' => 'ṱ' [expected 'ṱ'] (line 654) # Converting 'Ṳ' => 'ṳ' [expected 'ṳ'] (line 655) # Converting 'Ṵ' => 'ṵ' [expected 'ṵ'] (line 656) # Converting 'Ṷ' => 'ṷ' [expected 'ṷ'] (line 657) # Converting 'Ṹ' => 'ṹ' [expected 'ṹ'] (line 658) # Converting 'Ṻ' => 'ṻ' [expected 'ṻ'] (line 659) # Converting 'Ṽ' => 'ṽ' [expected 'ṽ'] (line 660) # Converting 'Ṿ' => 'ṿ' [expected 'ṿ'] (line 661) # Converting 'Ẁ' => 'ẁ' [expected 'ẁ'] (line 662) # Converting 'Ẃ' => 'ẃ' [expected 'ẃ'] (line 663) # Converting 'Ẅ' => 'ẅ' [expected 'ẅ'] (line 664) # Converting 'Ẇ' => 'ẇ' [expected 'ẇ'] (line 665) # Converting 'Ẉ' => 'ẉ' [expected 'ẉ'] (line 666) # Converting 'Ẋ' => 'ẋ' [expected 'ẋ'] (line 667) # Converting 'Ẍ' => 'ẍ' [expected 'ẍ'] (line 668) # Converting 'Ẏ' => 'ẏ' [expected 'ẏ'] (line 669) # Converting 'Ẑ' => 'ẑ' [expected 'ẑ'] (line 670) # Converting 'Ẓ' => 'ẓ' [expected 'ẓ'] (line 671) # Converting 'Ẕ' => 'ẕ' [expected 'ẕ'] (line 672) # Converting 'ẖ' => 'ẖ' [expected 'ẖ'] (line 673) # Converting 'ẗ' => 'ẗ' [expected 'ẗ'] (line 674) # Converting 'ẘ' => 'ẘ' [expected 'ẘ'] (line 675) # Converting 'ẙ' => 'ẙ' [expected 'ẙ'] (line 676) # Converting 'ẚ' => 'aʾ' [expected 'aʾ'] (line 677) # Converting 'ẛ' => 'ṡ' [expected 'ṡ'] (line 678) # Converting 'ẞ' => 'ss' [expected 'ss'] (line 679) # Converting 'Ạ' => 'ạ' [expected 'ạ'] (line 680) # Converting 'Ả' => 'ả' [expected 'ả'] (line 681) # Converting 'Ấ' => 'ấ' [expected 'ấ'] (line 682) # Converting 'Ầ' => 'ầ' [expected 'ầ'] (line 683) # Converting 'Ẩ' => 'ẩ' [expected 'ẩ'] (line 684) # Converting 'Ẫ' => 'ẫ' [expected 'ẫ'] (line 685) # Converting 'Ậ' => 'ậ' [expected 'ậ'] (line 686) # Converting 'Ắ' => 'ắ' [expected 'ắ'] (line 687) # Converting 'Ằ' => 'ằ' [expected 'ằ'] (line 688) # Converting 'Ẳ' => 'ẳ' [expected 'ẳ'] (line 689) # Converting 'Ẵ' => 'ẵ' [expected 'ẵ'] (line 690) # Converting 'Ặ' => 'ặ' [expected 'ặ'] (line 691) # Converting 'Ẹ' => 'ẹ' [expected 'ẹ'] (line 692) # Converting 'Ẻ' => 'ẻ' [expected 'ẻ'] (line 693) # Converting 'Ẽ' => 'ẽ' [expected 'ẽ'] (line 694) # Converting 'Ế' => 'ế' [expected 'ế'] (line 695) # Converting 'Ề' => 'ề' [expected 'ề'] (line 696) # Converting 'Ể' => 'ể' [expected 'ể'] (line 697) # Converting 'Ễ' => 'ễ' [expected 'ễ'] (line 698) # Converting 'Ệ' => 'ệ' [expected 'ệ'] (line 699) # Converting 'Ỉ' => 'ỉ' [expected 'ỉ'] (line 700) # Converting 'Ị' => 'ị' [expected 'ị'] (line 701) # Converting 'Ọ' => 'ọ' [expected 'ọ'] (line 702) # Converting 'Ỏ' => 'ỏ' [expected 'ỏ'] (line 703) # Converting 'Ố' => 'ố' [expected 'ố'] (line 704) # Converting 'Ồ' => 'ồ' [expected 'ồ'] (line 705) # Converting 'Ổ' => 'ổ' [expected 'ổ'] (line 706) # Converting 'Ỗ' => 'ỗ' [expected 'ỗ'] (line 707) # Converting 'Ộ' => 'ộ' [expected 'ộ'] (line 708) # Converting 'Ớ' => 'ớ' [expected 'ớ'] (line 709) # Converting 'Ờ' => 'ờ' [expected 'ờ'] (line 710) # Converting 'Ở' => 'ở' [expected 'ở'] (line 711) # Converting 'Ỡ' => 'ỡ' [expected 'ỡ'] (line 712) # Converting 'Ợ' => 'ợ' [expected 'ợ'] (line 713) # Converting 'Ụ' => 'ụ' [expected 'ụ'] (line 714) # Converting 'Ủ' => 'ủ' [expected 'ủ'] (line 715) # Converting 'Ứ' => 'ứ' [expected 'ứ'] (line 716) # Converting 'Ừ' => 'ừ' [expected 'ừ'] (line 717) # Converting 'Ử' => 'ử' [expected 'ử'] (line 718) # Converting 'Ữ' => 'ữ' [expected 'ữ'] (line 719) # Converting 'Ự' => 'ự' [expected 'ự'] (line 720) # Converting 'Ỳ' => 'ỳ' [expected 'ỳ'] (line 721) # Converting 'Ỵ' => 'ỵ' [expected 'ỵ'] (line 722) # Converting 'Ỷ' => 'ỷ' [expected 'ỷ'] (line 723) # Converting 'Ỹ' => 'ỹ' [expected 'ỹ'] (line 724) # Converting 'Ỻ' => 'ỻ' [expected 'ỻ'] (line 725) # Converting 'Ỽ' => 'ỽ' [expected 'ỽ'] (line 726) # Converting 'Ỿ' => 'ỿ' [expected 'ỿ'] (line 727) # Converting 'Ἀ' => 'ἀ' [expected 'ἀ'] (line 728) # Converting 'Ἁ' => 'ἁ' [expected 'ἁ'] (line 729) # Converting 'Ἂ' => 'ἂ' [expected 'ἂ'] (line 730) # Converting 'Ἃ' => 'ἃ' [expected 'ἃ'] (line 731) # Converting 'Ἄ' => 'ἄ' [expected 'ἄ'] (line 732) # Converting 'Ἅ' => 'ἅ' [expected 'ἅ'] (line 733) # Converting 'Ἆ' => 'ἆ' [expected 'ἆ'] (line 734) # Converting 'Ἇ' => 'ἇ' [expected 'ἇ'] (line 735) # Converting 'Ἐ' => 'ἐ' [expected 'ἐ'] (line 736) # Converting 'Ἑ' => 'ἑ' [expected 'ἑ'] (line 737) # Converting 'Ἒ' => 'ἒ' [expected 'ἒ'] (line 738) # Converting 'Ἓ' => 'ἓ' [expected 'ἓ'] (line 739) # Converting 'Ἔ' => 'ἔ' [expected 'ἔ'] (line 740) # Converting 'Ἕ' => 'ἕ' [expected 'ἕ'] (line 741) # Converting 'Ἠ' => 'ἠ' [expected 'ἠ'] (line 742) # Converting 'Ἡ' => 'ἡ' [expected 'ἡ'] (line 743) # Converting 'Ἢ' => 'ἢ' [expected 'ἢ'] (line 744) # Converting 'Ἣ' => 'ἣ' [expected 'ἣ'] (line 745) # Converting 'Ἤ' => 'ἤ' [expected 'ἤ'] (line 746) # Converting 'Ἥ' => 'ἥ' [expected 'ἥ'] (line 747) # Converting 'Ἦ' => 'ἦ' [expected 'ἦ'] (line 748) # Converting 'Ἧ' => 'ἧ' [expected 'ἧ'] (line 749) # Converting 'Ἰ' => 'ἰ' [expected 'ἰ'] (line 750) # Converting 'Ἱ' => 'ἱ' [expected 'ἱ'] (line 751) # Converting 'Ἲ' => 'ἲ' [expected 'ἲ'] (line 752) # Converting 'Ἳ' => 'ἳ' [expected 'ἳ'] (line 753) # Converting 'Ἴ' => 'ἴ' [expected 'ἴ'] (line 754) # Converting 'Ἵ' => 'ἵ' [expected 'ἵ'] (line 755) # Converting 'Ἶ' => 'ἶ' [expected 'ἶ'] (line 756) # Converting 'Ἷ' => 'ἷ' [expected 'ἷ'] (line 757) # Converting 'Ὀ' => 'ὀ' [expected 'ὀ'] (line 758) # Converting 'Ὁ' => 'ὁ' [expected 'ὁ'] (line 759) # Converting 'Ὂ' => 'ὂ' [expected 'ὂ'] (line 760) # Converting 'Ὃ' => 'ὃ' [expected 'ὃ'] (line 761) # Converting 'Ὄ' => 'ὄ' [expected 'ὄ'] (line 762) # Converting 'Ὅ' => 'ὅ' [expected 'ὅ'] (line 763) # Converting 'ὐ' => 'ὐ' [expected 'ὐ'] (line 764) # Converting 'ὒ' => 'ὒ' [expected 'ὒ'] (line 765) # Converting 'ὔ' => 'ὔ' [expected 'ὔ'] (line 766) # Converting 'ὖ' => 'ὖ' [expected 'ὖ'] (line 767) # Converting 'Ὑ' => 'ὑ' [expected 'ὑ'] (line 768) # Converting 'Ὓ' => 'ὓ' [expected 'ὓ'] (line 769) # Converting 'Ὕ' => 'ὕ' [expected 'ὕ'] (line 770) # Converting 'Ὗ' => 'ὗ' [expected 'ὗ'] (line 771) # Converting 'Ὠ' => 'ὠ' [expected 'ὠ'] (line 772) # Converting 'Ὡ' => 'ὡ' [expected 'ὡ'] (line 773) # Converting 'Ὢ' => 'ὢ' [expected 'ὢ'] (line 774) # Converting 'Ὣ' => 'ὣ' [expected 'ὣ'] (line 775) # Converting 'Ὤ' => 'ὤ' [expected 'ὤ'] (line 776) # Converting 'Ὥ' => 'ὥ' [expected 'ὥ'] (line 777) # Converting 'Ὦ' => 'ὦ' [expected 'ὦ'] (line 778) # Converting 'Ὧ' => 'ὧ' [expected 'ὧ'] (line 779) # Converting 'ᾀ' => 'ἀι' [expected 'ἀι'] (line 780) # Converting 'ᾁ' => 'ἁι' [expected 'ἁι'] (line 781) # Converting 'ᾂ' => 'ἂι' [expected 'ἂι'] (line 782) # Converting 'ᾃ' => 'ἃι' [expected 'ἃι'] (line 783) # Converting 'ᾄ' => 'ἄι' [expected 'ἄι'] (line 784) # Converting 'ᾅ' => 'ἅι' [expected 'ἅι'] (line 785) # Converting 'ᾆ' => 'ἆι' [expected 'ἆι'] (line 786) # Converting 'ᾇ' => 'ἇι' [expected 'ἇι'] (line 787) # Converting 'ᾈ' => 'ἀι' [expected 'ἀι'] (line 788) # Converting 'ᾉ' => 'ἁι' [expected 'ἁι'] (line 789) # Converting 'ᾊ' => 'ἂι' [expected 'ἂι'] (line 790) # Converting 'ᾋ' => 'ἃι' [expected 'ἃι'] (line 791) # Converting 'ᾌ' => 'ἄι' [expected 'ἄι'] (line 792) # Converting 'ᾍ' => 'ἅι' [expected 'ἅι'] (line 793) # Converting 'ᾎ' => 'ἆι' [expected 'ἆι'] (line 794) # Converting 'ᾏ' => 'ἇι' [expected 'ἇι'] (line 795) # Converting 'ᾐ' => 'ἠι' [expected 'ἠι'] (line 796) # Converting 'ᾑ' => 'ἡι' [expected 'ἡι'] (line 797) # Converting 'ᾒ' => 'ἢι' [expected 'ἢι'] (line 798) # Converting 'ᾓ' => 'ἣι' [expected 'ἣι'] (line 799) # Converting 'ᾔ' => 'ἤι' [expected 'ἤι'] (line 800) # Converting 'ᾕ' => 'ἥι' [expected 'ἥι'] (line 801) # Converting 'ᾖ' => 'ἦι' [expected 'ἦι'] (line 802) # Converting 'ᾗ' => 'ἧι' [expected 'ἧι'] (line 803) # Converting 'ᾘ' => 'ἠι' [expected 'ἠι'] (line 804) # Converting 'ᾙ' => 'ἡι' [expected 'ἡι'] (line 805) # Converting 'ᾚ' => 'ἢι' [expected 'ἢι'] (line 806) # Converting 'ᾛ' => 'ἣι' [expected 'ἣι'] (line 807) # Converting 'ᾜ' => 'ἤι' [expected 'ἤι'] (line 808) # Converting 'ᾝ' => 'ἥι' [expected 'ἥι'] (line 809) # Converting 'ᾞ' => 'ἦι' [expected 'ἦι'] (line 810) # Converting 'ᾟ' => 'ἧι' [expected 'ἧι'] (line 811) # Converting 'ᾠ' => 'ὠι' [expected 'ὠι'] (line 812) # Converting 'ᾡ' => 'ὡι' [expected 'ὡι'] (line 813) # Converting 'ᾢ' => 'ὢι' [expected 'ὢι'] (line 814) # Converting 'ᾣ' => 'ὣι' [expected 'ὣι'] (line 815) # Converting 'ᾤ' => 'ὤι' [expected 'ὤι'] (line 816) # Converting 'ᾥ' => 'ὥι' [expected 'ὥι'] (line 817) # Converting 'ᾦ' => 'ὦι' [expected 'ὦι'] (line 818) # Converting 'ᾧ' => 'ὧι' [expected 'ὧι'] (line 819) # Converting 'ᾨ' => 'ὠι' [expected 'ὠι'] (line 820) # Converting 'ᾩ' => 'ὡι' [expected 'ὡι'] (line 821) # Converting 'ᾪ' => 'ὢι' [expected 'ὢι'] (line 822) # Converting 'ᾫ' => 'ὣι' [expected 'ὣι'] (line 823) # Converting 'ᾬ' => 'ὤι' [expected 'ὤι'] (line 824) # Converting 'ᾭ' => 'ὥι' [expected 'ὥι'] (line 825) # Converting 'ᾮ' => 'ὦι' [expected 'ὦι'] (line 826) # Converting 'ᾯ' => 'ὧι' [expected 'ὧι'] (line 827) # Converting 'ᾲ' => 'ὰι' [expected 'ὰι'] (line 828) # Converting 'ᾳ' => 'αι' [expected 'αι'] (line 829) # Converting 'ᾴ' => 'άι' [expected 'άι'] (line 830) # Converting 'ᾶ' => 'ᾶ' [expected 'ᾶ'] (line 831) # Converting 'ᾷ' => 'ᾶι' [expected 'ᾶι'] (line 832) # Converting 'Ᾰ' => 'ᾰ' [expected 'ᾰ'] (line 833) # Converting 'Ᾱ' => 'ᾱ' [expected 'ᾱ'] (line 834) # Converting 'Ὰ' => 'ὰ' [expected 'ὰ'] (line 835) # Converting 'Ά' => 'ά' [expected 'ά'] (line 836) # Converting 'ᾼ' => 'αι' [expected 'αι'] (line 837) # Converting 'ι' => 'ι' [expected 'ι'] (line 838) # Converting 'ῂ' => 'ὴι' [expected 'ὴι'] (line 839) # Converting 'ῃ' => 'ηι' [expected 'ηι'] (line 840) # Converting 'ῄ' => 'ήι' [expected 'ήι'] (line 841) # Converting 'ῆ' => 'ῆ' [expected 'ῆ'] (line 842) # Converting 'ῇ' => 'ῆι' [expected 'ῆι'] (line 843) # Converting 'Ὲ' => 'ὲ' [expected 'ὲ'] (line 844) # Converting 'Έ' => 'έ' [expected 'έ'] (line 845) # Converting 'Ὴ' => 'ὴ' [expected 'ὴ'] (line 846) # Converting 'Ή' => 'ή' [expected 'ή'] (line 847) # Converting 'ῌ' => 'ηι' [expected 'ηι'] (line 848) # Converting 'ῒ' => 'ῒ' [expected 'ῒ'] (line 849) # Converting 'ΐ' => 'ΐ' [expected 'ΐ'] (line 850) # Converting 'ῖ' => 'ῖ' [expected 'ῖ'] (line 851) # Converting 'ῗ' => 'ῗ' [expected 'ῗ'] (line 852) # Converting 'Ῐ' => 'ῐ' [expected 'ῐ'] (line 853) # Converting 'Ῑ' => 'ῑ' [expected 'ῑ'] (line 854) # Converting 'Ὶ' => 'ὶ' [expected 'ὶ'] (line 855) # Converting 'Ί' => 'ί' [expected 'ί'] (line 856) # Converting 'ῢ' => 'ῢ' [expected 'ῢ'] (line 857) # Converting 'ΰ' => 'ΰ' [expected 'ΰ'] (line 858) # Converting 'ῤ' => 'ῤ' [expected 'ῤ'] (line 859) # Converting 'ῦ' => 'ῦ' [expected 'ῦ'] (line 860) # Converting 'ῧ' => 'ῧ' [expected 'ῧ'] (line 861) # Converting 'Ῠ' => 'ῠ' [expected 'ῠ'] (line 862) # Converting 'Ῡ' => 'ῡ' [expected 'ῡ'] (line 863) # Converting 'Ὺ' => 'ὺ' [expected 'ὺ'] (line 864) # Converting 'Ύ' => 'ύ' [expected 'ύ'] (line 865) # Converting 'Ῥ' => 'ῥ' [expected 'ῥ'] (line 866) # Converting 'ῲ' => 'ὼι' [expected 'ὼι'] (line 867) # Converting 'ῳ' => 'ωι' [expected 'ωι'] (line 868) # Converting 'ῴ' => 'ώι' [expected 'ώι'] (line 869) # Converting 'ῶ' => 'ῶ' [expected 'ῶ'] (line 870) # Converting 'ῷ' => 'ῶι' [expected 'ῶι'] (line 871) # Converting 'Ὸ' => 'ὸ' [expected 'ὸ'] (line 872) # Converting 'Ό' => 'ό' [expected 'ό'] (line 873) # Converting 'Ὼ' => 'ὼ' [expected 'ὼ'] (line 874) # Converting 'Ώ' => 'ώ' [expected 'ώ'] (line 875) # Converting 'ῼ' => 'ωι' [expected 'ωι'] (line 876) # Converting 'Ω' => 'ω' [expected 'ω'] (line 877) # Converting 'K' => 'k' [expected 'k'] (line 878) # Converting 'Å' => 'å' [expected 'å'] (line 879) # Converting 'Ⅎ' => 'ⅎ' [expected 'ⅎ'] (line 880) # Converting 'Ⅰ' => 'ⅰ' [expected 'ⅰ'] (line 881) # Converting 'Ⅱ' => 'ⅱ' [expected 'ⅱ'] (line 882) # Converting 'Ⅲ' => 'ⅲ' [expected 'ⅲ'] (line 883) # Converting 'Ⅳ' => 'ⅳ' [expected 'ⅳ'] (line 884) # Converting 'Ⅴ' => 'ⅴ' [expected 'ⅴ'] (line 885) # Converting 'Ⅵ' => 'ⅵ' [expected 'ⅵ'] (line 886) # Converting 'Ⅶ' => 'ⅶ' [expected 'ⅶ'] (line 887) # Converting 'Ⅷ' => 'ⅷ' [expected 'ⅷ'] (line 888) # Converting 'Ⅸ' => 'ⅸ' [expected 'ⅸ'] (line 889) # Converting 'Ⅹ' => 'ⅹ' [expected 'ⅹ'] (line 890) # Converting 'Ⅺ' => 'ⅺ' [expected 'ⅺ'] (line 891) # Converting 'Ⅻ' => 'ⅻ' [expected 'ⅻ'] (line 892) # Converting 'Ⅼ' => 'ⅼ' [expected 'ⅼ'] (line 893) # Converting 'Ⅽ' => 'ⅽ' [expected 'ⅽ'] (line 894) # Converting 'Ⅾ' => 'ⅾ' [expected 'ⅾ'] (line 895) # Converting 'Ⅿ' => 'ⅿ' [expected 'ⅿ'] (line 896) # Converting 'Ↄ' => 'ↄ' [expected 'ↄ'] (line 897) # Converting 'Ⓐ' => 'ⓐ' [expected 'ⓐ'] (line 898) # Converting 'Ⓑ' => 'ⓑ' [expected 'ⓑ'] (line 899) # Converting 'Ⓒ' => 'ⓒ' [expected 'ⓒ'] (line 900) # Converting 'Ⓓ' => 'ⓓ' [expected 'ⓓ'] (line 901) # Converting 'Ⓔ' => 'ⓔ' [expected 'ⓔ'] (line 902) # Converting 'Ⓕ' => 'ⓕ' [expected 'ⓕ'] (line 903) # Converting 'Ⓖ' => 'ⓖ' [expected 'ⓖ'] (line 904) # Converting 'Ⓗ' => 'ⓗ' [expected 'ⓗ'] (line 905) # Converting 'Ⓘ' => 'ⓘ' [expected 'ⓘ'] (line 906) # Converting 'Ⓙ' => 'ⓙ' [expected 'ⓙ'] (line 907) # Converting 'Ⓚ' => 'ⓚ' [expected 'ⓚ'] (line 908) # Converting 'Ⓛ' => 'ⓛ' [expected 'ⓛ'] (line 909) # Converting 'Ⓜ' => 'ⓜ' [expected 'ⓜ'] (line 910) # Converting 'Ⓝ' => 'ⓝ' [expected 'ⓝ'] (line 911) # Converting 'Ⓞ' => 'ⓞ' [expected 'ⓞ'] (line 912) # Converting 'Ⓟ' => 'ⓟ' [expected 'ⓟ'] (line 913) # Converting 'Ⓠ' => 'ⓠ' [expected 'ⓠ'] (line 914) # Converting 'Ⓡ' => 'ⓡ' [expected 'ⓡ'] (line 915) # Converting 'Ⓢ' => 'ⓢ' [expected 'ⓢ'] (line 916) # Converting 'Ⓣ' => 'ⓣ' [expected 'ⓣ'] (line 917) # Converting 'Ⓤ' => 'ⓤ' [expected 'ⓤ'] (line 918) # Converting 'Ⓥ' => 'ⓥ' [expected 'ⓥ'] (line 919) # Converting 'Ⓦ' => 'ⓦ' [expected 'ⓦ'] (line 920) # Converting 'Ⓧ' => 'ⓧ' [expected 'ⓧ'] (line 921) # Converting 'Ⓨ' => 'ⓨ' [expected 'ⓨ'] (line 922) # Converting 'Ⓩ' => 'ⓩ' [expected 'ⓩ'] (line 923) # Converting 'Ⰰ' => 'ⰰ' [expected 'ⰰ'] (line 924) # Converting 'Ⰱ' => 'ⰱ' [expected 'ⰱ'] (line 925) # Converting 'Ⰲ' => 'ⰲ' [expected 'ⰲ'] (line 926) # Converting 'Ⰳ' => 'ⰳ' [expected 'ⰳ'] (line 927) # Converting 'Ⰴ' => 'ⰴ' [expected 'ⰴ'] (line 928) # Converting 'Ⰵ' => 'ⰵ' [expected 'ⰵ'] (line 929) # Converting 'Ⰶ' => 'ⰶ' [expected 'ⰶ'] (line 930) # Converting 'Ⰷ' => 'ⰷ' [expected 'ⰷ'] (line 931) # Converting 'Ⰸ' => 'ⰸ' [expected 'ⰸ'] (line 932) # Converting 'Ⰹ' => 'ⰹ' [expected 'ⰹ'] (line 933) # Converting 'Ⰺ' => 'ⰺ' [expected 'ⰺ'] (line 934) # Converting 'Ⰻ' => 'ⰻ' [expected 'ⰻ'] (line 935) # Converting 'Ⰼ' => 'ⰼ' [expected 'ⰼ'] (line 936) # Converting 'Ⰽ' => 'ⰽ' [expected 'ⰽ'] (line 937) # Converting 'Ⰾ' => 'ⰾ' [expected 'ⰾ'] (line 938) # Converting 'Ⰿ' => 'ⰿ' [expected 'ⰿ'] (line 939) # Converting 'Ⱀ' => 'ⱀ' [expected 'ⱀ'] (line 940) # Converting 'Ⱁ' => 'ⱁ' [expected 'ⱁ'] (line 941) # Converting 'Ⱂ' => 'ⱂ' [expected 'ⱂ'] (line 942) # Converting 'Ⱃ' => 'ⱃ' [expected 'ⱃ'] (line 943) # Converting 'Ⱄ' => 'ⱄ' [expected 'ⱄ'] (line 944) # Converting 'Ⱅ' => 'ⱅ' [expected 'ⱅ'] (line 945) # Converting 'Ⱆ' => 'ⱆ' [expected 'ⱆ'] (line 946) # Converting 'Ⱇ' => 'ⱇ' [expected 'ⱇ'] (line 947) # Converting 'Ⱈ' => 'ⱈ' [expected 'ⱈ'] (line 948) # Converting 'Ⱉ' => 'ⱉ' [expected 'ⱉ'] (line 949) # Converting 'Ⱊ' => 'ⱊ' [expected 'ⱊ'] (line 950) # Converting 'Ⱋ' => 'ⱋ' [expected 'ⱋ'] (line 951) # Converting 'Ⱌ' => 'ⱌ' [expected 'ⱌ'] (line 952) # Converting 'Ⱍ' => 'ⱍ' [expected 'ⱍ'] (line 953) # Converting 'Ⱎ' => 'ⱎ' [expected 'ⱎ'] (line 954) # Converting 'Ⱏ' => 'ⱏ' [expected 'ⱏ'] (line 955) # Converting 'Ⱐ' => 'ⱐ' [expected 'ⱐ'] (line 956) # Converting 'Ⱑ' => 'ⱑ' [expected 'ⱑ'] (line 957) # Converting 'Ⱒ' => 'ⱒ' [expected 'ⱒ'] (line 958) # Converting 'Ⱓ' => 'ⱓ' [expected 'ⱓ'] (line 959) # Converting 'Ⱔ' => 'ⱔ' [expected 'ⱔ'] (line 960) # Converting 'Ⱕ' => 'ⱕ' [expected 'ⱕ'] (line 961) # Converting 'Ⱖ' => 'ⱖ' [expected 'ⱖ'] (line 962) # Converting 'Ⱗ' => 'ⱗ' [expected 'ⱗ'] (line 963) # Converting 'Ⱘ' => 'ⱘ' [expected 'ⱘ'] (line 964) # Converting 'Ⱙ' => 'ⱙ' [expected 'ⱙ'] (line 965) # Converting 'Ⱚ' => 'ⱚ' [expected 'ⱚ'] (line 966) # Converting 'Ⱛ' => 'ⱛ' [expected 'ⱛ'] (line 967) # Converting 'Ⱜ' => 'ⱜ' [expected 'ⱜ'] (line 968) # Converting 'Ⱝ' => 'ⱝ' [expected 'ⱝ'] (line 969) # Converting 'Ⱞ' => 'ⱞ' [expected 'ⱞ'] (line 970) # Converting 'Ⱟ' => 'ⱟ' [expected 'ⱟ'] (line 971) # Converting 'Ⱡ' => 'ⱡ' [expected 'ⱡ'] (line 972) # Converting 'Ɫ' => 'ɫ' [expected 'ɫ'] (line 973) # Converting 'Ᵽ' => 'ᵽ' [expected 'ᵽ'] (line 974) # Converting 'Ɽ' => 'ɽ' [expected 'ɽ'] (line 975) # Converting 'Ⱨ' => 'ⱨ' [expected 'ⱨ'] (line 976) # Converting 'Ⱪ' => 'ⱪ' [expected 'ⱪ'] (line 977) # Converting 'Ⱬ' => 'ⱬ' [expected 'ⱬ'] (line 978) # Converting 'Ɑ' => 'ɑ' [expected 'ɑ'] (line 979) # Converting 'Ɱ' => 'ɱ' [expected 'ɱ'] (line 980) # Converting 'Ɐ' => 'ɐ' [expected 'ɐ'] (line 981) # Converting 'Ɒ' => 'ɒ' [expected 'ɒ'] (line 982) # Converting 'Ⱳ' => 'ⱳ' [expected 'ⱳ'] (line 983) # Converting 'Ⱶ' => 'ⱶ' [expected 'ⱶ'] (line 984) # Converting 'Ȿ' => 'ȿ' [expected 'ȿ'] (line 985) # Converting 'Ɀ' => 'ɀ' [expected 'ɀ'] (line 986) # Converting 'Ⲁ' => 'ⲁ' [expected 'ⲁ'] (line 987) # Converting 'Ⲃ' => 'ⲃ' [expected 'ⲃ'] (line 988) # Converting 'Ⲅ' => 'ⲅ' [expected 'ⲅ'] (line 989) # Converting 'Ⲇ' => 'ⲇ' [expected 'ⲇ'] (line 990) # Converting 'Ⲉ' => 'ⲉ' [expected 'ⲉ'] (line 991) # Converting 'Ⲋ' => 'ⲋ' [expected 'ⲋ'] (line 992) # Converting 'Ⲍ' => 'ⲍ' [expected 'ⲍ'] (line 993) # Converting 'Ⲏ' => 'ⲏ' [expected 'ⲏ'] (line 994) # Converting 'Ⲑ' => 'ⲑ' [expected 'ⲑ'] (line 995) # Converting 'Ⲓ' => 'ⲓ' [expected 'ⲓ'] (line 996) # Converting 'Ⲕ' => 'ⲕ' [expected 'ⲕ'] (line 997) # Converting 'Ⲗ' => 'ⲗ' [expected 'ⲗ'] (line 998) # Converting 'Ⲙ' => 'ⲙ' [expected 'ⲙ'] (line 999) # Converting 'Ⲛ' => 'ⲛ' [expected 'ⲛ'] (line 1000) # Converting 'Ⲝ' => 'ⲝ' [expected 'ⲝ'] (line 1001) # Converting 'Ⲟ' => 'ⲟ' [expected 'ⲟ'] (line 1002) # Converting 'Ⲡ' => 'ⲡ' [expected 'ⲡ'] (line 1003) # Converting 'Ⲣ' => 'ⲣ' [expected 'ⲣ'] (line 1004) # Converting 'Ⲥ' => 'ⲥ' [expected 'ⲥ'] (line 1005) # Converting 'Ⲧ' => 'ⲧ' [expected 'ⲧ'] (line 1006) # Converting 'Ⲩ' => 'ⲩ' [expected 'ⲩ'] (line 1007) # Converting 'Ⲫ' => 'ⲫ' [expected 'ⲫ'] (line 1008) # Converting 'Ⲭ' => 'ⲭ' [expected 'ⲭ'] (line 1009) # Converting 'Ⲯ' => 'ⲯ' [expected 'ⲯ'] (line 1010) # Converting 'Ⲱ' => 'ⲱ' [expected 'ⲱ'] (line 1011) # Converting 'Ⲳ' => 'ⲳ' [expected 'ⲳ'] (line 1012) # Converting 'Ⲵ' => 'ⲵ' [expected 'ⲵ'] (line 1013) # Converting 'Ⲷ' => 'ⲷ' [expected 'ⲷ'] (line 1014) # Converting 'Ⲹ' => 'ⲹ' [expected 'ⲹ'] (line 1015) # Converting 'Ⲻ' => 'ⲻ' [expected 'ⲻ'] (line 1016) # Converting 'Ⲽ' => 'ⲽ' [expected 'ⲽ'] (line 1017) # Converting 'Ⲿ' => 'ⲿ' [expected 'ⲿ'] (line 1018) # Converting 'Ⳁ' => 'ⳁ' [expected 'ⳁ'] (line 1019) # Converting 'Ⳃ' => 'ⳃ' [expected 'ⳃ'] (line 1020) # Converting 'Ⳅ' => 'ⳅ' [expected 'ⳅ'] (line 1021) # Converting 'Ⳇ' => 'ⳇ' [expected 'ⳇ'] (line 1022) # Converting 'Ⳉ' => 'ⳉ' [expected 'ⳉ'] (line 1023) # Converting 'Ⳋ' => 'ⳋ' [expected 'ⳋ'] (line 1024) # Converting 'Ⳍ' => 'ⳍ' [expected 'ⳍ'] (line 1025) # Converting 'Ⳏ' => 'ⳏ' [expected 'ⳏ'] (line 1026) # Converting 'Ⳑ' => 'ⳑ' [expected 'ⳑ'] (line 1027) # Converting 'Ⳓ' => 'ⳓ' [expected 'ⳓ'] (line 1028) # Converting 'Ⳕ' => 'ⳕ' [expected 'ⳕ'] (line 1029) # Converting 'Ⳗ' => 'ⳗ' [expected 'ⳗ'] (line 1030) # Converting 'Ⳙ' => 'ⳙ' [expected 'ⳙ'] (line 1031) # Converting 'Ⳛ' => 'ⳛ' [expected 'ⳛ'] (line 1032) # Converting 'Ⳝ' => 'ⳝ' [expected 'ⳝ'] (line 1033) # Converting 'Ⳟ' => 'ⳟ' [expected 'ⳟ'] (line 1034) # Converting 'Ⳡ' => 'ⳡ' [expected 'ⳡ'] (line 1035) # Converting 'Ⳣ' => 'ⳣ' [expected 'ⳣ'] (line 1036) # Converting 'Ⳬ' => 'ⳬ' [expected 'ⳬ'] (line 1037) # Converting 'Ⳮ' => 'ⳮ' [expected 'ⳮ'] (line 1038) # Converting 'Ⳳ' => 'ⳳ' [expected 'ⳳ'] (line 1039) # Converting 'Ꙁ' => 'ꙁ' [expected 'ꙁ'] (line 1040) # Converting 'Ꙃ' => 'ꙃ' [expected 'ꙃ'] (line 1041) # Converting 'Ꙅ' => 'ꙅ' [expected 'ꙅ'] (line 1042) # Converting 'Ꙇ' => 'ꙇ' [expected 'ꙇ'] (line 1043) # Converting 'Ꙉ' => 'ꙉ' [expected 'ꙉ'] (line 1044) # Converting 'Ꙋ' => 'ꙋ' [expected 'ꙋ'] (line 1045) # Converting 'Ꙍ' => 'ꙍ' [expected 'ꙍ'] (line 1046) # Converting 'Ꙏ' => 'ꙏ' [expected 'ꙏ'] (line 1047) # Converting 'Ꙑ' => 'ꙑ' [expected 'ꙑ'] (line 1048) # Converting 'Ꙓ' => 'ꙓ' [expected 'ꙓ'] (line 1049) # Converting 'Ꙕ' => 'ꙕ' [expected 'ꙕ'] (line 1050) # Converting 'Ꙗ' => 'ꙗ' [expected 'ꙗ'] (line 1051) # Converting 'Ꙙ' => 'ꙙ' [expected 'ꙙ'] (line 1052) # Converting 'Ꙛ' => 'ꙛ' [expected 'ꙛ'] (line 1053) # Converting 'Ꙝ' => 'ꙝ' [expected 'ꙝ'] (line 1054) # Converting 'Ꙟ' => 'ꙟ' [expected 'ꙟ'] (line 1055) # Converting 'Ꙡ' => 'ꙡ' [expected 'ꙡ'] (line 1056) # Converting 'Ꙣ' => 'ꙣ' [expected 'ꙣ'] (line 1057) # Converting 'Ꙥ' => 'ꙥ' [expected 'ꙥ'] (line 1058) # Converting 'Ꙧ' => 'ꙧ' [expected 'ꙧ'] (line 1059) # Converting 'Ꙩ' => 'ꙩ' [expected 'ꙩ'] (line 1060) # Converting 'Ꙫ' => 'ꙫ' [expected 'ꙫ'] (line 1061) # Converting 'Ꙭ' => 'ꙭ' [expected 'ꙭ'] (line 1062) # Converting 'Ꚁ' => 'ꚁ' [expected 'ꚁ'] (line 1063) # Converting 'Ꚃ' => 'ꚃ' [expected 'ꚃ'] (line 1064) # Converting 'Ꚅ' => 'ꚅ' [expected 'ꚅ'] (line 1065) # Converting 'Ꚇ' => 'ꚇ' [expected 'ꚇ'] (line 1066) # Converting 'Ꚉ' => 'ꚉ' [expected 'ꚉ'] (line 1067) # Converting 'Ꚋ' => 'ꚋ' [expected 'ꚋ'] (line 1068) # Converting 'Ꚍ' => 'ꚍ' [expected 'ꚍ'] (line 1069) # Converting 'Ꚏ' => 'ꚏ' [expected 'ꚏ'] (line 1070) # Converting 'Ꚑ' => 'ꚑ' [expected 'ꚑ'] (line 1071) # Converting 'Ꚓ' => 'ꚓ' [expected 'ꚓ'] (line 1072) # Converting 'Ꚕ' => 'ꚕ' [expected 'ꚕ'] (line 1073) # Converting 'Ꚗ' => 'ꚗ' [expected 'ꚗ'] (line 1074) # Converting 'Ꚙ' => 'ꚙ' [expected 'ꚙ'] (line 1075) # Converting 'Ꚛ' => 'ꚛ' [expected 'ꚛ'] (line 1076) # Converting 'Ꜣ' => 'ꜣ' [expected 'ꜣ'] (line 1077) # Converting 'Ꜥ' => 'ꜥ' [expected 'ꜥ'] (line 1078) # Converting 'Ꜧ' => 'ꜧ' [expected 'ꜧ'] (line 1079) # Converting 'Ꜩ' => 'ꜩ' [expected 'ꜩ'] (line 1080) # Converting 'Ꜫ' => 'ꜫ' [expected 'ꜫ'] (line 1081) # Converting 'Ꜭ' => 'ꜭ' [expected 'ꜭ'] (line 1082) # Converting 'Ꜯ' => 'ꜯ' [expected 'ꜯ'] (line 1083) # Converting 'Ꜳ' => 'ꜳ' [expected 'ꜳ'] (line 1084) # Converting 'Ꜵ' => 'ꜵ' [expected 'ꜵ'] (line 1085) # Converting 'Ꜷ' => 'ꜷ' [expected 'ꜷ'] (line 1086) # Converting 'Ꜹ' => 'ꜹ' [expected 'ꜹ'] (line 1087) # Converting 'Ꜻ' => 'ꜻ' [expected 'ꜻ'] (line 1088) # Converting 'Ꜽ' => 'ꜽ' [expected 'ꜽ'] (line 1089) # Converting 'Ꜿ' => 'ꜿ' [expected 'ꜿ'] (line 1090) # Converting 'Ꝁ' => 'ꝁ' [expected 'ꝁ'] (line 1091) # Converting 'Ꝃ' => 'ꝃ' [expected 'ꝃ'] (line 1092) # Converting 'Ꝅ' => 'ꝅ' [expected 'ꝅ'] (line 1093) # Converting 'Ꝇ' => 'ꝇ' [expected 'ꝇ'] (line 1094) # Converting 'Ꝉ' => 'ꝉ' [expected 'ꝉ'] (line 1095) # Converting 'Ꝋ' => 'ꝋ' [expected 'ꝋ'] (line 1096) # Converting 'Ꝍ' => 'ꝍ' [expected 'ꝍ'] (line 1097) # Converting 'Ꝏ' => 'ꝏ' [expected 'ꝏ'] (line 1098) # Converting 'Ꝑ' => 'ꝑ' [expected 'ꝑ'] (line 1099) # Converting 'Ꝓ' => 'ꝓ' [expected 'ꝓ'] (line 1100) # Converting 'Ꝕ' => 'ꝕ' [expected 'ꝕ'] (line 1101) # Converting 'Ꝗ' => 'ꝗ' [expected 'ꝗ'] (line 1102) # Converting 'Ꝙ' => 'ꝙ' [expected 'ꝙ'] (line 1103) # Converting 'Ꝛ' => 'ꝛ' [expected 'ꝛ'] (line 1104) # Converting 'Ꝝ' => 'ꝝ' [expected 'ꝝ'] (line 1105) # Converting 'Ꝟ' => 'ꝟ' [expected 'ꝟ'] (line 1106) # Converting 'Ꝡ' => 'ꝡ' [expected 'ꝡ'] (line 1107) # Converting 'Ꝣ' => 'ꝣ' [expected 'ꝣ'] (line 1108) # Converting 'Ꝥ' => 'ꝥ' [expected 'ꝥ'] (line 1109) # Converting 'Ꝧ' => 'ꝧ' [expected 'ꝧ'] (line 1110) # Converting 'Ꝩ' => 'ꝩ' [expected 'ꝩ'] (line 1111) # Converting 'Ꝫ' => 'ꝫ' [expected 'ꝫ'] (line 1112) # Converting 'Ꝭ' => 'ꝭ' [expected 'ꝭ'] (line 1113) # Converting 'Ꝯ' => 'ꝯ' [expected 'ꝯ'] (line 1114) # Converting 'Ꝺ' => 'ꝺ' [expected 'ꝺ'] (line 1115) # Converting 'Ꝼ' => 'ꝼ' [expected 'ꝼ'] (line 1116) # Converting 'Ᵹ' => 'ᵹ' [expected 'ᵹ'] (line 1117) # Converting 'Ꝿ' => 'ꝿ' [expected 'ꝿ'] (line 1118) # Converting 'Ꞁ' => 'ꞁ' [expected 'ꞁ'] (line 1119) # Converting 'Ꞃ' => 'ꞃ' [expected 'ꞃ'] (line 1120) # Converting 'Ꞅ' => 'ꞅ' [expected 'ꞅ'] (line 1121) # Converting 'Ꞇ' => 'ꞇ' [expected 'ꞇ'] (line 1122) # Converting 'Ꞌ' => 'ꞌ' [expected 'ꞌ'] (line 1123) # Converting 'Ɥ' => 'ɥ' [expected 'ɥ'] (line 1124) # Converting 'Ꞑ' => 'ꞑ' [expected 'ꞑ'] (line 1125) # Converting 'Ꞓ' => 'ꞓ' [expected 'ꞓ'] (line 1126) # Converting 'Ꞗ' => 'ꞗ' [expected 'ꞗ'] (line 1127) # Converting 'Ꞙ' => 'ꞙ' [expected 'ꞙ'] (line 1128) # Converting 'Ꞛ' => 'ꞛ' [expected 'ꞛ'] (line 1129) # Converting 'Ꞝ' => 'ꞝ' [expected 'ꞝ'] (line 1130) # Converting 'Ꞟ' => 'ꞟ' [expected 'ꞟ'] (line 1131) # Converting 'Ꞡ' => 'ꞡ' [expected 'ꞡ'] (line 1132) # Converting 'Ꞣ' => 'ꞣ' [expected 'ꞣ'] (line 1133) # Converting 'Ꞥ' => 'ꞥ' [expected 'ꞥ'] (line 1134) # Converting 'Ꞧ' => 'ꞧ' [expected 'ꞧ'] (line 1135) # Converting 'Ꞩ' => 'ꞩ' [expected 'ꞩ'] (line 1136) # Converting 'Ɦ' => 'ɦ' [expected 'ɦ'] (line 1137) # Converting 'Ɜ' => 'ɜ' [expected 'ɜ'] (line 1138) # Converting 'Ɡ' => 'ɡ' [expected 'ɡ'] (line 1139) # Converting 'Ɬ' => 'ɬ' [expected 'ɬ'] (line 1140) # Converting 'Ɪ' => 'ɪ' [expected 'ɪ'] (line 1141) # Converting 'Ʞ' => 'ʞ' [expected 'ʞ'] (line 1142) # Converting 'Ʇ' => 'ʇ' [expected 'ʇ'] (line 1143) # Converting 'Ʝ' => 'ʝ' [expected 'ʝ'] (line 1144) # Converting 'Ꭓ' => 'ꭓ' [expected 'ꭓ'] (line 1145) # Converting 'Ꞵ' => 'ꞵ' [expected 'ꞵ'] (line 1146) # Converting 'Ꞷ' => 'ꞷ' [expected 'ꞷ'] (line 1147) # Converting 'Ꞹ' => 'ꞹ' [expected 'ꞹ'] (line 1148) # Converting 'Ꞻ' => 'ꞻ' [expected 'ꞻ'] (line 1149) # Converting 'Ꞽ' => 'ꞽ' [expected 'ꞽ'] (line 1150) # Converting 'Ꞿ' => 'ꞿ' [expected 'ꞿ'] (line 1151) # Converting 'Ꟁ' => 'ꟁ' [expected 'ꟁ'] (line 1152) # Converting 'Ꟃ' => 'ꟃ' [expected 'ꟃ'] (line 1153) # Converting 'Ꞔ' => 'ꞔ' [expected 'ꞔ'] (line 1154) # Converting 'Ʂ' => 'ʂ' [expected 'ʂ'] (line 1155) # Converting 'Ᶎ' => 'ᶎ' [expected 'ᶎ'] (line 1156) # Converting 'Ꟈ' => 'ꟈ' [expected 'ꟈ'] (line 1157) # Converting 'Ꟊ' => 'ꟊ' [expected 'ꟊ'] (line 1158) # Converting 'Ɤ' => 'ɤ' [expected 'ɤ'] (line 1159) # Converting 'Ꟍ' => 'ꟍ' [expected 'ꟍ'] (line 1160) # Converting '꟎' => '꟏' [expected '꟏'] (line 1161) # Converting 'Ꟑ' => 'ꟑ' [expected 'ꟑ'] (line 1162) # Converting '꟒' => 'ꟓ' [expected 'ꟓ'] (line 1163) # Converting '꟔' => 'ꟕ' [expected 'ꟕ'] (line 1164) # Converting 'Ꟗ' => 'ꟗ' [expected 'ꟗ'] (line 1165) # Converting 'Ꟙ' => 'ꟙ' [expected 'ꟙ'] (line 1166) # Converting 'Ꟛ' => 'ꟛ' [expected 'ꟛ'] (line 1167) # Converting 'Ƛ' => 'ƛ' [expected 'ƛ'] (line 1168) # Converting 'Ꟶ' => 'ꟶ' [expected 'ꟶ'] (line 1169) # Converting 'ꭰ' => 'Ꭰ' [expected 'Ꭰ'] (line 1170) # Converting 'ꭱ' => 'Ꭱ' [expected 'Ꭱ'] (line 1171) # Converting 'ꭲ' => 'Ꭲ' [expected 'Ꭲ'] (line 1172) # Converting 'ꭳ' => 'Ꭳ' [expected 'Ꭳ'] (line 1173) # Converting 'ꭴ' => 'Ꭴ' [expected 'Ꭴ'] (line 1174) # Converting 'ꭵ' => 'Ꭵ' [expected 'Ꭵ'] (line 1175) # Converting 'ꭶ' => 'Ꭶ' [expected 'Ꭶ'] (line 1176) # Converting 'ꭷ' => 'Ꭷ' [expected 'Ꭷ'] (line 1177) # Converting 'ꭸ' => 'Ꭸ' [expected 'Ꭸ'] (line 1178) # Converting 'ꭹ' => 'Ꭹ' [expected 'Ꭹ'] (line 1179) # Converting 'ꭺ' => 'Ꭺ' [expected 'Ꭺ'] (line 1180) # Converting 'ꭻ' => 'Ꭻ' [expected 'Ꭻ'] (line 1181) # Converting 'ꭼ' => 'Ꭼ' [expected 'Ꭼ'] (line 1182) # Converting 'ꭽ' => 'Ꭽ' [expected 'Ꭽ'] (line 1183) # Converting 'ꭾ' => 'Ꭾ' [expected 'Ꭾ'] (line 1184) # Converting 'ꭿ' => 'Ꭿ' [expected 'Ꭿ'] (line 1185) # Converting 'ꮀ' => 'Ꮀ' [expected 'Ꮀ'] (line 1186) # Converting 'ꮁ' => 'Ꮁ' [expected 'Ꮁ'] (line 1187) # Converting 'ꮂ' => 'Ꮂ' [expected 'Ꮂ'] (line 1188) # Converting 'ꮃ' => 'Ꮃ' [expected 'Ꮃ'] (line 1189) # Converting 'ꮄ' => 'Ꮄ' [expected 'Ꮄ'] (line 1190) # Converting 'ꮅ' => 'Ꮅ' [expected 'Ꮅ'] (line 1191) # Converting 'ꮆ' => 'Ꮆ' [expected 'Ꮆ'] (line 1192) # Converting 'ꮇ' => 'Ꮇ' [expected 'Ꮇ'] (line 1193) # Converting 'ꮈ' => 'Ꮈ' [expected 'Ꮈ'] (line 1194) # Converting 'ꮉ' => 'Ꮉ' [expected 'Ꮉ'] (line 1195) # Converting 'ꮊ' => 'Ꮊ' [expected 'Ꮊ'] (line 1196) # Converting 'ꮋ' => 'Ꮋ' [expected 'Ꮋ'] (line 1197) # Converting 'ꮌ' => 'Ꮌ' [expected 'Ꮌ'] (line 1198) # Converting 'ꮍ' => 'Ꮍ' [expected 'Ꮍ'] (line 1199) # Converting 'ꮎ' => 'Ꮎ' [expected 'Ꮎ'] (line 1200) # Converting 'ꮏ' => 'Ꮏ' [expected 'Ꮏ'] (line 1201) # Converting 'ꮐ' => 'Ꮐ' [expected 'Ꮐ'] (line 1202) # Converting 'ꮑ' => 'Ꮑ' [expected 'Ꮑ'] (line 1203) # Converting 'ꮒ' => 'Ꮒ' [expected 'Ꮒ'] (line 1204) # Converting 'ꮓ' => 'Ꮓ' [expected 'Ꮓ'] (line 1205) # Converting 'ꮔ' => 'Ꮔ' [expected 'Ꮔ'] (line 1206) # Converting 'ꮕ' => 'Ꮕ' [expected 'Ꮕ'] (line 1207) # Converting 'ꮖ' => 'Ꮖ' [expected 'Ꮖ'] (line 1208) # Converting 'ꮗ' => 'Ꮗ' [expected 'Ꮗ'] (line 1209) # Converting 'ꮘ' => 'Ꮘ' [expected 'Ꮘ'] (line 1210) # Converting 'ꮙ' => 'Ꮙ' [expected 'Ꮙ'] (line 1211) # Converting 'ꮚ' => 'Ꮚ' [expected 'Ꮚ'] (line 1212) # Converting 'ꮛ' => 'Ꮛ' [expected 'Ꮛ'] (line 1213) # Converting 'ꮜ' => 'Ꮜ' [expected 'Ꮜ'] (line 1214) # Converting 'ꮝ' => 'Ꮝ' [expected 'Ꮝ'] (line 1215) # Converting 'ꮞ' => 'Ꮞ' [expected 'Ꮞ'] (line 1216) # Converting 'ꮟ' => 'Ꮟ' [expected 'Ꮟ'] (line 1217) # Converting 'ꮠ' => 'Ꮠ' [expected 'Ꮠ'] (line 1218) # Converting 'ꮡ' => 'Ꮡ' [expected 'Ꮡ'] (line 1219) # Converting 'ꮢ' => 'Ꮢ' [expected 'Ꮢ'] (line 1220) # Converting 'ꮣ' => 'Ꮣ' [expected 'Ꮣ'] (line 1221) # Converting 'ꮤ' => 'Ꮤ' [expected 'Ꮤ'] (line 1222) # Converting 'ꮥ' => 'Ꮥ' [expected 'Ꮥ'] (line 1223) # Converting 'ꮦ' => 'Ꮦ' [expected 'Ꮦ'] (line 1224) # Converting 'ꮧ' => 'Ꮧ' [expected 'Ꮧ'] (line 1225) # Converting 'ꮨ' => 'Ꮨ' [expected 'Ꮨ'] (line 1226) # Converting 'ꮩ' => 'Ꮩ' [expected 'Ꮩ'] (line 1227) # Converting 'ꮪ' => 'Ꮪ' [expected 'Ꮪ'] (line 1228) # Converting 'ꮫ' => 'Ꮫ' [expected 'Ꮫ'] (line 1229) # Converting 'ꮬ' => 'Ꮬ' [expected 'Ꮬ'] (line 1230) # Converting 'ꮭ' => 'Ꮭ' [expected 'Ꮭ'] (line 1231) # Converting 'ꮮ' => 'Ꮮ' [expected 'Ꮮ'] (line 1232) # Converting 'ꮯ' => 'Ꮯ' [expected 'Ꮯ'] (line 1233) # Converting 'ꮰ' => 'Ꮰ' [expected 'Ꮰ'] (line 1234) # Converting 'ꮱ' => 'Ꮱ' [expected 'Ꮱ'] (line 1235) # Converting 'ꮲ' => 'Ꮲ' [expected 'Ꮲ'] (line 1236) # Converting 'ꮳ' => 'Ꮳ' [expected 'Ꮳ'] (line 1237) # Converting 'ꮴ' => 'Ꮴ' [expected 'Ꮴ'] (line 1238) # Converting 'ꮵ' => 'Ꮵ' [expected 'Ꮵ'] (line 1239) # Converting 'ꮶ' => 'Ꮶ' [expected 'Ꮶ'] (line 1240) # Converting 'ꮷ' => 'Ꮷ' [expected 'Ꮷ'] (line 1241) # Converting 'ꮸ' => 'Ꮸ' [expected 'Ꮸ'] (line 1242) # Converting 'ꮹ' => 'Ꮹ' [expected 'Ꮹ'] (line 1243) # Converting 'ꮺ' => 'Ꮺ' [expected 'Ꮺ'] (line 1244) # Converting 'ꮻ' => 'Ꮻ' [expected 'Ꮻ'] (line 1245) # Converting 'ꮼ' => 'Ꮼ' [expected 'Ꮼ'] (line 1246) # Converting 'ꮽ' => 'Ꮽ' [expected 'Ꮽ'] (line 1247) # Converting 'ꮾ' => 'Ꮾ' [expected 'Ꮾ'] (line 1248) # Converting 'ꮿ' => 'Ꮿ' [expected 'Ꮿ'] (line 1249) # Converting 'ff' => 'ff' [expected 'ff'] (line 1250) # Converting 'fi' => 'fi' [expected 'fi'] (line 1251) # Converting 'fl' => 'fl' [expected 'fl'] (line 1252) # Converting 'ffi' => 'ffi' [expected 'ffi'] (line 1253) # Converting 'ffl' => 'ffl' [expected 'ffl'] (line 1254) # Converting 'ſt' => 'st' [expected 'st'] (line 1255) # Converting 'st' => 'st' [expected 'st'] (line 1256) # Converting 'ﬓ' => 'մն' [expected 'մն'] (line 1257) # Converting 'ﬔ' => 'մե' [expected 'մե'] (line 1258) # Converting 'ﬕ' => 'մի' [expected 'մի'] (line 1259) # Converting 'ﬖ' => 'վն' [expected 'վն'] (line 1260) # Converting 'ﬗ' => 'մխ' [expected 'մխ'] (line 1261) # Converting 'A' => 'a' [expected 'a'] (line 1262) # Converting 'B' => 'b' [expected 'b'] (line 1263) # Converting 'C' => 'c' [expected 'c'] (line 1264) # Converting 'D' => 'd' [expected 'd'] (line 1265) # Converting 'E' => 'e' [expected 'e'] (line 1266) # Converting 'F' => 'f' [expected 'f'] (line 1267) # Converting 'G' => 'g' [expected 'g'] (line 1268) # Converting 'H' => 'h' [expected 'h'] (line 1269) # Converting 'I' => 'i' [expected 'i'] (line 1270) # Converting 'J' => 'j' [expected 'j'] (line 1271) # Converting 'K' => 'k' [expected 'k'] (line 1272) # Converting 'L' => 'l' [expected 'l'] (line 1273) # Converting 'M' => 'm' [expected 'm'] (line 1274) # Converting 'N' => 'n' [expected 'n'] (line 1275) # Converting 'O' => 'o' [expected 'o'] (line 1276) # Converting 'P' => 'p' [expected 'p'] (line 1277) # Converting 'Q' => 'q' [expected 'q'] (line 1278) # Converting 'R' => 'r' [expected 'r'] (line 1279) # Converting 'S' => 's' [expected 's'] (line 1280) # Converting 'T' => 't' [expected 't'] (line 1281) # Converting 'U' => 'u' [expected 'u'] (line 1282) # Converting 'V' => 'v' [expected 'v'] (line 1283) # Converting 'W' => 'w' [expected 'w'] (line 1284) # Converting 'X' => 'x' [expected 'x'] (line 1285) # Converting 'Y' => 'y' [expected 'y'] (line 1286) # Converting 'Z' => 'z' [expected 'z'] (line 1287) # Converting '𐐀' => '𐐨' [expected '𐐨'] (line 1288) # Converting '𐐁' => '𐐩' [expected '𐐩'] (line 1289) # Converting '𐐂' => '𐐪' [expected '𐐪'] (line 1290) # Converting '𐐃' => '𐐫' [expected '𐐫'] (line 1291) # Converting '𐐄' => '𐐬' [expected '𐐬'] (line 1292) # Converting '𐐅' => '𐐭' [expected '𐐭'] (line 1293) # Converting '𐐆' => '𐐮' [expected '𐐮'] (line 1294) # Converting '𐐇' => '𐐯' [expected '𐐯'] (line 1295) # Converting '𐐈' => '𐐰' [expected '𐐰'] (line 1296) # Converting '𐐉' => '𐐱' [expected '𐐱'] (line 1297) # Converting '𐐊' => '𐐲' [expected '𐐲'] (line 1298) # Converting '𐐋' => '𐐳' [expected '𐐳'] (line 1299) # Converting '𐐌' => '𐐴' [expected '𐐴'] (line 1300) # Converting '𐐍' => '𐐵' [expected '𐐵'] (line 1301) # Converting '𐐎' => '𐐶' [expected '𐐶'] (line 1302) # Converting '𐐏' => '𐐷' [expected '𐐷'] (line 1303) # Converting '𐐐' => '𐐸' [expected '𐐸'] (line 1304) # Converting '𐐑' => '𐐹' [expected '𐐹'] (line 1305) # Converting '𐐒' => '𐐺' [expected '𐐺'] (line 1306) # Converting '𐐓' => '𐐻' [expected '𐐻'] (line 1307) # Converting '𐐔' => '𐐼' [expected '𐐼'] (line 1308) # Converting '𐐕' => '𐐽' [expected '𐐽'] (line 1309) # Converting '𐐖' => '𐐾' [expected '𐐾'] (line 1310) # Converting '𐐗' => '𐐿' [expected '𐐿'] (line 1311) # Converting '𐐘' => '𐑀' [expected '𐑀'] (line 1312) # Converting '𐐙' => '𐑁' [expected '𐑁'] (line 1313) # Converting '𐐚' => '𐑂' [expected '𐑂'] (line 1314) # Converting '𐐛' => '𐑃' [expected '𐑃'] (line 1315) # Converting '𐐜' => '𐑄' [expected '𐑄'] (line 1316) # Converting '𐐝' => '𐑅' [expected '𐑅'] (line 1317) # Converting '𐐞' => '𐑆' [expected '𐑆'] (line 1318) # Converting '𐐟' => '𐑇' [expected '𐑇'] (line 1319) # Converting '𐐠' => '𐑈' [expected '𐑈'] (line 1320) # Converting '𐐡' => '𐑉' [expected '𐑉'] (line 1321) # Converting '𐐢' => '𐑊' [expected '𐑊'] (line 1322) # Converting '𐐣' => '𐑋' [expected '𐑋'] (line 1323) # Converting '𐐤' => '𐑌' [expected '𐑌'] (line 1324) # Converting '𐐥' => '𐑍' [expected '𐑍'] (line 1325) # Converting '𐐦' => '𐑎' [expected '𐑎'] (line 1326) # Converting '𐐧' => '𐑏' [expected '𐑏'] (line 1327) # Converting '𐒰' => '𐓘' [expected '𐓘'] (line 1328) # Converting '𐒱' => '𐓙' [expected '𐓙'] (line 1329) # Converting '𐒲' => '𐓚' [expected '𐓚'] (line 1330) # Converting '𐒳' => '𐓛' [expected '𐓛'] (line 1331) # Converting '𐒴' => '𐓜' [expected '𐓜'] (line 1332) # Converting '𐒵' => '𐓝' [expected '𐓝'] (line 1333) # Converting '𐒶' => '𐓞' [expected '𐓞'] (line 1334) # Converting '𐒷' => '𐓟' [expected '𐓟'] (line 1335) # Converting '𐒸' => '𐓠' [expected '𐓠'] (line 1336) # Converting '𐒹' => '𐓡' [expected '𐓡'] (line 1337) # Converting '𐒺' => '𐓢' [expected '𐓢'] (line 1338) # Converting '𐒻' => '𐓣' [expected '𐓣'] (line 1339) # Converting '𐒼' => '𐓤' [expected '𐓤'] (line 1340) # Converting '𐒽' => '𐓥' [expected '𐓥'] (line 1341) # Converting '𐒾' => '𐓦' [expected '𐓦'] (line 1342) # Converting '𐒿' => '𐓧' [expected '𐓧'] (line 1343) # Converting '𐓀' => '𐓨' [expected '𐓨'] (line 1344) # Converting '𐓁' => '𐓩' [expected '𐓩'] (line 1345) # Converting '𐓂' => '𐓪' [expected '𐓪'] (line 1346) # Converting '𐓃' => '𐓫' [expected '𐓫'] (line 1347) # Converting '𐓄' => '𐓬' [expected '𐓬'] (line 1348) # Converting '𐓅' => '𐓭' [expected '𐓭'] (line 1349) # Converting '𐓆' => '𐓮' [expected '𐓮'] (line 1350) # Converting '𐓇' => '𐓯' [expected '𐓯'] (line 1351) # Converting '𐓈' => '𐓰' [expected '𐓰'] (line 1352) # Converting '𐓉' => '𐓱' [expected '𐓱'] (line 1353) # Converting '𐓊' => '𐓲' [expected '𐓲'] (line 1354) # Converting '𐓋' => '𐓳' [expected '𐓳'] (line 1355) # Converting '𐓌' => '𐓴' [expected '𐓴'] (line 1356) # Converting '𐓍' => '𐓵' [expected '𐓵'] (line 1357) # Converting '𐓎' => '𐓶' [expected '𐓶'] (line 1358) # Converting '𐓏' => '𐓷' [expected '𐓷'] (line 1359) # Converting '𐓐' => '𐓸' [expected '𐓸'] (line 1360) # Converting '𐓑' => '𐓹' [expected '𐓹'] (line 1361) # Converting '𐓒' => '𐓺' [expected '𐓺'] (line 1362) # Converting '𐓓' => '𐓻' [expected '𐓻'] (line 1363) # Converting '𐕰' => '𐖗' [expected '𐖗'] (line 1364) # Converting '𐕱' => '𐖘' [expected '𐖘'] (line 1365) # Converting '𐕲' => '𐖙' [expected '𐖙'] (line 1366) # Converting '𐕳' => '𐖚' [expected '𐖚'] (line 1367) # Converting '𐕴' => '𐖛' [expected '𐖛'] (line 1368) # Converting '𐕵' => '𐖜' [expected '𐖜'] (line 1369) # Converting '𐕶' => '𐖝' [expected '𐖝'] (line 1370) # Converting '𐕷' => '𐖞' [expected '𐖞'] (line 1371) # Converting '𐕸' => '𐖟' [expected '𐖟'] (line 1372) # Converting '𐕹' => '𐖠' [expected '𐖠'] (line 1373) # Converting '𐕺' => '𐖡' [expected '𐖡'] (line 1374) # Converting '𐕼' => '𐖣' [expected '𐖣'] (line 1375) # Converting '𐕽' => '𐖤' [expected '𐖤'] (line 1376) # Converting '𐕾' => '𐖥' [expected '𐖥'] (line 1377) # Converting '𐕿' => '𐖦' [expected '𐖦'] (line 1378) # Converting '𐖀' => '𐖧' [expected '𐖧'] (line 1379) # Converting '𐖁' => '𐖨' [expected '𐖨'] (line 1380) # Converting '𐖂' => '𐖩' [expected '𐖩'] (line 1381) # Converting '𐖃' => '𐖪' [expected '𐖪'] (line 1382) # Converting '𐖄' => '𐖫' [expected '𐖫'] (line 1383) # Converting '𐖅' => '𐖬' [expected '𐖬'] (line 1384) # Converting '𐖆' => '𐖭' [expected '𐖭'] (line 1385) # Converting '𐖇' => '𐖮' [expected '𐖮'] (line 1386) # Converting '𐖈' => '𐖯' [expected '𐖯'] (line 1387) # Converting '𐖉' => '𐖰' [expected '𐖰'] (line 1388) # Converting '𐖊' => '𐖱' [expected '𐖱'] (line 1389) # Converting '𐖌' => '𐖳' [expected '𐖳'] (line 1390) # Converting '𐖍' => '𐖴' [expected '𐖴'] (line 1391) # Converting '𐖎' => '𐖵' [expected '𐖵'] (line 1392) # Converting '𐖏' => '𐖶' [expected '𐖶'] (line 1393) # Converting '𐖐' => '𐖷' [expected '𐖷'] (line 1394) # Converting '𐖑' => '𐖸' [expected '𐖸'] (line 1395) # Converting '𐖒' => '𐖹' [expected '𐖹'] (line 1396) # Converting '𐖔' => '𐖻' [expected '𐖻'] (line 1397) # Converting '𐖕' => '𐖼' [expected '𐖼'] (line 1398) # Converting '𐲀' => '𐳀' [expected '𐳀'] (line 1399) # Converting '𐲁' => '𐳁' [expected '𐳁'] (line 1400) # Converting '𐲂' => '𐳂' [expected '𐳂'] (line 1401) # Converting '𐲃' => '𐳃' [expected '𐳃'] (line 1402) # Converting '𐲄' => '𐳄' [expected '𐳄'] (line 1403) # Converting '𐲅' => '𐳅' [expected '𐳅'] (line 1404) # Converting '𐲆' => '𐳆' [expected '𐳆'] (line 1405) # Converting '𐲇' => '𐳇' [expected '𐳇'] (line 1406) # Converting '𐲈' => '𐳈' [expected '𐳈'] (line 1407) # Converting '𐲉' => '𐳉' [expected '𐳉'] (line 1408) # Converting '𐲊' => '𐳊' [expected '𐳊'] (line 1409) # Converting '𐲋' => '𐳋' [expected '𐳋'] (line 1410) # Converting '𐲌' => '𐳌' [expected '𐳌'] (line 1411) # Converting '𐲍' => '𐳍' [expected '𐳍'] (line 1412) # Converting '𐲎' => '𐳎' [expected '𐳎'] (line 1413) # Converting '𐲏' => '𐳏' [expected '𐳏'] (line 1414) # Converting '𐲐' => '𐳐' [expected '𐳐'] (line 1415) # Converting '𐲑' => '𐳑' [expected '𐳑'] (line 1416) # Converting '𐲒' => '𐳒' [expected '𐳒'] (line 1417) # Converting '𐲓' => '𐳓' [expected '𐳓'] (line 1418) # Converting '𐲔' => '𐳔' [expected '𐳔'] (line 1419) # Converting '𐲕' => '𐳕' [expected '𐳕'] (line 1420) # Converting '𐲖' => '𐳖' [expected '𐳖'] (line 1421) # Converting '𐲗' => '𐳗' [expected '𐳗'] (line 1422) # Converting '𐲘' => '𐳘' [expected '𐳘'] (line 1423) # Converting '𐲙' => '𐳙' [expected '𐳙'] (line 1424) # Converting '𐲚' => '𐳚' [expected '𐳚'] (line 1425) # Converting '𐲛' => '𐳛' [expected '𐳛'] (line 1426) # Converting '𐲜' => '𐳜' [expected '𐳜'] (line 1427) # Converting '𐲝' => '𐳝' [expected '𐳝'] (line 1428) # Converting '𐲞' => '𐳞' [expected '𐳞'] (line 1429) # Converting '𐲟' => '𐳟' [expected '𐳟'] (line 1430) # Converting '𐲠' => '𐳠' [expected '𐳠'] (line 1431) # Converting '𐲡' => '𐳡' [expected '𐳡'] (line 1432) # Converting '𐲢' => '𐳢' [expected '𐳢'] (line 1433) # Converting '𐲣' => '𐳣' [expected '𐳣'] (line 1434) # Converting '𐲤' => '𐳤' [expected '𐳤'] (line 1435) # Converting '𐲥' => '𐳥' [expected '𐳥'] (line 1436) # Converting '𐲦' => '𐳦' [expected '𐳦'] (line 1437) # Converting '𐲧' => '𐳧' [expected '𐳧'] (line 1438) # Converting '𐲨' => '𐳨' [expected '𐳨'] (line 1439) # Converting '𐲩' => '𐳩' [expected '𐳩'] (line 1440) # Converting '𐲪' => '𐳪' [expected '𐳪'] (line 1441) # Converting '𐲫' => '𐳫' [expected '𐳫'] (line 1442) # Converting '𐲬' => '𐳬' [expected '𐳬'] (line 1443) # Converting '𐲭' => '𐳭' [expected '𐳭'] (line 1444) # Converting '𐲮' => '𐳮' [expected '𐳮'] (line 1445) # Converting '𐲯' => '𐳯' [expected '𐳯'] (line 1446) # Converting '𐲰' => '𐳰' [expected '𐳰'] (line 1447) # Converting '𐲱' => '𐳱' [expected '𐳱'] (line 1448) # Converting '𐲲' => '𐳲' [expected '𐳲'] (line 1449) # Converting '𐵐' => '𐵰' [expected '𐵰'] (line 1450) # Converting '𐵑' => '𐵱' [expected '𐵱'] (line 1451) # Converting '𐵒' => '𐵲' [expected '𐵲'] (line 1452) # Converting '𐵓' => '𐵳' [expected '𐵳'] (line 1453) # Converting '𐵔' => '𐵴' [expected '𐵴'] (line 1454) # Converting '𐵕' => '𐵵' [expected '𐵵'] (line 1455) # Converting '𐵖' => '𐵶' [expected '𐵶'] (line 1456) # Converting '𐵗' => '𐵷' [expected '𐵷'] (line 1457) # Converting '𐵘' => '𐵸' [expected '𐵸'] (line 1458) # Converting '𐵙' => '𐵹' [expected '𐵹'] (line 1459) # Converting '𐵚' => '𐵺' [expected '𐵺'] (line 1460) # Converting '𐵛' => '𐵻' [expected '𐵻'] (line 1461) # Converting '𐵜' => '𐵼' [expected '𐵼'] (line 1462) # Converting '𐵝' => '𐵽' [expected '𐵽'] (line 1463) # Converting '𐵞' => '𐵾' [expected '𐵾'] (line 1464) # Converting '𐵟' => '𐵿' [expected '𐵿'] (line 1465) # Converting '𐵠' => '𐶀' [expected '𐶀'] (line 1466) # Converting '𐵡' => '𐶁' [expected '𐶁'] (line 1467) # Converting '𐵢' => '𐶂' [expected '𐶂'] (line 1468) # Converting '𐵣' => '𐶃' [expected '𐶃'] (line 1469) # Converting '𐵤' => '𐶄' [expected '𐶄'] (line 1470) # Converting '𐵥' => '𐶅' [expected '𐶅'] (line 1471) # Converting '𑢠' => '𑣀' [expected '𑣀'] (line 1472) # Converting '𑢡' => '𑣁' [expected '𑣁'] (line 1473) # Converting '𑢢' => '𑣂' [expected '𑣂'] (line 1474) # Converting '𑢣' => '𑣃' [expected '𑣃'] (line 1475) # Converting '𑢤' => '𑣄' [expected '𑣄'] (line 1476) # Converting '𑢥' => '𑣅' [expected '𑣅'] (line 1477) # Converting '𑢦' => '𑣆' [expected '𑣆'] (line 1478) # Converting '𑢧' => '𑣇' [expected '𑣇'] (line 1479) # Converting '𑢨' => '𑣈' [expected '𑣈'] (line 1480) # Converting '𑢩' => '𑣉' [expected '𑣉'] (line 1481) # Converting '𑢪' => '𑣊' [expected '𑣊'] (line 1482) # Converting '𑢫' => '𑣋' [expected '𑣋'] (line 1483) # Converting '𑢬' => '𑣌' [expected '𑣌'] (line 1484) # Converting '𑢭' => '𑣍' [expected '𑣍'] (line 1485) # Converting '𑢮' => '𑣎' [expected '𑣎'] (line 1486) # Converting '𑢯' => '𑣏' [expected '𑣏'] (line 1487) # Converting '𑢰' => '𑣐' [expected '𑣐'] (line 1488) # Converting '𑢱' => '𑣑' [expected '𑣑'] (line 1489) # Converting '𑢲' => '𑣒' [expected '𑣒'] (line 1490) # Converting '𑢳' => '𑣓' [expected '𑣓'] (line 1491) # Converting '𑢴' => '𑣔' [expected '𑣔'] (line 1492) # Converting '𑢵' => '𑣕' [expected '𑣕'] (line 1493) # Converting '𑢶' => '𑣖' [expected '𑣖'] (line 1494) # Converting '𑢷' => '𑣗' [expected '𑣗'] (line 1495) # Converting '𑢸' => '𑣘' [expected '𑣘'] (line 1496) # Converting '𑢹' => '𑣙' [expected '𑣙'] (line 1497) # Converting '𑢺' => '𑣚' [expected '𑣚'] (line 1498) # Converting '𑢻' => '𑣛' [expected '𑣛'] (line 1499) # Converting '𑢼' => '𑣜' [expected '𑣜'] (line 1500) # Converting '𑢽' => '𑣝' [expected '𑣝'] (line 1501) # Converting '𑢾' => '𑣞' [expected '𑣞'] (line 1502) # Converting '𑢿' => '𑣟' [expected '𑣟'] (line 1503) # Converting '𖹀' => '𖹠' [expected '𖹠'] (line 1504) # Converting '𖹁' => '𖹡' [expected '𖹡'] (line 1505) # Converting '𖹂' => '𖹢' [expected '𖹢'] (line 1506) # Converting '𖹃' => '𖹣' [expected '𖹣'] (line 1507) # Converting '𖹄' => '𖹤' [expected '𖹤'] (line 1508) # Converting '𖹅' => '𖹥' [expected '𖹥'] (line 1509) # Converting '𖹆' => '𖹦' [expected '𖹦'] (line 1510) # Converting '𖹇' => '𖹧' [expected '𖹧'] (line 1511) # Converting '𖹈' => '𖹨' [expected '𖹨'] (line 1512) # Converting '𖹉' => '𖹩' [expected '𖹩'] (line 1513) # Converting '𖹊' => '𖹪' [expected '𖹪'] (line 1514) # Converting '𖹋' => '𖹫' [expected '𖹫'] (line 1515) # Converting '𖹌' => '𖹬' [expected '𖹬'] (line 1516) # Converting '𖹍' => '𖹭' [expected '𖹭'] (line 1517) # Converting '𖹎' => '𖹮' [expected '𖹮'] (line 1518) # Converting '𖹏' => '𖹯' [expected '𖹯'] (line 1519) # Converting '𖹐' => '𖹰' [expected '𖹰'] (line 1520) # Converting '𖹑' => '𖹱' [expected '𖹱'] (line 1521) # Converting '𖹒' => '𖹲' [expected '𖹲'] (line 1522) # Converting '𖹓' => '𖹳' [expected '𖹳'] (line 1523) # Converting '𖹔' => '𖹴' [expected '𖹴'] (line 1524) # Converting '𖹕' => '𖹵' [expected '𖹵'] (line 1525) # Converting '𖹖' => '𖹶' [expected '𖹶'] (line 1526) # Converting '𖹗' => '𖹷' [expected '𖹷'] (line 1527) # Converting '𖹘' => '𖹸' [expected '𖹸'] (line 1528) # Converting '𖹙' => '𖹹' [expected '𖹹'] (line 1529) # Converting '𖹚' => '𖹺' [expected '𖹺'] (line 1530) # Converting '𖹛' => '𖹻' [expected '𖹻'] (line 1531) # Converting '𖹜' => '𖹼' [expected '𖹼'] (line 1532) # Converting '𖹝' => '𖹽' [expected '𖹽'] (line 1533) # Converting '𖹞' => '𖹾' [expected '𖹾'] (line 1534) # Converting '𖹟' => '𖹿' [expected '𖹿'] (line 1535) # Converting '𖺠' => '𖺻' [expected '𖺻'] (line 1536) # Converting '𖺡' => '𖺼' [expected '𖺼'] (line 1537) # Converting '𖺢' => '𖺽' [expected '𖺽'] (line 1538) # Converting '𖺣' => '𖺾' [expected '𖺾'] (line 1539) # Converting '𖺤' => '𖺿' [expected '𖺿'] (line 1540) # Converting '𖺥' => '𖻀' [expected '𖻀'] (line 1541) # Converting '𖺦' => '𖻁' [expected '𖻁'] (line 1542) # Converting '𖺧' => '𖻂' [expected '𖻂'] (line 1543) # Converting '𖺨' => '𖻃' [expected '𖻃'] (line 1544) # Converting '𖺩' => '𖻄' [expected '𖻄'] (line 1545) # Converting '𖺪' => '𖻅' [expected '𖻅'] (line 1546) # Converting '𖺫' => '𖻆' [expected '𖻆'] (line 1547) # Converting '𖺬' => '𖻇' [expected '𖻇'] (line 1548) # Converting '𖺭' => '𖻈' [expected '𖻈'] (line 1549) # Converting '𖺮' => '𖻉' [expected '𖻉'] (line 1550) # Converting '𖺯' => '𖻊' [expected '𖻊'] (line 1551) # Converting '𖺰' => '𖻋' [expected '𖻋'] (line 1552) # Converting '𖺱' => '𖻌' [expected '𖻌'] (line 1553) # Converting '𖺲' => '𖻍' [expected '𖻍'] (line 1554) # Converting '𖺳' => '𖻎' [expected '𖻎'] (line 1555) # Converting '𖺴' => '𖻏' [expected '𖻏'] (line 1556) # Converting '𖺵' => '𖻐' [expected '𖻐'] (line 1557) # Converting '𖺶' => '𖻑' [expected '𖻑'] (line 1558) # Converting '𖺷' => '𖻒' [expected '𖻒'] (line 1559) # Converting '𖺸' => '𖻓' [expected '𖻓'] (line 1560) # Converting '𞤀' => '𞤢' [expected '𞤢'] (line 1561) # Converting '𞤁' => '𞤣' [expected '𞤣'] (line 1562) # Converting '𞤂' => '𞤤' [expected '𞤤'] (line 1563) # Converting '𞤃' => '𞤥' [expected '𞤥'] (line 1564) # Converting '𞤄' => '𞤦' [expected '𞤦'] (line 1565) # Converting '𞤅' => '𞤧' [expected '𞤧'] (line 1566) # Converting '𞤆' => '𞤨' [expected '𞤨'] (line 1567) # Converting '𞤇' => '𞤩' [expected '𞤩'] (line 1568) # Converting '𞤈' => '𞤪' [expected '𞤪'] (line 1569) # Converting '𞤉' => '𞤫' [expected '𞤫'] (line 1570) # Converting '𞤊' => '𞤬' [expected '𞤬'] (line 1571) # Converting '𞤋' => '𞤭' [expected '𞤭'] (line 1572) # Converting '𞤌' => '𞤮' [expected '𞤮'] (line 1573) # Converting '𞤍' => '𞤯' [expected '𞤯'] (line 1574) # Converting '𞤎' => '𞤰' [expected '𞤰'] (line 1575) # Converting '𞤏' => '𞤱' [expected '𞤱'] (line 1576) # Converting '𞤐' => '𞤲' [expected '𞤲'] (line 1577) # Converting '𞤑' => '𞤳' [expected '𞤳'] (line 1578) # Converting '𞤒' => '𞤴' [expected '𞤴'] (line 1579) # Converting '𞤓' => '𞤵' [expected '𞤵'] (line 1580) # Converting '𞤔' => '𞤶' [expected '𞤶'] (line 1581) # Converting '𞤕' => '𞤷' [expected '𞤷'] (line 1582) # Converting '𞤖' => '𞤸' [expected '𞤸'] (line 1583) # Converting '𞤗' => '𞤹' [expected '𞤹'] (line 1584) # Converting '𞤘' => '𞤺' [expected '𞤺'] (line 1585) # Converting '𞤙' => '𞤻' [expected '𞤻'] (line 1586) # Converting '𞤚' => '𞤼' [expected '𞤼'] (line 1587) # Converting '𞤛' => '𞤽' [expected '𞤽'] (line 1588) # Converting '𞤜' => '𞤾' [expected '𞤾'] (line 1589) # Converting '𞤝' => '𞤿' [expected '𞤿'] (line 1590) # Converting '𞤞' => '𞥀' [expected '𞥀'] (line 1591) # Converting '𞤟' => '𞥁' [expected '𞥁'] (line 1592) # Converting '𞤠' => '𞥂' [expected '𞥂'] (line 1593) # Converting '𞤡' => '𞥃' [expected '𞥃'] (line 1594) 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/unichar-to-utf8 ok 37 /unicode/xdigit ok 38 /unicode/xdigit-value ok 39 /unicode/zero-width ok 40 /unicode/normalize # Testing script 0 # Testing script 1 # Testing script 2 # Testing script 3 # Testing script 4 # Testing script 5 # Testing script 6 # Testing script 7 # Testing script 8 # Testing script 9 # Testing script 10 # Testing script 11 # Testing script 12 # Testing script 13 # Testing script 14 # Testing script 15 # Testing script 16 # Testing script 17 # Testing script 18 # Testing script 19 # Testing script 20 # Testing script 21 # Testing script 22 # Testing script 23 # Testing script 24 # Testing script 25 # Testing script 26 # Testing script 27 # Testing script 28 # Testing script 29 # Testing script 30 # Testing script 31 # Testing script 32 # Testing script 33 # Testing script 34 # Testing script 35 # Testing script 36 # Testing script 37 # Testing script 38 # Testing script 39 # Testing script 40 # Testing script 41 # Testing script 42 # Testing script 43 # Testing script 44 # Testing script 45 # Testing script 46 # Testing script 47 # Testing script 48 # Testing script 49 # Testing script 50 # Testing script 51 # Testing script 52 # Testing script 53 # Testing script 54 # Testing script 55 # Testing script 56 # Testing script 57 # Testing script 58 # Testing script 59 # Testing script 60 # Testing script 61 # Testing script 62 # Testing script 63 # Testing script 64 # Testing script 65 # Testing script 66 # Testing script 67 # Testing script 68 # Testing script 69 # Testing script 70 # Testing script 71 # Testing script 72 # Testing script 73 # Testing script 74 # Testing script 75 # Testing script 76 # Testing script 77 # Testing script 78 # Testing script 79 # Testing script 80 # Testing script 81 # Testing script 82 # Testing script 83 # Testing script 84 # Testing script 85 # Testing script 86 # Testing script 87 # Testing script 88 # Testing script 89 # Testing script 90 # Testing script 91 # Testing script 92 # Testing script 93 # Testing script 94 # Testing script 95 # Testing script 96 # Testing script 97 # Testing script 98 # Testing script 99 # Testing script 100 # Testing script 101 # Testing script 102 # Testing script 103 # Testing script 104 # Testing script 105 # Testing script 106 # Testing script 107 # Testing script 108 # Testing script 109 # Testing script 110 # Testing script 111 # Testing script 112 # Testing script 113 # Testing script 114 # Testing script 115 # Testing script 116 # Testing script 117 # Testing script 118 # Testing script 119 # Testing script 120 # Testing script 121 # Testing script 122 # Testing script 123 # Testing script 124 # Testing script 125 # Testing script 126 # Testing script 127 # Testing script 128 # Testing script 129 # Testing script 130 # Testing script 131 # Testing script 132 # Testing script 133 # Testing script 134 # Testing script 135 # Testing script 136 # Testing script 137 # Testing script 138 # Testing script 139 # Testing script 140 # Testing script 141 # Testing script 142 # Testing script 143 # Testing script 144 # Testing script 145 # Testing script 146 # Testing script 147 # Testing script 148 # Testing script 149 # Testing script 150 # Testing script 151 # Testing script 152 # Testing script 153 # Testing script 154 # Testing script 155 # Testing script 156 # Testing script 157 # Testing script 158 # Testing script 159 # Testing script 160 # Testing script 161 # Testing script 162 # Testing script 163 # Testing script 164 # Testing script 165 # Testing script 166 # Testing script 167 # Testing script 168 # Testing script 169 # Testing script 170 # Testing script 171 # Testing script 172 # Testing script 173 # Testing script 174 # Testing script 175 ok 41 /unicode/unknown-scripts # End of unicode tests PASS: glib/unicode.test Running test: glib/simple-async-result.test TAP version 14 # random seed: R02Sb9637ff622aae23cf6f51125e61e1791 1..2 # Start of gio tests # Start of simple-async-result tests ok 1 /gio/simple-async-result/test # GLib-GIO-DEBUG: GTask 0xaaaace827e10 (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/error.test TAP version 14 # random seed: R02Sa3425c5efaa0567f27f44bef8b291dcc 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/flags.test TAP version 14 # random seed: R02S0863d852e5e877094eb68e8eed88d8ec 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/sandbox.test TAP version 14 # random seed: R02S14beec7a7157edbee6fd582f1cbd450e 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/keyfile.test TAP version 14 # random seed: R02S739a798515796691dd07c5b6e2f8d1b7 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/cancellable.test TAP version 14 # random seed: R02Sb330fe1083c25947e23082893dfcc24b 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 (0xaaaadf08f930), last: 1 # Toggle reference callback for GCancellable (0xaaaadf08f930), last: 0 # Toggle reference callback for GCancellable (0xaaaadf08f930), 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 (0xaaaadf08f930), last: 1 # Toggle reference callback for GCancellable (0xaaaadf08f930), last: 0 # Toggle reference callback for GCancellable (0xaaaadf08f930), last: 1 # Toggle reference callback for GCancellable (0xaaaadf08f930), last: 0 # Toggle reference callback for GCancellable (0xaaaadf08f930), 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 # slow test /cancellable-source/threaded-dispose executed in 0.80 secs # /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/macros.test TAP version 14 # random seed: R02S2a8b615b012aaabf4b4697794f7ce9be 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/enums.test TAP version 14 # random seed: R02Sdd01bf9e69d28b2a00dc498a6da3f191 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/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/tmplba0pe5d # Running: ['/usr/libexec/installed-tests/glib/assert-msg-test'] # Return code: -6 # Output: # Bail out! GLib:ERROR:/usr/src/debug/glib-2.0/2.88.0/glib/tests/assert-msg-test.c:31:main: assertion failed: (42 < 0) # Error: # ** # GLib:ERROR:/usr/src/debug/glib-2.0/2.88.0/glib/tests/assert-msg-test.c:31:main: assertion failed: (42 < 0) ok 2 __main__.TestAssertMessage.test_gdb_gassert # SKIP GDB is not installed, skipping this test! # assert-msg-test: /usr/libexec/installed-tests/glib/assert-msg-test # tmpdir: /tmp/tmp127vv3zz 1..2 PASS: glib/assert-msg-test.py.test Running test: glib/appmonitor.test TAP version 14 # random seed: R02S1f805bd9b138384817c23c9f13789d65 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/rec-mutex.test TAP version 14 # random seed: R02S086a5e79d204fa9b7bb01bf66fc1b921 1..29 # Start of thread tests ok 1 /thread/rec-mutex1 ok 2 /thread/rec-mutex2 ok 3 /thread/rec-mutex3 ok 4 /thread/rec-mutex4 # Start of rec-mutex tests # Start of perf tests # Start of uncontended tests # max perf: inf mips ok 5 /thread/rec-mutex/perf/uncontended/depth1 # max perf: 1.000000 mips ok 6 /thread/rec-mutex/perf/uncontended/depth2 # max perf: inf mips ok 7 /thread/rec-mutex/perf/uncontended/depth3 # max perf: inf mips ok 8 /thread/rec-mutex/perf/uncontended/depth4 # max perf: 1.000000 mips ok 9 /thread/rec-mutex/perf/uncontended/depth5 # End of uncontended tests # Start of contended1 tests # max perf: inf mips ok 10 /thread/rec-mutex/perf/contended1/depth1 # max perf: 2.000000 mips ok 11 /thread/rec-mutex/perf/contended1/depth2 # max perf: inf mips ok 12 /thread/rec-mutex/perf/contended1/depth3 # max perf: inf mips ok 13 /thread/rec-mutex/perf/contended1/depth4 # max perf: inf mips ok 14 /thread/rec-mutex/perf/contended1/depth5 # End of contended1 tests # Start of contended2 tests # max perf: inf mips ok 15 /thread/rec-mutex/perf/contended2/depth1 # max perf: inf mips ok 16 /thread/rec-mutex/perf/contended2/depth2 # max perf: inf mips ok 17 /thread/rec-mutex/perf/contended2/depth3 # max perf: inf mips ok 18 /thread/rec-mutex/perf/contended2/depth4 # max perf: inf mips ok 19 /thread/rec-mutex/perf/contended2/depth5 # End of contended2 tests # Start of contended3 tests # max perf: inf 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: inf mips ok 23 /thread/rec-mutex/perf/contended3/depth4 # max perf: 2.000000 mips ok 24 /thread/rec-mutex/perf/contended3/depth5 # End of contended3 tests # Start of contended4 tests # max perf: 2.500000 mips ok 25 /thread/rec-mutex/perf/contended4/depth1 # max perf: 0.833333 mips ok 26 /thread/rec-mutex/perf/contended4/depth2 # max perf: 5.000000 mips ok 27 /thread/rec-mutex/perf/contended4/depth3 # max perf: 1.000000 mips ok 28 /thread/rec-mutex/perf/contended4/depth4 # max perf: 1.000000 mips ok 29 /thread/rec-mutex/perf/contended4/depth5 # End of contended4 tests # End of perf tests # End of rec-mutex tests # End of thread tests PASS: glib/rec-mutex.test Running test: glib/signals-refcount1.test TAP version 14 # random seed: R02S26794fbce26a5ca34be70d09c622df17 1..1 # Start of gobject tests # Start of refcount tests # init 0xaaaaaf6dba30 # # init 0xaaaaaf6d65a0 # Executing: glib/signals-refcount1.test # dispose 0xaaaaaf6dba30! # # dispose 0xaaaaaf6d65a0! # 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/mount-operation.test TAP version 14 # random seed: R02S07731704bb669ca48f26d84efaafc693 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/properties-refcount1.test TAP version 14 # random seed: R02Saf51489f5bc50d380b8a3e7695036f6a 1..1 # Start of gobject tests # Start of refcount tests # .d # .e # .f # .b # .c Executing: glib/properties-refcount1.test # .e # .b # .c # .d # .f # .e # .b # .c # .e # .b # .d # .c # .f # .e # .b # .c # .e # .b # .d # .f # .c # .e # .b # .c # .e # .d # .f # .b # .c # .e # .b # .e # .d # .c # .f # .b # .c # .f # .e # .b # .d # .c # .f # .b # .e # .c # .b # .f # .d # .c # .b # .f # .e # .d # .c # .b # .f # .b # .e # .c # .f # .d # .b # .c # .f # .e # .b # .d # .f # .c # .b # .f # .c # .e # .d # .b # .f # .c # .b # .e # .f # .d # .c # .b # .d # .c # .e # .b # .f # .d # .c # .b # .d # .e # .c # .f # .b # .d # .c # .b # .d # .e # .f # .c # .b # .f # .b # .d # .c # .e # .f # .b # .c # .d # .f # .e # .b # .c # .f # .b # .c # .d # .e # .f # .b # .c # .f # .b # .d # .e # .c # .f # .b # .c # .d # .f # .b # .e # .c # .f # .b # .d # .e # .c # .f # .b # .b # .c # .f # .d # .e # .b # .f # .c # .d # .b # .e # .f # .c # .b # .f # .c # .d # .e # .b # .f # .c # .b # .f # .d # .e # .c # .b # .f # .c # .d # .b # .e # .c # .d # .b # .f # .c # .d # .e # .b # .c # .d # .b # .f # .e # .d # .c # .b # .f # .d # .b # .c # .e # .d # .b # .c # .f # .b # .d # .c # .e # .b # .d # .c # .f # .b # .d # .e # .c 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/tls-interaction.test TAP version 14 # random seed: R02S345b0c19e1175a3e12003bed0417d729 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/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/gdbus-addresses.test TAP version 14 # random seed: R02S01c112003c183d26009d4348f4a3c1c3 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/gutils-user-database.test TAP version 14 # random seed: R02S624eba112b1e24fe8c9d70e1f378e7c2 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/timer.test TAP version 14 # random seed: R02Sa7efbff6802414c0a533a58368ff3823 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/custom-dispatch.test TAP version 14 # random seed: R02Se2a34d0160d701df36098de38db3e205 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/atomic.test TAP version 14 # random seed: R02S2c6494062cb5f39787abe0ba56ec0779 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/bitlock.test TAP version 14 # random seed: R02S993b43ec88c73afcf7fd2c484f8c981c 1..2 # Start of bitlock tests # Start of performance tests # max perf: iterations per second ok 1 /bitlock/performance/uncontended ok 2 /bitlock/performance/parallel # End of performance tests # End of bitlock tests PASS: glib/bitlock.test Running test: glib/deftype.test PASS: glib/deftype.test Running test: glib/mimeapps.test TAP version 14 # random seed: R02S98e64aec69c2f8f029d4115d245012a5 1..13 # 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 # Start of mime-symlinked tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/system-config1:/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/system-data1:/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/runtime # creating '/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/system-data1/applications' # GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ‘gio-vfs’ # creating '/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/system-data1/applications/mimeapps.list.c' # creating '/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/data/applications' # creating '/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/data/applications/myapp.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/data/applications/myapp2.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/data/applications/myapp3.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/data/applications/myapp4.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/data/applications/myapp5.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/data/applications/nosuchapp.desktop' # removing '/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/data/applications/mimeapps.list' # creating '/var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/data/applications/mimeinfo.cache' # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/config # GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/appinfo/mime/ignore-nonexisting/.dirs/config to /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/config ok 8 /appinfo/mime-symlinked/api # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/system-config1:/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/system-data1:/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/runtime # creating '/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/system-data1/applications' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/system-data1/applications/mimeapps.list.c' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/data/applications' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/data/applications/myapp.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/data/applications/myapp2.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/data/applications/myapp3.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/data/applications/myapp4.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/data/applications/myapp5.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/data/applications/nosuchapp.desktop' # removing '/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/data/applications/mimeapps.list' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/data/applications/mimeinfo.cache' # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/config # GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/appinfo/mime-symlinked/api/.dirs/config to /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/config ok 9 /appinfo/mime-symlinked/default # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/system-config1:/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/system-data1:/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/runtime # creating '/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/system-data1/applications' # creating '/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/system-data1/applications/mimeapps.list.c' # creating '/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/data/applications' # creating '/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/data/applications/myapp.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/data/applications/myapp2.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/data/applications/myapp3.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/data/applications/myapp4.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/data/applications/myapp5.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/data/applications/nosuchapp.desktop' # removing '/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/data/applications/mimeapps.list' # creating '/var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/data/applications/mimeinfo.cache' # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/config # GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/appinfo/mime-symlinked/default/.dirs/config to /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/file/.dirs/config ok 10 /appinfo/mime-symlinked/file # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/system-config1:/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/system-data1:/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/runtime # creating '/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/system-data1/applications' # creating '/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/system-data1/applications/mimeapps.list.c' # creating '/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/data/applications' # creating '/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/data/applications/myapp.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/data/applications/myapp2.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/data/applications/myapp3.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/data/applications/myapp4.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/data/applications/myapp5.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/data/applications/nosuchapp.desktop' # removing '/var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/data/applications/mimeapps.list' # creating '/var/volatile/tmp/appinfo/mime-symlinked/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-symlinked/file/.dirs/config to /var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/config ok 11 /appinfo/mime-symlinked/scheme-handler # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/system-config1:/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/system-data1:/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/runtime # creating '/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/system-data1/applications' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/system-data1/applications/mimeapps.list.c' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/data/applications' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/data/applications/myapp.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/data/applications/myapp2.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/data/applications/myapp3.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/data/applications/myapp4.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/data/applications/myapp5.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/data/applications/nosuchapp.desktop' # removing '/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/data/applications/mimeapps.list' # creating '/var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/data/applications/mimeinfo.cache' # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/config # GLib-GIO-DEBUG: desktop_file_dirs_lock: Resetting desktop app info dirs from /var/volatile/tmp/appinfo/mime-symlinked/scheme-handler/.dirs/config to /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/config # GLib-GIO-DEBUG: ensure_dir: Ensuring /var/volatile/tmp/appinfo/mime-symlinked/default-last-used/.dirs/config ok 12 /appinfo/mime-symlinked/default-last-used # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/system-config1:/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/system-data1:/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/runtime # creating '/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/system-data1/applications' # creating '/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/system-data1/applications/mimeapps.list.c' # creating '/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/data/applications' # creating '/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/data/applications/myapp.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/data/applications/myapp2.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/data/applications/myapp3.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/data/applications/myapp4.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/data/applications/myapp5.desktop' # creating '/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/data/applications/nosuchapp.desktop' # removing '/var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/data/applications/mimeapps.list' # creating '/var/volatile/tmp/appinfo/mime-symlinked/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-symlinked/default-last-used/.dirs/config to /var/volatile/tmp/appinfo/mime-symlinked/ignore-nonexisting/.dirs/config ok 13 /appinfo/mime-symlinked/ignore-nonexisting # End of mime-symlinked tests # End of appinfo tests PASS: glib/mimeapps.test Running test: glib/cxx-17.test TAP version 14 # random seed: R02Se1add6fcb6713ea9d88c0e37fbce355a 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/node.test TAP version 14 # random seed: R02Sb20e870e52818ada2a17a48efd2be90d 1..6 # Start of node tests ok 1 /node/allocation ok 2 /node/construction ok 3 /node/traversal ok 4 /node/misc ok 5 /node/unlink ok 6 /node/copy # End of node tests PASS: glib/node.test Running test: glib/portal-support-flatpak-network-only.test TAP version 14 # random seed: R02S8602966776467bc117426524ad4e1fef 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/cond.test TAP version 14 # random seed: R02Sca4f22122d45092c2db5997488ddd9ff 1..4 # Start of thread tests ok 1 /thread/cond1 ok 2 /thread/cond2 # Start of cond tests ok 3 /thread/cond/wait-until # slow test /thread/cond/wait-until executed in 1.02 secs # Start of wait-until tests # /thread/cond/wait-until/contended-and-interrupted summary: Check proper handling of errno in g_cond_wait_until with a contended mutex # Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/957 Executing: glib/cond.test 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/g-icon.test TAP version 14 # random seed: R02S8bcdd520e9b1baf92d68ad65ad0c7bc7 1..7 # 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 # Start of emblem tests ok 7 /icons/emblem/parsing # End of emblem tests # End of icons tests PASS: glib/g-icon.test Running test: glib/hmac.test TAP version 14 # random seed: R02S94e51f44e586f5cbd9467718adb90d5e 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/gdbus-message.test TAP version 14 # random seed: R02S3bc12bd1fcbb34857987f3a9b83d2f21 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/g-file.test TAP version 14 # random seed: R02S0857db0a5989d5a2304ff306f6bc6b2c 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-2GQPN3 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/search-utils.test TAP version 14 # random seed: R02S854c2a2ff2df996b83991cd65f92f2d6 # 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: 'Jör' - 'Jorgen' should NOT match: OK # GLib-DEBUG: 'jor' - 'Jö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/spawn-multithreaded.test TAP version 14 # random seed: R02S0c6c975263588d6c713c857b98c6eeb5 1..4 # Start of gthread tests # Child 2827 (ttl 1) exited, status 0 # Child 2828 (ttl 2) exited, status 0 ok 1 /gthread/spawn-childs # slow test /gthread/spawn-childs executed in 2.00 secs # Created pid: 2832 (ttl 1) # Created pid: 2833 (ttl 2) # Child 2832 (ttl 1) exited, status 0 # Child 2833 (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/gobject-private.test TAP version 14 # random seed: R02S34fa97d64ea7355f26e1a245a97b4846 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/io-channel.test TAP version 14 # random seed: R02S2f2c9c82770cb874a3ca9d555bb19fa4 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/bookmarkfile.test TAP version 14 # random seed: R02See963a2f9179ba9899c0032f84e7ef34 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-S4QQN3.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-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 7 /bookmarks/parse/fail-02.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 8 /bookmarks/parse/fail-18.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 9 /bookmarks/parse/fail-03.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 10 /bookmarks/parse/fail-33.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 11 /bookmarks/parse/fail-09.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 12 /bookmarks/parse/fail-12.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 13 /bookmarks/parse/fail-38.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 14 /bookmarks/parse/fail-06.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 15 /bookmarks/parse/fail-42.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 16 /bookmarks/parse/valid-03.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 17 /bookmarks/parse/fail-37.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 18 /bookmarks/parse/fail-15.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 19 /bookmarks/parse/fail-04.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 20 /bookmarks/parse/valid-02.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 21 /bookmarks/parse/fail-24.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 22 /bookmarks/parse/fail-16.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 23 /bookmarks/parse/fail-26.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 24 /bookmarks/parse/fail-28.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 25 /bookmarks/parse/fail-41.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 26 /bookmarks/parse/fail-40.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 27 /bookmarks/parse/valid-01.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 28 /bookmarks/parse/fail-27.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 29 /bookmarks/parse/fail-32.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 30 /bookmarks/parse/fail-05.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 31 /bookmarks/parse/fail-23.xbel # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/parse/fail-19.xbel/.dirs/runtime ok 32 /bookmarks/parse/fail-19.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 33 /bookmarks/parse/fail-25.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 34 /bookmarks/parse/fail-29.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 35 /bookmarks/parse/fail-20.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-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 37 /bookmarks/parse/fail-35.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 38 /bookmarks/parse/fail-14.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 39 /bookmarks/parse/fail-39.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 40 /bookmarks/parse/fail-07.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 41 /bookmarks/parse/fail-11.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 42 /bookmarks/parse/fail-01.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 43 /bookmarks/parse/fail-21.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 44 /bookmarks/parse/fail-36.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 45 /bookmarks/parse/fail-13.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 46 /bookmarks/parse/fail-10.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 47 /bookmarks/parse/fail-22.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 48 /bookmarks/parse/fail-30.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 49 /bookmarks/parse/fail-34.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 50 /bookmarks/parse/fail-08.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 51 /bookmarks/parse/fail-31.xbel # End of parse tests # Start of copy tests # 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 52 /bookmarks/copy/fail-02.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 53 /bookmarks/copy/fail-18.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 54 /bookmarks/copy/fail-03.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 55 /bookmarks/copy/fail-33.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 56 /bookmarks/copy/fail-09.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 57 /bookmarks/copy/fail-12.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 58 /bookmarks/copy/fail-38.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 59 /bookmarks/copy/fail-06.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 60 /bookmarks/copy/fail-42.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 61 /bookmarks/copy/valid-03.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 62 /bookmarks/copy/fail-37.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 63 /bookmarks/copy/fail-15.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 64 /bookmarks/copy/fail-04.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 65 /bookmarks/copy/valid-02.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 66 /bookmarks/copy/fail-24.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 67 /bookmarks/copy/fail-16.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 68 /bookmarks/copy/fail-26.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 69 /bookmarks/copy/fail-28.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 70 /bookmarks/copy/fail-41.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 71 /bookmarks/copy/fail-40.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 72 /bookmarks/copy/valid-01.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 73 /bookmarks/copy/fail-27.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 74 /bookmarks/copy/fail-32.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 75 /bookmarks/copy/fail-05.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 76 /bookmarks/copy/fail-23.xbel # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/system-config1:/var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/system-data1:/var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/bookmarks/copy/fail-19.xbel/.dirs/runtime ok 77 /bookmarks/copy/fail-19.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 78 /bookmarks/copy/fail-25.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 79 /bookmarks/copy/fail-29.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 80 /bookmarks/copy/fail-20.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-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 82 /bookmarks/copy/fail-35.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 83 /bookmarks/copy/fail-14.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 84 /bookmarks/copy/fail-39.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 85 /bookmarks/copy/fail-07.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 86 /bookmarks/copy/fail-11.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 87 /bookmarks/copy/fail-01.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 88 /bookmarks/copy/fail-21.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 89 /bookmarks/copy/fail-36.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 90 /bookmarks/copy/fail-13.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 91 /bookmarks/copy/fail-10.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 92 /bookmarks/copy/fail-22.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 93 /bookmarks/copy/fail-30.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 94 /bookmarks/copy/fail-34.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 95 /bookmarks/copy/fail-08.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 96 /bookmarks/copy/fail-31.xbel # End of copy tests # End of bookmarks tests PASS: glib/bookmarkfile.test Running test: glib/cxx-20.test TAP version 14 # random seed: R02S29125b1e61816f81424d8de8be04df29 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/relation.test TAP version 14 # random seed: R02Scab4354a34a8766e92dc1a259c805d02 1..1 # Start of glib tests ok 1 /glib/relation # End of glib tests PASS: glib/relation.test Running test: glib/volumemonitor.test TAP version 14 # random seed: R02S2fcf95d4424f1b3bbba50e7449b77161 # 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/buffered-output-stream.test TAP version 14 # random seed: R02S704af00f9cb91d5388ca84f1400e8c3c 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/bindinggroup.test TAP version 14 # random seed: R02S64d59d149b30eccda9928a58dd67bc98 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/socket.test TAP version 14 # random seed: R02S7b751e560317c2206c176e6dfd01f117 1..31 # 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=2886,uid=1000,gid=1000 ok 28 /socket/credentials/unix_socketpair # End of credentials tests # Start of accept tests # /socket/accept/cancelled summary: Calling g_socket_accept() with a cancelled cancellable should return immediately regardless of whether the socket is blocking ok 29 /socket/accept/cancelled # End of accept tests # Start of connect tests # /socket/connect/cancelled summary: Calling g_socket_connect() with a cancelled cancellable should return immediately regardless of whether the socket is blocking ok 30 /socket/connect/cancelled # End of connect tests # Start of control-message tests # /socket/control-message/custom summary: Tests that an application can create its own subclass of GSocketControlMessage and that the message can be sent and received using GSocket APIs ok 31 /socket/control-message/custom # End of control-message tests # End of socket tests PASS: glib/socket.test Running test: glib/notify-init2.test TAP version 14 # random seed: R02Scdfa642b6ff7b920bee5a64ba0e19eb1 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/mutex.test TAP version 14 # random seed: R02Sacfb81b7e309fb1479d27f8e6215b1a0 1..17 # Start of thread tests ok 1 /thread/mutex1 ok 2 /thread/mutex2 ok 3 /thread/mutex3 ok 4 /thread/mutex4 Executing: glib/mutex.test ok 5 /thread/mutex5 # slow test /thread/mutex5 executed in 1.09 secs # Start of mutex tests # /thread/mutex/errno summary: Validates that errno is not touched upon return # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # /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 # /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 # /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 # /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 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # /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 # /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 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # 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 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /thread/mutex/errno summary: Validates that errno is not touched upon return # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3034 # /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 # 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 ok 6 /thread/mutex/errno # Start of perf tests # max perf: inf mips ok 7 /thread/mutex/perf/uncontended # Start of contended tests # max perf: inf mips ok 8 /thread/mutex/perf/contended/1 # max perf: inf mips ok 9 /thread/mutex/perf/contended/2 # max perf: 2.000000 mips ok 10 /thread/mutex/perf/contended/3 # max perf: 2.500000 mips ok 11 /thread/mutex/perf/contended/4 # max perf: 3.000000 mips ok 12 /thread/mutex/perf/contended/5 # max perf: 3.500000 mips ok 13 /thread/mutex/perf/contended/6 # max perf: 0.242424 mips ok 14 /thread/mutex/perf/contended/7 # max perf: 4.500000 mips ok 15 /thread/mutex/perf/contended/8 # max perf: 5.000000 mips ok 16 /thread/mutex/perf/contended/9 # max perf: 5.500000 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/markup-subparser.test TAP version 14 # random seed: R02Sa2406b116f7241d462e0363ff9a8b971 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/type-flags.test TAP version 14 # random seed: R02S2a4f0593a6b9942ed6ae1b73d780ab7e 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/basic-signals.test TAP version 14 # random seed: R02Sc0621393348a5e0db5a466412a8cb975 1..1 # Start of gobject tests ok 1 /gobject/basic-signals # End of gobject tests PASS: glib/basic-signals.test Running test: glib/refstring.test TAP version 14 # random seed: R02Sda299dc4b2d0013dcc5ae0d05870b8f5 1..8 # Start of refstring tests # s = 'hello, world' (0xaaaab49391e0) ok 1 /refstring/base ok 2 /refstring/length ok 3 /refstring/length-auto ok 4 /refstring/length-nuls # s = 'hello, world' (0xaaaab4939080) # p = s = 'hello, world' (0xaaaab4939080) # releasing p[0xaaaab4939080] ('hello, world') # p = 'goodbye, world' (0xaaaab49391e0) # releasing p[0xaaaab49391e0] ('goodbye, world') # releasing s[0xaaaab4939080] ('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 # slow test /refstring/intern-thread-safety executed in 0.80 secs # End of refstring tests PASS: glib/refstring.test Running test: glib/signal-handler.test TAP version 14 # random seed: R02Sa8044ef982c2e15037d7534f421676ec 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/tls-database.test TAP version 14 # random seed: R02Sf17ddcb312ff845bb215be448be4070d 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/inet-address.test TAP version 14 # random seed: R02S41ce625bd823a6a6768b250afcc204df 1..11 # Start of inet-address tests # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string ::1::2 # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string 2001:1:2:3:4:5:6:7] # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string [2001:1:2:3:4:5:6:7 # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string [2001:1:2:3:4:5:6:7] # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string [2001:1:2:3:4:5:6:7]:80 # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string 0:1:2:3:4:5:6:7:8:9 # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string ::FFFFFFF # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string 204.152.189.116:80 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/file-thumbnail.test TAP version 14 # random seed: R02Sf2ddc4a7cf97ffba173f61f3cd3306e1 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/gdbus-tool.py.test TAP version 13 ok 1 __main__.TestGdbusTool.test_call_invalid_method # Running: ['/usr/bin/gdbus', 'call', '--session', '--dest', 'org.freedesktop.DBus', '--object-path', '/org/freedesktop/DBus', '--method', 'org.freedesktop.DBus/ListNames'] # Return code: 1 # Output: # # Error: # Error: Method name “org.freedesktop.DBus/ListNames” is invalid ok 2 __main__.TestGdbusTool.test_call_method # Running: ['/usr/bin/gdbus', 'call', '--session', '--dest', 'org.freedesktop.DBus', '--object-path', '/org/freedesktop/DBus', '--method', 'org.freedesktop.DBus.ListNames'] # Return code: 0 # Output: # (['org.freedesktop.DBus', ':1.0'],) # Error: ok 3 __main__.TestGdbusTool.test_help # Running: ['/usr/bin/gdbus', '--help'] # Return code: 0 # Output: # Usage: # gdbus COMMAND # # Commands: # help Shows this information # introspect Introspect a remote object # monitor Monitor a remote object # call Invoke a method on a remote object # emit Emit a signal # wait Wait for a bus name to appear # # Use “gdbus COMMAND --help” to get help on each command. # Error: # # Running: ['/usr/bin/gdbus', 'help'] # Return code: 0 # Output: # Usage: # gdbus COMMAND # # Commands: # help Shows this information # introspect Introspect a remote object # monitor Monitor a remote object # call Invoke a method on a remote object # emit Emit a signal # wait Wait for a bus name to appear # # Use “gdbus COMMAND --help” to get help on each command. # Error: ok 4 __main__.TestGdbusTool.test_no_args # Running: ['/usr/bin/gdbus'] # Return code: 1 # Output: # # Error: # Usage: # gdbus COMMAND # # Commands: # help Shows this information # introspect Introspect a remote object # monitor Monitor a remote object # call Invoke a method on a remote object # emit Emit a signal # wait Wait for a bus name to appear # # Use “gdbus COMMAND --help” to get help on each command. 1..4 PASS: glib/gdbus-tool.py.test Running test: glib/poll-fdset.test TAP version 14 # random seed: R02Sa5201ae3269cf8893f7f5018bbd1c688 1..1 # Start of glib tests # Start of poll tests # /glib/poll/high-fd summary: Validate that g_poll() handles descriptors beyond FD_SETSIZE. ok 1 /glib/poll/high-fd # SKIP Unable to allocate descriptor >= 1056: Invalid argument # End of poll tests # End of glib tests PASS: glib/poll-fdset.test Running test: glib/unicode-encoding.test TAP version 14 # random seed: R02Sdd5213e558df19f412bf9ae195b4757b 1..1 # Start of unicode tests ok 1 /unicode/encoding # End of unicode tests PASS: glib/unicode-encoding.test Running test: glib/macros-c-11.test TAP version 14 # random seed: R02Sbfe8ea27b2bedd8296efc38f095cc630 1..4 # Start of C tests # G_C_STD_VERSION is 201112 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/filenamecompleter.test TAP version 14 # random seed: R02S6289ef22a79f238ace45ccd089f2cb96 1..1 # Start of filenamecompleter tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/filenamecompleter/basic/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/filenamecompleter/basic/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/filenamecompleter/basic/.dirs/system-config1:/var/volatile/tmp/filenamecompleter/basic/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/filenamecompleter/basic/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/filenamecompleter/basic/.dirs/system-data1:/var/volatile/tmp/filenamecompleter/basic/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/filenamecompleter/basic/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/filenamecompleter/basic/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/filenamecompleter/basic/.dirs/runtime # GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ‘gio-vfs’ ok 1 /filenamecompleter/basic # End of filenamecompleter tests PASS: glib/filenamecompleter.test Running test: glib/atomic-c-17.test TAP version 14 # random seed: R02Sad1be2367ecea3055209e793cb171cad 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/gdbus-address-get-session.test TAP version 14 # random seed: R02Sde6c551fbd70e52601fd1a06764b0dd6 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/gi-inspect-typelib.py.test TAP version 13 ok 1 __main__.TestGIInspectTypelibCommandLine.test_help # gi-inspect-typelib: /usr/bin/gi-inspect-typelib # tmpdir: /tmp/tmpropgijal # 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/tmpxtnovypv # 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/tmpkoeo4m1p # 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/tmpvep3fzxk # 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/tmp0cuhyfzs # 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/tmpemdslpt9 # 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/tmp9who4r44 # 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/tmpu6xntinx # 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/tmpry_wmbk8 # 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/tmppxeqzgzq # 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/tmph2j2n2e8 # 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/tmpzsai89wm # 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/signals-refcount3.test TAP version 14 # random seed: R02S99338169fe50daad20659f307281f1f6 1..1 # Start of gobject tests # Start of refcount tests # init 0xaaaae057ba30 # # init 0xaaaae05765a0 # Executing: glib/signals-refcount3.test # dispose 0xaaaae057ba30! # # dispose 0xaaaae05765a0! # 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/memory-settings-backend.test TAP version 14 # random seed: R02Sd85f7192696ddc886615bb8c3c767d42 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/gthash.test TAP version 14 # random seed: R02Sfec91f675bb3862bd580e5d5a1328bb6 1..1 # Start of gthash tests ok 1 /gthash/build-retrieve # End of gthash tests PASS: glib/gthash.test Running test: glib/objects-refcount1.test TAP version 14 # random seed: R02Sdeb9a5d6819d7cf43cd2a25693752903 1..1 # Start of gobject tests # Start of refcount tests # init 0xaaaae385ed80 # # init 0xaaaae385ee90 # Executing: glib/objects-refcount1.test # dispose 0xaaaae385ed80! # # dispose 0xaaaae385ee90! # 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/module-test-library.test TAP version 14 # random seed: R02Se3c205116400aa578c386e1a5be1603d 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/portal-support-env-var.test TAP version 14 # random seed: R02Saa54c8f99fdd87ef423be6f955577db6 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/basics-gobject.test TAP version 14 # random seed: R02S6a70c2b95e1c0ef4534586fce80b8687 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 0xaaaae93bf9b0 # Iface-BAR: "iface-string-from-derived-type" from 0xaaaae93bf860 # chaining: # Iface-FOO: "iface-string-from-derived-type" from 0xaaaae93bf860 # private data after initialization: 54321 == 54321 ok 1 /gobject/basics # End of gobject tests PASS: glib/basics-gobject.test Running test: glib/array-test.test TAP version 14 # random seed: R02S29f07a2711e0f273fe793938df83902b 1..120 # Start of array tests ok 1 /array/ref-count ok 2 /array/steal ok 3 /array/clear-func ok 4 /array/binary-search ok 5 /array/overflow-append-vals ok 6 /array/overflow-set-size # Start of new tests ok 7 /array/new/zero-terminated ok 8 /array/new/take ok 9 /array/new/take-zero-terminated # Start of take tests ok 10 /array/new/take/empty ok 11 /array/new/take/overflow ok 12 /array/new/take/zero-size # End of take tests # Start of take-zero-terminated tests ok 13 /array/new/take-zero-terminated/zero-size ok 14 /array/new/take-zero-terminated/null # End of take-zero-terminated tests # End of new tests # Start of copy tests # /array/copy/sized summary: Test that copying a newly-allocated sized array works. ok 15 /array/copy/sized ok 16 /array/copy/zero-terminated ok 17 /array/copy/non-zero-terminated-no-clear ok 18 /array/copy/non-zero-terminated-clear ok 19 /array/copy/zero-terminated-no-clear ok 20 /array/copy/zero-terminated-clear # End of copy tests # Start of remove-range tests ok 21 /array/remove-range/zero-terminated-null ok 22 /array/remove-range/non-zero-terminated-no-clear ok 23 /array/remove-range/non-zero-terminated-clear ok 24 /array/remove-range/zero-terminated-no-clear ok 25 /array/remove-range/zero-terminated-clear # End of remove-range tests # Start of set-size tests ok 26 /array/set-size/zero-terminated-null ok 27 /array/set-size/non-zero-terminated-no-clear ok 28 /array/set-size/non-zero-terminated-clear ok 29 /array/set-size/zero-terminated-no-clear ok 30 /array/set-size/zero-terminated-clear # Start of sized tests ok 31 /array/set-size/sized/non-zero-terminated-no-clear ok 32 /array/set-size/sized/non-zero-terminated-clear ok 33 /array/set-size/sized/zero-terminated-no-clear ok 34 /array/set-size/sized/zero-terminated-clear # End of sized tests # End of set-size tests # Start of append-val tests ok 35 /array/append-val/non-zero-terminated-no-clear ok 36 /array/append-val/non-zero-terminated-clear ok 37 /array/append-val/zero-terminated-no-clear ok 38 /array/append-val/zero-terminated-clear # End of append-val tests # Start of prepend-val tests ok 39 /array/prepend-val/non-zero-terminated-no-clear ok 40 /array/prepend-val/non-zero-terminated-clear ok 41 /array/prepend-val/zero-terminated-no-clear ok 42 /array/prepend-val/zero-terminated-clear # End of prepend-val tests # Start of prepend-vals tests ok 43 /array/prepend-vals/non-zero-terminated-no-clear ok 44 /array/prepend-vals/non-zero-terminated-clear ok 45 /array/prepend-vals/zero-terminated-no-clear ok 46 /array/prepend-vals/zero-terminated-clear # End of prepend-vals tests # Start of insert-vals tests ok 47 /array/insert-vals/non-zero-terminated-no-clear ok 48 /array/insert-vals/non-zero-terminated-clear ok 49 /array/insert-vals/zero-terminated-no-clear ok 50 /array/insert-vals/zero-terminated-clear # End of insert-vals tests # Start of remove-index tests ok 51 /array/remove-index/non-zero-terminated-no-clear ok 52 /array/remove-index/non-zero-terminated-clear ok 53 /array/remove-index/zero-terminated-no-clear ok 54 /array/remove-index/zero-terminated-clear # End of remove-index tests # Start of remove-index-fast tests ok 55 /array/remove-index-fast/non-zero-terminated-no-clear ok 56 /array/remove-index-fast/non-zero-terminated-clear ok 57 /array/remove-index-fast/zero-terminated-no-clear ok 58 /array/remove-index-fast/zero-terminated-clear # End of remove-index-fast tests # Start of sort tests ok 59 /array/sort/non-zero-terminated-no-clear ok 60 /array/sort/non-zero-terminated-clear ok 61 /array/sort/zero-terminated-no-clear ok 62 /array/sort/zero-terminated-clear # End of sort tests # Start of sort-with-data tests ok 63 /array/sort-with-data/non-zero-terminated-no-clear ok 64 /array/sort-with-data/non-zero-terminated-clear ok 65 /array/sort-with-data/zero-terminated-no-clear ok 66 /array/sort-with-data/zero-terminated-clear # End of sort-with-data tests # End of array tests # Start of pointerarray tests ok 67 /pointerarray/add ok 68 /pointerarray/insert ok 69 /pointerarray/new-take ok 70 /pointerarray/new-take-null-terminated ok 71 /pointerarray/new-from-array ok 72 /pointerarray/new-from-null-terminated-array ok 73 /pointerarray/free-func ok 74 /pointerarray/array_extend_and_steal ok 75 /pointerarray/sort ok 76 /pointerarray/sort-with-data ok 77 /pointerarray/sort-values ok 78 /pointerarray/sort-values-with-data ok 79 /pointerarray/remove-range ok 80 /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 81 /pointerarray/free/null-terminated # End of free tests # Start of new-take tests ok 82 /pointerarray/new-take/empty ok 83 /pointerarray/new-take/overflow ok 84 /pointerarray/new-take/with-free-func # End of new-take tests # Start of new-take-null-terminated tests ok 85 /pointerarray/new-take-null-terminated/empty ok 86 /pointerarray/new-take-null-terminated/with-free-func ok 87 /pointerarray/new-take-null-terminated/from-gstrv # End of new-take-null-terminated tests # Start of new-from-array tests ok 88 /pointerarray/new-from-array/empty ok 89 /pointerarray/new-from-array/overflow ok 90 /pointerarray/new-from-array/with-copy-and-free-func # End of new-from-array tests # Start of new-from-null-terminated-array tests ok 91 /pointerarray/new-from-null-terminated-array/empty ok 92 /pointerarray/new-from-null-terminated-array/with-copy-and-free-func ok 93 /pointerarray/new-from-null-terminated-array/from-gstrv # End of new-from-null-terminated-array tests # Start of ref-count tests ok 94 /pointerarray/ref-count/not-null-terminated ok 95 /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 96 /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 97 /pointerarray/array_copy/null-terminated # End of array_copy tests # Start of array_extend tests ok 98 /pointerarray/array_extend/not-null-terminated ok 99 /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 100 /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 101 /pointerarray/sort-with-data/example # End of sort-with-data tests # Start of sort-values tests ok 102 /pointerarray/sort-values/example # End of sort-values tests # Start of sort-values-with-data tests ok 103 /pointerarray/sort-values-with-data/example # End of sort-values-with-data tests # Start of find tests ok 104 /pointerarray/find/empty ok 105 /pointerarray/find/non-empty # End of find tests # Start of steal_index tests ok 106 /pointerarray/steal_index/not-null-terminated ok 107 /pointerarray/steal_index/null-terminated # End of steal_index tests # End of pointerarray tests # Start of bytearray tests ok 108 /bytearray/steal ok 109 /bytearray/append ok 110 /bytearray/prepend ok 111 /bytearray/remove ok 112 /bytearray/remove-fast ok 113 /bytearray/remove-range ok 114 /bytearray/ref-count ok 115 /bytearray/set-size ok 116 /bytearray/sort ok 117 /bytearray/sort-with-data ok 118 /bytearray/new-take ok 119 /bytearray/new-take-overflow ok 120 /bytearray/free-to-bytes # End of bytearray tests PASS: glib/array-test.test Running test: glib/hash.test TAP version 14 # random seed: R02Sf8e85def9771b1f92a4e81c247f94d72 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/dynamictests.test TAP version 14 # random seed: R02S85ec77ea15c7cc0509649a7c8f0e3456 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/cxx-23.test TAP version 14 # random seed: R02S3e6df2e781edc6eda882fadf1047c768 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-23.test Running test: glib/vfs.test TAP version 14 # random seed: R02S942bd4cc61328355966680ddea86bc0c 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/ifaceproperties.test TAP version 14 # random seed: R02S32302e9612f4b527e778324532e3bb23 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/object.test TAP version 14 # random seed: R02Sa63ae66438f7f4fca0a2297e8363464b 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/cxx-11.test TAP version 14 # random seed: R02Sdb2df396ac0ef8921b06a03d3ddb8c1e 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/simple-proxy.test TAP version 14 # random seed: R02Sae4e23a1321798507cb9a719acf281f7 1..3 # Start of static-proxy tests ok 1 /static-proxy/uri ok 2 /static-proxy/socks # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string *.eee.xx:8000 # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string 10.0.0.1:8000 ok 3 /static-proxy/ignore # End of static-proxy tests PASS: glib/simple-proxy.test Running test: glib/portal-support-none.test TAP version 14 # random seed: R02S78ecd1ad56675dcc8160ff8f9104cf39 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/rwlock.test TAP version 14 # random seed: R02S0fca1b8698190fac583884dae67e2aa7 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.16 secs ok 8 /thread/rwlock8 # End of thread tests PASS: glib/rwlock.test Running test: glib/portal-support-flatpak-none.test TAP version 14 # random seed: R02Sf729e3fb77cf4e60bd6d240f8c42df2a 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/spawn-test.test TAP version 14 # random seed: R02S0ec1be3e2216ef41180af000adbe40f1 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/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/signals-refcount2.test TAP version 14 # random seed: R02S8e26900090bca9f5c2548a866c35f307 1..1 # Start of gobject tests # Start of refcount tests # init 0xaaaac5ecba30 # # init 0xaaaac5ec65a0 # Executing: glib/signals-refcount2.test # dispose 0xaaaac5ecba30! # # dispose 0xaaaac5ec65a0! # 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/gvariant.test TAP version 14 # random seed: R02S2dd8e691ebf77c449ebb5774658e54ce 1..70 # 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/bytestring-iteration ok 20 /gvariant/lookup-value ok 21 /gvariant/lookup ok 22 /gvariant/compare ok 23 /gvariant/equal ok 24 /gvariant/fixed-array ok 25 /gvariant/check-format-string ok 26 /gvariant/checksum-basic ok 27 /gvariant/checksum-nested ok 28 /gvariant/gbytes ok 29 /gvariant/print-context ok 30 /gvariant/error-quark ok 31 /gvariant/stack-builder-init ok 32 /gvariant/stack-builder-init-static ok 33 /gvariant/stack-builder-init-unset ok 34 /gvariant/stack-dict-init ok 35 /gvariant/unaligned-construction # Start of type tests # Start of string-scan tests # Start of recursion tests ok 36 /gvariant/type/string-scan/recursion/tuple ok 37 /gvariant/type/string-scan/recursion/array # End of recursion tests # End of string-scan tests # End of type tests # Start of serialiser tests ok 38 /gvariant/serialiser/maybe ok 39 /gvariant/serialiser/array ok 40 /gvariant/serialiser/tuple ok 41 /gvariant/serialiser/variant ok 42 /gvariant/serialiser/strings Executing: glib/gvariant.test ok 43 /gvariant/serialiser/byteswap # slow test /gvariant/serialiser/byteswap executed in 0.54 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 44 /gvariant/serialiser/children # Start of byteswap tests ok 45 /gvariant/serialiser/byteswap/zero-sized # End of byteswap tests # Start of fuzz tests ok 46 /gvariant/serialiser/fuzz/1% ok 47 /gvariant/serialiser/fuzz/5% ok 48 /gvariant/serialiser/fuzz/9% # slow test /gvariant/serialiser/fuzz/9% executed in 0.57 secs ok 49 /gvariant/serialiser/fuzz/13% ok 50 /gvariant/serialiser/fuzz/17% # slow test /gvariant/serialiser/fuzz/17% executed in 0.57 secs # 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 51 /gvariant/byteswap/non-normal-non-aligned # End of byteswap tests # Start of parser tests ok 52 /gvariant/parser/integer-bounds ok 53 /gvariant/parser/recursion # Start of recursion tests ok 54 /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 55 /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 56 /gvariant/normal-checking/tuples ok 57 /gvariant/normal-checking/array-offsets ok 58 /gvariant/normal-checking/array-offsets2 ok 59 /gvariant/normal-checking/tuple-offsets ok 60 /gvariant/normal-checking/tuple-offsets2 ok 61 /gvariant/normal-checking/tuple-offsets3 ok 62 /gvariant/normal-checking/tuple-offsets4 # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2840 ok 63 /gvariant/normal-checking/tuple-offsets5 ok 64 /gvariant/normal-checking/empty-object-path # Start of array-offsets tests ok 65 /gvariant/normal-checking/array-offsets/overlapped ok 66 /gvariant/normal-checking/array-offsets/minimal-sized # End of array-offsets tests # Start of tuple-offsets tests ok 67 /gvariant/normal-checking/tuple-offsets/minimal-sized # End of tuple-offsets tests # End of normal-checking tests # Start of recursion-limits tests ok 68 /gvariant/recursion-limits/variant-in-variant ok 69 /gvariant/recursion-limits/array-in-variant # End of recursion-limits tests # End of gvariant tests # Start of gvarianttype tests ok 70 /gvarianttype/hash # End of gvarianttype tests PASS: glib/gvariant.test Running test: glib/once.test TAP version 14 # random seed: R02S46bc5eb1b3c828d61c9bd05c3f86b887 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/uri.test TAP version 14 # random seed: R02Sc82a68e1366528db4313824f8c22fd25 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/atomic-c-99.test TAP version 14 # random seed: R02Se05a7f9abc8317b4b3e6ba18009c67c6 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/utf8-private.test TAP version 14 # random seed: R02S5f2cb2f842e5ae9350b6b525f41121bd 1..2 # Start of utf8 tests ok 1 /utf8/utf8-to-utf16-make-valid ok 2 /utf8/utf8-to-utf16-make-valid-backtrack # End of utf8 tests PASS: glib/utf8-private.test Running test: glib/stream-rw_all.test TAP version 14 # random seed: R02S4d73874660910f2abd206921459f0bb1 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/asyncqueue.test TAP version 14 # random seed: R02S858d7058169907f22beaa5c675a84397 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/utils-c-17.test TAP version 14 # random seed: R02Seb782c41a1467187779fe8f608a5ee8b 1..41 # Start of utils tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/language-names/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/language-names/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-config1:/var/volatile/tmp/utils/language-names/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/language-names/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-data1:/var/volatile/tmp/utils/language-names/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/language-names/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/language-names/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/language-names/.dirs/runtime ok 1 /utils/language-names # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/locale-variants/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-config1:/var/volatile/tmp/utils/locale-variants/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-data1:/var/volatile/tmp/utils/locale-variants/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/locale-variants/.dirs/runtime # Testing locale ‘en’ # Testing locale ‘sr@latin’ # Testing locale ‘fr_BE’ # Testing locale ‘sr_SR@latin’ # Testing locale ‘sr_SR@latin.UTF-8’ # Testing locale ‘sr@latin_invalid’ # Testing locale ‘sr.UTF-8@latin’ # Testing locale ‘sr.UTF-8_latin’ # Testing locale ‘sr.UTF-8@latin_invalid’ ok 2 /utils/locale-variants # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/version/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/version/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/version/.dirs/system-config1:/var/volatile/tmp/utils/version/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/version/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/version/.dirs/system-data1:/var/volatile/tmp/utils/version/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/version/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/version/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/version/.dirs/runtime ok 3 /utils/version # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/appname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/appname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-config1:/var/volatile/tmp/utils/appname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/appname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-data1:/var/volatile/tmp/utils/appname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/appname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/appname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/appname/.dirs/runtime ok 4 /utils/appname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/tmpdir/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-config1:/var/volatile/tmp/utils/tmpdir/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-data1:/var/volatile/tmp/utils/tmpdir/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/tmpdir/.dirs/runtime # 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 Unable to clean up temporary directory /var/volatile/tmp/utils/tmpdir: No such file or directory ok 6 /utils/tmpdir # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/basic_bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-config1:/var/volatile/tmp/utils/basic_bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-data1:/var/volatile/tmp/utils/basic_bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/basic_bits/.dirs/runtime ok 7 /utils/basic_bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-config1:/var/volatile/tmp/utils/bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-data1:/var/volatile/tmp/utils/bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/bits/.dirs/runtime ok 8 /utils/bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/swap/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/swap/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-config1:/var/volatile/tmp/utils/swap/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/swap/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-data1:/var/volatile/tmp/utils/swap/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/swap/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/swap/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/swap/.dirs/runtime ok 9 /utils/swap # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-config1:/var/volatile/tmp/utils/find-program/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-data1:/var/volatile/tmp/utils/find-program/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program/.dirs/runtime ok 10 /utils/find-program # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-config1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-data1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program-for-path/.dirs/runtime ok 11 /utils/find-program-for-path # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/debug/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/debug/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-config1:/var/volatile/tmp/utils/debug/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/debug/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-data1:/var/volatile/tmp/utils/debug/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/debug/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/debug/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/debug/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/debug: No such file or directory ok 12 /utils/debug # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-config1:/var/volatile/tmp/utils/codeset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-data1:/var/volatile/tmp/utils/codeset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset/.dirs/runtime ok 13 /utils/codeset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset2/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-config1:/var/volatile/tmp/utils/codeset2/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset2/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-data1:/var/volatile/tmp/utils/codeset2/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset2/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset2/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/codeset2: No such file or directory ok 14 /utils/codeset2 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/console-charset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-config1:/var/volatile/tmp/utils/console-charset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/console-charset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-data1:/var/volatile/tmp/utils/console-charset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/console-charset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/console-charset/.dirs/runtime ok 15 /utils/console-charset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/gettext/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/gettext/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-config1:/var/volatile/tmp/utils/gettext/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/gettext/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-data1:/var/volatile/tmp/utils/gettext/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/gettext/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/gettext/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/gettext/.dirs/runtime ok 16 /utils/gettext # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/username/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/username/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/username/.dirs/system-config1:/var/volatile/tmp/utils/username/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/username/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/username/.dirs/system-data1:/var/volatile/tmp/utils/username/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/username/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/username/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/username/.dirs/runtime ok 17 /utils/username # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/realname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/realname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-config1:/var/volatile/tmp/utils/realname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/realname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-data1:/var/volatile/tmp/utils/realname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/realname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/realname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/realname/.dirs/runtime ok 18 /utils/realname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/hostname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/hostname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-config1:/var/volatile/tmp/utils/hostname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/hostname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-data1:/var/volatile/tmp/utils/hostname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/hostname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/hostname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/hostname/.dirs/runtime ok 19 /utils/hostname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/os-info/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/os-info/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-config1:/var/volatile/tmp/utils/os-info/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/os-info/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-data1:/var/volatile/tmp/utils/os-info/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/os-info/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/os-info/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/os-info/.dirs/runtime # NAME: Linux ok 20 /utils/os-info # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/.dirs/runtime ok 21 /utils/clear-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/runtime ok 22 /utils/clear-pointer-cast # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/take-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-config1:/var/volatile/tmp/utils/take-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-data1:/var/volatile/tmp/utils/take-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/take-pointer/.dirs/runtime ok 23 /utils/take-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-source/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-config1:/var/volatile/tmp/utils/clear-source/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-source/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-data1:/var/volatile/tmp/utils/clear-source/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-source/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-source/.dirs/runtime ok 24 /utils/clear-source # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/misc-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-config1:/var/volatile/tmp/utils/misc-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-data1:/var/volatile/tmp/utils/misc-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/misc-mem/.dirs/runtime ok 25 /utils/misc-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/.dirs/runtime # /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 26 /utils/aligned-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/free-sized/.dirs/runtime # /utils/free-sized summary: Check that g_free_sized() works ok 27 /utils/free-sized # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/nullify/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/nullify/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-config1:/var/volatile/tmp/utils/nullify/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/nullify/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-data1:/var/volatile/tmp/utils/nullify/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/nullify/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/nullify/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/nullify/.dirs/runtime ok 28 /utils/nullify # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/atexit/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/atexit/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-config1:/var/volatile/tmp/utils/atexit/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/atexit/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-data1:/var/volatile/tmp/utils/atexit/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/atexit/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/atexit/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/atexit/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/atexit: No such file or directory ok 29 /utils/atexit # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/check-setuid/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-config1:/var/volatile/tmp/utils/check-setuid/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-data1:/var/volatile/tmp/utils/check-setuid/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/check-setuid/.dirs/runtime ok 30 /utils/check-setuid # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/int-limits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-config1:/var/volatile/tmp/utils/int-limits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/int-limits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-data1:/var/volatile/tmp/utils/int-limits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/int-limits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/int-limits/.dirs/runtime # Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1663 ok 31 /utils/int-limits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-list/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-config1:/var/volatile/tmp/utils/clear-list/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-list/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-data1:/var/volatile/tmp/utils/clear-list/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-list/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-list/.dirs/runtime ok 32 /utils/clear-list # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-slist/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-config1:/var/volatile/tmp/utils/clear-slist/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-data1:/var/volatile/tmp/utils/clear-slist/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-slist/.dirs/runtime ok 33 /utils/clear-slist # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-config1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-data1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/steal-handle-id/.dirs/runtime ok 34 /utils/steal-handle-id # Start of user-special-dirs tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/runtime ok 35 /utils/user-special-dirs/desktop # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/runtime # /utils/user-special-dirs/load-unlocked summary: Tests error and corner cases of user-dirs.dirs content. # Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/4800 Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/load-unlocked: No such file or directory ok 36 /utils/user-special-dirs/load-unlocked # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/runtime # /utils/user-special-dirs/reload-leaks summary: Tests that old user special dirs values are deliberately leaked on reload. Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/reload-leaks: No such file or directory ok 37 /utils/user-special-dirs/reload-leaks # End of user-special-dirs tests # Start of clear-pointer tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/runtime ok 38 /utils/clear-pointer/side-effects # End of clear-pointer tests # Start of aligned-mem tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/runtime # /utils/aligned-mem/alignment summary: Check that g_aligned_alloc() returns a correctly aligned pointer ok 39 /utils/aligned-mem/alignment # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/runtime # /utils/aligned-mem/zeroed summary: Check that g_aligned_alloc0() zeroes out its allocation ok 40 /utils/aligned-mem/zeroed # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/runtime # /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/reference.test TAP version 14 # random seed: R02Scc55e2654208965b62086e36971144cf 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/1bit-mutex.test TAP version 14 # random seed: R02S5205c101c0c0c10d23203cf6b8c77967 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.14 secs Executing: glib/1bit-mutex.test ok 2 /glib/1bit-mutex/pointer # slow test /glib/1bit-mutex/pointer executed in 1.13 secs # End of 1bit-mutex tests # End of glib tests PASS: glib/1bit-mutex.test Running test: glib/converter.test TAP version 14 # random seed: R02S9b02c8e45e429a378c48c661c57fa7f6 1..3 # Start of converter tests ok 1 /converter/bytes ok 2 /converter/extra-bytes-at-end ok 3 /converter/gzip-os-property # End of converter tests PASS: glib/converter.test Running test: glib/performance-threaded.test Running test "liststore-is-a" 17353 runs, min/avg/max = 0.057/0.057/0.209 ms Running test "liststore-interface-peek" 30028 runs, min/avg/max = 0.032/0.033/0.110 ms Running test "liststore-interface-peek-same" 30015 runs, min/avg/max = 0.032/0.033/0.111 ms PASS: glib/performance-threaded.test Running test: glib/deprecated-properties.test TAP version 14 # random seed: R02S5128e120b6cbac502d83b002c4c5ced6 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/gsocketclient-slow.test TAP version 14 # random seed: R02Se447a6309f014bb5dbfe59bf2ddac05f 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 0xaaaada0587c0 and GSocketClientAsyncConnectData 0xaaaada053310 # 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 0xaaaada05c520 for GSocketClientAsyncConnectData 0xaaaada053310 # 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 0xaaaada05c520 for GSocketClientAsyncConnectData 0xaaaada053310 # 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 0xaaaada05b0d0 and GSocketClientAsyncConnectData 0xaaaada0625c0 # 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 0xaaaada061f10 for GSocketClientAsyncConnectData 0xaaaada0625c0 # 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 0xaaaada05bd70 and GSocketClientAsyncConnectData 0xaaaada063530 # 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 0xaaaada05aff0 and GSocketClientAsyncConnectData 0xaaaada063ad0 # 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 0xaaaada0634d0 for GSocketClientAsyncConnectData 0xaaaada063ad0 # GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt Executing: glib/gsocketclient-slow.test # 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/markup.test TAP version 14 # random seed: R02S6599e5a48209d086456b6986da18b834 1..1 # Start of markup tests ok 1 /markup/stack # End of markup tests PASS: glib/markup.test Running test: glib/defaultiface.test TAP version 14 # random seed: R02Sb5ba77c7465dab5444ed231d244c2e05 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/option-argv0.test TAP version 14 # random seed: R02S2ec7c961b99f14a8499758675d9e1f8a 1..1 # Start of option tests ok 1 /option/argv0 # End of option tests PASS: glib/option-argv0.test Running test: glib/rand.test TAP version 14 # random seed: R02S5b79c814162e67ce76f4ced8be098242 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/private.test TAP version 14 # random seed: R02Sc0ae8f7959d8a249aaafb97ca0d426b8 1..8 # Start of thread tests ok 1 /thread/private1 ok 2 /thread/private2 # slow test /thread/private2 executed in 1.08 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.08 secs ok 8 /thread/staticprivate5 # End of thread tests PASS: glib/private.test Running test: glib/module-test-plugin.test TAP version 14 # random seed: R02S89bf39025aa9cc389f00cd880422eb93 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/atomic-c-23.test TAP version 14 # random seed: R02S9945d860559e005a69a74293c1c18af3 1..2 # Start of atomic tests ok 1 /atomic/types ok 2 /atomic/threaded # End of atomic tests PASS: glib/atomic-c-23.test Running test: glib/gdbus-non-socket.test TAP version 14 # random seed: R02Sbc4ba5348818d9fbf9617deb3db47630 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/objects-refcount2.test TAP version 14 # random seed: R02Sbf9c8653d7f6a40008153e61ecc9246b 1..1 # Start of gobject tests # Start of refcount tests # init 0xaaaadef7ed60 # # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . Executing: glib/objects-refcount2.test # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # dispose 0xaaaadef7ed60! # ok 1 /gobject/refcount/object-advanced # slow test /gobject/refcount/object-advanced executed in 6.29 secs # End of refcount tests # End of gobject tests PASS: glib/objects-refcount2.test Running test: glib/io-channel-basic.test TAP version 14 # random seed: R02S45cb9aaf13b5569b7804b7d139440fb7 1..1 # Start of gio tests # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02S6f0ec40b2f36daa28daf375893c27cd7 # GLib-DEBUG: io-channel-basic: child writing 8+3751 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 3751 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+3548 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 3548 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+3889 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 3889 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK Executing: glib/io-channel-basic.test # GLib-DEBUG: io-channel-basic: child writing 8+2267 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 2267 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+4099 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 4099 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+3096 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 3096 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1557 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1557 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+4123 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 4123 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1034 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1034 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+2831 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 2831 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1017 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1017 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+4589 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 4589 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1070 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1070 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+48 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 48 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+790 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 790 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1375 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1375 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1176 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1176 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+4179 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 4179 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1909 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1909 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+1934 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 1934 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+2651 bytes to 6 # GLib-DEBUG: io-channel-basic: ...from 5: IN # GLib-DEBUG: io-channel-basic: ...from 5: 2651 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # GLib-DEBUG: io-channel-basic: child writing 8+3969 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: 3969 bytes # GLib-DEBUG: io-channel-basic: ...from 5: OK # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02S432f62b8df5f0e50905f063907a2679e # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02S488a086c3d578ee36d758889313adfc0 # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02S5542b03acd525c7b6e3db6ef2a00d556 # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02S7684e0c1c6320566da5e0abb691e123d # Subtest: /usr/libexec/installed-tests/glib/io-channel-basic # random seed: R02S54730f2deb3c5a7d346637906a79103d Executing: glib/io-channel-basic.test # GLib-DEBUG: io-channel-basic: child writing 8+3692 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 3692 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+979 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 979 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+2716 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 2716 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+1541 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 1541 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+4270 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 4270 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1337 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 1337 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+1615 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 1615 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4205 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 4205 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+1778 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 1778 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+3063 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 3063 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+3777 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3777 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+2295 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 2295 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+3665 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 3665 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+801 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 801 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+4032 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 4032 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1061 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 1061 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+2005 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 2005 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4475 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 4475 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+2609 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2609 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+1048 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 1048 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+4564 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 4564 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+718 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 718 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+315 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 315 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3918 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 3918 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+3929 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 3929 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1461 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 1461 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+3179 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3179 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+3955 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 3955 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+2766 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 2766 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1732 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 1732 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+1117 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 1117 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+4352 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 4352 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+4914 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4914 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+2704 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2704 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+2532 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 2532 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+2071 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 2071 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+4483 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 4483 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+897 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 897 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3214 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3214 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4611 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 4611 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+4818 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 4818 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+2904 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 2904 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+3379 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 3379 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+4767 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 4767 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+2784 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 2784 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+946 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 946 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+1555 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 1555 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4371 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 4371 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+980 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 980 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+2113 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 2113 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+2953 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 2953 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+2761 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 2761 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+3850 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 3850 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3106 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 3106 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+3697 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 3697 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+833 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 833 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+3515 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3515 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+1325 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 1325 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+4824 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 4824 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3919 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 3919 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+2770 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 2770 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+589 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 589 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+3410 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 3410 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3214 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 3214 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+1875 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 1875 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+658 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 658 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+1787 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 1787 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+4729 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 4729 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+2976 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 2976 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3159 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 3159 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+2869 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 2869 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+515 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 515 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+2788 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2788 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+2297 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 2297 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3588 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 3588 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+3052 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3052 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+305 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 305 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+2967 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2967 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+3812 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 3812 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+3832 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 3832 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3991 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3991 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+1526 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 1526 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+2647 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2647 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+4631 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 4631 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+4224 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 4224 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+1105 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 1105 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+4060 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4060 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+2220 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 2220 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+389 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 389 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+974 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 974 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+1401 bytes to 17 # GLib-DEBUG: io-channel-basic: ...from 16: IN # GLib-DEBUG: io-channel-basic: ...from 16: 1401 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+4122 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 4122 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+1919 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 1919 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+2825 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 2825 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+1523 bytes to 15 # GLib-DEBUG: io-channel-basic: ...from 14: IN # GLib-DEBUG: io-channel-basic: ...from 14: 1523 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+3334 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: 3334 bytes # GLib-DEBUG: io-channel-basic: ...from 16: OK # GLib-DEBUG: io-channel-basic: child writing 8+2268 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 2268 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK Executing: glib/io-channel-basic.test # GLib-DEBUG: io-channel-basic: child writing 8+666 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 666 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+50 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 50 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+4542 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: 4542 bytes # GLib-DEBUG: io-channel-basic: ...from 14: OK # GLib-DEBUG: io-channel-basic: child writing 8+1555 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 1555 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+3058 bytes to 13 # GLib-DEBUG: io-channel-basic: ...from 12: IN # GLib-DEBUG: io-channel-basic: ...from 12: 3058 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+4224 bytes to 11 # GLib-DEBUG: io-channel-basic: ...from 10: IN # GLib-DEBUG: io-channel-basic: ...from 10: 4224 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+3915 bytes to 9 # GLib-DEBUG: io-channel-basic: ...from 8: IN # GLib-DEBUG: io-channel-basic: ...from 8: 3915 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK # GLib-DEBUG: io-channel-basic: child writing 8+1648 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: 1648 bytes # GLib-DEBUG: io-channel-basic: ...from 12: OK # GLib-DEBUG: io-channel-basic: child writing 8+3788 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: 3788 bytes # GLib-DEBUG: io-channel-basic: ...from 10: OK # GLib-DEBUG: io-channel-basic: child writing 8+578 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: 578 bytes # GLib-DEBUG: io-channel-basic: ...from 8: OK ok 1 /gio/io-basics # slow test /gio/io-basics executed in 11.79 secs # End of gio tests PASS: glib/io-channel-basic.test Running test: glib/refcount.test TAP version 14 # random seed: R02S135bc8f200cfbe2ed2b9248de09bd35e 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/gdatetime.test TAP version 14 # random seed: R02S01c81f5f912ecf18e674274b189be5ef 1..72 # Start of GDateTime tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/invalid/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/invalid/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/invalid/.dirs/system-config1:/var/volatile/tmp/GDateTime/invalid/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/invalid/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/invalid/.dirs/system-data1:/var/volatile/tmp/GDateTime/invalid/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/invalid/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/invalid/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/invalid/.dirs/runtime # Bug Reference: http://bugzilla.gnome.org/702674 ok 1 /GDateTime/invalid # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/add_days/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/add_days/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/add_days/.dirs/system-config1:/var/volatile/tmp/GDateTime/add_days/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/add_days/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/add_days/.dirs/system-data1:/var/volatile/tmp/GDateTime/add_days/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/add_days/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/add_days/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/add_days/.dirs/runtime ok 2 /GDateTime/add_days # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/add_full/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/add_full/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/add_full/.dirs/system-config1:/var/volatile/tmp/GDateTime/add_full/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/add_full/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/add_full/.dirs/system-data1:/var/volatile/tmp/GDateTime/add_full/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/add_full/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/add_full/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/add_full/.dirs/runtime ok 3 /GDateTime/add_full # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/add_hours/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/add_hours/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/add_hours/.dirs/system-config1:/var/volatile/tmp/GDateTime/add_hours/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/add_hours/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/add_hours/.dirs/system-data1:/var/volatile/tmp/GDateTime/add_hours/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/add_hours/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/add_hours/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/add_hours/.dirs/runtime ok 4 /GDateTime/add_hours # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/add_minutes/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/add_minutes/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/add_minutes/.dirs/system-config1:/var/volatile/tmp/GDateTime/add_minutes/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/add_minutes/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/add_minutes/.dirs/system-data1:/var/volatile/tmp/GDateTime/add_minutes/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/add_minutes/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/add_minutes/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/add_minutes/.dirs/runtime ok 5 /GDateTime/add_minutes # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/add_months/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/add_months/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/add_months/.dirs/system-config1:/var/volatile/tmp/GDateTime/add_months/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/add_months/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/add_months/.dirs/system-data1:/var/volatile/tmp/GDateTime/add_months/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/add_months/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/add_months/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/add_months/.dirs/runtime ok 6 /GDateTime/add_months # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/add_seconds/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/add_seconds/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/add_seconds/.dirs/system-config1:/var/volatile/tmp/GDateTime/add_seconds/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/add_seconds/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/add_seconds/.dirs/system-data1:/var/volatile/tmp/GDateTime/add_seconds/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/add_seconds/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/add_seconds/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/add_seconds/.dirs/runtime ok 7 /GDateTime/add_seconds # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/add_weeks/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/add_weeks/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/add_weeks/.dirs/system-config1:/var/volatile/tmp/GDateTime/add_weeks/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/add_weeks/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/add_weeks/.dirs/system-data1:/var/volatile/tmp/GDateTime/add_weeks/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/add_weeks/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/add_weeks/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/add_weeks/.dirs/runtime ok 8 /GDateTime/add_weeks # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/add_years/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/add_years/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/add_years/.dirs/system-config1:/var/volatile/tmp/GDateTime/add_years/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/add_years/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/add_years/.dirs/system-data1:/var/volatile/tmp/GDateTime/add_years/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/add_years/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/add_years/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/add_years/.dirs/runtime ok 9 /GDateTime/add_years # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/compare/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/compare/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/compare/.dirs/system-config1:/var/volatile/tmp/GDateTime/compare/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/compare/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/compare/.dirs/system-data1:/var/volatile/tmp/GDateTime/compare/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/compare/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/compare/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/compare/.dirs/runtime ok 10 /GDateTime/compare # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/diff/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/diff/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/diff/.dirs/system-config1:/var/volatile/tmp/GDateTime/diff/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/diff/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/diff/.dirs/system-data1:/var/volatile/tmp/GDateTime/diff/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/diff/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/diff/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/diff/.dirs/runtime ok 11 /GDateTime/diff # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/equal/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/equal/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/equal/.dirs/system-config1:/var/volatile/tmp/GDateTime/equal/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/equal/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/equal/.dirs/system-data1:/var/volatile/tmp/GDateTime/equal/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/equal/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/equal/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/equal/.dirs/runtime ok 12 /GDateTime/equal # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/get_day_of_week/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/get_day_of_week/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/get_day_of_week/.dirs/system-config1:/var/volatile/tmp/GDateTime/get_day_of_week/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/get_day_of_week/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/get_day_of_week/.dirs/system-data1:/var/volatile/tmp/GDateTime/get_day_of_week/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/get_day_of_week/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/get_day_of_week/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/get_day_of_week/.dirs/runtime ok 13 /GDateTime/get_day_of_week # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/get_day_of_month/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/get_day_of_month/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/get_day_of_month/.dirs/system-config1:/var/volatile/tmp/GDateTime/get_day_of_month/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/get_day_of_month/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/get_day_of_month/.dirs/system-data1:/var/volatile/tmp/GDateTime/get_day_of_month/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/get_day_of_month/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/get_day_of_month/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/get_day_of_month/.dirs/runtime ok 14 /GDateTime/get_day_of_month # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/get_day_of_year/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/get_day_of_year/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/get_day_of_year/.dirs/system-config1:/var/volatile/tmp/GDateTime/get_day_of_year/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/get_day_of_year/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/get_day_of_year/.dirs/system-data1:/var/volatile/tmp/GDateTime/get_day_of_year/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/get_day_of_year/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/get_day_of_year/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/get_day_of_year/.dirs/runtime ok 15 /GDateTime/get_day_of_year # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/get_hour/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/get_hour/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/get_hour/.dirs/system-config1:/var/volatile/tmp/GDateTime/get_hour/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/get_hour/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/get_hour/.dirs/system-data1:/var/volatile/tmp/GDateTime/get_hour/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/get_hour/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/get_hour/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/get_hour/.dirs/runtime ok 16 /GDateTime/get_hour # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/get_microsecond/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/get_microsecond/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/get_microsecond/.dirs/system-config1:/var/volatile/tmp/GDateTime/get_microsecond/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/get_microsecond/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/get_microsecond/.dirs/system-data1:/var/volatile/tmp/GDateTime/get_microsecond/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/get_microsecond/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/get_microsecond/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/get_microsecond/.dirs/runtime ok 17 /GDateTime/get_microsecond # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/get_minute/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/get_minute/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/get_minute/.dirs/system-config1:/var/volatile/tmp/GDateTime/get_minute/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/get_minute/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/get_minute/.dirs/system-data1:/var/volatile/tmp/GDateTime/get_minute/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/get_minute/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/get_minute/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/get_minute/.dirs/runtime ok 18 /GDateTime/get_minute # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/get_month/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/get_month/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/get_month/.dirs/system-config1:/var/volatile/tmp/GDateTime/get_month/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/get_month/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/get_month/.dirs/system-data1:/var/volatile/tmp/GDateTime/get_month/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/get_month/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/get_month/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/get_month/.dirs/runtime ok 19 /GDateTime/get_month # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/get_second/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/get_second/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/get_second/.dirs/system-config1:/var/volatile/tmp/GDateTime/get_second/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/get_second/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/get_second/.dirs/system-data1:/var/volatile/tmp/GDateTime/get_second/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/get_second/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/get_second/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/get_second/.dirs/runtime ok 20 /GDateTime/get_second # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/get_utc_offset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/get_utc_offset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/get_utc_offset/.dirs/system-config1:/var/volatile/tmp/GDateTime/get_utc_offset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/get_utc_offset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/get_utc_offset/.dirs/system-data1:/var/volatile/tmp/GDateTime/get_utc_offset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/get_utc_offset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/get_utc_offset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/get_utc_offset/.dirs/runtime ok 21 /GDateTime/get_utc_offset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/get_year/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/get_year/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/get_year/.dirs/system-config1:/var/volatile/tmp/GDateTime/get_year/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/get_year/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/get_year/.dirs/system-data1:/var/volatile/tmp/GDateTime/get_year/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/get_year/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/get_year/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/get_year/.dirs/runtime ok 22 /GDateTime/get_year # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/hash/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/hash/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/hash/.dirs/system-config1:/var/volatile/tmp/GDateTime/hash/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/hash/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/hash/.dirs/system-data1:/var/volatile/tmp/GDateTime/hash/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/hash/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/hash/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/hash/.dirs/runtime ok 23 /GDateTime/hash # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/new_from_unix/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/new_from_unix/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/new_from_unix/.dirs/system-config1:/var/volatile/tmp/GDateTime/new_from_unix/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/new_from_unix/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/new_from_unix/.dirs/system-data1:/var/volatile/tmp/GDateTime/new_from_unix/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/new_from_unix/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/new_from_unix/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/new_from_unix/.dirs/runtime ok 24 /GDateTime/new_from_unix # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/new_from_unix_utc/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/new_from_unix_utc/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/new_from_unix_utc/.dirs/system-config1:/var/volatile/tmp/GDateTime/new_from_unix_utc/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/new_from_unix_utc/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/new_from_unix_utc/.dirs/system-data1:/var/volatile/tmp/GDateTime/new_from_unix_utc/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/new_from_unix_utc/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/new_from_unix_utc/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/new_from_unix_utc/.dirs/runtime ok 25 /GDateTime/new_from_unix_utc # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/new_from_timeval/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/new_from_timeval/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/new_from_timeval/.dirs/system-config1:/var/volatile/tmp/GDateTime/new_from_timeval/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/new_from_timeval/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/new_from_timeval/.dirs/system-data1:/var/volatile/tmp/GDateTime/new_from_timeval/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/new_from_timeval/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/new_from_timeval/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/new_from_timeval/.dirs/runtime ok 26 /GDateTime/new_from_timeval # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/new_from_timeval_utc/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/new_from_timeval_utc/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/new_from_timeval_utc/.dirs/system-config1:/var/volatile/tmp/GDateTime/new_from_timeval_utc/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/new_from_timeval_utc/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/new_from_timeval_utc/.dirs/system-data1:/var/volatile/tmp/GDateTime/new_from_timeval_utc/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/new_from_timeval_utc/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/new_from_timeval_utc/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/new_from_timeval_utc/.dirs/runtime ok 27 /GDateTime/new_from_timeval_utc # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/new_from_iso8601/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/new_from_iso8601/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/new_from_iso8601/.dirs/system-config1:/var/volatile/tmp/GDateTime/new_from_iso8601/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/new_from_iso8601/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/new_from_iso8601/.dirs/system-data1:/var/volatile/tmp/GDateTime/new_from_iso8601/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/new_from_iso8601/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/new_from_iso8601/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/new_from_iso8601/.dirs/runtime ok 28 /GDateTime/new_from_iso8601 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/new_full/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/new_full/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/new_full/.dirs/system-config1:/var/volatile/tmp/GDateTime/new_full/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/new_full/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/new_full/.dirs/system-data1:/var/volatile/tmp/GDateTime/new_full/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/new_full/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/new_full/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/new_full/.dirs/runtime ok 29 /GDateTime/new_full # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/now/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/now/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/now/.dirs/system-config1:/var/volatile/tmp/GDateTime/now/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/now/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/now/.dirs/system-data1:/var/volatile/tmp/GDateTime/now/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/now/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/now/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/now/.dirs/runtime ok 30 /GDateTime/now # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/test-6-days-until-end-of-the-month/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/test-6-days-until-end-of-the-month/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/test-6-days-until-end-of-the-month/.dirs/system-config1:/var/volatile/tmp/GDateTime/test-6-days-until-end-of-the-month/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/test-6-days-until-end-of-the-month/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/test-6-days-until-end-of-the-month/.dirs/system-data1:/var/volatile/tmp/GDateTime/test-6-days-until-end-of-the-month/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/test-6-days-until-end-of-the-month/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/test-6-days-until-end-of-the-month/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/test-6-days-until-end-of-the-month/.dirs/runtime # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/2215 ok 31 /GDateTime/test-6-days-until-end-of-the-month # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/printf/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/printf/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/printf/.dirs/system-config1:/var/volatile/tmp/GDateTime/printf/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/printf/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/printf/.dirs/system-data1:/var/volatile/tmp/GDateTime/printf/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/printf/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/printf/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/printf/.dirs/runtime # %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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/non_utf8_printf/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/non_utf8_printf/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/non_utf8_printf/.dirs/system-config1:/var/volatile/tmp/GDateTime/non_utf8_printf/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/non_utf8_printf/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/non_utf8_printf/.dirs/system-data1:/var/volatile/tmp/GDateTime/non_utf8_printf/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/non_utf8_printf/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/non_utf8_printf/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/non_utf8_printf/.dirs/runtime # %a -> expected: 土 # %a -> actual: 土 # %A -> expected: 土曜日 # %A -> actual: 土曜日 # %b -> expected: 10月 # %b -> actual: 10月 # %B -> expected: 10月 # %B -> actual: 10月 # %c -> expected: 2009年10月24日 00時00分00秒 # %c -> actual: 2009年10月24日 00時00分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: 午前12時00分00秒 # %r -> actual: 午前12時00分00秒 # %r -> expected: 午後01時13分13秒 # %r -> actual: 午後01時13分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年10月24日 # %x -> actual: 2009年10月24日 # %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) # %Ec -> expected: 平成21年10月24日 00時00分00秒 # %Ec -> actual: 平成21年10月24日 00時00分00秒 # %EC -> expected: 平成 # %EC -> actual: 平成 # %Ex -> expected: 平成21年10月24日 # %Ex -> actual: 平成21年10月24日 # %EX -> expected: 00時00分00秒 # %EX -> actual: 00時00分00秒 # %Ey -> expected: 21 # %Ey -> actual: 21 # %EY -> expected: 平成21年 # %EY -> actual: 平成21年 ok 33 /GDateTime/non_utf8_printf # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/format_unrepresentable/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/format_unrepresentable/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/format_unrepresentable/.dirs/system-config1:/var/volatile/tmp/GDateTime/format_unrepresentable/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/format_unrepresentable/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/format_unrepresentable/.dirs/system-data1:/var/volatile/tmp/GDateTime/format_unrepresentable/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/format_unrepresentable/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/format_unrepresentable/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/format_unrepresentable/.dirs/runtime # ąśćł -> expected: ąśćł # ąśćł -> actual: ąśćł # %H∶%M -> expected: 23∶15 # %H∶%M -> actual: 23∶15 # %H∶%M -> expected: 23∶15 # %H∶%M -> actual: 23∶15 ok 34 /GDateTime/format_unrepresentable # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/format_iso8601/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/format_iso8601/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/format_iso8601/.dirs/system-config1:/var/volatile/tmp/GDateTime/format_iso8601/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/format_iso8601/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/format_iso8601/.dirs/system-data1:/var/volatile/tmp/GDateTime/format_iso8601/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/format_iso8601/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/format_iso8601/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/format_iso8601/.dirs/runtime ok 35 /GDateTime/format_iso8601 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/strftime/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/strftime/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/strftime/.dirs/system-config1:/var/volatile/tmp/GDateTime/strftime/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/strftime/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/strftime/.dirs/system-data1:/var/volatile/tmp/GDateTime/strftime/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/strftime/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/strftime/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/strftime/.dirs/runtime ok 36 /GDateTime/strftime # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/modifiers/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/modifiers/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/modifiers/.dirs/system-config1:/var/volatile/tmp/GDateTime/modifiers/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/modifiers/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/modifiers/.dirs/system-data1:/var/volatile/tmp/GDateTime/modifiers/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/modifiers/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/modifiers/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/modifiers/.dirs/runtime # %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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/month_names/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/month_names/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/month_names/.dirs/system-config1:/var/volatile/tmp/GDateTime/month_names/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/month_names/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/month_names/.dirs/system-data1:/var/volatile/tmp/GDateTime/month_names/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/month_names/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/month_names/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/month_names/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/to_local/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/to_local/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/to_local/.dirs/system-config1:/var/volatile/tmp/GDateTime/to_local/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/to_local/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/to_local/.dirs/system-data1:/var/volatile/tmp/GDateTime/to_local/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/to_local/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/to_local/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/to_local/.dirs/runtime ok 39 /GDateTime/to_local # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/to_unix/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/to_unix/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/to_unix/.dirs/system-config1:/var/volatile/tmp/GDateTime/to_unix/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/to_unix/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/to_unix/.dirs/system-data1:/var/volatile/tmp/GDateTime/to_unix/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/to_unix/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/to_unix/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/to_unix/.dirs/runtime ok 40 /GDateTime/to_unix # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/to_timeval/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/to_timeval/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/to_timeval/.dirs/system-config1:/var/volatile/tmp/GDateTime/to_timeval/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/to_timeval/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/to_timeval/.dirs/system-data1:/var/volatile/tmp/GDateTime/to_timeval/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/to_timeval/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/to_timeval/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/to_timeval/.dirs/runtime ok 41 /GDateTime/to_timeval # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/to_utc/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/to_utc/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/to_utc/.dirs/system-config1:/var/volatile/tmp/GDateTime/to_utc/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/to_utc/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/to_utc/.dirs/system-data1:/var/volatile/tmp/GDateTime/to_utc/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/to_utc/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/to_utc/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/to_utc/.dirs/runtime ok 42 /GDateTime/to_utc # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/now_utc/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/now_utc/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/now_utc/.dirs/system-config1:/var/volatile/tmp/GDateTime/now_utc/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/now_utc/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/now_utc/.dirs/system-data1:/var/volatile/tmp/GDateTime/now_utc/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/now_utc/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/now_utc/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/now_utc/.dirs/runtime ok 43 /GDateTime/now_utc # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/dst/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/dst/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/dst/.dirs/system-config1:/var/volatile/tmp/GDateTime/dst/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/dst/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/dst/.dirs/system-data1:/var/volatile/tmp/GDateTime/dst/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/dst/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/dst/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/dst/.dirs/runtime ok 44 /GDateTime/dst # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/test_z/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/test_z/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/test_z/.dirs/system-config1:/var/volatile/tmp/GDateTime/test_z/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/test_z/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/test_z/.dirs/system-data1:/var/volatile/tmp/GDateTime/test_z/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/test_z/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/test_z/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/test_z/.dirs/runtime # Bug Reference: http://bugzilla.gnome.org/642935 ok 45 /GDateTime/test_z # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/test-all-dates/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/test-all-dates/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/test-all-dates/.dirs/system-config1:/var/volatile/tmp/GDateTime/test-all-dates/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/test-all-dates/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/test-all-dates/.dirs/system-data1:/var/volatile/tmp/GDateTime/test-all-dates/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/test-all-dates/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/test-all-dates/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/test-all-dates/.dirs/runtime ok 46 /GDateTime/test-all-dates # slow test /GDateTime/test-all-dates executed in 0.89 secs # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/unix_usec/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/unix_usec/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/unix_usec/.dirs/system-config1:/var/volatile/tmp/GDateTime/unix_usec/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/unix_usec/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/unix_usec/.dirs/system-data1:/var/volatile/tmp/GDateTime/unix_usec/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/unix_usec/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/unix_usec/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/unix_usec/.dirs/runtime ok 47 /GDateTime/unix_usec # Start of new_from_unix tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/new_from_unix/overflow/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/new_from_unix/overflow/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/new_from_unix/overflow/.dirs/system-config1:/var/volatile/tmp/GDateTime/new_from_unix/overflow/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/new_from_unix/overflow/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/new_from_unix/overflow/.dirs/system-data1:/var/volatile/tmp/GDateTime/new_from_unix/overflow/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/new_from_unix/overflow/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/new_from_unix/overflow/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/new_from_unix/overflow/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/new_from_timeval/overflow/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/new_from_timeval/overflow/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/new_from_timeval/overflow/.dirs/system-config1:/var/volatile/tmp/GDateTime/new_from_timeval/overflow/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/new_from_timeval/overflow/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/new_from_timeval/overflow/.dirs/system-data1:/var/volatile/tmp/GDateTime/new_from_timeval/overflow/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/new_from_timeval/overflow/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/new_from_timeval/overflow/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/new_from_timeval/overflow/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/new_from_iso8601/2/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/new_from_iso8601/2/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/new_from_iso8601/2/.dirs/system-config1:/var/volatile/tmp/GDateTime/new_from_iso8601/2/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/new_from_iso8601/2/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/new_from_iso8601/2/.dirs/system-data1:/var/volatile/tmp/GDateTime/new_from_iso8601/2/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/new_from_iso8601/2/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/new_from_iso8601/2/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/new_from_iso8601/2/.dirs/runtime # /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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_non_utf8_messages/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_non_utf8_messages/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_non_utf8_messages/.dirs/system-config1:/var/volatile/tmp/GDateTime/format_mixed/utf8_time_non_utf8_messages/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_non_utf8_messages/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_non_utf8_messages/.dirs/system-data1:/var/volatile/tmp/GDateTime/format_mixed/utf8_time_non_utf8_messages/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_non_utf8_messages/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_non_utf8_messages/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_non_utf8_messages/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_utf8_messages/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_utf8_messages/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_utf8_messages/.dirs/system-config1:/var/volatile/tmp/GDateTime/format_mixed/utf8_time_utf8_messages/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_utf8_messages/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_utf8_messages/.dirs/system-data1:/var/volatile/tmp/GDateTime/format_mixed/utf8_time_utf8_messages/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_utf8_messages/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_utf8_messages/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/format_mixed/utf8_time_utf8_messages/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_non_utf8_messages/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_non_utf8_messages/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_non_utf8_messages/.dirs/system-config1:/var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_non_utf8_messages/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_non_utf8_messages/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_non_utf8_messages/.dirs/system-data1:/var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_non_utf8_messages/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_non_utf8_messages/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_non_utf8_messages/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_non_utf8_messages/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_utf8_messages/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_utf8_messages/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_utf8_messages/.dirs/system-config1:/var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_utf8_messages/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_utf8_messages/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_utf8_messages/.dirs/system-data1:/var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_utf8_messages/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_utf8_messages/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_utf8_messages/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/format_mixed/non_utf8_time_utf8_messages/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/strftime/error_handling/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/strftime/error_handling/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/strftime/error_handling/.dirs/system-config1:/var/volatile/tmp/GDateTime/strftime/error_handling/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/strftime/error_handling/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/strftime/error_handling/.dirs/system-data1:/var/volatile/tmp/GDateTime/strftime/error_handling/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/strftime/error_handling/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/strftime/error_handling/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/strftime/error_handling/.dirs/runtime # %r -> expected: (null) # %r -> actual: (null) ok 55 /GDateTime/strftime/error_handling # End of strftime tests # Start of eras tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/eras/japan/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/eras/japan/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/eras/japan/.dirs/system-config1:/var/volatile/tmp/GDateTime/eras/japan/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/eras/japan/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/eras/japan/.dirs/system-data1:/var/volatile/tmp/GDateTime/eras/japan/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/eras/japan/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/eras/japan/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/eras/japan/.dirs/runtime ok 56 /GDateTime/eras/japan # SKIP locale ja_JP.utf-8 not available, skipping Japanese era tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/eras/thailand/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/eras/thailand/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/eras/thailand/.dirs/system-config1:/var/volatile/tmp/GDateTime/eras/thailand/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/eras/thailand/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/eras/thailand/.dirs/system-data1:/var/volatile/tmp/GDateTime/eras/thailand/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/eras/thailand/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/eras/thailand/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/eras/thailand/.dirs/runtime # %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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GDateTime/eras/parsing/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GDateTime/eras/parsing/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GDateTime/eras/parsing/.dirs/system-config1:/var/volatile/tmp/GDateTime/eras/parsing/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GDateTime/eras/parsing/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GDateTime/eras/parsing/.dirs/system-data1:/var/volatile/tmp/GDateTime/eras/parsing/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GDateTime/eras/parsing/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GDateTime/eras/parsing/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GDateTime/eras/parsing/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/find-interval/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/find-interval/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/find-interval/.dirs/system-config1:/var/volatile/tmp/GTimeZone/find-interval/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/find-interval/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/find-interval/.dirs/system-data1:/var/volatile/tmp/GTimeZone/find-interval/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/find-interval/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/find-interval/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/find-interval/.dirs/runtime ok 59 /GTimeZone/find-interval # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/adjust-time/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/adjust-time/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/adjust-time/.dirs/system-config1:/var/volatile/tmp/GTimeZone/adjust-time/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/adjust-time/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/adjust-time/.dirs/system-data1:/var/volatile/tmp/GTimeZone/adjust-time/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/adjust-time/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/adjust-time/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/adjust-time/.dirs/runtime ok 60 /GTimeZone/adjust-time # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/no-header/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/no-header/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/no-header/.dirs/system-config1:/var/volatile/tmp/GTimeZone/no-header/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/no-header/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/no-header/.dirs/system-data1:/var/volatile/tmp/GTimeZone/no-header/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/no-header/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/no-header/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/no-header/.dirs/runtime ok 61 /GTimeZone/no-header # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/no-header-identifier/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/no-header-identifier/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/no-header-identifier/.dirs/system-config1:/var/volatile/tmp/GTimeZone/no-header-identifier/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/no-header-identifier/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/no-header-identifier/.dirs/system-data1:/var/volatile/tmp/GTimeZone/no-header-identifier/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/no-header-identifier/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/no-header-identifier/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/no-header-identifier/.dirs/runtime ok 62 /GTimeZone/no-header-identifier # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/posix-parse/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/posix-parse/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/posix-parse/.dirs/system-config1:/var/volatile/tmp/GTimeZone/posix-parse/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/posix-parse/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/posix-parse/.dirs/system-data1:/var/volatile/tmp/GTimeZone/posix-parse/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/posix-parse/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/posix-parse/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/posix-parse/.dirs/runtime ok 63 /GTimeZone/posix-parse # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/floating-point/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/floating-point/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/floating-point/.dirs/system-config1:/var/volatile/tmp/GTimeZone/floating-point/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/floating-point/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/floating-point/.dirs/system-data1:/var/volatile/tmp/GTimeZone/floating-point/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/floating-point/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/floating-point/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/floating-point/.dirs/runtime # Bug Reference: http://bugzilla.gnome.org/697715 ok 64 /GTimeZone/floating-point # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/identifier/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/identifier/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/identifier/.dirs/system-config1:/var/volatile/tmp/GTimeZone/identifier/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/identifier/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/identifier/.dirs/system-data1:/var/volatile/tmp/GTimeZone/identifier/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/identifier/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/identifier/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/identifier/.dirs/runtime # System time zone identifier: Universal ok 65 /GTimeZone/identifier # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/new-offset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/new-offset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/new-offset/.dirs/system-config1:/var/volatile/tmp/GTimeZone/new-offset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/new-offset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/new-offset/.dirs/system-data1:/var/volatile/tmp/GTimeZone/new-offset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/new-offset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/new-offset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/new-offset/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/parse-rfc8536/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/parse-rfc8536/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/parse-rfc8536/.dirs/system-config1:/var/volatile/tmp/GTimeZone/parse-rfc8536/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/parse-rfc8536/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/parse-rfc8536/.dirs/system-data1:/var/volatile/tmp/GTimeZone/parse-rfc8536/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/parse-rfc8536/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/parse-rfc8536/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/parse-rfc8536/.dirs/runtime # /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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/caching/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/caching/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/caching/.dirs/system-config1:/var/volatile/tmp/GTimeZone/caching/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/caching/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/caching/.dirs/system-data1:/var/volatile/tmp/GTimeZone/caching/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/caching/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/caching/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/caching/.dirs/runtime # /GTimeZone/caching summary: GTimeZone instances are cached ok 68 /GTimeZone/caching # Start of unix_localtime tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/unix_localtime/regular/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/regular/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/unix_localtime/regular/.dirs/system-config1:/var/volatile/tmp/GTimeZone/unix_localtime/regular/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/regular/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/unix_localtime/regular/.dirs/system-data1:/var/volatile/tmp/GTimeZone/unix_localtime/regular/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/regular/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/regular/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/unix_localtime/regular/.dirs/runtime ok 69 /GTimeZone/unix_localtime/regular # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/unix_localtime/symlink/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/symlink/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/unix_localtime/symlink/.dirs/system-config1:/var/volatile/tmp/GTimeZone/unix_localtime/symlink/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/symlink/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/unix_localtime/symlink/.dirs/system-data1:/var/volatile/tmp/GTimeZone/unix_localtime/symlink/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/symlink/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/symlink/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/unix_localtime/symlink/.dirs/runtime ok 70 /GTimeZone/unix_localtime/symlink # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/unix_localtime/symlink-loop/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/symlink-loop/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/unix_localtime/symlink-loop/.dirs/system-config1:/var/volatile/tmp/GTimeZone/unix_localtime/symlink-loop/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/symlink-loop/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/unix_localtime/symlink-loop/.dirs/system-data1:/var/volatile/tmp/GTimeZone/unix_localtime/symlink-loop/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/symlink-loop/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/symlink-loop/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/unix_localtime/symlink-loop/.dirs/runtime ok 71 /GTimeZone/unix_localtime/symlink-loop # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/GTimeZone/unix_localtime/not-a-symlink/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/not-a-symlink/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/GTimeZone/unix_localtime/not-a-symlink/.dirs/system-config1:/var/volatile/tmp/GTimeZone/unix_localtime/not-a-symlink/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/not-a-symlink/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/GTimeZone/unix_localtime/not-a-symlink/.dirs/system-data1:/var/volatile/tmp/GTimeZone/unix_localtime/not-a-symlink/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/not-a-symlink/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/GTimeZone/unix_localtime/not-a-symlink/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/GTimeZone/unix_localtime/not-a-symlink/.dirs/runtime ok 72 /GTimeZone/unix_localtime/not-a-symlink # End of unix_localtime tests # End of GTimeZone tests PASS: glib/gdatetime.test Running test: glib/mapping.test TAP version 14 # random seed: R02Sf220592238c882fe7a29829bb865c7c0 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: R02S6fc639839376e34d139d7b0cd16b64fe # 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/markup-escape.test TAP version 14 # random seed: R02S317f20fdc9cbcc8b344df906a0dbf84f 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/cache.test TAP version 14 # random seed: R02Sb0108411e27b8994ab9b4e5a9a6be53b 1..1 # Start of cache tests ok 1 /cache/basic # End of cache tests PASS: glib/cache.test Running test: glib/socket-address.test TAP version 14 # random seed: R02Sb27c14e3f3625868c31a41ea167818b4 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/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/mem-overflow.test TAP version 14 # random seed: R02S66cfa42f1638800704a9ceea98f29093 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/network-monitor.test TAP version 14 # random seed: R02Sebfdac2f94192963c1cfe48a695e6e28 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/network-monitor-race.test TAP version 14 # random seed: R02Sdc13e469ec411b9c70da54fded942edc 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.22 secs # End of network-monitor tests PASS: glib/network-monitor-race.test Running test: glib/socket-listener.test TAP version 14 # random seed: R02Sb9c2b2aa360918b45a7ac2140a1e77bf 1..4 # Start of socket-listener tests ok 1 /socket-listener/event-signal # Start of accept tests # /socket-listener/accept/multi-simultaneously summary: Test that accepting multiple pending connections on the same GMainContext iteration works # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3739 # 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 0xaaaae478b440 and GSocketClientAsyncConnectData 0xaaaae47867e0 # GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration # GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0xaaaae478dbd0 and GSocketClientAsyncConnectData 0xaaaae478da20 # GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration # GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0xaaaae478e410 and GSocketClientAsyncConnectData 0xaaaae478e190 # GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration # GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0xaaaae478ed20 and GSocketClientAsyncConnectData 0xaaaae478eaa0 # GLib-GIO-DEBUG: GSocketClient: Starting new address enumeration # GLib-GIO-DEBUG: g_socket_client_connect_async: starting new g_socket_client_connect_async() with GTask 0xaaaae478f4f0 and GSocketClientAsyncConnectData 0xaaaae478f270 # 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 0xaaaae4791a70 for GSocketClientAsyncConnectData 0xaaaae47867e0 # GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt # GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded # GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0xaaaae4793cb0 for GSocketClientAsyncConnectData 0xaaaae478da20 # GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt # GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded # GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0xaaaae4794460 for GSocketClientAsyncConnectData 0xaaaae478e190 # GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt # GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded # GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0xaaaae4794cd0 for GSocketClientAsyncConnectData 0xaaaae478eaa0 # GLib-GIO-DEBUG: GSocketClient: Starting TCP connection attempt # GLib-GIO-DEBUG: GSocketClient: Address enumeration succeeded # GLib-GIO-DEBUG: g_socket_client_enumerator_callback: starting connection attempt 0xaaaae4795480 for GSocketClientAsyncConnectData 0xaaaae478f270 # 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: TCP connection successful # GLib-GIO-DEBUG: GSocketClient: Starting application layer connection # GLib-GIO-DEBUG: GSocketClient: Connection successful! # 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: TCP connection successful # GLib-GIO-DEBUG: GSocketClient: Starting application layer connection # GLib-GIO-DEBUG: GSocketClient: Connection successful! # GLib-GIO-DEBUG: GSocketClient: TCP connection successful # GLib-GIO-DEBUG: GSocketClient: Starting application layer connection # GLib-GIO-DEBUG: GSocketClient: Connection successful! ok 2 /socket-listener/accept/multi-simultaneously # End of accept tests # Start of add-any-inet-port tests # /socket-listener/add-any-inet-port/listen-failures summary: Test that adding a listening port succeeds if either listening on IPv4 or IPv6 succeeds # Test 0 # Test 1 # Test 2 # Test 3 # Test 4 # Test 5 # Test 6 # Test 7 # Test 8 # Test 9 # Test 10 ok 3 /socket-listener/add-any-inet-port/listen-failures # End of add-any-inet-port tests # Start of add-inet-port tests # /socket-listener/add-inet-port/listen-failures summary: Test that adding a listening port succeeds if either listening on IPv4 or IPv6 succeeds # Test 0 # Test 1 # Test 2 # Test 3 # Test 4 # Test 5 # Test 6 # Test 7 # Test 8 # Test 9 # Test 10 ok 4 /socket-listener/add-inet-port/listen-failures # End of add-inet-port tests # End of socket-listener tests PASS: glib/socket-listener.test Running test: glib/buffered-input-stream.test TAP version 14 # random seed: R02Sfb26d3d0bb4887387b9004c57168fdc3 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/cxx-14.test TAP version 14 # random seed: R02Sb9c42973c685726143120d1209e988be 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/properties-refcount2.test TAP version 14 # random seed: R02S9ffc2e630d5a1d49ea609540fadb4f42 1..1 # Start of gobject tests # Start of refcount tests # init 0xaaaae811bd80 # # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . Executing: glib/properties-refcount2.test # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # . # dispose 0xaaaae811bd80! # ok 1 /gobject/refcount/properties-2 # slow test /gobject/refcount/properties-2 executed in 0.82 secs # End of refcount tests # End of gobject tests PASS: glib/properties-refcount2.test Running test: glib/memory-monitor-poll.test TAP version 14 # random seed: R02S89f79df9ed6f9c477c2a958c45e17836 1..4 # Start of memory-monitor-poll tests # GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation poll (GMemoryMonitorPoll) for ‘gio-memory-monitor’ ok 1 /memory-monitor-poll/dup-default # GLib-GIO-DEBUG: memory free ratio 0.190000 # GLib-GIO-DEBUG: Send low memory signal with warning level 2 ok 2 /memory-monitor-poll/critical-event # GLib-GIO-DEBUG: memory free ratio 0.290000 # GLib-GIO-DEBUG: Send low memory signal with warning level 1 ok 3 /memory-monitor-poll/medium-event # GLib-GIO-DEBUG: memory free ratio 0.390000 # GLib-GIO-DEBUG: Send low memory signal with warning level 0 ok 4 /memory-monitor-poll/low-event # End of memory-monitor-poll tests PASS: glib/memory-monitor-poll.test Running test: glib/gdbus-sasl.test TAP version 14 # random seed: R02Sa2843eaf178fb27081a39b6a4cad0d55 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 736863659b670f0ddda5b9ec69d85408” # New handshake: EXTERNAL without initial response # C:“AUTH EXTERNAL” # Expect: /^DATA$/ # S:“DATA” # C:“DATA 31303030” # Expect: /^OK [0-9a-f]+$/ # S:“OK 736863659b670f0ddda5b9ec69d85408” # New handshake: EXTERNAL with empty authorization identity # C:“AUTH EXTERNAL” # Expect: /^DATA$/ # S:“DATA” # C:“DATA” # Expect: /^OK [0-9a-f]+$/ # S:“OK 736863659b670f0ddda5b9ec69d85408” # 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 736863659b670f0ddda5b9ec69d85408” ok 1 /gdbus/sasl/server # End of sasl tests # End of gdbus tests PASS: glib/gdbus-sasl.test Running test: glib/proxy-test.test TAP version 14 # random seed: R02Sef93f0db930247cc1fa73883b73ac3d0 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 0xaaaae963f000 and GSocketClientAsyncConnectData 0xaaaae963e4f0 # 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 0xaaaae963fb80 for GSocketClientAsyncConnectData 0xaaaae963e4f0 # 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 0xaaaae963f630 and GSocketClientAsyncConnectData 0xaaaae963e4f0 # 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 0xaaaae963fb80 for GSocketClientAsyncConnectData 0xaaaae963e4f0 # 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 0xaaaae963f930 and GSocketClientAsyncConnectData 0xaaaae963f8c0 # 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 0xaaaae96411c0 for GSocketClientAsyncConnectData 0xaaaae963f8c0 # 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 0xaaaae9641160 for GSocketClientAsyncConnectData 0xaaaae963f8c0 # 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 0xaaaae963f510 and GSocketClientAsyncConnectData 0xaaaae96413e0 # 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 0xaaaae963f630 and GSocketClientAsyncConnectData 0xaaaae963f8c0 # 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 0xaaaae963f510 and GSocketClientAsyncConnectData 0xaaaae96413e0 # 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 0xaaaae963fbe0 for GSocketClientAsyncConnectData 0xaaaae96413e0 # 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 0xaaaae963f630 and GSocketClientAsyncConnectData 0xaaaae96413e0 # 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 0xaaaae9641450 for GSocketClientAsyncConnectData 0xaaaae96413e0 # 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 0xaaaae963f000 and GSocketClientAsyncConnectData 0xaaaae96413e0 # 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 0xaaaae9641620 and GSocketClientAsyncConnectData 0xaaaae963fad0 # 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 0xaaaae9640ba0 for GSocketClientAsyncConnectData 0xaaaae963fad0 # 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 0xaaaae963f510 and GSocketClientAsyncConnectData 0xaaaae963f8c0 # 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 0xaaaae963fbe0 for GSocketClientAsyncConnectData 0xaaaae963f8c0 # 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 0xaaaae963f000 and GSocketClientAsyncConnectData 0xaaaae963f8c0 # 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 0xaaaae963fbe0 for GSocketClientAsyncConnectData 0xaaaae963f8c0 # 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 0xaaaae963f510 and GSocketClientAsyncConnectData 0xaaaae9641220 # 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 0xaaaae9640ba0 for GSocketClientAsyncConnectData 0xaaaae9641220 # 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 0xaaaae963f000 and GSocketClientAsyncConnectData 0xaaaae96413e0 # 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 0xaaaae9641160 for GSocketClientAsyncConnectData 0xaaaae96413e0 # 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/file-enumerator.test TAP version 14 # random seed: R02S894193e27bc133efd59a200ffa816c89 1..1 # Start of file-enumerator tests # GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ‘gio-vfs’ ok 1 /file-enumerator/close-on-dispose # End of file-enumerator tests PASS: glib/file-enumerator.test Running test: glib/ir-parser.test TAP version 14 # random seed: R02Sa0d18dc30c94e168444731314d07ffcd 1..1 # Start of ir-parser tests # /ir-parser/type-parsing summary: Test parsing different valid and invalid types # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: pushing node 1 dummy # GLib-GIRepository-DEBUG: Parsed type: GLib.Error => 20 # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: popping node 1 dummy # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: pushing node 1 dummy # GLib-GIRepository-DEBUG: Parsed type: GLib.Error => 20 # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: popping node 1 dummy # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: # GLib-GIRepository-DEBUG: pushing node 1 dummy # GLib-GIRepository-DEBUG: Failed to parse type: 'GLib.Error4GB 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_HADDN3 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_MIFDN3 # Test 1, using temporary directory /var/volatile/tmp/g_file_replace_NMFDN3 # Test 2, using temporary directory /var/volatile/tmp/g_file_replace_DVFDN3 # Test 3, using temporary directory /var/volatile/tmp/g_file_replace_WHEDN3 # Test 4, using temporary directory /var/volatile/tmp/g_file_replace_PMEDN3 # Test 5, using temporary directory /var/volatile/tmp/g_file_replace_2REDN3 # Test 6, using temporary directory /var/volatile/tmp/g_file_replace_5XEDN3 # Test 7, using temporary directory /var/volatile/tmp/g_file_replace_IFADN3 # Test 8, using temporary directory /var/volatile/tmp/g_file_replace_LKADN3 # Test 9, using temporary directory /var/volatile/tmp/g_file_replace_1NADN3 # Test 10, using temporary directory /var/volatile/tmp/g_file_replace_AUADN3 # Test 11, using temporary directory /var/volatile/tmp/g_file_replace_W2ADN3 # Test 12, using temporary directory /var/volatile/tmp/g_file_replace_U6ADN3 # Test 13, using temporary directory /var/volatile/tmp/g_file_replace_8P9CN3 # Test 14, using temporary directory /var/volatile/tmp/g_file_replace_PW9CN3 # Test 15, using temporary directory /var/volatile/tmp/g_file_replace_I49CN3 # Test 16, using temporary directory /var/volatile/tmp/g_file_replace_92BDN3 # Test 17, using temporary directory /var/volatile/tmp/g_file_replace_J9BDN3 # Test 18, using temporary directory /var/volatile/tmp/g_file_replace_0FCDN3 # Test 19, using temporary directory /var/volatile/tmp/g_file_replace_PMCDN3 # Test 20, using temporary directory /var/volatile/tmp/g_file_replace_FSCDN3 # Test 21, using temporary directory /var/volatile/tmp/g_file_replace_6BBDN3 # Test 22, using temporary directory /var/volatile/tmp/g_file_replace_QEBDN3 # Test 23, using temporary directory /var/volatile/tmp/g_file_replace_OGBDN3 # Test 24, using temporary directory /var/volatile/tmp/g_file_replace_XJBDN3 # Test 25, using temporary directory /var/volatile/tmp/g_file_replace_2KBDN3 # Test 26, using temporary directory /var/volatile/tmp/g_file_replace_ANBDN3 # Test 27, using temporary directory /var/volatile/tmp/g_file_replace_3OBDN3 # Test 28, using temporary directory /var/volatile/tmp/g_file_replace_2RBDN3 # Test 29, using temporary directory /var/volatile/tmp/g_file_replace_RUBDN3 # Test 30, using temporary directory /var/volatile/tmp/g_file_replace_IWBDN3 # Test 31, using temporary directory /var/volatile/tmp/g_file_replace_FYBDN3 # Test 32, using temporary directory /var/volatile/tmp/g_file_replace_XZBDN3 # Test 33, using temporary directory /var/volatile/tmp/g_file_replace_1PUCN3 # Test 34, using temporary directory /var/volatile/tmp/g_file_replace_TRUCN3 # Test 35, using temporary directory /var/volatile/tmp/g_file_replace_ETUCN3 # Test 36, using temporary directory /var/volatile/tmp/g_file_replace_MWUCN3 # Test 37, using temporary directory /var/volatile/tmp/g_file_replace_4YUCN3 # Test 38, using temporary directory /var/volatile/tmp/g_file_replace_W0UCN3 # Test 39, using temporary directory /var/volatile/tmp/g_file_replace_V3UCN3 # Test 40, using temporary directory /var/volatile/tmp/g_file_replace_C6UCN3 # Test 41, using temporary directory /var/volatile/tmp/g_file_replace_S9UCN3 # Test 42, using temporary directory /var/volatile/tmp/g_file_replace_4AVCN3 # Test 43, using temporary directory /var/volatile/tmp/g_file_replace_WCVCN3 # Test 44, using temporary directory /var/volatile/tmp/g_file_replace_KFVCN3 # Test 45, using temporary directory /var/volatile/tmp/g_file_replace_ZWTCN3 # Test 46, using temporary directory /var/volatile/tmp/g_file_replace_JYTCN3 # Test 47, using temporary directory /var/volatile/tmp/g_file_replace_U0TCN3 # Test 48, using temporary directory /var/volatile/tmp/g_file_replace_R2TCN3 # We do not have CAP_DAC_OVERRIDE or equivalent # Test 49, using temporary directory /var/volatile/tmp/g_file_replace_D4TCN3 # We do not have CAP_DAC_OVERRIDE or equivalent # Test 50, using temporary directory /var/volatile/tmp/g_file_replace_T5TCN3 # We do not have CAP_DAC_OVERRIDE or equivalent # Test 51, using temporary directory /var/volatile/tmp/g_file_replace_Y8TCN3 # 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_SDUCN3 # Test 1, using temporary directory /var/volatile/tmp/g_file_replace_CGUCN3 # Test 2, using temporary directory /var/volatile/tmp/g_file_replace_2IUCN3 # Test 3, using temporary directory /var/volatile/tmp/g_file_replace_PKUCN3 # Test 4, using temporary directory /var/volatile/tmp/g_file_replace_GMUCN3 # Test 5, using temporary directory /var/volatile/tmp/g_file_replace_DOUCN3 # Test 6, using temporary directory /var/volatile/tmp/g_file_replace_1BWCN3 # Test 7, using temporary directory /var/volatile/tmp/g_file_replace_ZEWCN3 # Test 8, using temporary directory /var/volatile/tmp/g_file_replace_OGWCN3 # Test 9, using temporary directory /var/volatile/tmp/g_file_replace_AHWCN3 # Test 10, using temporary directory /var/volatile/tmp/g_file_replace_7JWCN3 # Test 11, using temporary directory /var/volatile/tmp/g_file_replace_6MWCN3 # Test 12, using temporary directory /var/volatile/tmp/g_file_replace_0OWCN3 # Test 13, using temporary directory /var/volatile/tmp/g_file_replace_SQWCN3 # Test 14, using temporary directory /var/volatile/tmp/g_file_replace_VTWCN3 # Test 15, using temporary directory /var/volatile/tmp/g_file_replace_NWWCN3 # Test 16, using temporary directory /var/volatile/tmp/g_file_replace_0XWCN3 # Test 17, using temporary directory /var/volatile/tmp/g_file_replace_00WCN3 # Test 18, using temporary directory /var/volatile/tmp/g_file_replace_92WCN3 # Test 19, using temporary directory /var/volatile/tmp/g_file_replace_ALVCN3 # Test 20, using temporary directory /var/volatile/tmp/g_file_replace_DOVCN3 # Test 21, using temporary directory /var/volatile/tmp/g_file_replace_UPVCN3 # Test 22, using temporary directory /var/volatile/tmp/g_file_replace_5TVCN3 # Test 23, using temporary directory /var/volatile/tmp/g_file_replace_FUVCN3 # Test 24, using temporary directory /var/volatile/tmp/g_file_replace_2WVCN3 # Test 25, using temporary directory /var/volatile/tmp/g_file_replace_80VCN3 # Test 26, using temporary directory /var/volatile/tmp/g_file_replace_73VCN3 # Test 27, using temporary directory /var/volatile/tmp/g_file_replace_Z5VCN3 # Test 28, using temporary directory /var/volatile/tmp/g_file_replace_B7VCN3 # Test 29, using temporary directory /var/volatile/tmp/g_file_replace_Y9VCN3 # Test 30, using temporary directory /var/volatile/tmp/g_file_replace_LMRCN3 # Test 31, using temporary directory /var/volatile/tmp/g_file_replace_IORCN3 # Test 32, using temporary directory /var/volatile/tmp/g_file_replace_SPRCN3 # Test 33, using temporary directory /var/volatile/tmp/g_file_replace_RSRCN3 # Test 34, using temporary directory /var/volatile/tmp/g_file_replace_AURCN3 # Test 35, using temporary directory /var/volatile/tmp/g_file_replace_IWRCN3 # Test 36, using temporary directory /var/volatile/tmp/g_file_replace_4YRCN3 # Test 37, using temporary directory /var/volatile/tmp/g_file_replace_P1RCN3 # Test 38, using temporary directory /var/volatile/tmp/g_file_replace_P4RCN3 # Test 39, using temporary directory /var/volatile/tmp/g_file_replace_M7RCN3 # Test 40, using temporary directory /var/volatile/tmp/g_file_replace_EASCN3 # Test 41, using temporary directory /var/volatile/tmp/g_file_replace_4BSCN3 # Test 42, using temporary directory /var/volatile/tmp/g_file_replace_2ESCN3 # Test 43, using temporary directory /var/volatile/tmp/g_file_replace_KVQCN3 # Test 44, using temporary directory /var/volatile/tmp/g_file_replace_EYQCN3 # Test 45, using temporary directory /var/volatile/tmp/g_file_replace_R0QCN3 # Test 46, using temporary directory /var/volatile/tmp/g_file_replace_31QCN3 # Test 47, using temporary directory /var/volatile/tmp/g_file_replace_F4QCN3 # Test 48, using temporary directory /var/volatile/tmp/g_file_replace_U5QCN3 # We do not have CAP_DAC_OVERRIDE or equivalent # Test 49, using temporary directory /var/volatile/tmp/g_file_replace_L7QCN3 # We do not have CAP_DAC_OVERRIDE or equivalent # Test 50, using temporary directory /var/volatile/tmp/g_file_replace_BARCN3 # We do not have CAP_DAC_OVERRIDE or equivalent # Test 51, using temporary directory /var/volatile/tmp/g_file_replace_GDRCN3 # 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-file-info-filesystem-readonly.test TAP version 14 # random seed: R02S0659d60da172455a51b458a3d5bac68b # 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/guuid.test TAP version 14 # random seed: R02Sfb55e0f0d057486a70cb72b1eedba782 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/type.test TAP version 14 # random seed: R02Se4b0e106d0988b11797b6d04ddd1c26f 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/completion.test TAP version 14 # random seed: R02Sb45c7b7e1c557e66895e23433e2f3583 1..1 # Start of completion tests ok 1 /completion/test-completion # End of completion tests PASS: glib/completion.test Running test: glib/repository.test TAP version 14 # random seed: R02S205009268a3494b44cf9c4d0e6174b53 1..24 # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/repository/dup_default/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/repository/dup_default/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/repository/dup_default/.dirs/system-config1:/var/volatile/tmp/repository/dup_default/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/repository/dup_default/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/repository/dup_default/.dirs/system-data1:/var/volatile/tmp/repository/dup_default/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/repository/dup_default/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/repository/dup_default/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/repository/dup_default/.dirs/runtime ok 23 /repository/dup_default # 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 24 /repository/base-info/clear # End of base-info tests # End of repository tests PASS: glib/repository.test Running test: glib/refcount-macro.test TAP version 14 # random seed: R02Sb0a00001ef0e3340c02c736a821690b9 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/unix-fd.test TAP version 14 # random seed: R02S8239b892f77ed27b499af3538cb30e04 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/dir.test TAP version 14 # random seed: R02S06976bdcfaa4c3e51b1ad285f9555ef3 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/async-splice-output-stream.test TAP version 14 # random seed: R02S337ebb9705ce6e39eb13c5219daef8cd 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/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/tmpf_pt110a # Running: ['/usr/libexec/installed-tests/glib/messages-low-memory'] # Return code: -6 # Output: # # Error: # GLib-Message: 01:36:24.904: Simulates a situation in which we were crashing because of low-memory, leading malloc to fail instead of aborting # GLib-Message: 01:36:24.904: bug: https://gitlab.gnome.org/GNOME/glib/-/issues/2753 # /usr/src/debug/glib-2.0/2.88.0/glib/gprintf.c:351: failed to allocate memory 1..1 PASS: glib/messages-low-memory.py.test Running test: glib/charset.test TAP version 14 # random seed: R02Se0ce5b5736129009784fe6bda27c246a 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/mkenums.py.test TAP version 13 ok 1 __main__.TestMkenums.test_available_in # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpanphw564 # rspfile: False # /tmp/tmpanphw564/tmpp9j33dil.h: # typedef enum { # G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<2) # } GDBusServerFlags; # # /tmp/tmpanphw564/tmpftdsn6dm.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/tmpanphw564/tmpftdsn6dm.template', '/tmp/tmpanphw564/tmpp9j33dil.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/tmpanphw564/tmpp9j33dil.h # basename: tmpp9j33dil.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/tmp99_obaoi # rspfile: False # /tmp/tmp99_obaoi/tmp2zy_dfjc.h: # typedef enum { # ENUM_VALUE_WITH_COMMA = ',', # } TestCommaEnum; # # /tmp/tmp99_obaoi/tmp_l8l1gyq.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/tmp99_obaoi/tmp_l8l1gyq.template', '/tmp/tmp99_obaoi/tmp2zy_dfjc.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/tmp99_obaoi/tmp2zy_dfjc.h # basename: tmp2zy_dfjc.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/tmp2fdhrdkx # rspfile: False # /tmp/tmp2fdhrdkx/tmpokcqitj_.h: # typedef enum { # G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_DEPRECATED_ENUMERATOR_IN_2_68 = (1<<2) # } GDBusServerFlags; # # /tmp/tmp2fdhrdkx/tmpddldtb3j.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/tmp2fdhrdkx/tmpddldtb3j.template', '/tmp/tmp2fdhrdkx/tmpokcqitj_.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/tmp2fdhrdkx/tmpokcqitj_.h # basename: tmpokcqitj_.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/tmps7vya9ey # rspfile: False # /tmp/tmps7vya9ey/tmpm8qy2enp.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/tmps7vya9ey/tmp0rvu9kre.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/tmps7vya9ey/tmp0rvu9kre.template', '/tmp/tmps7vya9ey/tmpm8qy2enp.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/tmps7vya9ey/tmpm8qy2enp.h # basename: tmpm8qy2enp.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/tmpjuz64v14 # rspfile: False # /tmp/tmpjuz64v14/tmp7w04_t29.h: # /tmp/tmpjuz64v14/tmpa1jwi3kp.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/tmpjuz64v14/tmpa1jwi3kp.template', '/tmp/tmpjuz64v14/tmp7w04_t29.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/tmptu4rbirg # rspfile: False # /tmp/tmptu4rbirg/tmp0w8s3dcz.template: # Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmptu4rbirg/tmp0w8s3dcz.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/tmp8ohoxrwl # rspfile: False # /tmp/tmp8ohoxrwl/tmp5_pmnriy.h: # typedef enum _SomeEnumIdentifier { # ENUM_VALUE # } SomeEnumIdentifier; # # /tmp/tmp8ohoxrwl/tmp4p2vi90t.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/tmp8ohoxrwl/tmp4p2vi90t.template', '/tmp/tmp8ohoxrwl/tmp5_pmnriy.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/tmp8ohoxrwl/tmp5_pmnriy.h # basename: tmp5_pmnriy.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/tmpvs7h1lem # rspfile: False # /tmp/tmpvs7h1lem/tmp2oi_9ksi.h: # typedef enum { # ENUM_VALUE_PUBLIC1, # /*< private >*/ # ENUM_VALUE_PRIVATE, # } SomeEnumA # # /tmp/tmpvs7h1lem/tmpbmyvp7z2.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/tmpvs7h1lem/tmpbmyvp7z2.template', '/tmp/tmpvs7h1lem/tmp2oi_9ksi.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/tmpvs7h1lem/tmp2oi_9ksi.h # basename: tmp2oi_9ksi.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/tmpvs7h1lem/tmpqlr4a0bn.h: # typedef enum { # /*< private >*/ # ENUM_VALUE_PRIVATE, # /*< public >*/ # ENUM_VALUE_PUBLIC2, # } SomeEnumB; # # /tmp/tmpvs7h1lem/tmprm9r4bhi.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/tmpvs7h1lem/tmprm9r4bhi.template', '/tmp/tmpvs7h1lem/tmpqlr4a0bn.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/tmpvs7h1lem/tmpqlr4a0bn.h # basename: tmpqlr4a0bn.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/tmp0_qmkvtk # rspfile: False # /tmp/tmp0_qmkvtk/tmph4_27oqd.h: # typedef enum { # /*< private >*/ # ENUM_VALUE_PRIVATE = 5, # /*< public >*/ # ENUM_VALUE_PUBLIC = ENUM_VALUE_PRIVATE + 2, # } TestSymbolicEnum; # # /tmp/tmp0_qmkvtk/tmpjzy4ij7f.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/tmp0_qmkvtk/tmpjzy4ij7f.template', '/tmp/tmp0_qmkvtk/tmph4_27oqd.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/tmp0_qmkvtk/tmph4_27oqd.h # basename: tmph4_27oqd.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/tmpg4nx39e6 # rspfile: False # /tmp/tmpg4nx39e6/tmpy_mf3jwp.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/tmpg4nx39e6/tmpy_mf3jwp.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. Executing: glib/mkenums.py.test ok 11 __main__.TestMkenums.test_flag_enum_annotation # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpbx4fn5yo # rspfile: False # /tmp/tmpbx4fn5yo/tmptky__wte.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } G_GNUC_FLAG_ENUM SomeFlags; # # /tmp/tmpbx4fn5yo/tmp2xv_jlpt.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/tmpbx4fn5yo/tmp2xv_jlpt.template', '/tmp/tmpbx4fn5yo/tmptky__wte.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/tmpbx4fn5yo/tmptky__wte.h # basename: tmptky__wte.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmppsz_hsyh.h: # typedef enum G_GNUC_FLAG_ENUM { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmpxisi5qsu.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/tmpbx4fn5yo/tmpxisi5qsu.template', '/tmp/tmpbx4fn5yo/tmppsz_hsyh.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/tmpbx4fn5yo/tmppsz_hsyh.h # basename: tmppsz_hsyh.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpydny_3nk.h: # typedef enum G_GNUC_FLAG_ENUM _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmp2rbnsjqm.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/tmpbx4fn5yo/tmp2rbnsjqm.template', '/tmp/tmpbx4fn5yo/tmpydny_3nk.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/tmpbx4fn5yo/tmpydny_3nk.h # basename: tmpydny_3nk.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmph6kalgd6.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } __attribute__((flag_enum)) SomeFlags; # # /tmp/tmpbx4fn5yo/tmp9wnl6gei.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/tmpbx4fn5yo/tmp9wnl6gei.template', '/tmp/tmpbx4fn5yo/tmph6kalgd6.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/tmpbx4fn5yo/tmph6kalgd6.h # basename: tmph6kalgd6.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpbwpwllu4.h: # typedef enum __attribute__((flag_enum)) { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmpcfr4li23.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/tmpbx4fn5yo/tmpcfr4li23.template', '/tmp/tmpbx4fn5yo/tmpbwpwllu4.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/tmpbx4fn5yo/tmpbwpwllu4.h # basename: tmpbwpwllu4.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmp3vs_z_yn.h: # typedef enum __attribute__((flag_enum)) _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmp85ce3pod.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/tmpbx4fn5yo/tmp85ce3pod.template', '/tmp/tmpbx4fn5yo/tmp3vs_z_yn.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/tmpbx4fn5yo/tmp3vs_z_yn.h # basename: tmp3vs_z_yn.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpwl4c33lp.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } __attribute__((__flag_enum__)) SomeFlags; # # /tmp/tmpbx4fn5yo/tmpjblhmfbs.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/tmpbx4fn5yo/tmpjblhmfbs.template', '/tmp/tmpbx4fn5yo/tmpwl4c33lp.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/tmpbx4fn5yo/tmpwl4c33lp.h # basename: tmpwl4c33lp.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpj544gpp7.h: # typedef enum __attribute__((__flag_enum__)) { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmpfk9syfua.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/tmpbx4fn5yo/tmpfk9syfua.template', '/tmp/tmpbx4fn5yo/tmpj544gpp7.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/tmpbx4fn5yo/tmpj544gpp7.h # basename: tmpj544gpp7.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmp8357a1h_.h: # typedef enum __attribute__((__flag_enum__)) _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmprdisaxr_.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/tmpbx4fn5yo/tmprdisaxr_.template', '/tmp/tmpbx4fn5yo/tmp8357a1h_.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/tmpbx4fn5yo/tmp8357a1h_.h # basename: tmp8357a1h_.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpvz2irn37.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } __attribute__((flag_enum,deprecated)) SomeFlags; # # /tmp/tmpbx4fn5yo/tmpkgmw21bd.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/tmpbx4fn5yo/tmpkgmw21bd.template', '/tmp/tmpbx4fn5yo/tmpvz2irn37.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/tmpbx4fn5yo/tmpvz2irn37.h # basename: tmpvz2irn37.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmppamb3i6f.h: # typedef enum __attribute__((flag_enum,deprecated)) { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmpj4msg_m_.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/tmpbx4fn5yo/tmpj4msg_m_.template', '/tmp/tmpbx4fn5yo/tmppamb3i6f.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/tmpbx4fn5yo/tmppamb3i6f.h # basename: tmppamb3i6f.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpoli16h_m.h: # typedef enum __attribute__((flag_enum,deprecated)) _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmp1khmvh76.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/tmpbx4fn5yo/tmp1khmvh76.template', '/tmp/tmpbx4fn5yo/tmpoli16h_m.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/tmpbx4fn5yo/tmpoli16h_m.h # basename: tmpoli16h_m.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpju3zacjz.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } __attribute__((deprecated,__flag_enum__)) SomeFlags; # # /tmp/tmpbx4fn5yo/tmpty0vanni.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/tmpbx4fn5yo/tmpty0vanni.template', '/tmp/tmpbx4fn5yo/tmpju3zacjz.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/tmpbx4fn5yo/tmpju3zacjz.h # basename: tmpju3zacjz.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmp4ljrzugc.h: # typedef enum __attribute__((deprecated,__flag_enum__)) { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmp99vhtdr7.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/tmpbx4fn5yo/tmp99vhtdr7.template', '/tmp/tmpbx4fn5yo/tmp4ljrzugc.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/tmpbx4fn5yo/tmp4ljrzugc.h # basename: tmp4ljrzugc.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmps1l54wi5.h: # typedef enum __attribute__((deprecated,__flag_enum__)) _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmpr58duth1.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/tmpbx4fn5yo/tmpr58duth1.template', '/tmp/tmpbx4fn5yo/tmps1l54wi5.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/tmpbx4fn5yo/tmps1l54wi5.h # basename: tmps1l54wi5.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpc_f199en.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } [[gnu::flag_enum]] SomeFlags; # # /tmp/tmpbx4fn5yo/tmpa__n86gi.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/tmpbx4fn5yo/tmpa__n86gi.template', '/tmp/tmpbx4fn5yo/tmpc_f199en.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/tmpbx4fn5yo/tmpc_f199en.h # basename: tmpc_f199en.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpa787tw3f.h: # typedef enum [[gnu::flag_enum]] { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmpf9fftv8s.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/tmpbx4fn5yo/tmpf9fftv8s.template', '/tmp/tmpbx4fn5yo/tmpa787tw3f.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/tmpbx4fn5yo/tmpa787tw3f.h # basename: tmpa787tw3f.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpljtc2lvb.h: # typedef enum [[gnu::flag_enum]] _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmp4ih477qa.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/tmpbx4fn5yo/tmp4ih477qa.template', '/tmp/tmpbx4fn5yo/tmpljtc2lvb.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/tmpbx4fn5yo/tmpljtc2lvb.h # basename: tmpljtc2lvb.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpz21ff9wk.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } [[clang::flag_enum]] SomeFlags; # # /tmp/tmpbx4fn5yo/tmp5b19259s.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/tmpbx4fn5yo/tmp5b19259s.template', '/tmp/tmpbx4fn5yo/tmpz21ff9wk.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/tmpbx4fn5yo/tmpz21ff9wk.h # basename: tmpz21ff9wk.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmp5oe8r7zd.h: # typedef enum [[clang::flag_enum]] { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmpw31hzcil.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/tmpbx4fn5yo/tmpw31hzcil.template', '/tmp/tmpbx4fn5yo/tmp5oe8r7zd.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/tmpbx4fn5yo/tmp5oe8r7zd.h # basename: tmp5oe8r7zd.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmp14vi_r6v.h: # typedef enum [[clang::flag_enum]] _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmpjw6b9psw.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/tmpbx4fn5yo/tmpjw6b9psw.template', '/tmp/tmpbx4fn5yo/tmp14vi_r6v.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/tmpbx4fn5yo/tmp14vi_r6v.h # basename: tmp14vi_r6v.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpdaqjrfao.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } [[nodiscard,gnu::flag_enum]] SomeFlags; # # /tmp/tmpbx4fn5yo/tmpg9vmoi0g.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/tmpbx4fn5yo/tmpg9vmoi0g.template', '/tmp/tmpbx4fn5yo/tmpdaqjrfao.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/tmpbx4fn5yo/tmpdaqjrfao.h # basename: tmpdaqjrfao.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpxuj3dowi.h: # typedef enum [[nodiscard,gnu::flag_enum]] { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmp8ohpe2ug.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/tmpbx4fn5yo/tmp8ohpe2ug.template', '/tmp/tmpbx4fn5yo/tmpxuj3dowi.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/tmpbx4fn5yo/tmpxuj3dowi.h # basename: tmpxuj3dowi.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmp2thqgmas.h: # typedef enum [[nodiscard,gnu::flag_enum]] _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmpjc1p03y7.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/tmpbx4fn5yo/tmpjc1p03y7.template', '/tmp/tmpbx4fn5yo/tmp2thqgmas.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/tmpbx4fn5yo/tmp2thqgmas.h # basename: tmp2thqgmas.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmp80_w2_hw.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } [[clang::flag_enum,nodiscard]] SomeFlags; # # /tmp/tmpbx4fn5yo/tmpnu0zc6rz.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/tmpbx4fn5yo/tmpnu0zc6rz.template', '/tmp/tmpbx4fn5yo/tmp80_w2_hw.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/tmpbx4fn5yo/tmp80_w2_hw.h # basename: tmp80_w2_hw.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmp0e58ymu4.h: # typedef enum [[clang::flag_enum,nodiscard]] { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmp9akg5frk.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/tmpbx4fn5yo/tmp9akg5frk.template', '/tmp/tmpbx4fn5yo/tmp0e58ymu4.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/tmpbx4fn5yo/tmp0e58ymu4.h # basename: tmp0e58ymu4.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpbx4fn5yo/tmpxewk19gn.h: # typedef enum [[clang::flag_enum,nodiscard]] _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpbx4fn5yo/tmpp_sffiv0.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/tmpbx4fn5yo/tmpp_sffiv0.template', '/tmp/tmpbx4fn5yo/tmpxewk19gn.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/tmpbx4fn5yo/tmpxewk19gn.h # basename: tmpxewk19gn.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: ok 12 __main__.TestMkenums.test_help # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmp6cy1nxc5 # 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 13 __main__.TestMkenums.test_no_args # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmp_ox__554 # 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 14 __main__.TestMkenums.test_no_headers # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpq3q0yu0z # rspfile: False # /tmp/tmpq3q0yu0z/tmp_vbbs_0f.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/tmpq3q0yu0z/tmp_vbbs_0f.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 15 __main__.TestMkenums.test_no_nick # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmp8whzzatr # rspfile: False # /tmp/tmp8whzzatr/tmp3mn2k2d9.h: # typedef enum { # GEGL_SAMPLER_NEAREST = 0, /*< desc="nearest" >*/ # } GeglSamplerType; # # /tmp/tmp8whzzatr/tmpddr4nn52.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/tmp8whzzatr/tmpddr4nn52.template', '/tmp/tmp8whzzatr/tmp3mn2k2d9.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/tmp8whzzatr/tmp3mn2k2d9.h # basename: tmp3mn2k2d9.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 16 __main__.TestMkenums.test_non_utf8_encoding # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpgd5jk6gk # rspfile: False # /tmp/tmpgd5jk6gk/tmputx62_8a.h: # /* Copyright © La Peña */ # typedef enum { # ENUM_VALUE # } SomeEnumIdentifier; # # /tmp/tmpgd5jk6gk/tmp9yjes4cl.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/tmpgd5jk6gk/tmp9yjes4cl.template', '/tmp/tmpgd5jk6gk/tmputx62_8a.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/tmpgd5jk6gk/tmputx62_8a.h # basename: tmputx62_8a.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 17 __main__.TestMkenums.test_reproducible # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmprx2iopvh # rspfile: False # /tmp/tmprx2iopvh/tmpn7mn7hhp.template: template # Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmprx2iopvh/tmpn7mn7hhp.template', '/tmp/tmprx2iopvh/tmpik3y6bz31.h', '/tmp/tmprx2iopvh/tmp_xnkkjm32.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/tmprx2iopvh/tmpmpnkakr3.template: template # Running: ['/usr/bin/glib-mkenums', '--template', '/tmp/tmprx2iopvh/tmpmpnkakr3.template', '/tmp/tmprx2iopvh/tmp_xnkkjm32.h', '/tmp/tmprx2iopvh/tmpik3y6bz31.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 18 __main__.TestMkenums.test_since # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmppu5mb4hw # rspfile: False # /tmp/tmppu5mb4hw/tmpx0qt83x2.h: # typedef enum { /*< since=1.0 >*/ # QMI_WMS_MESSAGE_PROTOCOL_CDMA = 0, # } QmiWmsMessageProtocol; # # /tmp/tmppu5mb4hw/tmp_f4r3fm0.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/tmppu5mb4hw/tmp_f4r3fm0.template', '/tmp/tmppu5mb4hw/tmpx0qt83x2.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/tmppu5mb4hw/tmpx0qt83x2.h # basename: tmpx0qt83x2.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 19 __main__.TestMkenums.test_with_double_quotes # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmplz_pulv9 # rspfile: False # /tmp/tmplz_pulv9/tmp9bj2j23w.h: # typedef enum { # FOO_VALUE /*< nick="eek, a comma" >*/ # } Foo; # # /tmp/tmplz_pulv9/tmp7qui1o18.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/tmplz_pulv9/tmp7qui1o18.template', '/tmp/tmplz_pulv9/tmp9bj2j23w.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/tmplz_pulv9/tmp9bj2j23w.h # basename: tmp9bj2j23w.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 20 __main__.TestRspMkenums.test_available_in # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpxf7kqf_c # rspfile: True # /tmp/tmpxf7kqf_c/tmp7s13se2f.h: # typedef enum { # G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<2) # } GDBusServerFlags; # # /tmp/tmpxf7kqf_c/tmphsonbob5.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/tmpxf7kqf_c/tmphsonbob5.template /tmp/tmpxf7kqf_c/tmp7s13se2f.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpxf7kqf_c/tmpngngby6b'] # 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/tmpxf7kqf_c/tmp7s13se2f.h # basename: tmp7s13se2f.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 21 __main__.TestRspMkenums.test_comma_in_enum_value # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpjtbj0nsl # rspfile: True # /tmp/tmpjtbj0nsl/tmpe92gwsa5.h: # typedef enum { # ENUM_VALUE_WITH_COMMA = ',', # } TestCommaEnum; # # /tmp/tmpjtbj0nsl/tmpgw8z3hsu.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/tmpjtbj0nsl/tmpgw8z3hsu.template /tmp/tmpjtbj0nsl/tmpe92gwsa5.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpjtbj0nsl/tmphwej4hcx'] # 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/tmpjtbj0nsl/tmpe92gwsa5.h # basename: tmpe92gwsa5.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 22 __main__.TestRspMkenums.test_deprecated_in # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmp1mwdpk3b # rspfile: True # /tmp/tmp1mwdpk3b/tmpoh6i9h09.h: # typedef enum { # G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_DEPRECATED_ENUMERATOR_IN_2_68 = (1<<2) # } GDBusServerFlags; # # /tmp/tmp1mwdpk3b/tmp92gbbnsf.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/tmp1mwdpk3b/tmp92gbbnsf.template /tmp/tmp1mwdpk3b/tmpoh6i9h09.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp1mwdpk3b/tmpicdg6h22'] # 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/tmp1mwdpk3b/tmpoh6i9h09.h # basename: tmpoh6i9h09.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_deprecated_in_for # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpckd7e3sd # rspfile: True # /tmp/tmpckd7e3sd/tmp80tqtxx7.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/tmpckd7e3sd/tmp6ris7tes.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/tmpckd7e3sd/tmp6ris7tes.template /tmp/tmpckd7e3sd/tmp80tqtxx7.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpckd7e3sd/tmpr06p_uw8'] # 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/tmpckd7e3sd/tmp80tqtxx7.h # basename: tmp80tqtxx7.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 24 __main__.TestRspMkenums.test_empty_header # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmps1188zbg # rspfile: True # /tmp/tmps1188zbg/tmpatsk1ihu.h: # /tmp/tmps1188zbg/tmpeu4pa5rd.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/tmps1188zbg/tmpeu4pa5rd.template /tmp/tmps1188zbg/tmpatsk1ihu.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmps1188zbg/tmp0oclxkic'] # 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 25 __main__.TestRspMkenums.test_empty_template # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpe7x12rxu # rspfile: True # /tmp/tmpe7x12rxu/tmpbhqeqhe5.template: # Response file contains: --template /tmp/tmpe7x12rxu/tmpbhqeqhe5.template # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpe7x12rxu/tmp119j1l2k'] # 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 26 __main__.TestRspMkenums.test_enum_name # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpi8y1iqqh # rspfile: True # /tmp/tmpi8y1iqqh/tmpdx3rek4o.h: # typedef enum _SomeEnumIdentifier { # ENUM_VALUE # } SomeEnumIdentifier; # # /tmp/tmpi8y1iqqh/tmp6fahf25g.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/tmpi8y1iqqh/tmp6fahf25g.template /tmp/tmpi8y1iqqh/tmpdx3rek4o.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpi8y1iqqh/tmp3vn6krbl'] # 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/tmpi8y1iqqh/tmpdx3rek4o.h # basename: tmpdx3rek4o.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 27 __main__.TestRspMkenums.test_enum_private_public # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmp5brvba9n # rspfile: True # /tmp/tmp5brvba9n/tmpmvojqvzi.h: # typedef enum { # ENUM_VALUE_PUBLIC1, # /*< private >*/ # ENUM_VALUE_PRIVATE, # } SomeEnumA # # /tmp/tmp5brvba9n/tmpwxajzuhz.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/tmp5brvba9n/tmpwxajzuhz.template /tmp/tmp5brvba9n/tmpmvojqvzi.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp5brvba9n/tmpwe_onjd2'] # 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/tmp5brvba9n/tmpmvojqvzi.h # basename: tmpmvojqvzi.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/tmp5brvba9n/tmpbt6euioz.h: # typedef enum { # /*< private >*/ # ENUM_VALUE_PRIVATE, # /*< public >*/ # ENUM_VALUE_PUBLIC2, # } SomeEnumB; # # /tmp/tmp5brvba9n/tmpb4_gy87x.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/tmp5brvba9n/tmpb4_gy87x.template /tmp/tmp5brvba9n/tmpbt6euioz.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp5brvba9n/tmpiaonvazm'] # 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/tmp5brvba9n/tmpbt6euioz.h # basename: tmpbt6euioz.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 28 __main__.TestRspMkenums.test_enum_symbolic_expression # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpw0fr7jnd # rspfile: True # /tmp/tmpw0fr7jnd/tmpn15lj4cw.h: # typedef enum { # /*< private >*/ # ENUM_VALUE_PRIVATE = 5, # /*< public >*/ # ENUM_VALUE_PUBLIC = ENUM_VALUE_PRIVATE + 2, # } TestSymbolicEnum; # # /tmp/tmpw0fr7jnd/tmppvzzwuf5.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/tmpw0fr7jnd/tmppvzzwuf5.template /tmp/tmpw0fr7jnd/tmpn15lj4cw.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpw0fr7jnd/tmpp2nkyc9r'] # 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/tmpw0fr7jnd/tmpn15lj4cw.h # basename: tmpn15lj4cw.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 29 __main__.TestRspMkenums.test_filename_basename_in_fhead_ftail # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmp8ajv4h5a # rspfile: True # /tmp/tmp8ajv4h5a/tmplgyem55h.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/tmp8ajv4h5a/tmplgyem55h.template # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp8ajv4h5a/tmp43pd8po1'] # 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 30 __main__.TestRspMkenums.test_flag_enum_annotation # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpmfpgsf2l # rspfile: True # /tmp/tmpmfpgsf2l/tmpbmmkrzzb.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } G_GNUC_FLAG_ENUM SomeFlags; # # /tmp/tmpmfpgsf2l/tmpna4ddxjf.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/tmpmfpgsf2l/tmpna4ddxjf.template /tmp/tmpmfpgsf2l/tmpbmmkrzzb.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpi8vv1lr7'] # 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/tmpmfpgsf2l/tmpbmmkrzzb.h # basename: tmpbmmkrzzb.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpxmzipz_w.h: # typedef enum G_GNUC_FLAG_ENUM { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmp6z253416.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/tmpmfpgsf2l/tmp6z253416.template /tmp/tmpmfpgsf2l/tmpxmzipz_w.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpf2fa1k9q'] # 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/tmpmfpgsf2l/tmpxmzipz_w.h # basename: tmpxmzipz_w.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmplst_kudb.h: # typedef enum G_GNUC_FLAG_ENUM _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpffkwhftl.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/tmpmfpgsf2l/tmpffkwhftl.template /tmp/tmpmfpgsf2l/tmplst_kudb.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpp_b_1ywc'] # 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/tmpmfpgsf2l/tmplst_kudb.h # basename: tmplst_kudb.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmptwr8le2i.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } __attribute__((flag_enum)) SomeFlags; # # /tmp/tmpmfpgsf2l/tmpmpdx5wv_.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/tmpmfpgsf2l/tmpmpdx5wv_.template /tmp/tmpmfpgsf2l/tmptwr8le2i.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpm4kd8r0q'] # 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/tmpmfpgsf2l/tmptwr8le2i.h # basename: tmptwr8le2i.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpt2335i65.h: # typedef enum __attribute__((flag_enum)) { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpygvmd6uu.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/tmpmfpgsf2l/tmpygvmd6uu.template /tmp/tmpmfpgsf2l/tmpt2335i65.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpmupmmnbk'] # 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/tmpmfpgsf2l/tmpt2335i65.h # basename: tmpt2335i65.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmph03bakal.h: # typedef enum __attribute__((flag_enum)) _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmp4149fe2_.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/tmpmfpgsf2l/tmp4149fe2_.template /tmp/tmpmfpgsf2l/tmph03bakal.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpvdadlae2'] # 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/tmpmfpgsf2l/tmph03bakal.h # basename: tmph03bakal.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmp7zmz9g4v.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } __attribute__((__flag_enum__)) SomeFlags; # # /tmp/tmpmfpgsf2l/tmpsb2dp6oa.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/tmpmfpgsf2l/tmpsb2dp6oa.template /tmp/tmpmfpgsf2l/tmp7zmz9g4v.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpw828mqf3'] # 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/tmpmfpgsf2l/tmp7zmz9g4v.h # basename: tmp7zmz9g4v.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpcg_aqec5.h: # typedef enum __attribute__((__flag_enum__)) { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmp32opcnj7.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/tmpmfpgsf2l/tmp32opcnj7.template /tmp/tmpmfpgsf2l/tmpcg_aqec5.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmp55sugc52'] # 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/tmpmfpgsf2l/tmpcg_aqec5.h # basename: tmpcg_aqec5.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpd62oivwd.h: # typedef enum __attribute__((__flag_enum__)) _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpn1k9uw58.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/tmpmfpgsf2l/tmpn1k9uw58.template /tmp/tmpmfpgsf2l/tmpd62oivwd.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpqphsid6u'] # 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/tmpmfpgsf2l/tmpd62oivwd.h # basename: tmpd62oivwd.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpym1fo2q2.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } __attribute__((flag_enum,deprecated)) SomeFlags; # # /tmp/tmpmfpgsf2l/tmp6pam2gg4.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/tmpmfpgsf2l/tmp6pam2gg4.template /tmp/tmpmfpgsf2l/tmpym1fo2q2.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpbr83i3ul'] # 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/tmpmfpgsf2l/tmpym1fo2q2.h # basename: tmpym1fo2q2.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpiil_nwcf.h: # typedef enum __attribute__((flag_enum,deprecated)) { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmp6ryep96n.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/tmpmfpgsf2l/tmp6ryep96n.template /tmp/tmpmfpgsf2l/tmpiil_nwcf.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpkjko5cfl'] # 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/tmpmfpgsf2l/tmpiil_nwcf.h # basename: tmpiil_nwcf.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpkn0k_oqk.h: # typedef enum __attribute__((flag_enum,deprecated)) _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpgwfgzg77.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/tmpmfpgsf2l/tmpgwfgzg77.template /tmp/tmpmfpgsf2l/tmpkn0k_oqk.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmp_c0t2icj'] # 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/tmpmfpgsf2l/tmpkn0k_oqk.h # basename: tmpkn0k_oqk.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmptsozy0aq.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } __attribute__((deprecated,__flag_enum__)) SomeFlags; # # /tmp/tmpmfpgsf2l/tmpr5bg68l5.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/tmpmfpgsf2l/tmpr5bg68l5.template /tmp/tmpmfpgsf2l/tmptsozy0aq.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmp_3tqh_hz'] # 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/tmpmfpgsf2l/tmptsozy0aq.h # basename: tmptsozy0aq.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpcrgvvj_7.h: # typedef enum __attribute__((deprecated,__flag_enum__)) { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpr3v46i_z.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/tmpmfpgsf2l/tmpr3v46i_z.template /tmp/tmpmfpgsf2l/tmpcrgvvj_7.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmplbih_1gv'] # 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/tmpmfpgsf2l/tmpcrgvvj_7.h # basename: tmpcrgvvj_7.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpg53krn6m.h: # typedef enum __attribute__((deprecated,__flag_enum__)) _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmp62izztze.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/tmpmfpgsf2l/tmp62izztze.template /tmp/tmpmfpgsf2l/tmpg53krn6m.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmps67cb8fo'] # 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/tmpmfpgsf2l/tmpg53krn6m.h # basename: tmpg53krn6m.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpmztbuzfj.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } [[gnu::flag_enum]] SomeFlags; # # /tmp/tmpmfpgsf2l/tmpvkztonq5.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/tmpmfpgsf2l/tmpvkztonq5.template /tmp/tmpmfpgsf2l/tmpmztbuzfj.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpk64exink'] # 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/tmpmfpgsf2l/tmpmztbuzfj.h # basename: tmpmztbuzfj.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpvr7atfxq.h: # typedef enum [[gnu::flag_enum]] { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpc57pgu3c.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/tmpmfpgsf2l/tmpc57pgu3c.template /tmp/tmpmfpgsf2l/tmpvr7atfxq.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmp56j7ae9o'] # 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/tmpmfpgsf2l/tmpvr7atfxq.h # basename: tmpvr7atfxq.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmp73rlmwsg.h: # typedef enum [[gnu::flag_enum]] _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmp75yydtd1.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/tmpmfpgsf2l/tmp75yydtd1.template /tmp/tmpmfpgsf2l/tmp73rlmwsg.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpc5fqvksm'] # 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/tmpmfpgsf2l/tmp73rlmwsg.h # basename: tmp73rlmwsg.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpqwgvt2bj.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } [[clang::flag_enum]] SomeFlags; # # /tmp/tmpmfpgsf2l/tmpwqg0n6_6.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/tmpmfpgsf2l/tmpwqg0n6_6.template /tmp/tmpmfpgsf2l/tmpqwgvt2bj.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmp_gcafdb_'] # 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/tmpmfpgsf2l/tmpqwgvt2bj.h # basename: tmpqwgvt2bj.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmppk74yecd.h: # typedef enum [[clang::flag_enum]] { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpdhm4znyk.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/tmpmfpgsf2l/tmpdhm4znyk.template /tmp/tmpmfpgsf2l/tmppk74yecd.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpyo1b99hu'] # 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/tmpmfpgsf2l/tmppk74yecd.h # basename: tmppk74yecd.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmp7fc_nuj0.h: # typedef enum [[clang::flag_enum]] _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpihaq5eu5.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/tmpmfpgsf2l/tmpihaq5eu5.template /tmp/tmpmfpgsf2l/tmp7fc_nuj0.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpz7t0f2hj'] # 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/tmpmfpgsf2l/tmp7fc_nuj0.h # basename: tmp7fc_nuj0.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpx9hn0ygm.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } [[nodiscard,gnu::flag_enum]] SomeFlags; # # /tmp/tmpmfpgsf2l/tmpphqd1o7i.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/tmpmfpgsf2l/tmpphqd1o7i.template /tmp/tmpmfpgsf2l/tmpx9hn0ygm.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmp0nk_9ac9'] # 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/tmpmfpgsf2l/tmpx9hn0ygm.h # basename: tmpx9hn0ygm.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpa11z6s7r.h: # typedef enum [[nodiscard,gnu::flag_enum]] { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpf2wbmbf1.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/tmpmfpgsf2l/tmpf2wbmbf1.template /tmp/tmpmfpgsf2l/tmpa11z6s7r.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmp7iyzspsz'] # 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/tmpmfpgsf2l/tmpa11z6s7r.h # basename: tmpa11z6s7r.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmp6oh342eb.h: # typedef enum [[nodiscard,gnu::flag_enum]] _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpmjd63x99.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/tmpmfpgsf2l/tmpmjd63x99.template /tmp/tmpmfpgsf2l/tmp6oh342eb.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpwioy52o0'] # 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/tmpmfpgsf2l/tmp6oh342eb.h # basename: tmp6oh342eb.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmp2cls2erm.h: # typedef enum { # SOME_FLAGS_ONE = (1 << 1), # } [[clang::flag_enum,nodiscard]] SomeFlags; # # /tmp/tmpmfpgsf2l/tmpf_tkgqsp.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/tmpmfpgsf2l/tmpf_tkgqsp.template /tmp/tmpmfpgsf2l/tmp2cls2erm.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmpwfze66kq'] # 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/tmpmfpgsf2l/tmp2cls2erm.h # basename: tmp2cls2erm.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_ONE # valuenick: one # valuenum: 2 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmptjdag5h7.h: # typedef enum [[clang::flag_enum,nodiscard]] { # SOME_FLAGS_TWO = (1 << 2), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpd4tavpag.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/tmpmfpgsf2l/tmpd4tavpag.template /tmp/tmpmfpgsf2l/tmptjdag5h7.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmp_055gklh'] # 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/tmpmfpgsf2l/tmptjdag5h7.h # basename: tmptjdag5h7.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_TWO # valuenick: two # valuenum: 4 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: # # /tmp/tmpmfpgsf2l/tmpophtbbba.h: # typedef enum [[clang::flag_enum,nodiscard]] _SomeFlags { # SOME_FLAGS_THREE = (1 << 3), # } SomeFlags; # # /tmp/tmpmfpgsf2l/tmpep4pg2dz.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/tmpmfpgsf2l/tmpep4pg2dz.template /tmp/tmpmfpgsf2l/tmpophtbbba.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpmfpgsf2l/tmplw50hlcy'] # 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/tmpmfpgsf2l/tmpophtbbba.h # basename: tmpophtbbba.h # enumeration-production # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-header # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # value-production # VALUENAME: SOME_FLAGS_THREE # valuenick: three # valuenum: 8 # type: flags # Type: Flags # TYPE: FLAGS # value-tail # EnumName: SomeFlags # enum_name: some_flags # ENUMNAME: SOME_FLAGS # ENUMSHORT: FLAGS # ENUMPREFIX: SOME # enumsince: # type: flags # Type: Flags # TYPE: FLAGS # file-tail # # comment # comment: Generated data ends here # Error: ok 31 __main__.TestRspMkenums.test_help # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmp9i2zgj7h # rspfile: True # Response file contains: --help # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp9i2zgj7h/tmpjllp91b9'] # 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 32 __main__.TestRspMkenums.test_no_args # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpc4qh3l2u # rspfile: True # Response file contains: # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpc4qh3l2u/tmp3jkpwq7s'] # 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 33 __main__.TestRspMkenums.test_no_headers # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpf56ssh6l # rspfile: True # /tmp/tmpf56ssh6l/tmpisf6i5pk.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/tmpf56ssh6l/tmpisf6i5pk.template # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpf56ssh6l/tmpvm16e05p'] # 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 34 __main__.TestRspMkenums.test_no_nick # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmponij9twy # rspfile: True # /tmp/tmponij9twy/tmpzaobtygs.h: # typedef enum { # GEGL_SAMPLER_NEAREST = 0, /*< desc="nearest" >*/ # } GeglSamplerType; # # /tmp/tmponij9twy/tmpxdg5fwyy.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/tmponij9twy/tmpxdg5fwyy.template /tmp/tmponij9twy/tmpzaobtygs.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmponij9twy/tmpxjkd0ktk'] # 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/tmponij9twy/tmpzaobtygs.h # basename: tmpzaobtygs.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 35 __main__.TestRspMkenums.test_non_utf8_encoding # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmp7qgylkxp # rspfile: True # /tmp/tmp7qgylkxp/tmpin_g7_ow.h: # /* Copyright © La Peña */ # typedef enum { # ENUM_VALUE # } SomeEnumIdentifier; # # /tmp/tmp7qgylkxp/tmp397uac72.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/tmp7qgylkxp/tmp397uac72.template /tmp/tmp7qgylkxp/tmpin_g7_ow.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp7qgylkxp/tmpyesuiuzd'] # 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/tmp7qgylkxp/tmpin_g7_ow.h # basename: tmpin_g7_ow.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 36 __main__.TestRspMkenums.test_reproducible # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmpff_th23l # rspfile: True # /tmp/tmpff_th23l/tmpvmf9cz6n.template: template # Response file contains: --template /tmp/tmpff_th23l/tmpvmf9cz6n.template /tmp/tmpff_th23l/tmpdijdo3om1.h /tmp/tmpff_th23l/tmpdmqnmqny2.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpff_th23l/tmp9_jhsbjk'] # 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/tmpff_th23l/tmp7peh81rt.template: template # Response file contains: --template /tmp/tmpff_th23l/tmp7peh81rt.template /tmp/tmpff_th23l/tmpdmqnmqny2.h /tmp/tmpff_th23l/tmpdijdo3om1.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmpff_th23l/tmpp68m753m'] # 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 37 __main__.TestRspMkenums.test_since # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmp4ug77ibg # rspfile: True # /tmp/tmp4ug77ibg/tmpux2oa3ks.h: # typedef enum { /*< since=1.0 >*/ # QMI_WMS_MESSAGE_PROTOCOL_CDMA = 0, # } QmiWmsMessageProtocol; # # /tmp/tmp4ug77ibg/tmphrqp8cee.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/tmp4ug77ibg/tmphrqp8cee.template /tmp/tmp4ug77ibg/tmpux2oa3ks.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp4ug77ibg/tmp4m4xghdp'] # 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/tmp4ug77ibg/tmpux2oa3ks.h # basename: tmpux2oa3ks.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 38 __main__.TestRspMkenums.test_with_double_quotes # glib-mkenums: /usr/bin/glib-mkenums # tmpdir: /tmp/tmp6yr18iji # rspfile: True # /tmp/tmp6yr18iji/tmps1mx3d0h.h: # typedef enum { # FOO_VALUE /*< nick="eek, a comma" >*/ # } Foo; # # /tmp/tmp6yr18iji/tmplo3qper9.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/tmp6yr18iji/tmplo3qper9.template /tmp/tmp6yr18iji/tmps1mx3d0h.h # Running: ['/usr/bin/glib-mkenums', '@/tmp/tmp6yr18iji/tmpogvngfyb'] # 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/tmp6yr18iji/tmps1mx3d0h.h # basename: tmps1mx3d0h.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..38 PASS: glib/mkenums.py.test Running test: glib/utf8-pointer.test TAP version 14 # random seed: R02Sa91684c959dbe97bf64e3c4c67383ce3 1..3 # Start of utf8 tests Executing: glib/utf8-pointer.test ok 1 /utf8/offsets # slow test /utf8/offsets executed in 0.89 secs ok 2 /utf8/lengths ok 3 /utf8/find # End of utf8 tests PASS: glib/utf8-pointer.test Running test: glib/contenttype.test TAP version 14 # random seed: R02Sd01d93f2ac4e54553ea9de1d54989c51 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/genmarshal.py.test TAP version 13 ok 1 __main__.TestGenmarshal.test_empty_list # glib-genmarshal: /usr/bin/glib-genmarshal # tmpdir: /tmp/tmpq9r8irgf # /tmp/tmpq9r8irgf/tmppy2gsw8y.list: # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpq9r8irgf/tmppy2gsw8y.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/tmpq9r8irgf/tmppy2gsw8y.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/tmp36pki4zv # 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/tmp1f3q5d3s # 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/tmp0rz5lkzj # /tmp/tmp0rz5lkzj/tmphvvtp8zb.list: VOID:BOOLEAN # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmp0rz5lkzj/tmphvvtp8zb.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/tmp0rz5lkzj/tmphvvtp8zb.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/tmp0rz5lkzj/tmphvvtp8zb.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/tmp4yi934tr # /tmp/tmp4yi934tr/tmp7cq61ce_.list: VOID:BOOLEAN,INT64 # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmp4yi934tr/tmp7cq61ce_.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/tmp4yi934tr/tmp7cq61ce_.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/tmp4yi934tr/tmp7cq61ce_.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/tmp4yi934tr/tmp7cq61ce_.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/tmpw3h9netl # /tmp/tmpw3h9netl/tmp1isggk5b.list: VOID:PARAM # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmpw3h9netl/tmp1isggk5b.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/tmpw3h9netl/tmp1isggk5b.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/tmpw3h9netl/tmp1isggk5b.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/tmpw3h9netl/tmp1isggk5b.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/tmplizyljrj # /tmp/tmplizyljrj/tmpmgoxp9ww.list: VOID:STRING # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmplizyljrj/tmpmgoxp9ww.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/tmplizyljrj/tmpmgoxp9ww.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/tmplizyljrj/tmpmgoxp9ww.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/tmplizyljrj/tmpmgoxp9ww.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/tmptkl6qbwl # /tmp/tmptkl6qbwl/tmpdiluuvp6.list: VOID:VARIANT # Running: ['/usr/bin/glib-genmarshal', '/tmp/tmptkl6qbwl/tmpdiluuvp6.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/tmptkl6qbwl/tmpdiluuvp6.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/tmptkl6qbwl/tmpdiluuvp6.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/tmptkl6qbwl/tmpdiluuvp6.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/strfuncs.test TAP version 14 # random seed: R02S0504dfc08da7f1bf36d66962a0a184d6 1..52 # 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 # Start of strjoinv tests ok 52 /strfuncs/strjoinv/overflow # SKIP Overflow joining strings requires G_MAXSIZE <= G_MAXUINT. # End of strjoinv tests # End of strfuncs tests PASS: glib/strfuncs.test Running test: glib/sort.test TAP version 14 # random seed: R02S9ad367bfef692be8f71ec79e469b5676 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/g-file-info.test TAP version 14 # random seed: R02Sa140c8470417709fe17a7a76a5b84260 1..7 # 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 # /g-file-info/set-symlink-target summary: Test that g_file_info_set_symlink_target() sets symlink target correctly # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3897 ok 4 /g-file-info/set-symlink-target # 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 5 /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 6 /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 7 /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/object-info.test TAP version 14 # random seed: R02S4d1d0ae89227b663f35de5dde023faf2 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/memory-output-stream.test TAP version 14 # random seed: R02S8760b25d5654a8b0523edd4cb2a18052 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/data-output-stream.test TAP version 14 # random seed: R02S209d8be57a348981c4936f4b9830fa1c 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/date.test TAP version 14 # random seed: R02Sf5fa02da1c8767f1022d9fc52865ef01 1..122 # 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 # Considering 2000-01-01 # Considering 2000-01-07 # Considering 2000-01-08 # Considering 2001-01-01 # Considering 2001-01-07 # Considering 2001-01-08 # Considering 2002-01-01 # Considering 2002-01-07 # Considering 2002-01-08 # Considering 2003-01-01 # Considering 2003-01-07 # Considering 2003-01-08 # Considering 2004-01-01 # Considering 2004-01-07 # Considering 2004-01-08 # Considering 2006-01-01 # Considering 2006-01-07 # Considering 2006-01-08 # Considering 2010-01-01 # Considering 2010-01-07 # Considering 2010-01-08 ok 17 /date/week-of-year # Start of parse tests # Test 0 # Test 1 ok 18 /date/parse/invalid # End of parse tests # Start of year tests ok 19 /date/year/1 ok 20 /date/year/2 ok 21 /date/year/3 ok 22 /date/year/4 ok 23 /date/year/5 ok 24 /date/year/6 ok 25 /date/year/7 ok 26 /date/year/8 ok 27 /date/year/9 ok 28 /date/year/10 ok 29 /date/year/11 ok 30 /date/year/12 ok 31 /date/year/13 ok 32 /date/year/14 ok 33 /date/year/98 ok 34 /date/year/99 ok 35 /date/year/100 ok 36 /date/year/101 ok 37 /date/year/102 ok 38 /date/year/103 ok 39 /date/year/397 ok 40 /date/year/398 ok 41 /date/year/399 ok 42 /date/year/400 ok 43 /date/year/401 ok 44 /date/year/402 ok 45 /date/year/403 ok 46 /date/year/404 ok 47 /date/year/405 ok 48 /date/year/406 ok 49 /date/year/1598 ok 50 /date/year/1599 ok 51 /date/year/1600 ok 52 /date/year/1601 ok 53 /date/year/1602 ok 54 /date/year/1650 ok 55 /date/year/1651 ok 56 /date/year/1897 ok 57 /date/year/1898 ok 58 /date/year/1899 ok 59 /date/year/1900 ok 60 /date/year/1901 ok 61 /date/year/1902 ok 62 /date/year/1903 ok 63 /date/year/1961 ok 64 /date/year/1962 ok 65 /date/year/1963 ok 66 /date/year/1964 ok 67 /date/year/1965 ok 68 /date/year/1967 ok 69 /date/year/1968 ok 70 /date/year/1969 ok 71 /date/year/1970 ok 72 /date/year/1971 ok 73 /date/year/1972 ok 74 /date/year/1973 ok 75 /date/year/1974 ok 76 /date/year/1975 ok 77 /date/year/1976 ok 78 /date/year/1977 ok 79 /date/year/1978 ok 80 /date/year/1979 ok 81 /date/year/1980 ok 82 /date/year/1981 ok 83 /date/year/1982 ok 84 /date/year/1983 ok 85 /date/year/1984 ok 86 /date/year/1985 ok 87 /date/year/1986 ok 88 /date/year/1987 ok 89 /date/year/1988 ok 90 /date/year/1989 ok 91 /date/year/1990 ok 92 /date/year/1991 ok 93 /date/year/1992 ok 94 /date/year/1993 ok 95 /date/year/1994 ok 96 /date/year/1995 ok 97 /date/year/1996 ok 98 /date/year/1997 ok 99 /date/year/1998 ok 100 /date/year/1999 ok 101 /date/year/2000 ok 102 /date/year/2001 ok 103 /date/year/2002 ok 104 /date/year/2003 ok 105 /date/year/2004 ok 106 /date/year/2005 ok 107 /date/year/2006 ok 108 /date/year/2007 ok 109 /date/year/2008 ok 110 /date/year/2009 ok 111 /date/year/2010 ok 112 /date/year/2011 ok 113 /date/year/2012 ok 114 /date/year/3000 ok 115 /date/year/3001 ok 116 /date/year/3002 ok 117 /date/year/3998 ok 118 /date/year/3999 ok 119 /date/year/4000 ok 120 /date/year/4001 ok 121 /date/year/4002 ok 122 /date/year/4003 # End of year tests # End of date tests PASS: glib/date.test Running test: glib/win32-appinfo.test TAP version 14 # random seed: R02S1981b4e2d53e8fdd6533f4d8b3d1a9f2 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/struct-info.test TAP version 14 # random seed: R02S3e5545ba90b59a700afb3ea252ed7cf2 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/boxed.test TAP version 14 # random seed: R02Sf2c7f94612e65bb733aa1a0a747adf22 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/fileutils.test TAP version 14 # random seed: R02S5e0613a7af57e272ed362664116dc20b 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 0 and test 6 # Flags 0 and test 7 # Flags 0 and test 8 # Flags 0 and test 9 # Flags 0 and test 10 # 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 1 and test 6 # Flags 1 and test 7 # Flags 1 and test 8 # Flags 1 and test 9 # Flags 1 and test 10 # 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 2 and test 6 # Flags 2 and test 7 # Flags 2 and test 8 # Flags 2 and test 9 # Flags 2 and test 10 # 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 3 and test 6 # Flags 3 and test 7 # Flags 3 and test 8 # Flags 3 and test 9 # Flags 3 and test 10 # 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 4 and test 6 # Flags 4 and test 7 # Flags 4 and test 8 # Flags 4 and test 9 # Flags 4 and test 10 # 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 5 and test 6 # Flags 5 and test 7 # Flags 5 and test 8 # Flags 5 and test 9 # Flags 5 and test 10 # 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 # Flags 6 and test 6 # Flags 6 and test 7 # Flags 6 and test 8 # Flags 6 and test 9 # Flags 6 and test 10 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+' # Testing fopen() mode 'we' # Testing fopen() mode 're' # Testing fopen() mode 'ae' # Testing fopen() mode 'w+e' # Testing fopen() mode 'r+e' # Testing fopen() mode 'a+e' # Testing fopen() mode 'wbe' # Testing fopen() mode 'rbe' # Testing fopen() mode 'abe' # Testing fopen() mode 'w+be' # Testing fopen() mode 'r+be' # Testing fopen() mode 'a+be' # Testing fopen() mode 'wb+e' # Testing fopen() mode 'rb+e' # Testing fopen() mode 'ab+e' # Testing fopen() mode 'web' # Testing fopen() mode 'reb' # Testing fopen() mode 'aeb' # Testing fopen() mode 'w+eb' # Testing fopen() mode 'r+eb' # Testing fopen() mode 'a+eb' # Testing fopen() mode 'web+' # Testing fopen() mode 'reb+' # Testing fopen() mode 'aeb+' 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/monotonic-time.test TAP version 14 # random seed: R02S370ea4b3683df3c172a8718018a55632 1..5 # Start of monotonic-time tests ok 1 /monotonic-time/increasing # slow test /monotonic-time/increasing executed in 1.00 secs ok 2 /monotonic-time/usleep # slow test /monotonic-time/usleep executed in 1.00 secs # End of monotonic-time tests # Start of monotonic-time-ns tests Executing: glib/monotonic-time.test ok 3 /monotonic-time-ns/increasing # slow test /monotonic-time-ns/increasing executed in 1.00 secs ok 4 /monotonic-time-ns/usleep # slow test /monotonic-time-ns/usleep executed in 1.00 secs ok 5 /monotonic-time-ns/similar # End of monotonic-time-ns tests PASS: glib/monotonic-time.test Running test: glib/mainloop.test TAP version 14 # random seed: R02S2873d839467362515dbcd8e1a849a8cd 1..48 # Start of maincontext tests ok 1 /maincontext/basic # Add same-priority sources: 14 # Find each source: 4 # Remove in random order: 29 ok 2 /maincontext/nsources_same_priority # Add different-priority sources: 16 # Find each source: 4 # Remove in random order: 33 ok 3 /maincontext/nsources_different_priority # Add sources from threads: 238 # Remove sources from threads: 77 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 # /maincontext/context-ref-in-source-callbackfuncs-unref summary: Tests if calling GSource API in GSourceCallbackFuncs.unref does not deadlock attempting to retrieve the relevant GMainContext. # Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/3725 ok 8 /maincontext/context-ref-in-source-callbackfuncs-unref # 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 9 /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 10 /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 11 /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 12 /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 13 /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 14 /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 15 /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 16 /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 17 /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 18 /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 19 /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 20 /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 21 /maincontext/source_finalization_from_dispatch/2 # End of source_finalization_from_dispatch tests # End of maincontext tests # Start of mainloop tests ok 22 /mainloop/basic ok 23 /mainloop/timeouts # SKIP Not running timing heavy test ok 24 /mainloop/priorities ok 25 /mainloop/invoke # slow test /mainloop/invoke executed in 0.50 secs ok 26 /mainloop/child_sources # slow test /mainloop/child_sources executed in 1.19 secs Executing: glib/mainloop.test ok 27 /mainloop/recursive_child_sources # slow test /mainloop/recursive_child_sources executed in 2.17 secs ok 28 /mainloop/recursive_loop_child_sources ok 29 /mainloop/swapping_child_sources # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=701283 ok 30 /mainloop/blocked_child_sources ok 31 /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 32 /mainloop/overflow ok 33 /mainloop/ready-time # slow test /mainloop/ready-time executed in 0.50 secs ok 34 /mainloop/wakeup ok 35 /mainloop/remove-invalid ok 36 /mainloop/unref-while-pending # Test that the global default main context is used if NULL is passed to various methods # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3818 ok 37 /mainloop/null-default-context ok 38 /mainloop/unix-fd ok 39 /mainloop/unix-fd-source ok 40 /mainloop/source-unix-fd-api ok 41 /mainloop/wait ok 42 /mainloop/unix-file-poll # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/1592 ok 43 /mainloop/unix-fd-priority ok 44 /mainloop/nfds ok 45 /mainloop/steal-fd ok 46 /mainloop/simultaneous-source-context-destruction # slow test /mainloop/simultaneous-source-context-destruction executed in 0.63 secs # Start of ownerless-polling tests ok 47 /mainloop/ownerless-polling/attach-first ok 48 /mainloop/ownerless-polling/pop-first # End of ownerless-polling tests # End of mainloop tests PASS: glib/mainloop.test Running test: glib/macros-c-89.test TAP version 14 # random seed: R02Sbd0d8e7497dbf290761153edb2fe05ec 1..4 # Start of C tests # G_C_STD_VERSION is 199000 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/markup-parse.test TAP version 14 # random seed: R02S81f93006728c899f4e0a20b73b464c38 1..71 # Start of markup tests # Start of parse tests ok 1 /markup/parse/valid-3.gmarkup ok 2 /markup/parse/fail-27.gmarkup ok 3 /markup/parse/fail-3.gmarkup ok 4 /markup/parse/fail-32.gmarkup ok 5 /markup/parse/fail-6.gmarkup ok 6 /markup/parse/valid-17.gmarkup ok 7 /markup/parse/fail-15.gmarkup ok 8 /markup/parse/fail-12.gmarkup ok 9 /markup/parse/fail-45.gmarkup ok 10 /markup/parse/valid-7.gmarkup ok 11 /markup/parse/valid-15.gmarkup ok 12 /markup/parse/fail-49.gmarkup ok 13 /markup/parse/fail-13.gmarkup ok 14 /markup/parse/valid-16.gmarkup ok 15 /markup/parse/fail-46.gmarkup ok 16 /markup/parse/valid-9.gmarkup ok 17 /markup/parse/fail-2.gmarkup ok 18 /markup/parse/valid-6.gmarkup ok 19 /markup/parse/fail-29.gmarkup ok 20 /markup/parse/valid-13.gmarkup ok 21 /markup/parse/fail-17.gmarkup ok 22 /markup/parse/fail-14.gmarkup ok 23 /markup/parse/fail-53.gmarkup ok 24 /markup/parse/fail-52.gmarkup ok 25 /markup/parse/fail-1.gmarkup ok 26 /markup/parse/fail-21.gmarkup ok 27 /markup/parse/fail-30.gmarkup ok 28 /markup/parse/fail-5.gmarkup ok 29 /markup/parse/fail-50.gmarkup ok 30 /markup/parse/fail-40.gmarkup ok 31 /markup/parse/fail-10.gmarkup ok 32 /markup/parse/fail-26.gmarkup ok 33 /markup/parse/fail-44.gmarkup ok 34 /markup/parse/fail-24.gmarkup ok 35 /markup/parse/valid-14.gmarkup ok 36 /markup/parse/fail-4.gmarkup ok 37 /markup/parse/fail-8.gmarkup ok 38 /markup/parse/fail-25.gmarkup ok 39 /markup/parse/valid-4.gmarkup ok 40 /markup/parse/fail-36.gmarkup ok 41 /markup/parse/fail-33.gmarkup ok 42 /markup/parse/valid-1.gmarkup ok 43 /markup/parse/fail-20.gmarkup ok 44 /markup/parse/fail-7.gmarkup ok 45 /markup/parse/fail-28.gmarkup ok 46 /markup/parse/fail-48.gmarkup ok 47 /markup/parse/valid-10.gmarkup ok 48 /markup/parse/fail-19.gmarkup ok 49 /markup/parse/valid-2.gmarkup ok 50 /markup/parse/valid-11.gmarkup ok 51 /markup/parse/fail-22.gmarkup ok 52 /markup/parse/valid-8.gmarkup ok 53 /markup/parse/fail-42.gmarkup ok 54 /markup/parse/valid-5.gmarkup ok 55 /markup/parse/fail-34.gmarkup ok 56 /markup/parse/fail-38.gmarkup ok 57 /markup/parse/valid-12.gmarkup ok 58 /markup/parse/fail-23.gmarkup ok 59 /markup/parse/fail-18.gmarkup ok 60 /markup/parse/fail-31.gmarkup ok 61 /markup/parse/fail-37.gmarkup ok 62 /markup/parse/fail-51.gmarkup ok 63 /markup/parse/fail-9.gmarkup ok 64 /markup/parse/fail-43.gmarkup ok 65 /markup/parse/fail-54.gmarkup ok 66 /markup/parse/fail-47.gmarkup ok 67 /markup/parse/fail-16.gmarkup ok 68 /markup/parse/fail-41.gmarkup ok 69 /markup/parse/fail-39.gmarkup ok 70 /markup/parse/fail-35.gmarkup ok 71 /markup/parse/fail-11.gmarkup # End of parse tests # End of markup tests PASS: glib/markup-parse.test Running test: glib/permission.test TAP version 14 # random seed: R02S5da48d1c84bf0184581520515aabe17b 1..1 # Start of permission tests ok 1 /permission/simple # End of permission tests PASS: glib/permission.test Running test: glib/function-info.test TAP version 14 # random seed: R02S047d82244f79fa6e2d96bea9f7fce0fd 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/checksum.test TAP version 14 # random seed: R02S7370bc7b5a240e82eafd350c1f6113e8 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/unix-mounts.test TAP version 14 # random seed: R02S7a1d98c9ad2fbc665bec3ce5f8f72660 1..5 # Start of unix-mounts tests ok 1 /unix-mounts/is-system-fs-type ok 2 /unix-mounts/is-system-device-path # /unix-mounts/system-mount-paths-sorted summary: Verify that system_mount_paths array is sorted for bsearch ok 3 /unix-mounts/system-mount-paths-sorted # /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 4 /unix-mounts/get-mount-points # /unix-mounts/get-mount-entries summary: Basic test of g_unix_mounts_get_from_file() ok 5 /unix-mounts/get-mount-entries # End of unix-mounts tests PASS: glib/unix-mounts.test Running test: glib/signals-refcount4.test TAP version 14 # random seed: R02Sa5fa3249c0457667bb0e84793c4536c9 1..1 # Start of gobject tests # Start of refcount tests # init 0xaaaae86cba30 # # init 0xaaaae86c65a0 # Executing: glib/signals-refcount4.test # dispose 0xaaaae86cba30! # # dispose 0xaaaae86c65a0! # 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/credentials.test TAP version 14 # random seed: R02Sc841bd6b399eb93a6d49424c77152bbe 1..1 # Start of credentials tests # GCredentials:linux-ucred:pid=28853,uid=1000,gid=1000 # GCredentials:linux-ucred:pid=28853,uid=0,gid=1000 ok 1 /credentials/basic # End of credentials tests PASS: glib/credentials.test Running test: glib/dataset.test TAP version 14 # random seed: R02Sc0c22893b3a64c385db0528313d35945 1..15 # 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/id ok 9 /datalist/recursive-clear # Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/2672 ok 10 /datalist/id-remove-multiple # Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/2672 ok 11 /datalist/id-remove-multiple-destroy-order ok 12 /datalist/update-atomic # Start of basic tests ok 13 /datalist/basic/few ok 14 /datalist/basic/many # End of basic tests # Start of id-remove-multiple tests ok 15 /datalist/id-remove-multiple/resize # End of id-remove-multiple tests # End of datalist tests PASS: glib/dataset.test Running test: glib/testing.test TAP version 14 # random seed: R02Sf5b4c226bddc602aeb1d6f9cafc4a333 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/list.test TAP version 14 # random seed: R02S2cf60ab0d739bcbe97a67c58cfe5dba1 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/gdbus-connection-flush.test TAP version 14 # random seed: R02S86eb02e4cf585a4d024c70ad042ad439 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: 16.457 Executing: glib/performance.test simple-construction1: Millions of constructed objects per second: 56.310 complex-construction: Millions of constructed objects per second: 5.274 Executing: glib/performance.test complex-construction1: Millions of constructed objects per second: 9.499 Executing: glib/performance.test complex-construction2: Millions of constructed objects per second: 11.628 finalization: Millions of finalized objects per second: 3.573 Executing: glib/performance.test type-check: Million type checks per second: 110.42 emit-unhandled: Emissions per second: 4599875 emit-unhandled-empty: Emissions per second: 23097860 emit-unhandled-generic: Emissions per second: 5842593 emit-unhandled-generic-empty: Emissions per second: 23132257 Executing: glib/performance.test emit-unhandled-args: Emissions per second: 3983467 emit-handled: Emissions per second: 3251251 emit-handled-empty: Emissions per second: 3336086 emit-handled-generic: Emissions per second: 3295480 Executing: glib/performance.test emit-handled-generic-empty: Emissions per second: 5285839 emit-handled-args: Emissions per second: 2911220 notify-unhandled: Notify (unhandled) per second: 27017797 notify-by-pspec-unhandled: Notify (unhandled) per second: 99504190 Executing: glib/performance.test notify-handled: Notify per second: 1986361 notify-by-pspec-handled: Notify per second: 2121326 property-set: Property set per second: 14345954 property-set-signaled: Property set per second: 4123715 Executing: glib/performance.test property-get: Property get per second: 14816772 refcount: Million refs+unref per second: 27.41 refcount-1: Million refs+unref per second: 80.67 refcount-toggle: Million refs+unref per second: 64.14 PASS: glib/performance.test Running test: glib/autoptr-girepository.test TAP version 14 # random seed: R02Sc24bc01d652ebb95564db6cb46316cbd 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/portal-support-flatpak-gsettings-only.test TAP version 14 # random seed: R02Sc89d8da7f2d85deac6bca59c3aa2b0e9 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/resolver-parsing.test TAP version 14 # random seed: R02Sf67c9726a435c93fda1f441e20dc6396 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/repository-search-paths.test TAP version 14 # random seed: R02Sa8cbdd03ea21d5c86c67cee75349490f 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/contexts.test TAP version 14 # random seed: R02S547779dba97e295f227d6c2c6d570f03 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/macros-c-99.test TAP version 14 # random seed: R02Sdd1b7d8bf5fb5f0ff0f688762a8bcc6a 1..4 # Start of C tests # G_C_STD_VERSION is 199901 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/accumulator.test TAP version 14 # random seed: R02Sa2d6b6df9a9b66af170d092368b963ae 1..1 # Start of gobject tests ok 1 /gobject/accumulator # End of gobject tests PASS: glib/accumulator.test Running test: glib/string.test TAP version 14 # random seed: R02S62b42e0e565b2ff5b0542786f37dff2c 1..25 # Start of string tests ok 1 /string/chunks ok 2 /string/chunk-insert ok 3 /string/new ok 4 /string/printf ok 5 /string/assign ok 6 /string/append-c ok 7 /string/append ok 8 /string/append-vprintf ok 9 /string/prepend-c ok 10 /string/prepend ok 11 /string/insert ok 12 /string/insert-unichar ok 13 /string/equal ok 14 /string/truncate ok 15 /string/overwrite ok 16 /string/nul-handling ok 17 /string/up-down ok 18 /string/set-size ok 19 /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/replace ok 21 /string/steal ok 22 /string/new-take ok 23 /string/copy ok 24 /string/sized-new # Start of new-take tests ok 25 /string/new-take/null # End of new-take tests # End of string tests PASS: glib/string.test Running test: glib/slist.test TAP version 14 # random seed: R02S2a76db93c2dea93f0e89f202a7a44253 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/signalgroup.test TAP version 14 # random seed: R02Sf50ee67bff0d5d790e5ddf04aa05a012 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/utf8-performance.test TAP version 14 # random seed: R02S79ec220947138b03a9cf3a56253c1ac8 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: inf MB/s ok 3 /utf8/perf/get_char/cyrillic # max perf: inf MB/s ok 4 /utf8/perf/get_char/han # End of get_char tests # Start of get_char-backwards tests # max perf: inf 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: inf 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: inf MB/s ok 13 /utf8/perf/utf8_to_ucs4/ascii # max perf: 67.0 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: inf 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: inf 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: 160.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: inf MB/s ok 21 /utf8/perf/utf8_to_ucs4_fast/ascii # max perf: inf MB/s ok 22 /utf8/perf/utf8_to_ucs4_fast/latin1 # max perf: 160.0 MB/s ok 23 /utf8/perf/utf8_to_ucs4_fast/cyrillic # max perf: inf 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: inf MB/s ok 25 /utf8/perf/utf8_to_ucs4_fast-sized/ascii # max perf: inf 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: inf MB/s ok 28 /utf8/perf/utf8_to_ucs4_fast-sized/han # End of utf8_to_ucs4_fast-sized tests # Start of utf8_validate tests # max perf: inf MB/s ok 29 /utf8/perf/utf8_validate/ascii # max perf: inf MB/s ok 30 /utf8/perf/utf8_validate/latin1 # max perf: 160.0 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: 43.0 MB/s ok 33 /utf8/perf/utf8_validate-sized/ascii # max perf: inf 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/memory-monitor-psi.test TAP version 14 # random seed: R02S9d37ab210af87dba4c02b98195bd04a1 1..1 # Start of memory-monitor-psi tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/memory-monitor-psi/receive-signal/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/memory-monitor-psi/receive-signal/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/memory-monitor-psi/receive-signal/.dirs/system-config1:/var/volatile/tmp/memory-monitor-psi/receive-signal/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/memory-monitor-psi/receive-signal/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/memory-monitor-psi/receive-signal/.dirs/system-data1:/var/volatile/tmp/memory-monitor-psi/receive-signal/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/memory-monitor-psi/receive-signal/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/memory-monitor-psi/receive-signal/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/memory-monitor-psi/receive-signal/.dirs/runtime # GLib-GIO-DEBUG: Write trigger some 70000 2000000 # GLib-GIO-DEBUG: Write trigger some 100000 2000000 # GLib-GIO-DEBUG: Write trigger full 100000 2000000 # GLib-GIO-DEBUG: Send low memory signal with warning level 0 # GLib-GIO-DEBUG: Send low memory signal with warning level 1 ok 1 /memory-monitor-psi/receive-signal # End of memory-monitor-psi tests PASS: glib/memory-monitor-psi.test Running test: glib/sequence.test TAP version 14 # random seed: R02S6f10d3b0d62ac96c4ab633a325c4331b 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 # slow test /sequence/random/seed:825541564 executed in 0.55 secs Executing: glib/sequence.test ok 7 /sequence/random/seed:801678400 # slow test /sequence/random/seed:801678400 executed in 0.52 secs ok 8 /sequence/random/seed:1477639090 # slow test /sequence/random/seed:1477639090 executed in 0.55 secs ok 9 /sequence/random/seed:3369132895 # slow test /sequence/random/seed:3369132895 executed in 0.50 secs ok 10 /sequence/random/seed:1192944867 # slow test /sequence/random/seed:1192944867 executed in 0.53 secs ok 11 /sequence/random/seed:770458294 # slow test /sequence/random/seed:770458294 executed in 0.56 secs ok 12 /sequence/random/seed:1099575817 # slow test /sequence/random/seed:1099575817 executed in 0.53 secs ok 13 /sequence/random/seed:590523467 # slow test /sequence/random/seed:590523467 executed in 0.55 secs ok 14 /sequence/random/seed:3583571454 # slow test /sequence/random/seed:3583571454 executed in 0.55 secs ok 15 /sequence/random/seed:579241222 # slow test /sequence/random/seed:579241222 executed in 0.55 secs Executing: glib/sequence.test ok 16 /sequence/random/seed:1397470478 # slow test /sequence/random/seed:1397470478 executed in 0.56 secs # End of random tests # End of sequence tests PASS: glib/sequence.test Running test: glib/cmph-bdz.test TAP version 14 # random seed: R02S3db1edf4cd22e41658251c1d44a53a69 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/live-g-file.test TAP version 14 # random seed: R02S5e3c2a970b67bb3cd46913538649f97f 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_příliš z'... # Creating directory 'dir_příliš 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_příliš z'... # Testing file 'dir_příliš 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_příliš z, relative to root: UTF_příliš z # Found file dir_příliš z, relative to root: dir_příliš 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_příliš 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_příliš z' # error code 2 = Error opening file “/var/volatile/tmp/testdir_live-g-file/UTF_příliš z”: File exists # test_create: 'dir_příliš z' # error code 2 = Error opening file “/var/volatile/tmp/testdir_live-g-file/dir_příliš 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_příliš z' --> 'dir-target' # We do not have CAP_DAC_OVERRIDE or equivalent # do_copy_move: 'UTF_příliš z' --> 'dir-target' # We do not have CAP_DAC_OVERRIDE or equivalent # do_copy_move: 'UTF_příliš z' --> '.' # res = 0, error code 2 = Error opening file “/var/volatile/tmp/testdir_live-g-file/UTF_příliš z”: File exists # We do not have CAP_DAC_OVERRIDE or equivalent # do_copy_move: 'UTF_příliš z' --> 'target-file' # res = 0, error code 4 = Error opening file “/var/volatile/tmp/testdir_live-g-file/target-file/UTF_příliš z”: Not a directory # We do not have CAP_DAC_OVERRIDE or equivalent # do_copy_move: 'UTF_příliš z' --> 'not_exists' # res = 0, error code 1 = Error opening file “/var/volatile/tmp/testdir_live-g-file/not_exists/UTF_příliš z”: No such file or directory # We do not have CAP_DAC_OVERRIDE or equivalent # do_copy_move: 'UTF_příliš z' --> 'dir_no-access' # res = 0, error code 14 = Error opening file “/var/volatile/tmp/testdir_live-g-file/dir_no-access/UTF_příliš z”: Permission denied # We do not have CAP_DAC_OVERRIDE or equivalent # do_copy_move: 'UTF_příliš z' --> 'dir_no-write' # res = 0, error code 14 = Error opening file “/var/volatile/tmp/testdir_live-g-file/dir_no-write/UTF_příliš 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_příliš z, path = /var/volatile/tmp/testdir_live-g-file/dir_příliš 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_příliš 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_příliš 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/override.test TAP version 14 # random seed: R02S82b09b29454ac862fa242f6444c0a643 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/properties-refcount4.test TAP version 14 # random seed: R02S6324878c9b8f4d9b538857dce09a5585 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/pollable.test TAP version 14 # random seed: R02S78fe3a48189898e04d6bcc10da67c094 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 0xaaaaac9cf220 and GSocketClientAsyncConnectData 0xaaaaac9d1260 # 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 0xaaaaac9a8800 for GSocketClientAsyncConnectData 0xaaaaac9d1260 # 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/giomodule.test TAP version 14 # random seed: R02S6417f90bf0d354e7ad283a07f42acaad 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/properties-introspection.test TAP version 14 # random seed: R02S44c5e20fc93a6e5a3ae286cb1373885b 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/utils.test TAP version 14 # random seed: R02S72cc7205419fc36b37ceff3ce5727b93 1..41 # Start of utils tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/language-names/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/language-names/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-config1:/var/volatile/tmp/utils/language-names/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/language-names/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-data1:/var/volatile/tmp/utils/language-names/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/language-names/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/language-names/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/language-names/.dirs/runtime ok 1 /utils/language-names # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/locale-variants/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-config1:/var/volatile/tmp/utils/locale-variants/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-data1:/var/volatile/tmp/utils/locale-variants/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/locale-variants/.dirs/runtime # Testing locale ‘en’ # Testing locale ‘sr@latin’ # Testing locale ‘fr_BE’ # Testing locale ‘sr_SR@latin’ # Testing locale ‘sr_SR@latin.UTF-8’ # Testing locale ‘sr@latin_invalid’ # Testing locale ‘sr.UTF-8@latin’ # Testing locale ‘sr.UTF-8_latin’ # Testing locale ‘sr.UTF-8@latin_invalid’ ok 2 /utils/locale-variants # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/version/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/version/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/version/.dirs/system-config1:/var/volatile/tmp/utils/version/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/version/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/version/.dirs/system-data1:/var/volatile/tmp/utils/version/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/version/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/version/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/version/.dirs/runtime ok 3 /utils/version # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/appname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/appname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-config1:/var/volatile/tmp/utils/appname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/appname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-data1:/var/volatile/tmp/utils/appname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/appname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/appname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/appname/.dirs/runtime ok 4 /utils/appname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/tmpdir/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-config1:/var/volatile/tmp/utils/tmpdir/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-data1:/var/volatile/tmp/utils/tmpdir/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/tmpdir/.dirs/runtime # 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 Unable to clean up temporary directory /var/volatile/tmp/utils/tmpdir: No such file or directory ok 6 /utils/tmpdir # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/basic_bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-config1:/var/volatile/tmp/utils/basic_bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-data1:/var/volatile/tmp/utils/basic_bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/basic_bits/.dirs/runtime ok 7 /utils/basic_bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-config1:/var/volatile/tmp/utils/bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-data1:/var/volatile/tmp/utils/bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/bits/.dirs/runtime ok 8 /utils/bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/swap/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/swap/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-config1:/var/volatile/tmp/utils/swap/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/swap/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-data1:/var/volatile/tmp/utils/swap/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/swap/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/swap/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/swap/.dirs/runtime ok 9 /utils/swap # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-config1:/var/volatile/tmp/utils/find-program/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-data1:/var/volatile/tmp/utils/find-program/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program/.dirs/runtime ok 10 /utils/find-program # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-config1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-data1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program-for-path/.dirs/runtime ok 11 /utils/find-program-for-path # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/debug/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/debug/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-config1:/var/volatile/tmp/utils/debug/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/debug/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-data1:/var/volatile/tmp/utils/debug/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/debug/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/debug/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/debug/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/debug: No such file or directory ok 12 /utils/debug # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-config1:/var/volatile/tmp/utils/codeset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-data1:/var/volatile/tmp/utils/codeset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset/.dirs/runtime ok 13 /utils/codeset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset2/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-config1:/var/volatile/tmp/utils/codeset2/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset2/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-data1:/var/volatile/tmp/utils/codeset2/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset2/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset2/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/codeset2: No such file or directory ok 14 /utils/codeset2 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/console-charset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-config1:/var/volatile/tmp/utils/console-charset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/console-charset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-data1:/var/volatile/tmp/utils/console-charset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/console-charset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/console-charset/.dirs/runtime ok 15 /utils/console-charset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/gettext/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/gettext/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-config1:/var/volatile/tmp/utils/gettext/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/gettext/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-data1:/var/volatile/tmp/utils/gettext/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/gettext/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/gettext/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/gettext/.dirs/runtime ok 16 /utils/gettext # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/username/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/username/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/username/.dirs/system-config1:/var/volatile/tmp/utils/username/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/username/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/username/.dirs/system-data1:/var/volatile/tmp/utils/username/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/username/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/username/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/username/.dirs/runtime ok 17 /utils/username # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/realname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/realname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-config1:/var/volatile/tmp/utils/realname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/realname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-data1:/var/volatile/tmp/utils/realname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/realname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/realname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/realname/.dirs/runtime ok 18 /utils/realname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/hostname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/hostname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-config1:/var/volatile/tmp/utils/hostname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/hostname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-data1:/var/volatile/tmp/utils/hostname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/hostname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/hostname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/hostname/.dirs/runtime ok 19 /utils/hostname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/os-info/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/os-info/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-config1:/var/volatile/tmp/utils/os-info/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/os-info/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-data1:/var/volatile/tmp/utils/os-info/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/os-info/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/os-info/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/os-info/.dirs/runtime # NAME: Linux ok 20 /utils/os-info # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/.dirs/runtime ok 21 /utils/clear-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/runtime ok 22 /utils/clear-pointer-cast # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/take-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-config1:/var/volatile/tmp/utils/take-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-data1:/var/volatile/tmp/utils/take-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/take-pointer/.dirs/runtime ok 23 /utils/take-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-source/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-config1:/var/volatile/tmp/utils/clear-source/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-source/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-data1:/var/volatile/tmp/utils/clear-source/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-source/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-source/.dirs/runtime ok 24 /utils/clear-source # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/misc-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-config1:/var/volatile/tmp/utils/misc-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-data1:/var/volatile/tmp/utils/misc-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/misc-mem/.dirs/runtime ok 25 /utils/misc-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/.dirs/runtime # /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 26 /utils/aligned-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/free-sized/.dirs/runtime # /utils/free-sized summary: Check that g_free_sized() works ok 27 /utils/free-sized # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/nullify/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/nullify/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-config1:/var/volatile/tmp/utils/nullify/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/nullify/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-data1:/var/volatile/tmp/utils/nullify/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/nullify/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/nullify/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/nullify/.dirs/runtime ok 28 /utils/nullify # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/atexit/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/atexit/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-config1:/var/volatile/tmp/utils/atexit/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/atexit/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-data1:/var/volatile/tmp/utils/atexit/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/atexit/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/atexit/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/atexit/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/atexit: No such file or directory ok 29 /utils/atexit # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/check-setuid/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-config1:/var/volatile/tmp/utils/check-setuid/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-data1:/var/volatile/tmp/utils/check-setuid/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/check-setuid/.dirs/runtime ok 30 /utils/check-setuid # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/int-limits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-config1:/var/volatile/tmp/utils/int-limits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/int-limits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-data1:/var/volatile/tmp/utils/int-limits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/int-limits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/int-limits/.dirs/runtime # Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1663 ok 31 /utils/int-limits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-list/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-config1:/var/volatile/tmp/utils/clear-list/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-list/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-data1:/var/volatile/tmp/utils/clear-list/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-list/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-list/.dirs/runtime ok 32 /utils/clear-list # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-slist/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-config1:/var/volatile/tmp/utils/clear-slist/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-data1:/var/volatile/tmp/utils/clear-slist/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-slist/.dirs/runtime ok 33 /utils/clear-slist # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-config1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-data1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/steal-handle-id/.dirs/runtime ok 34 /utils/steal-handle-id # Start of user-special-dirs tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/runtime ok 35 /utils/user-special-dirs/desktop # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/runtime # /utils/user-special-dirs/load-unlocked summary: Tests error and corner cases of user-dirs.dirs content. # Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/4800 Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/load-unlocked: No such file or directory ok 36 /utils/user-special-dirs/load-unlocked # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/runtime # /utils/user-special-dirs/reload-leaks summary: Tests that old user special dirs values are deliberately leaked on reload. Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/reload-leaks: No such file or directory ok 37 /utils/user-special-dirs/reload-leaks # End of user-special-dirs tests # Start of clear-pointer tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/runtime ok 38 /utils/clear-pointer/side-effects # End of clear-pointer tests # Start of aligned-mem tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/runtime # /utils/aligned-mem/alignment summary: Check that g_aligned_alloc() returns a correctly aligned pointer ok 39 /utils/aligned-mem/alignment # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/runtime # /utils/aligned-mem/zeroed summary: Check that g_aligned_alloc0() zeroes out its allocation ok 40 /utils/aligned-mem/zeroed # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/runtime # /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/markup-collect.test TAP version 14 # random seed: R02S083b0d8af532b11e7bb69c9bf76dcbf9 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/notify-init.test TAP version 14 # random seed: R02S9e2ad6e2a8d489df805a99c015b4068d 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/gdbus-peer-object-manager.test TAP version 14 # random seed: R02S0d181c42746c6e50ef08e833e13b26cd 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/signals.test TAP version 14 # random seed: R02Sde35577ad891130eba0cd83b6e45782c 1..32 # 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/is-connected ok 14 /gobject/signals/emission-hook ok 15 /gobject/signals/emitv ok 16 /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 17 /gobject/signals/accumulator-class ok 18 /gobject/signals/introspection ok 19 /gobject/signals/block-handler ok 20 /gobject/signals/stop-emission ok 21 /gobject/signals/invocation-hint ok 22 /gobject/signals/test-disconnection-wrong-object ok 23 /gobject/signals/clear-signal-handler # /gobject/signals/lookup summary: Test that g_signal_lookup() works with a variety of inputs. ok 24 /gobject/signals/lookup # /gobject/signals/parse-name summary: Test that g_signal_parse_name() works with a variety of inputs. ok 25 /gobject/signals/parse-name ok 26 /gobject/signals/is-valid-name ok 27 /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 28 /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 29 /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 30 /gobject/signals/invalid-name/colon # /gobject/signals/invalid-name/first-char summary: Check that g_signal_new() rejects invalid signal names. ok 31 /gobject/signals/invalid-name/first-char # /gobject/signals/invalid-name/empty summary: Check that g_signal_new() rejects invalid signal names. ok 32 /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/bytes.test TAP version 14 # random seed: R02S153459ff0e983f2cd2c2361cceba0cf6 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/utf8-validate.test TAP version 14 # random seed: R02Sf3e0f51b55159a2d9602cc0d471c2e96 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/tls-bindings.test TAP version 14 # random seed: R02S4222acd0b299f3a008f3b94d62584ffd 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/callable-info.test TAP version 14 # random seed: R02S92ac06ff814ac657469641e7fa08cc36 1..7 # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/callable-info/native-address/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/callable-info/native-address/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/callable-info/native-address/.dirs/system-config1:/var/volatile/tmp/callable-info/native-address/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/callable-info/native-address/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/callable-info/native-address/.dirs/system-data1:/var/volatile/tmp/callable-info/native-address/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/callable-info/native-address/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/callable-info/native-address/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/callable-info/native-address/.dirs/runtime # Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection ok 6 /callable-info/native-address # Start of platform tests # Start of unix tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/callable-info/platform/unix/is-method/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/callable-info/platform/unix/is-method/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/callable-info/platform/unix/is-method/.dirs/system-config1:/var/volatile/tmp/callable-info/platform/unix/is-method/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/callable-info/platform/unix/is-method/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/callable-info/platform/unix/is-method/.dirs/system-data1:/var/volatile/tmp/callable-info/platform/unix/is-method/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/callable-info/platform/unix/is-method/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/callable-info/platform/unix/is-method/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/callable-info/platform/unix/is-method/.dirs/runtime # Using GI_TYPELIB_DIR = /usr/libexec/installed-tests/glib/../introspection # Checking DesktopAppInfo in Gio # Checking DesktopAppInfo in GioUnix ok 7 /callable-info/platform/unix/is-method # End of unix tests # End of platform tests # End of callable-info tests PASS: glib/callable-info.test Running test: glib/spawn-path-search.test TAP version 14 # random seed: R02Sac49e9f6dce664e7a3f9f2a6edcb8030 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/strvbuilder.test TAP version 14 # random seed: R02S7b79b7cbdb7713e15faa18ddacc71f8e 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/protocol.test TAP version 14 # random seed: R02Sc756f44cc9fb866818818882bce8b8ac 1..9 # Start of glib tests # Start of testing tests # Start of protocol tests ok 1 /glib/testing/protocol/debug ok 2 /glib/testing/protocol/info ok 3 /glib/testing/protocol/message ok 4 /glib/testing/protocol/warning ok 5 /glib/testing/protocol/critical ok 6 /glib/testing/protocol/error ok 7 /glib/testing/protocol/gtest-message ok 8 /glib/testing/protocol/test-message ok 9 /glib/testing/protocol/test-error # End of protocol tests # End of testing tests # End of glib tests PASS: glib/protocol.test Running test: glib/atomic-c-11.test TAP version 14 # random seed: R02S5d936bc9fdaa1c227e983939c8559d60 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/cxx-2c.test TAP version 14 # random seed: R02S53257bf550433300d6c696134b4e5ce0 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-2c.test Running test: glib/properties.test TAP version 14 # random seed: R02Se0b0822b7b6ba2597e35302c4542b5a3 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/overflow.test TAP version 14 # random seed: R02Seb790b100311334aea7af1063e27ab36 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/thread-pool.test TAP version 14 # random seed: R02S7f1d6542ec5eb3c8514c4f60378db13f 1..6 # Start of thread_pool tests # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/3712 ok 1 /thread_pool/pool_fail # /thread_pool/shared summary: Tests that a shared, non-exclusive thread pool generally works. ok 2 /thread_pool/shared # /thread_pool/exclusive summary: Tests that an exclusive thread pool generally works. ok 3 /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 4 /thread_pool/create_shared_after_exclusive # Bug Reference: https://gitlab.gnome.org/GNOME/glib/-/issues/121 ok 5 /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 6 /thread_pool/create_exclusive_after_shared # End of thread_pool tests PASS: glib/thread-pool.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/utils-c-99.test TAP version 14 # random seed: R02S4443d347f57ebd7250992fbfa20286fe 1..41 # Start of utils tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/language-names/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/language-names/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-config1:/var/volatile/tmp/utils/language-names/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/language-names/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-data1:/var/volatile/tmp/utils/language-names/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/language-names/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/language-names/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/language-names/.dirs/runtime ok 1 /utils/language-names # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/locale-variants/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-config1:/var/volatile/tmp/utils/locale-variants/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-data1:/var/volatile/tmp/utils/locale-variants/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/locale-variants/.dirs/runtime # Testing locale ‘en’ # Testing locale ‘sr@latin’ # Testing locale ‘fr_BE’ # Testing locale ‘sr_SR@latin’ # Testing locale ‘sr_SR@latin.UTF-8’ # Testing locale ‘sr@latin_invalid’ # Testing locale ‘sr.UTF-8@latin’ # Testing locale ‘sr.UTF-8_latin’ # Testing locale ‘sr.UTF-8@latin_invalid’ ok 2 /utils/locale-variants # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/version/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/version/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/version/.dirs/system-config1:/var/volatile/tmp/utils/version/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/version/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/version/.dirs/system-data1:/var/volatile/tmp/utils/version/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/version/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/version/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/version/.dirs/runtime ok 3 /utils/version # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/appname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/appname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-config1:/var/volatile/tmp/utils/appname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/appname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-data1:/var/volatile/tmp/utils/appname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/appname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/appname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/appname/.dirs/runtime ok 4 /utils/appname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/tmpdir/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-config1:/var/volatile/tmp/utils/tmpdir/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-data1:/var/volatile/tmp/utils/tmpdir/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/tmpdir/.dirs/runtime # 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 Unable to clean up temporary directory /var/volatile/tmp/utils/tmpdir: No such file or directory ok 6 /utils/tmpdir # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/basic_bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-config1:/var/volatile/tmp/utils/basic_bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-data1:/var/volatile/tmp/utils/basic_bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/basic_bits/.dirs/runtime ok 7 /utils/basic_bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-config1:/var/volatile/tmp/utils/bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-data1:/var/volatile/tmp/utils/bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/bits/.dirs/runtime ok 8 /utils/bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/swap/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/swap/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-config1:/var/volatile/tmp/utils/swap/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/swap/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-data1:/var/volatile/tmp/utils/swap/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/swap/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/swap/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/swap/.dirs/runtime ok 9 /utils/swap # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-config1:/var/volatile/tmp/utils/find-program/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-data1:/var/volatile/tmp/utils/find-program/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program/.dirs/runtime ok 10 /utils/find-program # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-config1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-data1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program-for-path/.dirs/runtime ok 11 /utils/find-program-for-path # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/debug/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/debug/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-config1:/var/volatile/tmp/utils/debug/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/debug/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-data1:/var/volatile/tmp/utils/debug/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/debug/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/debug/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/debug/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/debug: No such file or directory ok 12 /utils/debug # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-config1:/var/volatile/tmp/utils/codeset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-data1:/var/volatile/tmp/utils/codeset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset/.dirs/runtime ok 13 /utils/codeset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset2/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-config1:/var/volatile/tmp/utils/codeset2/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset2/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-data1:/var/volatile/tmp/utils/codeset2/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset2/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset2/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/codeset2: No such file or directory ok 14 /utils/codeset2 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/console-charset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-config1:/var/volatile/tmp/utils/console-charset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/console-charset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-data1:/var/volatile/tmp/utils/console-charset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/console-charset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/console-charset/.dirs/runtime ok 15 /utils/console-charset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/gettext/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/gettext/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-config1:/var/volatile/tmp/utils/gettext/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/gettext/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-data1:/var/volatile/tmp/utils/gettext/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/gettext/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/gettext/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/gettext/.dirs/runtime ok 16 /utils/gettext # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/username/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/username/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/username/.dirs/system-config1:/var/volatile/tmp/utils/username/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/username/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/username/.dirs/system-data1:/var/volatile/tmp/utils/username/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/username/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/username/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/username/.dirs/runtime ok 17 /utils/username # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/realname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/realname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-config1:/var/volatile/tmp/utils/realname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/realname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-data1:/var/volatile/tmp/utils/realname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/realname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/realname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/realname/.dirs/runtime ok 18 /utils/realname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/hostname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/hostname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-config1:/var/volatile/tmp/utils/hostname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/hostname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-data1:/var/volatile/tmp/utils/hostname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/hostname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/hostname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/hostname/.dirs/runtime ok 19 /utils/hostname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/os-info/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/os-info/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-config1:/var/volatile/tmp/utils/os-info/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/os-info/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-data1:/var/volatile/tmp/utils/os-info/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/os-info/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/os-info/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/os-info/.dirs/runtime # NAME: Linux ok 20 /utils/os-info # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/.dirs/runtime ok 21 /utils/clear-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/runtime ok 22 /utils/clear-pointer-cast # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/take-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-config1:/var/volatile/tmp/utils/take-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-data1:/var/volatile/tmp/utils/take-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/take-pointer/.dirs/runtime ok 23 /utils/take-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-source/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-config1:/var/volatile/tmp/utils/clear-source/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-source/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-data1:/var/volatile/tmp/utils/clear-source/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-source/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-source/.dirs/runtime ok 24 /utils/clear-source # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/misc-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-config1:/var/volatile/tmp/utils/misc-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-data1:/var/volatile/tmp/utils/misc-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/misc-mem/.dirs/runtime ok 25 /utils/misc-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/.dirs/runtime # /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 26 /utils/aligned-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/free-sized/.dirs/runtime # /utils/free-sized summary: Check that g_free_sized() works ok 27 /utils/free-sized # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/nullify/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/nullify/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-config1:/var/volatile/tmp/utils/nullify/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/nullify/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-data1:/var/volatile/tmp/utils/nullify/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/nullify/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/nullify/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/nullify/.dirs/runtime ok 28 /utils/nullify # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/atexit/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/atexit/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-config1:/var/volatile/tmp/utils/atexit/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/atexit/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-data1:/var/volatile/tmp/utils/atexit/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/atexit/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/atexit/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/atexit/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/atexit: No such file or directory ok 29 /utils/atexit # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/check-setuid/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-config1:/var/volatile/tmp/utils/check-setuid/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-data1:/var/volatile/tmp/utils/check-setuid/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/check-setuid/.dirs/runtime ok 30 /utils/check-setuid # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/int-limits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-config1:/var/volatile/tmp/utils/int-limits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/int-limits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-data1:/var/volatile/tmp/utils/int-limits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/int-limits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/int-limits/.dirs/runtime # Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1663 ok 31 /utils/int-limits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-list/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-config1:/var/volatile/tmp/utils/clear-list/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-list/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-data1:/var/volatile/tmp/utils/clear-list/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-list/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-list/.dirs/runtime ok 32 /utils/clear-list # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-slist/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-config1:/var/volatile/tmp/utils/clear-slist/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-data1:/var/volatile/tmp/utils/clear-slist/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-slist/.dirs/runtime ok 33 /utils/clear-slist # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-config1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-data1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/steal-handle-id/.dirs/runtime ok 34 /utils/steal-handle-id # Start of user-special-dirs tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/runtime ok 35 /utils/user-special-dirs/desktop # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/runtime # /utils/user-special-dirs/load-unlocked summary: Tests error and corner cases of user-dirs.dirs content. # Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/4800 Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/load-unlocked: No such file or directory ok 36 /utils/user-special-dirs/load-unlocked # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/runtime # /utils/user-special-dirs/reload-leaks summary: Tests that old user special dirs values are deliberately leaked on reload. Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/reload-leaks: No such file or directory ok 37 /utils/user-special-dirs/reload-leaks # End of user-special-dirs tests # Start of clear-pointer tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/runtime ok 38 /utils/clear-pointer/side-effects # End of clear-pointer tests # Start of aligned-mem tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/runtime # /utils/aligned-mem/alignment summary: Check that g_aligned_alloc() returns a correctly aligned pointer ok 39 /utils/aligned-mem/alignment # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/runtime # /utils/aligned-mem/zeroed summary: Check that g_aligned_alloc0() zeroes out its allocation ok 40 /utils/aligned-mem/zeroed # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/runtime # /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/include.test TAP version 14 # random seed: R02Sddb81122f6fa0f08367678b2a31ad2f2 1..1 # Start of include tests ok 1 /include/rwlock # End of include tests PASS: glib/include.test Running test: glib/fileattributematcher.test TAP version 14 # random seed: R02Sfa3fcf319eff519d703aa4018a861413 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/init.test TAP version 14 # random seed: R02Sa4aa2d6d352917ed404cf9332e5acc26 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/sleepy-stream.test TAP version 14 # random seed: R02Sff76ffba2b5c1ef219c0155c39f76dc3 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/memory-input-stream.test TAP version 14 # random seed: R02S21e0444d08edba18b0e2bb5b14431d09 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/scannerapi.test TAP version 14 # random seed: R02Seaa4c2313892e7748029e0e4b5fe36ff 1..8 # Start of scanner tests ok 1 /scanner/warn ok 2 /scanner/error ok 3 /scanner/symbols ok 4 /scanner/tokens ok 5 /scanner/multiline-comment ok 6 /scanner/int-to-float ok 7 /scanner/fd-input # Start of fd-input tests ok 8 /scanner/fd-input/rewind # End of fd-input tests # End of scanner tests PASS: glib/scannerapi.test Running test: glib/utils-c-23.test TAP version 14 # random seed: R02Seacf48a5085b0e137aab0a0c1bbc25e6 1..41 # Start of utils tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/language-names/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/language-names/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-config1:/var/volatile/tmp/utils/language-names/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/language-names/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-data1:/var/volatile/tmp/utils/language-names/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/language-names/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/language-names/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/language-names/.dirs/runtime ok 1 /utils/language-names # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/locale-variants/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-config1:/var/volatile/tmp/utils/locale-variants/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-data1:/var/volatile/tmp/utils/locale-variants/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/locale-variants/.dirs/runtime # Testing locale ‘en’ # Testing locale ‘sr@latin’ # Testing locale ‘fr_BE’ # Testing locale ‘sr_SR@latin’ # Testing locale ‘sr_SR@latin.UTF-8’ # Testing locale ‘sr@latin_invalid’ # Testing locale ‘sr.UTF-8@latin’ # Testing locale ‘sr.UTF-8_latin’ # Testing locale ‘sr.UTF-8@latin_invalid’ ok 2 /utils/locale-variants # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/version/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/version/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/version/.dirs/system-config1:/var/volatile/tmp/utils/version/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/version/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/version/.dirs/system-data1:/var/volatile/tmp/utils/version/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/version/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/version/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/version/.dirs/runtime ok 3 /utils/version # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/appname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/appname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-config1:/var/volatile/tmp/utils/appname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/appname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-data1:/var/volatile/tmp/utils/appname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/appname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/appname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/appname/.dirs/runtime ok 4 /utils/appname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/tmpdir/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-config1:/var/volatile/tmp/utils/tmpdir/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-data1:/var/volatile/tmp/utils/tmpdir/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/tmpdir/.dirs/runtime # 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 Unable to clean up temporary directory /var/volatile/tmp/utils/tmpdir: No such file or directory ok 6 /utils/tmpdir # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/basic_bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-config1:/var/volatile/tmp/utils/basic_bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-data1:/var/volatile/tmp/utils/basic_bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/basic_bits/.dirs/runtime ok 7 /utils/basic_bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-config1:/var/volatile/tmp/utils/bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-data1:/var/volatile/tmp/utils/bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/bits/.dirs/runtime ok 8 /utils/bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/swap/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/swap/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-config1:/var/volatile/tmp/utils/swap/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/swap/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-data1:/var/volatile/tmp/utils/swap/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/swap/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/swap/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/swap/.dirs/runtime ok 9 /utils/swap # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-config1:/var/volatile/tmp/utils/find-program/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-data1:/var/volatile/tmp/utils/find-program/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program/.dirs/runtime ok 10 /utils/find-program # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-config1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-data1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program-for-path/.dirs/runtime ok 11 /utils/find-program-for-path # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/debug/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/debug/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-config1:/var/volatile/tmp/utils/debug/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/debug/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-data1:/var/volatile/tmp/utils/debug/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/debug/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/debug/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/debug/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/debug: No such file or directory ok 12 /utils/debug # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-config1:/var/volatile/tmp/utils/codeset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-data1:/var/volatile/tmp/utils/codeset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset/.dirs/runtime ok 13 /utils/codeset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset2/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-config1:/var/volatile/tmp/utils/codeset2/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset2/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-data1:/var/volatile/tmp/utils/codeset2/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset2/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset2/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/codeset2: No such file or directory ok 14 /utils/codeset2 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/console-charset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-config1:/var/volatile/tmp/utils/console-charset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/console-charset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-data1:/var/volatile/tmp/utils/console-charset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/console-charset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/console-charset/.dirs/runtime ok 15 /utils/console-charset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/gettext/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/gettext/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-config1:/var/volatile/tmp/utils/gettext/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/gettext/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-data1:/var/volatile/tmp/utils/gettext/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/gettext/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/gettext/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/gettext/.dirs/runtime ok 16 /utils/gettext # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/username/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/username/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/username/.dirs/system-config1:/var/volatile/tmp/utils/username/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/username/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/username/.dirs/system-data1:/var/volatile/tmp/utils/username/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/username/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/username/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/username/.dirs/runtime ok 17 /utils/username # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/realname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/realname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-config1:/var/volatile/tmp/utils/realname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/realname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-data1:/var/volatile/tmp/utils/realname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/realname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/realname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/realname/.dirs/runtime ok 18 /utils/realname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/hostname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/hostname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-config1:/var/volatile/tmp/utils/hostname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/hostname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-data1:/var/volatile/tmp/utils/hostname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/hostname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/hostname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/hostname/.dirs/runtime ok 19 /utils/hostname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/os-info/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/os-info/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-config1:/var/volatile/tmp/utils/os-info/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/os-info/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-data1:/var/volatile/tmp/utils/os-info/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/os-info/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/os-info/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/os-info/.dirs/runtime # NAME: Linux ok 20 /utils/os-info # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/.dirs/runtime ok 21 /utils/clear-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/runtime ok 22 /utils/clear-pointer-cast # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/take-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-config1:/var/volatile/tmp/utils/take-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-data1:/var/volatile/tmp/utils/take-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/take-pointer/.dirs/runtime ok 23 /utils/take-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-source/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-config1:/var/volatile/tmp/utils/clear-source/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-source/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-data1:/var/volatile/tmp/utils/clear-source/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-source/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-source/.dirs/runtime ok 24 /utils/clear-source # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/misc-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-config1:/var/volatile/tmp/utils/misc-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-data1:/var/volatile/tmp/utils/misc-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/misc-mem/.dirs/runtime ok 25 /utils/misc-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/.dirs/runtime # /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 26 /utils/aligned-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/free-sized/.dirs/runtime # /utils/free-sized summary: Check that g_free_sized() works ok 27 /utils/free-sized # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/nullify/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/nullify/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-config1:/var/volatile/tmp/utils/nullify/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/nullify/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-data1:/var/volatile/tmp/utils/nullify/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/nullify/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/nullify/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/nullify/.dirs/runtime ok 28 /utils/nullify # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/atexit/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/atexit/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-config1:/var/volatile/tmp/utils/atexit/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/atexit/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-data1:/var/volatile/tmp/utils/atexit/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/atexit/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/atexit/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/atexit/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/atexit: No such file or directory ok 29 /utils/atexit # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/check-setuid/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-config1:/var/volatile/tmp/utils/check-setuid/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-data1:/var/volatile/tmp/utils/check-setuid/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/check-setuid/.dirs/runtime ok 30 /utils/check-setuid # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/int-limits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-config1:/var/volatile/tmp/utils/int-limits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/int-limits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-data1:/var/volatile/tmp/utils/int-limits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/int-limits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/int-limits/.dirs/runtime # Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1663 ok 31 /utils/int-limits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-list/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-config1:/var/volatile/tmp/utils/clear-list/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-list/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-data1:/var/volatile/tmp/utils/clear-list/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-list/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-list/.dirs/runtime ok 32 /utils/clear-list # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-slist/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-config1:/var/volatile/tmp/utils/clear-slist/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-data1:/var/volatile/tmp/utils/clear-slist/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-slist/.dirs/runtime ok 33 /utils/clear-slist # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-config1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-data1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/steal-handle-id/.dirs/runtime ok 34 /utils/steal-handle-id # Start of user-special-dirs tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/runtime ok 35 /utils/user-special-dirs/desktop # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/runtime # /utils/user-special-dirs/load-unlocked summary: Tests error and corner cases of user-dirs.dirs content. # Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/4800 Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/load-unlocked: No such file or directory ok 36 /utils/user-special-dirs/load-unlocked # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/runtime # /utils/user-special-dirs/reload-leaks summary: Tests that old user special dirs values are deliberately leaked on reload. Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/reload-leaks: No such file or directory ok 37 /utils/user-special-dirs/reload-leaks # End of user-special-dirs tests # Start of clear-pointer tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/runtime ok 38 /utils/clear-pointer/side-effects # End of clear-pointer tests # Start of aligned-mem tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/runtime # /utils/aligned-mem/alignment summary: Check that g_aligned_alloc() returns a correctly aligned pointer ok 39 /utils/aligned-mem/alignment # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/runtime # /utils/aligned-mem/zeroed summary: Check that g_aligned_alloc0() zeroes out its allocation ok 40 /utils/aligned-mem/zeroed # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/runtime # /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-23.test Running test: glib/references.test TAP version 14 # random seed: R02Seeba14d7acae5ffe09db15a6ac13ee6f 1..4 # Start of gobject tests ok 1 /gobject/references ok 2 /gobject/references-many ok 3 /gobject/references_two ok 4 /gobject/references_run_dispose # End of gobject tests PASS: glib/references.test Running test: glib/param.test TAP version 14 # random seed: R02S1e193ac8c1d2cb7a410f1f5c5baf528c 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/union-info.test TAP version 14 # random seed: R02S70c45f000d091ae2fd0adf15beb5a755 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/portal-support-snap-classic.test TAP version 14 # random seed: R02S625b552304f39cc235f288cb37c3481c 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/gobject-query.py.test TAP version 13 ok 1 __main__.TestGobjectQuery.test_froots # gobject-query: /usr/bin/gobject-query # tmpdir: /tmp/tmpfy5m0pze # 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/tmpiysoxjqh # 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/tmpty6bw7vb # 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/tmpjbm132ak # Running: ['/usr/bin/gobject-query', '--version'] # Return code: 0 # Output: # 2.88.0 # Error: 1..4 PASS: glib/gobject-query.py.test Running test: glib/iptosmessage.test TAP version 14 # random seed: R02Sf13b9d43303b1a94efb6a5f50d35b22a 1..2 # Start of iptosmessage tests ok 1 /iptosmessage/iptos ok 2 /iptosmessage/ipv6tclass # End of iptosmessage tests PASS: glib/iptosmessage.test Running test: glib/network-address.test TAP version 14 # random seed: R02Sef76b490fe432cdfd58af5aa075b2a11 1..72 # Start of network-address tests ok 1 /network-address/basic ok 2 /network-address/scope-id ok 3 /network-address/uri-scope-id ok 4 /network-address/to-string # Start of parse-host tests ok 5 /network-address/parse-host/0 ok 6 /network-address/parse-host/1 ok 7 /network-address/parse-host/2 ok 8 /network-address/parse-host/3 ok 9 /network-address/parse-host/4 ok 10 /network-address/parse-host/5 ok 11 /network-address/parse-host/6 ok 12 /network-address/parse-host/7 ok 13 /network-address/parse-host/8 ok 14 /network-address/parse-host/9 ok 15 /network-address/parse-host/10 ok 16 /network-address/parse-host/11 ok 17 /network-address/parse-host/12 ok 18 /network-address/parse-host/13 # End of parse-host tests # Start of parse-uri tests ok 19 /network-address/parse-uri/0 ok 20 /network-address/parse-uri/1 ok 21 /network-address/parse-uri/2 ok 22 /network-address/parse-uri/3 ok 23 /network-address/parse-uri/4 ok 24 /network-address/parse-uri/5 ok 25 /network-address/parse-uri/6 ok 26 /network-address/parse-uri/7 ok 27 /network-address/parse-uri/8 ok 28 /network-address/parse-uri/9 # End of parse-uri tests # Start of resolve-address tests # Input: 192.168.1.2 ok 29 /network-address/resolve-address/0 # Input: fe80::42 ok 30 /network-address/resolve-address/1 # Input: 192.168.1.2:80 ok 31 /network-address/resolve-address/2 # Input: [fe80::42] ok 32 /network-address/resolve-address/3 # Input: [fe80::42]:80 ok 33 /network-address/resolve-address/4 # Input: 192.168.258 ok 34 /network-address/resolve-address/5 # Input: 192.11010306 ok 35 /network-address/resolve-address/6 # Input: 3232235778 ok 36 /network-address/resolve-address/7 # Input: 0300.0250.0001.0001 ok 37 /network-address/resolve-address/8 # Input: 0xC0.0xA8.0x01.0x02 ok 38 /network-address/resolve-address/9 # Input: 0xc0.0xa8.0x01.0x02 ok 39 /network-address/resolve-address/10 # Input: 0xc0a80102 ok 40 /network-address/resolve-address/11 # End of resolve-address tests # Start of loopback tests ok 41 /network-address/loopback/basic ok 42 /network-address/loopback/sync ok 43 /network-address/loopback/async # End of loopback tests # Start of localhost tests ok 44 /network-address/localhost/async ok 45 /network-address/localhost/sync # End of localhost tests # Start of happy-eyeballs tests ok 46 /network-address/happy-eyeballs/basic ok 47 /network-address/happy-eyeballs/parallel ok 48 /network-address/happy-eyeballs/slow-ipv4 ok 49 /network-address/happy-eyeballs/slow-ipv6 ok 50 /network-address/happy-eyeballs/very-slow-ipv6 ok 51 /network-address/happy-eyeballs/slow-connection-and-ipv4 # slow test /network-address/happy-eyeballs/slow-connection-and-ipv4 executed in 0.80 secs # GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken ok 52 /network-address/happy-eyeballs/ipv6-error-ipv4-first # GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken ok 53 /network-address/happy-eyeballs/ipv6-error-ipv6-first # Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/865 # /network-address/happy-eyeballs/ipv6-error-ipv4-very-slow summary: Ensure that we successfully return IPv4 results even when they come significantly later than an IPv6 failure. # GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken ok 54 /network-address/happy-eyeballs/ipv6-error-ipv4-very-slow # GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken ok 55 /network-address/happy-eyeballs/ipv4-error-ipv6-first # GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken ok 56 /network-address/happy-eyeballs/ipv4-error-ipv4-first # GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken # GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken ok 57 /network-address/happy-eyeballs/both-error # GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken # GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken ok 58 /network-address/happy-eyeballs/both-error-delays-1 # GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken # GLib-GIO-DEBUG: IPv6 DNS error: IPv6 Broken ok 59 /network-address/happy-eyeballs/both-error-delays-2 # GLib-GIO-DEBUG: IPv4 DNS error: IPv4 Broken ok 60 /network-address/happy-eyeballs/both-error-delays-3 # End of happy-eyeballs tests # End of network-address tests # Start of gresolver tests # Start of resolve-address tests # Input: 192.168.1.2 ok 61 /gresolver/resolve-address/0 # Input: fe80::42 ok 62 /gresolver/resolve-address/1 # Input: 192.168.1.2:80 # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string 192.168.1.2:80 # 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’ # Error: Error resolving “192.168.1.2:80”: Name or service not known ok 63 /gresolver/resolve-address/2 # Input: [fe80::42] # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string [fe80::42] # Error: Error resolving “[fe80::42]”: Name or service not known ok 64 /gresolver/resolve-address/3 # Input: [fe80::42]:80 # GLib-GIO-DEBUG: getaddrinfo failed to resolve host string [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/testing-nonfatal.test TAP version 14 # random seed: R02S9460c5eb61af5810230f45afd4d462c8 ** GLib:ERROR:/usr/src/debug/glib-2.0/2.88.0/glib/tests/testing-nonfatal.c:26:main: assertion failed ("We can survive this!" == "Or maybe not?"): ("We can survive this!" == "Or maybe not?") # GLib:ERROR:/usr/src/debug/glib-2.0/2.88.0/glib/tests/testing-nonfatal.c:26:main: assertion failed ("We can survive this!" == "Or maybe not?"): ("We can survive this!" == "Or maybe not?") PASS: glib/testing-nonfatal.test Running test: glib/qdata.test TAP version 14 # random seed: R02Sc6b5e5feed0a650afe2765e6f3fa112c 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/mappedfile.test TAP version 14 # random seed: R02Se8766ae6f5dbf7f4817d7d07c98a199c 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/unicode-normalize.test TAP version 14 # random seed: R02Sc5bcb05591388539bb5c1df6fb581091 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/macros-c-17.test TAP version 14 # random seed: R02S192e26487fe8ca6c8b4eb793bae1e5a8 1..4 # Start of C tests # G_C_STD_VERSION is 201710 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/tls-certificate.test TAP version 14 # random seed: R02S469918eea1611e7a518880d8556e2eb4 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/cxx.test TAP version 14 # random seed: R02S04b7ffa109a91c514912b71a150e3b65 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/registered-type-info.test TAP version 14 # random seed: R02Sab253f5fd95506f9353c6e5e2d0a4727 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/testfilemonitor.test TAP version 14 # random seed: R02Sa7e9bba68b59058fb295dc8ce609d605 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_OCHNN3 # 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_GGINN3 # 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_KAPCN3 # 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_CJEON3 # 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_4X0NN3 # 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_O88NN3 # /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_M75NN3 # /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_O25NN3 # 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/shell.test TAP version 14 # random seed: R02Sb9f0174b22931a7ad2feaf28fd42c674 1..52 # 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: # ok 23 /shell/cmdline/22 test cmdline: foo '/bar/summer'\''09 tours.pdf' ok 24 /shell/cmdline/23 # End of cmdline tests # Start of quote tests ok 25 /shell/quote/0 ok 26 /shell/quote/1 ok 27 /shell/quote/2 ok 28 /shell/quote/3 ok 29 /shell/quote/4 ok 30 /shell/quote/5 ok 31 /shell/quote/6 # End of quote tests # Start of unquote tests ok 32 /shell/unquote/0 ok 33 /shell/unquote/1 ok 34 /shell/unquote/2 ok 35 /shell/unquote/3 ok 36 /shell/unquote/4 ok 37 /shell/unquote/5 ok 38 /shell/unquote/6 ok 39 /shell/unquote/7 ok 40 /shell/unquote/8 ok 41 /shell/unquote/9 ok 42 /shell/unquote/10 ok 43 /shell/unquote/11 ok 44 /shell/unquote/12 ok 45 /shell/unquote/13 ok 46 /shell/unquote/14 ok 47 /shell/unquote/15 ok 48 /shell/unquote/16 ok 49 /shell/unquote/17 ok 50 /shell/unquote/18 ok 51 /shell/unquote/19 ok 52 /shell/unquote/20 # End of unquote tests # End of shell tests PASS: glib/shell.test Running test: glib/io-stream.test TAP version 14 # random seed: R02S0622d1bc126675eba4a9d64e41aae150 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/readwrite.test TAP version 14 # random seed: R02S7ef5b33e7591aa05f030485ee97c9541 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/utils-isolated.test TAP version 14 # random seed: R02S390a738939d40b254bab942725c923a4 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/dynamictype.test TAP version 14 # random seed: R02Sf63f5054d2288339676fcffbdf21b136 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/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/tmpsok1wzfq # Running: ['/usr/bin/gi-compile-repository', 'this-is/not/a-file.gir', '--output', '/tmp/tmpsok1wzfq/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/tmpn9pl44qx # Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/GLib-2.0.gir', '--output', '/tmp/tmpn9pl44qx/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/tmpwp3lsfp0 # 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/tmpxiki1b2h # Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/GObject-2.0.gir', '--output', '/tmp/tmpxiki1b2h/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/tmpfqznguz_ # Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/GObject-2.0.gir', '--output', 'this-is/not/a-good-output/invalid.typelib', '--includedir', '/usr/share/gir-1.0', '--includedir', '/usr/share/gir-1.0'] # Return code: 1 # Output: # # Error: # Failed to open ‘this-is/not/a-good-output/invalid.typelib.tmp’: No such file or directory ok 6 __main__.TestGICompileRepositoryForGio.test_compile # gir path set to [PosixPath('/usr/share/gir-1.0'), PosixPath('/usr/share/gir-1.0')] # gi-compile-repository: /usr/bin/gi-compile-repository # tmpdir: /tmp/tmpj7ul0rmu # Running: ['/usr/bin/gi-compile-repository', '/usr/share/gir-1.0/Gio-2.0.gir', '--output', '/tmp/tmpj7ul0rmu/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/tmp4qn4qzf4 # 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/converter-stream.test TAP version 14 # random seed: R02Sa10e652327c195234f96b0416c171a17 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 0xaaaae33fd710 and GSocketClientAsyncConnectData 0xaaaae33f5df0 # 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 0xaaaae33fed40 for GSocketClientAsyncConnectData 0xaaaae33f5df0 # 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/threadtests.test TAP version 14 # random seed: R02S9fba7113a92ea8c007906e21ee0c9fad 1..5 # Start of GObject tests ok 1 /GObject/threaded-object-init ok 2 /GObject/threaded-weak-ref # slow test /GObject/threaded-weak-ref executed in 0.54 secs # 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/srvtarget.test TAP version 14 # random seed: R02S445d513618176564ceb663b90063b264 1..1 # Start of srvtarget tests Executing: glib/srvtarget.test ok 1 /srvtarget/srv-target-ordering # End of srvtarget tests PASS: glib/srvtarget.test Running test: glib/option-context.test TAP version 14 # random seed: R02Safb392717c13a8d87f08f5b51af5cd14 1..61 # Start of option tests ok 1 /option/basic ok 2 /option/translate ok 3 /option/strict-posix # Testing command: program --double abc # Testing command: program --double 2e309 # Testing command: program --int abc # Testing command: program --int 99999999999999999999999999999999999 # Testing command: program --int64 abc # Testing command: program --int64 99999999999999999999999999999999999 ok 4 /option/parsing-errors # Start of help tests ok 5 /option/help/options ok 6 /option/help/no-options # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=697652 ok 7 /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 8 /option/help/deprecated ok 9 /option/help/main-get_help-format ok 10 /option/help/group-get_help-format # End of help tests # Start of group tests # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=504142 ok 11 /option/group/captions ok 12 /option/group/main ok 13 /option/group/error-hook ok 14 /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 15 /option/restoration/int ok 16 /option/restoration/string ok 17 /option/restoration/boolean # End of restoration tests # Start of arg tests ok 18 /option/arg/reverse-string ok 19 /option/arg/optional-int # Start of repetition tests ok 20 /option/arg/repetition/int ok 21 /option/arg/repetition/string ok 22 /option/arg/repetition/filename ok 23 /option/arg/repetition/double ok 24 /option/arg/repetition/locale ok 25 /option/arg/repetition/int64 # End of repetition tests # Start of array tests ok 26 /option/arg/array/string # End of array tests # Start of callback tests ok 27 /option/arg/callback/string ok 28 /option/arg/callback/count ok 29 /option/arg/callback/optional1 ok 30 /option/arg/callback/optional2 ok 31 /option/arg/callback/optional3 ok 32 /option/arg/callback/optional4 ok 33 /option/arg/callback/optional5 ok 34 /option/arg/callback/optional6 ok 35 /option/arg/callback/optional7 ok 36 /option/arg/callback/optional8 # End of callback tests # Start of remaining tests ok 37 /option/arg/remaining/callback ok 38 /option/arg/remaining/callback-false ok 39 /option/arg/remaining/non-option ok 40 /option/arg/remaining/separator ok 41 /option/arg/remaining/array # End of remaining tests # Start of ignore tests ok 42 /option/arg/ignore/long ok 43 /option/arg/ignore/short ok 44 /option/arg/ignore/arg # End of ignore tests # Start of rest tests ok 45 /option/arg/rest/non-option ok 46 /option/arg/rest/separator1 ok 47 /option/arg/rest/separator2 ok 48 /option/arg/rest/separator3 ok 49 /option/arg/rest/separator4 ok 50 /option/arg/rest/separator5 # End of rest tests # End of arg tests # Start of context tests ok 51 /option/context/add ok 52 /option/context/empty2 ok 53 /option/context/empty3 # End of context tests # Start of bug tests # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=166609 ok 54 /option/bug/unknown-short # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=168008 ok 55 /option/bug/lonely-dash ok 56 /option/bug/triple-dash # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=305576 ok 57 /option/bug/missing-arg # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=577638 ok 58 /option/bug/dash-arg # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=729563 ok 59 /option/bug/short-remaining # Bug Reference: https://bugzilla.gnome.org/show_bug.cgi?id=646926 ok 60 /option/bug/double-free ok 61 /option/bug/double-zero # End of bug tests # End of option tests PASS: glib/option-context.test Running test: glib/overflow-fallback.test TAP version 14 # random seed: R02S89cba4d2745bd58a5ec1dff097d793ae 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/throws.test TAP version 14 # random seed: R02S211d060952aa3ce1cbef01071806d6a4 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/autoptr-gio.test TAP version 14 # random seed: R02S91b8687270486c55613d4e6bf26df8da 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/task.test TAP version 14 # random seed: R02Sa16556442900797b41826deeea332d69 1..37 # 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.52 secs # GLib-GIO-DEBUG: GTask 0xaaaaba6dcc40 (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 0xaaaaba673710 (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 0xaaaaba672560 (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 0xaaaaba6dcf60 (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 ok 31 /gtask/thread-pool-stress # SKIP Skipping thread pool stress test in non-thorough mode # Start of name tests ok 32 /gtask/name/macro-wrapper # End of name tests # Start of return tests ok 33 /gtask/return/error-first ok 34 /gtask/return/value-first # Start of in-idle tests ok 35 /gtask/return/in-idle/error-first ok 36 /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 37 /gtask/attach-source/set-name # End of attach-source tests # End of gtask tests PASS: glib/task.test Running test: glib/trash.test TAP version 14 # random seed: R02S130363af80d9ab64124c56f6f7ac1f88 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-trashSFIQN3 (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/pattern.test TAP version 14 # random seed: R02S699d30000bbdd0f792bb9541f81ed2ed 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/unix-streams.test TAP version 14 # random seed: R02Sc828814982915fbfc9b6db81a58aef19 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/utils-c-11.test TAP version 14 # random seed: R02S2fc7b1348c83def94928153251e51d85 1..41 # Start of utils tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/language-names/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/language-names/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-config1:/var/volatile/tmp/utils/language-names/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/language-names/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-data1:/var/volatile/tmp/utils/language-names/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/language-names/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/language-names/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/language-names/.dirs/runtime ok 1 /utils/language-names # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/locale-variants/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-config1:/var/volatile/tmp/utils/locale-variants/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-data1:/var/volatile/tmp/utils/locale-variants/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/locale-variants/.dirs/runtime # Testing locale ‘en’ # Testing locale ‘sr@latin’ # Testing locale ‘fr_BE’ # Testing locale ‘sr_SR@latin’ # Testing locale ‘sr_SR@latin.UTF-8’ # Testing locale ‘sr@latin_invalid’ # Testing locale ‘sr.UTF-8@latin’ # Testing locale ‘sr.UTF-8_latin’ # Testing locale ‘sr.UTF-8@latin_invalid’ ok 2 /utils/locale-variants # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/version/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/version/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/version/.dirs/system-config1:/var/volatile/tmp/utils/version/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/version/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/version/.dirs/system-data1:/var/volatile/tmp/utils/version/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/version/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/version/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/version/.dirs/runtime ok 3 /utils/version # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/appname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/appname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-config1:/var/volatile/tmp/utils/appname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/appname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-data1:/var/volatile/tmp/utils/appname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/appname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/appname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/appname/.dirs/runtime ok 4 /utils/appname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/tmpdir/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-config1:/var/volatile/tmp/utils/tmpdir/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-data1:/var/volatile/tmp/utils/tmpdir/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/tmpdir/.dirs/runtime # 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 Unable to clean up temporary directory /var/volatile/tmp/utils/tmpdir: No such file or directory ok 6 /utils/tmpdir # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/basic_bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-config1:/var/volatile/tmp/utils/basic_bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-data1:/var/volatile/tmp/utils/basic_bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/basic_bits/.dirs/runtime ok 7 /utils/basic_bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-config1:/var/volatile/tmp/utils/bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-data1:/var/volatile/tmp/utils/bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/bits/.dirs/runtime ok 8 /utils/bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/swap/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/swap/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-config1:/var/volatile/tmp/utils/swap/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/swap/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-data1:/var/volatile/tmp/utils/swap/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/swap/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/swap/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/swap/.dirs/runtime ok 9 /utils/swap # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-config1:/var/volatile/tmp/utils/find-program/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-data1:/var/volatile/tmp/utils/find-program/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program/.dirs/runtime ok 10 /utils/find-program # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-config1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-data1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program-for-path/.dirs/runtime ok 11 /utils/find-program-for-path # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/debug/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/debug/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-config1:/var/volatile/tmp/utils/debug/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/debug/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-data1:/var/volatile/tmp/utils/debug/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/debug/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/debug/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/debug/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/debug: No such file or directory ok 12 /utils/debug # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-config1:/var/volatile/tmp/utils/codeset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-data1:/var/volatile/tmp/utils/codeset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset/.dirs/runtime ok 13 /utils/codeset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset2/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-config1:/var/volatile/tmp/utils/codeset2/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset2/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-data1:/var/volatile/tmp/utils/codeset2/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset2/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset2/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/codeset2: No such file or directory ok 14 /utils/codeset2 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/console-charset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-config1:/var/volatile/tmp/utils/console-charset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/console-charset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-data1:/var/volatile/tmp/utils/console-charset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/console-charset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/console-charset/.dirs/runtime ok 15 /utils/console-charset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/gettext/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/gettext/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-config1:/var/volatile/tmp/utils/gettext/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/gettext/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-data1:/var/volatile/tmp/utils/gettext/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/gettext/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/gettext/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/gettext/.dirs/runtime ok 16 /utils/gettext # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/username/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/username/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/username/.dirs/system-config1:/var/volatile/tmp/utils/username/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/username/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/username/.dirs/system-data1:/var/volatile/tmp/utils/username/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/username/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/username/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/username/.dirs/runtime ok 17 /utils/username # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/realname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/realname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-config1:/var/volatile/tmp/utils/realname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/realname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-data1:/var/volatile/tmp/utils/realname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/realname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/realname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/realname/.dirs/runtime ok 18 /utils/realname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/hostname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/hostname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-config1:/var/volatile/tmp/utils/hostname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/hostname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-data1:/var/volatile/tmp/utils/hostname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/hostname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/hostname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/hostname/.dirs/runtime ok 19 /utils/hostname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/os-info/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/os-info/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-config1:/var/volatile/tmp/utils/os-info/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/os-info/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-data1:/var/volatile/tmp/utils/os-info/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/os-info/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/os-info/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/os-info/.dirs/runtime # NAME: Linux ok 20 /utils/os-info # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/.dirs/runtime ok 21 /utils/clear-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/runtime ok 22 /utils/clear-pointer-cast # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/take-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-config1:/var/volatile/tmp/utils/take-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-data1:/var/volatile/tmp/utils/take-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/take-pointer/.dirs/runtime ok 23 /utils/take-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-source/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-config1:/var/volatile/tmp/utils/clear-source/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-source/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-data1:/var/volatile/tmp/utils/clear-source/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-source/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-source/.dirs/runtime ok 24 /utils/clear-source # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/misc-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-config1:/var/volatile/tmp/utils/misc-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-data1:/var/volatile/tmp/utils/misc-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/misc-mem/.dirs/runtime ok 25 /utils/misc-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/.dirs/runtime # /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 26 /utils/aligned-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/free-sized/.dirs/runtime # /utils/free-sized summary: Check that g_free_sized() works ok 27 /utils/free-sized # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/nullify/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/nullify/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-config1:/var/volatile/tmp/utils/nullify/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/nullify/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-data1:/var/volatile/tmp/utils/nullify/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/nullify/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/nullify/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/nullify/.dirs/runtime ok 28 /utils/nullify # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/atexit/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/atexit/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-config1:/var/volatile/tmp/utils/atexit/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/atexit/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-data1:/var/volatile/tmp/utils/atexit/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/atexit/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/atexit/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/atexit/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/atexit: No such file or directory ok 29 /utils/atexit # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/check-setuid/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-config1:/var/volatile/tmp/utils/check-setuid/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-data1:/var/volatile/tmp/utils/check-setuid/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/check-setuid/.dirs/runtime ok 30 /utils/check-setuid # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/int-limits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-config1:/var/volatile/tmp/utils/int-limits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/int-limits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-data1:/var/volatile/tmp/utils/int-limits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/int-limits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/int-limits/.dirs/runtime # Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1663 ok 31 /utils/int-limits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-list/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-config1:/var/volatile/tmp/utils/clear-list/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-list/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-data1:/var/volatile/tmp/utils/clear-list/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-list/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-list/.dirs/runtime ok 32 /utils/clear-list # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-slist/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-config1:/var/volatile/tmp/utils/clear-slist/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-data1:/var/volatile/tmp/utils/clear-slist/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-slist/.dirs/runtime ok 33 /utils/clear-slist # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-config1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-data1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/steal-handle-id/.dirs/runtime ok 34 /utils/steal-handle-id # Start of user-special-dirs tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/runtime ok 35 /utils/user-special-dirs/desktop # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/runtime # /utils/user-special-dirs/load-unlocked summary: Tests error and corner cases of user-dirs.dirs content. # Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/4800 Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/load-unlocked: No such file or directory ok 36 /utils/user-special-dirs/load-unlocked # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/runtime # /utils/user-special-dirs/reload-leaks summary: Tests that old user special dirs values are deliberately leaked on reload. Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/reload-leaks: No such file or directory ok 37 /utils/user-special-dirs/reload-leaks # End of user-special-dirs tests # Start of clear-pointer tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/runtime ok 38 /utils/clear-pointer/side-effects # End of clear-pointer tests # Start of aligned-mem tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/runtime # /utils/aligned-mem/alignment summary: Check that g_aligned_alloc() returns a correctly aligned pointer ok 39 /utils/aligned-mem/alignment # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/runtime # /utils/aligned-mem/zeroed summary: Check that g_aligned_alloc0() zeroes out its allocation ok 40 /utils/aligned-mem/zeroed # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/runtime # /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/socket-service.test TAP version 14 # random seed: R02S067c20256f89928d6604609029b6d021 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 0xaaaaad719150 and GSocketClientAsyncConnectData 0xaaaaad713ce0 # 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 0xaaaaad71d300 and GSocketClientAsyncConnectData 0xaaaaad71cf60 # 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 0xaaaaad71d280 for GSocketClientAsyncConnectData 0xaaaaad713ce0 # 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 0xaaaaad71d280 for GSocketClientAsyncConnectData 0xaaaaad71cf60 # 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 0xaaaaad71d5d0 and GSocketClientAsyncConnectData 0xaaaaad723f00 # 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 0xaaaaad71fe30 for GSocketClientAsyncConnectData 0xaaaaad723f00 # 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 0xaaaaad71d300 and GSocketClientAsyncConnectData 0xaaaaad7239e0 # 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 0xaaaaad724910 for GSocketClientAsyncConnectData 0xaaaaad7239e0 # 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/environment.test TAP version 14 # random seed: R02S3cf09fb58234e20fa99b58ebb37532c2 1..7 # 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 # /environ/expansion summary: Test expansion of environment variable references. ok 7 /environ/expansion # SKIP Environment variable expansion is only supported on Windows # End of environ tests PASS: glib/environment.test Running test: glib/data-input-stream.test TAP version 14 # random seed: R02S1d9a13660583a6e3be380d80f34a34fd 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/utils-c-89.test TAP version 14 # random seed: R02S7367626f26991bae0bc27ca0811e7f07 1..41 # Start of utils tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/language-names/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/language-names/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-config1:/var/volatile/tmp/utils/language-names/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/language-names/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/language-names/.dirs/system-data1:/var/volatile/tmp/utils/language-names/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/language-names/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/language-names/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/language-names/.dirs/runtime ok 1 /utils/language-names # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/locale-variants/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-config1:/var/volatile/tmp/utils/locale-variants/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/locale-variants/.dirs/system-data1:/var/volatile/tmp/utils/locale-variants/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/locale-variants/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/locale-variants/.dirs/runtime # Testing locale ‘en’ # Testing locale ‘sr@latin’ # Testing locale ‘fr_BE’ # Testing locale ‘sr_SR@latin’ # Testing locale ‘sr_SR@latin.UTF-8’ # Testing locale ‘sr@latin_invalid’ # Testing locale ‘sr.UTF-8@latin’ # Testing locale ‘sr.UTF-8_latin’ # Testing locale ‘sr.UTF-8@latin_invalid’ ok 2 /utils/locale-variants # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/version/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/version/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/version/.dirs/system-config1:/var/volatile/tmp/utils/version/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/version/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/version/.dirs/system-data1:/var/volatile/tmp/utils/version/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/version/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/version/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/version/.dirs/runtime ok 3 /utils/version # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/appname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/appname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-config1:/var/volatile/tmp/utils/appname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/appname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/appname/.dirs/system-data1:/var/volatile/tmp/utils/appname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/appname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/appname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/appname/.dirs/runtime ok 4 /utils/appname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data1:/var/volatile/tmp/utils/prgname-thread-safety/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/prgname-thread-safety/.dirs/runtime # 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 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/tmpdir/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-config1:/var/volatile/tmp/utils/tmpdir/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/tmpdir/.dirs/system-data1:/var/volatile/tmp/utils/tmpdir/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/tmpdir/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/tmpdir/.dirs/runtime # 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 Unable to clean up temporary directory /var/volatile/tmp/utils/tmpdir: No such file or directory ok 6 /utils/tmpdir # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/basic_bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-config1:/var/volatile/tmp/utils/basic_bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/basic_bits/.dirs/system-data1:/var/volatile/tmp/utils/basic_bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/basic_bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/basic_bits/.dirs/runtime ok 7 /utils/basic_bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/bits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/bits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-config1:/var/volatile/tmp/utils/bits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/bits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/bits/.dirs/system-data1:/var/volatile/tmp/utils/bits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/bits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/bits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/bits/.dirs/runtime ok 8 /utils/bits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/swap/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/swap/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-config1:/var/volatile/tmp/utils/swap/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/swap/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/swap/.dirs/system-data1:/var/volatile/tmp/utils/swap/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/swap/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/swap/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/swap/.dirs/runtime ok 9 /utils/swap # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-config1:/var/volatile/tmp/utils/find-program/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program/.dirs/system-data1:/var/volatile/tmp/utils/find-program/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program/.dirs/runtime ok 10 /utils/find-program # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-config1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/find-program-for-path/.dirs/system-data1:/var/volatile/tmp/utils/find-program-for-path/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/find-program-for-path/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/find-program-for-path/.dirs/runtime ok 11 /utils/find-program-for-path # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/debug/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/debug/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-config1:/var/volatile/tmp/utils/debug/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/debug/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/debug/.dirs/system-data1:/var/volatile/tmp/utils/debug/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/debug/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/debug/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/debug/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/debug: No such file or directory ok 12 /utils/debug # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-config1:/var/volatile/tmp/utils/codeset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset/.dirs/system-data1:/var/volatile/tmp/utils/codeset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset/.dirs/runtime ok 13 /utils/codeset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/codeset2/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-config1:/var/volatile/tmp/utils/codeset2/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/codeset2/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/codeset2/.dirs/system-data1:/var/volatile/tmp/utils/codeset2/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/codeset2/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/codeset2/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/codeset2/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/codeset2: No such file or directory ok 14 /utils/codeset2 # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/console-charset/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-config1:/var/volatile/tmp/utils/console-charset/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/console-charset/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/console-charset/.dirs/system-data1:/var/volatile/tmp/utils/console-charset/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/console-charset/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/console-charset/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/console-charset/.dirs/runtime ok 15 /utils/console-charset # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/gettext/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/gettext/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-config1:/var/volatile/tmp/utils/gettext/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/gettext/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/gettext/.dirs/system-data1:/var/volatile/tmp/utils/gettext/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/gettext/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/gettext/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/gettext/.dirs/runtime ok 16 /utils/gettext # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/username/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/username/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/username/.dirs/system-config1:/var/volatile/tmp/utils/username/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/username/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/username/.dirs/system-data1:/var/volatile/tmp/utils/username/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/username/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/username/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/username/.dirs/runtime ok 17 /utils/username # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/realname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/realname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-config1:/var/volatile/tmp/utils/realname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/realname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/realname/.dirs/system-data1:/var/volatile/tmp/utils/realname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/realname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/realname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/realname/.dirs/runtime ok 18 /utils/realname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/hostname/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/hostname/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-config1:/var/volatile/tmp/utils/hostname/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/hostname/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/hostname/.dirs/system-data1:/var/volatile/tmp/utils/hostname/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/hostname/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/hostname/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/hostname/.dirs/runtime ok 19 /utils/hostname # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/os-info/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/os-info/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-config1:/var/volatile/tmp/utils/os-info/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/os-info/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/os-info/.dirs/system-data1:/var/volatile/tmp/utils/os-info/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/os-info/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/os-info/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/os-info/.dirs/runtime # NAME: Linux ok 20 /utils/os-info # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/.dirs/runtime ok 21 /utils/clear-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer-cast/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer-cast/.dirs/runtime ok 22 /utils/clear-pointer-cast # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/take-pointer/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-config1:/var/volatile/tmp/utils/take-pointer/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/take-pointer/.dirs/system-data1:/var/volatile/tmp/utils/take-pointer/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/take-pointer/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/take-pointer/.dirs/runtime ok 23 /utils/take-pointer # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-source/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-config1:/var/volatile/tmp/utils/clear-source/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-source/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-source/.dirs/system-data1:/var/volatile/tmp/utils/clear-source/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-source/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-source/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-source/.dirs/runtime ok 24 /utils/clear-source # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/misc-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-config1:/var/volatile/tmp/utils/misc-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/misc-mem/.dirs/system-data1:/var/volatile/tmp/utils/misc-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/misc-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/misc-mem/.dirs/runtime ok 25 /utils/misc-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/.dirs/runtime # /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 26 /utils/aligned-mem # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/free-sized/.dirs/runtime # /utils/free-sized summary: Check that g_free_sized() works ok 27 /utils/free-sized # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/nullify/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/nullify/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-config1:/var/volatile/tmp/utils/nullify/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/nullify/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/nullify/.dirs/system-data1:/var/volatile/tmp/utils/nullify/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/nullify/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/nullify/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/nullify/.dirs/runtime ok 28 /utils/nullify # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/atexit/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/atexit/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-config1:/var/volatile/tmp/utils/atexit/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/atexit/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/atexit/.dirs/system-data1:/var/volatile/tmp/utils/atexit/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/atexit/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/atexit/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/atexit/.dirs/runtime Unable to clean up temporary directory /var/volatile/tmp/utils/atexit: No such file or directory ok 29 /utils/atexit # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/check-setuid/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-config1:/var/volatile/tmp/utils/check-setuid/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/check-setuid/.dirs/system-data1:/var/volatile/tmp/utils/check-setuid/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/check-setuid/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/check-setuid/.dirs/runtime ok 30 /utils/check-setuid # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/int-limits/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-config1:/var/volatile/tmp/utils/int-limits/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/int-limits/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/int-limits/.dirs/system-data1:/var/volatile/tmp/utils/int-limits/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/int-limits/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/int-limits/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/int-limits/.dirs/runtime # Bug Reference: https://gitlab.gnome.org/GNOME/glib/issues/1663 ok 31 /utils/int-limits # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-list/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-config1:/var/volatile/tmp/utils/clear-list/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-list/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-list/.dirs/system-data1:/var/volatile/tmp/utils/clear-list/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-list/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-list/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-list/.dirs/runtime ok 32 /utils/clear-list # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-slist/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-config1:/var/volatile/tmp/utils/clear-slist/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-slist/.dirs/system-data1:/var/volatile/tmp/utils/clear-slist/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-slist/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-slist/.dirs/runtime ok 33 /utils/clear-slist # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-config1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/steal-handle-id/.dirs/system-data1:/var/volatile/tmp/utils/steal-handle-id/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/steal-handle-id/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/steal-handle-id/.dirs/runtime ok 34 /utils/steal-handle-id # Start of user-special-dirs tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/desktop/.dirs/runtime ok 35 /utils/user-special-dirs/desktop # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/load-unlocked/.dirs/runtime # /utils/user-special-dirs/load-unlocked summary: Tests error and corner cases of user-dirs.dirs content. # Bug Reference: https://gitlab.gnome.org/GNOME/glib/merge_requests/4800 Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/load-unlocked: No such file or directory ok 36 /utils/user-special-dirs/load-unlocked # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data1:/var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/user-special-dirs/reload-leaks/.dirs/runtime # /utils/user-special-dirs/reload-leaks summary: Tests that old user special dirs values are deliberately leaked on reload. Unable to clean up temporary directory /var/volatile/tmp/utils/user-special-dirs/reload-leaks: No such file or directory ok 37 /utils/user-special-dirs/reload-leaks # End of user-special-dirs tests # Start of clear-pointer tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data1:/var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/clear-pointer/side-effects/.dirs/runtime ok 38 /utils/clear-pointer/side-effects # End of clear-pointer tests # Start of aligned-mem tests # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/alignment/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/alignment/.dirs/runtime # /utils/aligned-mem/alignment summary: Check that g_aligned_alloc() returns a correctly aligned pointer ok 39 /utils/aligned-mem/alignment # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/zeroed/.dirs/runtime # /utils/aligned-mem/zeroed summary: Check that g_aligned_alloc0() zeroes out its allocation ok 40 /utils/aligned-mem/zeroed # GLib-DEBUG: g_set_user_dirs: Setting HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/home # GLib-DEBUG: g_set_user_dirs: Setting XDG_CACHE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/cache # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-config2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_CONFIG_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/config # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_DIRS to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data1:/var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/system-data2 # GLib-DEBUG: g_set_user_dirs: Setting XDG_DATA_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/data # GLib-DEBUG: g_set_user_dirs: Setting XDG_STATE_HOME to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/state # GLib-DEBUG: g_set_user_dirs: Setting XDG_RUNTIME_DIR to /var/volatile/tmp/utils/aligned-mem/free-sized/.dirs/runtime # /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/async-close-output-stream.test TAP version 14 # random seed: R02Sac02b68e0cca22bc0e7927e529197206 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/binding.test TAP version 14 # random seed: R02Scafcf5f33c8670f3c2f7f3d4c10c6465 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.test TAP version 14 # random seed: R02S865dd90beca1c1c9646214ce24b4d381 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/thumbnail-verification.test TAP version 14 # random seed: R02Sc12f2f5e56558b6f93cca4d1ca12d016 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/print.test TAP version 14 # random seed: R02S16141054791d4d5a8e3b1b07a3e34cc6 1..1 ok 1 /print-console # SKIP Testing console output only supported on Windows PASS: glib/print.test Running test: glib/collate.test TAP version 14 # random seed: R02S18b996f36b01996c935f99c3cc1c1629 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/utils-unisolated.test TAP version 14 # random seed: R02S81d58606213f9a6205b1d542af9b3300 1..1 # Start of utils tests ok 1 /utils/xdgdirs # End of utils tests PASS: glib/utils-unisolated.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/tmpm6jj7u9z # /tmp/tmpm6jj7u9z/tmpy3262zan.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpm6jj7u9z/tmpy3262zan.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/tmpm6jj7u9z/tmprgimelf2.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpm6jj7u9z/tmprgimelf2.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/tmpm6jj7u9z/tmpsn197k6i.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpm6jj7u9z/tmpsn197k6i.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: Executing: glib/codegen.py.test ok 2 __main__.TestCodegen.test_dbus_types # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpoykit4o8 # /tmp/tmpoykit4o8/tmpmaph8_p6.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmpmaph8_p6.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/tmpoykit4o8/tmpmdnfj5ox.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmpmdnfj5ox.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/tmpoykit4o8/tmpwhyh3830.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmpwhyh3830.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "{s". Error parsing string or brackets not closed. # /tmp/tmpoykit4o8/tmp1tk22mmp.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmp1tk22mmp.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "(s{sss})". Dict must end with "}" at position 5. # /tmp/tmpoykit4o8/tmpplgspl_7.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmpplgspl_7.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "z". "z" is not a valid D-Bus type. # /tmp/tmpoykit4o8/tmpetpbqrkc.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmpetpbqrkc.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "(ssms)". "m" is not a valid D-Bus type. # /tmp/tmpoykit4o8/tmpvtr9lluf.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmpvtr9lluf.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "(". Error parsing string or brackets not closed. # /tmp/tmpoykit4o8/tmpaiivcibi.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmpaiivcibi.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "(((ss))". Error parsing string or brackets not closed. # /tmp/tmpoykit4o8/tmpq1_8dpy4.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmpq1_8dpy4.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas". Too much recursion beginning at 129. # /tmp/tmpoykit4o8/tmpq7zoutya.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmpq7zoutya.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: D-Bus maximum signature length of 255 exceeded. # /tmp/tmpoykit4o8/tmphm63f2xv.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmphm63f2xv.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: D-Bus maximum signature length of 255 exceeded. # /tmp/tmpoykit4o8/tmp9gprbxm4.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmp9gprbxm4.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: Bad signature "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaa{sv})". Too much recursion beginning at 129. # /tmp/tmpoykit4o8/tmprfhirsqv.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmprfhirsqv.xml', '--output', '-', '--body'] # Return code: 1 # Output: # # Error: # ERROR: D-Bus maximum signature length of 255 exceeded. # /tmp/tmpoykit4o8/tmprczjyjx9.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmprczjyjx9.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpoykit4o8/tmpos9g1eno.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmpos9g1eno.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpoykit4o8/tmpdybepgn9.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpoykit4o8/tmpdybepgn9.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmprsu8s9q6 # /tmp/tmprsu8s9q6/tmp8uh5hnl2.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmprsu8s9q6/tmp8uh5hnl2.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/tmptpb1s9uj # /tmp/tmptpb1s9uj/tmpez0fp760.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmptpb1s9uj/tmpez0fp760.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/tmp0wwu7h8r # /tmp/tmp0wwu7h8r/tmp3otmqf5t.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp0wwu7h8r/tmp3otmqf5t.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/tmp6o2i854y # /tmp/tmp6o2i854y/tmpy2vzvwd8.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp6o2i854y/tmpy2vzvwd8.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_extension_bad_file # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpeyk5lloz # /tmp/tmpeyk5lloz/tmpcpegizz3.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpeyk5lloz/tmpcpegizz3.xml', '--output', '-', '--header', '--extension-path', '/path/that/does/not/exist'] # Return code: 1 # Output: # # Error: # WARNING: Traceback (most recent call last): # File "/usr/share/glib-2.0/codegen/codegen_main.py", line 329, in codegen_main # codegen_ext = import_from_path("GDBusCodegenExt", args.extension_path) # File "/usr/share/glib-2.0/codegen/codegen_main.py", line 46, in import_from_path # raise Exception("Not a Python file") # Exception: Not a Python file # # ERROR: Loading extension ‘/path/that/does/not/exist’ failed ok 8 __main__.TestCodegen.test_extension_code_generate # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpqywgtw_s # /tmp/tmpqywgtw_s/tmpaidtm9kt.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpqywgtw_s/tmpaidtm9kt.xml', '--output', '-', '--body', '--extension-path', '/usr/libexec/installed-tests/glib/codegen-test-extension.py'] # 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; # } # # /* codegen-test-extension body preamble */ # 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 _ExtendedGDBusMethodInfo _org_project_useful_interface_method_info_useful_method = # { # { # -1, # (gchar *) "UsefulMethod", # NULL, # NULL, # NULL # }, # "handle-useful-method", # FALSE # }; # # static const GDBusMethodInfo * const _org_project_useful_interface_method_info_pointers[] = # { # &_org_project_useful_interface_method_info_useful_method.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_useful_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); # } # # # /** # * OrgProjectUsefulInterface: # * # * Abstract interface type for the D-Bus interface org.project.UsefulInterface. # */ # # /** # * OrgProjectUsefulInterfaceIface: # * @parent_iface: The parent interface. # * @handle_useful_method: Handler for the #OrgProjectUsefulInterface::handle-useful-method 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-useful-method: # * @object: A #OrgProjectUsefulInterface. # * @invocation: A #GDBusMethodInvocation. # * # * Signal emitted when a remote caller is invoking the UsefulMethod() 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_useful_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-useful-method", # G_TYPE_FROM_INTERFACE (iface), # G_SIGNAL_RUN_LAST, # G_STRUCT_OFFSET (OrgProjectUsefulInterfaceIface, handle_useful_method), # g_signal_accumulator_true_handled, # NULL, # org_project_useful_interface_method_marshal_useful_method, # G_TYPE_BOOLEAN, # 1, # G_TYPE_DBUS_METHOD_INVOCATION); # # } # # /** # * org_project_useful_interface_call_useful_method: # * @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 UsefulMethod() 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_useful_method_finish() to get the result of the operation. # * # * See org_project_useful_interface_call_useful_method_sync() for the synchronous, blocking version of this method. # */ # void # org_project_useful_interface_call_useful_method ( # OrgProjectUsefulInterface *proxy, # GCancellable *cancellable, # GAsyncReadyCallback callback, # gpointer user_data) # { # g_dbus_proxy_call (G_DBUS_PROXY (proxy), # "UsefulMethod", # g_variant_new ("()"), # G_DBUS_CALL_FLAGS_NONE, # -1, # cancellable, # callback, # user_data); # } # # /** # * org_project_useful_interface_call_useful_method_finish: # * @proxy: A #OrgProjectUsefulInterfaceProxy. # * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to org_project_useful_interface_call_useful_method(). # * @error: Return location for error or %NULL. # * # * Finishes an operation started with org_project_useful_interface_call_useful_method(). # * # * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set. # */ # gboolean # org_project_useful_interface_call_useful_method_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_useful_method_sync: # * @proxy: A #OrgProjectUsefulInterfaceProxy. # * @cancellable: (nullable): A #GCancellable or %NULL. # * @error: Return location for error or %NULL. # * # * Synchronously invokes the UsefulMethod() D-Bus method on @proxy. The calling thread is blocked until a reply is received. # * # * See org_project_useful_interface_call_useful_method() 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_useful_method_sync ( # OrgProjectUsefulInterface *proxy, # GCancellable *cancellable, # GError **error) # { # GVariant *_ret; # _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), # "UsefulMethod", # 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_useful_interface_complete_useful_method: # * @object: A #OrgProjectUsefulInterface. # * @invocation: (transfer full): A #GDBusMethodInvocation. # * # * Helper function used in service implementations to finish handling invocations of the UsefulMethod() 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_useful_method ( # 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, NEW_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, NEW_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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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)); # } # # /* codegen-test-extension generate for iface org.project.UsefulInterface */ # Error: # # /tmp/tmpqywgtw_s/tmpm6a107bz.xml: # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpqywgtw_s/tmpm6a107bz.xml', '--output', '-', '--header', '--extension-path', '/usr/libexec/installed-tests/glib/codegen-test-extension.py'] # 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 # /* codegen-test-extension 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 >*/ # NewDBusInterfaceSkeleton parent_instance; # OrgProjectUsefulInterfaceSkeletonPrivate *priv; # }; # # struct _OrgProjectUsefulInterfaceSkeletonClass # { # NewDBusInterfaceSkeletonClass 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); # # /* codegen-test-extension declare type for iface org.project.UsefulInterface */ # # G_END_DECLS # # #endif /* __STDOUT__ */ # Error: ok 9 __main__.TestCodegen.test_extension_empty_interface_body # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpwq3jhamm # /tmp/tmpwq3jhamm/tmp3syeslof.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpwq3jhamm/tmp3syeslof.xml', '--output', '-', '--body', '--extension-path', '/usr/libexec/installed-tests/glib/codegen-test-extension.py'] # 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; # } # # /* codegen-test-extension body preamble */ # Error: ok 10 __main__.TestCodegen.test_extension_empty_interface_header # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp0mnww2mg # /tmp/tmp0mnww2mg/tmp9fa2y9ma.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp0mnww2mg/tmp9fa2y9ma.xml', '--output', '-', '--header', '--extension-path', '/usr/libexec/installed-tests/glib/codegen-test-extension.py'] # 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 # /* codegen-test-extension include */ # # G_BEGIN_DECLS # # # G_END_DECLS # # #endif /* __STDOUT__ */ # Error: ok 11 __main__.TestCodegen.test_extension_header_declare_types # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpt9zg769r # /tmp/tmpt9zg769r/tmpvm5ob93p.xml: # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpt9zg769r/tmpvm5ob93p.xml', '--output', '-', '--header', '--extension-path', '/usr/libexec/installed-tests/glib/codegen-test-extension.py'] # 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 # /* codegen-test-extension include */ # # G_BEGIN_DECLS # # # /* ------------------------------------------------------------------------ */ # /* Declarations for org.project.Foo */ # # #define TYPE_ORG_PROJECT_FOO (org_project_foo_get_type ()) # #define ORG_PROJECT_FOO(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_FOO, OrgProjectFoo)) # #define IS_ORG_PROJECT_FOO(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_FOO)) # #define ORG_PROJECT_FOO_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_ORG_PROJECT_FOO, OrgProjectFooIface)) # # struct _OrgProjectFoo; # typedef struct _OrgProjectFoo OrgProjectFoo; # typedef struct _OrgProjectFooIface OrgProjectFooIface; # # struct _OrgProjectFooIface # { # GTypeInterface parent_iface; # }; # # GType org_project_foo_get_type (void) G_GNUC_CONST; # # GDBusInterfaceInfo *org_project_foo_interface_info (void); # guint org_project_foo_override_properties (GObjectClass *klass, guint property_id_begin); # # # /* ---- */ # # #define TYPE_ORG_PROJECT_FOO_PROXY (org_project_foo_proxy_get_type ()) # #define ORG_PROJECT_FOO_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_FOO_PROXY, OrgProjectFooProxy)) # #define ORG_PROJECT_FOO_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_FOO_PROXY, OrgProjectFooProxyClass)) # #define ORG_PROJECT_FOO_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_FOO_PROXY, OrgProjectFooProxyClass)) # #define IS_ORG_PROJECT_FOO_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_FOO_PROXY)) # #define IS_ORG_PROJECT_FOO_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_FOO_PROXY)) # # typedef struct _OrgProjectFooProxy OrgProjectFooProxy; # typedef struct _OrgProjectFooProxyClass OrgProjectFooProxyClass; # typedef struct _OrgProjectFooProxyPrivate OrgProjectFooProxyPrivate; # # struct _OrgProjectFooProxy # { # /*< private >*/ # GDBusProxy parent_instance; # OrgProjectFooProxyPrivate *priv; # }; # # struct _OrgProjectFooProxyClass # { # GDBusProxyClass parent_class; # }; # # GType org_project_foo_proxy_get_type (void) G_GNUC_CONST; # # #if GLIB_CHECK_VERSION(2, 44, 0) # G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectFooProxy, g_object_unref) # #endif # # void org_project_foo_proxy_new ( # GDBusConnection *connection, # GDBusProxyFlags flags, # const gchar *name, # const gchar *object_path, # GCancellable *cancellable, # GAsyncReadyCallback callback, # gpointer user_data); # OrgProjectFoo *org_project_foo_proxy_new_finish ( # GAsyncResult *res, # GError **error); # OrgProjectFoo *org_project_foo_proxy_new_sync ( # GDBusConnection *connection, # GDBusProxyFlags flags, # const gchar *name, # const gchar *object_path, # GCancellable *cancellable, # GError **error); # # void org_project_foo_proxy_new_for_bus ( # GBusType bus_type, # GDBusProxyFlags flags, # const gchar *name, # const gchar *object_path, # GCancellable *cancellable, # GAsyncReadyCallback callback, # gpointer user_data); # OrgProjectFoo *org_project_foo_proxy_new_for_bus_finish ( # GAsyncResult *res, # GError **error); # OrgProjectFoo *org_project_foo_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_FOO_SKELETON (org_project_foo_skeleton_get_type ()) # #define ORG_PROJECT_FOO_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_FOO_SKELETON, OrgProjectFooSkeleton)) # #define ORG_PROJECT_FOO_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_FOO_SKELETON, OrgProjectFooSkeletonClass)) # #define ORG_PROJECT_FOO_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_FOO_SKELETON, OrgProjectFooSkeletonClass)) # #define IS_ORG_PROJECT_FOO_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_FOO_SKELETON)) # #define IS_ORG_PROJECT_FOO_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_FOO_SKELETON)) # # typedef struct _OrgProjectFooSkeleton OrgProjectFooSkeleton; # typedef struct _OrgProjectFooSkeletonClass OrgProjectFooSkeletonClass; # typedef struct _OrgProjectFooSkeletonPrivate OrgProjectFooSkeletonPrivate; # # struct _OrgProjectFooSkeleton # { # /*< private >*/ # NewDBusInterfaceSkeleton parent_instance; # OrgProjectFooSkeletonPrivate *priv; # }; # # struct _OrgProjectFooSkeletonClass # { # NewDBusInterfaceSkeletonClass parent_class; # }; # # GType org_project_foo_skeleton_get_type (void) G_GNUC_CONST; # # #if GLIB_CHECK_VERSION(2, 44, 0) # G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectFooSkeleton, g_object_unref) # #endif # # OrgProjectFoo *org_project_foo_skeleton_new (void); # # # /* ------------------------------------------------------------------------ */ # /* Declarations for org.project.Bar */ # # #define TYPE_ORG_PROJECT_BAR (org_project_bar_get_type ()) # #define ORG_PROJECT_BAR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_BAR, OrgProjectBar)) # #define IS_ORG_PROJECT_BAR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_BAR)) # #define ORG_PROJECT_BAR_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_ORG_PROJECT_BAR, OrgProjectBarIface)) # # struct _OrgProjectBar; # typedef struct _OrgProjectBar OrgProjectBar; # typedef struct _OrgProjectBarIface OrgProjectBarIface; # # struct _OrgProjectBarIface # { # GTypeInterface parent_iface; # }; # # GType org_project_bar_get_type (void) G_GNUC_CONST; # # GDBusInterfaceInfo *org_project_bar_interface_info (void); # guint org_project_bar_override_properties (GObjectClass *klass, guint property_id_begin); # # # /* ---- */ # # #define TYPE_ORG_PROJECT_BAR_PROXY (org_project_bar_proxy_get_type ()) # #define ORG_PROJECT_BAR_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_BAR_PROXY, OrgProjectBarProxy)) # #define ORG_PROJECT_BAR_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_BAR_PROXY, OrgProjectBarProxyClass)) # #define ORG_PROJECT_BAR_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_BAR_PROXY, OrgProjectBarProxyClass)) # #define IS_ORG_PROJECT_BAR_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_BAR_PROXY)) # #define IS_ORG_PROJECT_BAR_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_BAR_PROXY)) # # typedef struct _OrgProjectBarProxy OrgProjectBarProxy; # typedef struct _OrgProjectBarProxyClass OrgProjectBarProxyClass; # typedef struct _OrgProjectBarProxyPrivate OrgProjectBarProxyPrivate; # # struct _OrgProjectBarProxy # { # /*< private >*/ # GDBusProxy parent_instance; # OrgProjectBarProxyPrivate *priv; # }; # # struct _OrgProjectBarProxyClass # { # GDBusProxyClass parent_class; # }; # # GType org_project_bar_proxy_get_type (void) G_GNUC_CONST; # # #if GLIB_CHECK_VERSION(2, 44, 0) # G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectBarProxy, g_object_unref) # #endif # # void org_project_bar_proxy_new ( # GDBusConnection *connection, # GDBusProxyFlags flags, # const gchar *name, # const gchar *object_path, # GCancellable *cancellable, # GAsyncReadyCallback callback, # gpointer user_data); # OrgProjectBar *org_project_bar_proxy_new_finish ( # GAsyncResult *res, # GError **error); # OrgProjectBar *org_project_bar_proxy_new_sync ( # GDBusConnection *connection, # GDBusProxyFlags flags, # const gchar *name, # const gchar *object_path, # GCancellable *cancellable, # GError **error); # # void org_project_bar_proxy_new_for_bus ( # GBusType bus_type, # GDBusProxyFlags flags, # const gchar *name, # const gchar *object_path, # GCancellable *cancellable, # GAsyncReadyCallback callback, # gpointer user_data); # OrgProjectBar *org_project_bar_proxy_new_for_bus_finish ( # GAsyncResult *res, # GError **error); # OrgProjectBar *org_project_bar_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_SKELETON (org_project_bar_skeleton_get_type ()) # #define ORG_PROJECT_BAR_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_ORG_PROJECT_BAR_SKELETON, OrgProjectBarSkeleton)) # #define ORG_PROJECT_BAR_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_ORG_PROJECT_BAR_SKELETON, OrgProjectBarSkeletonClass)) # #define ORG_PROJECT_BAR_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_ORG_PROJECT_BAR_SKELETON, OrgProjectBarSkeletonClass)) # #define IS_ORG_PROJECT_BAR_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_ORG_PROJECT_BAR_SKELETON)) # #define IS_ORG_PROJECT_BAR_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_ORG_PROJECT_BAR_SKELETON)) # # typedef struct _OrgProjectBarSkeleton OrgProjectBarSkeleton; # typedef struct _OrgProjectBarSkeletonClass OrgProjectBarSkeletonClass; # typedef struct _OrgProjectBarSkeletonPrivate OrgProjectBarSkeletonPrivate; # # struct _OrgProjectBarSkeleton # { # /*< private >*/ # NewDBusInterfaceSkeleton parent_instance; # OrgProjectBarSkeletonPrivate *priv; # }; # # struct _OrgProjectBarSkeletonClass # { # NewDBusInterfaceSkeletonClass parent_class; # }; # # GType org_project_bar_skeleton_get_type (void) G_GNUC_CONST; # # #if GLIB_CHECK_VERSION(2, 44, 0) # G_DEFINE_AUTOPTR_CLEANUP_FUNC (OrgProjectBarSkeleton, g_object_unref) # #endif # # OrgProjectBar *org_project_bar_skeleton_new (void); # # /* codegen-test-extension declare type for iface org.project.Foo */ # /* codegen-test-extension declare type for iface org.project.Bar */ # # G_END_DECLS # # #endif /* __STDOUT__ */ # Error: ok 12 __main__.TestCodegen.test_extension_help # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmppitiecan # 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] # [--extension-path EXTENSION_PATH] # [--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 # --extension-path EXTENSION_PATH # Path to a gdbus-codegen Python extension file # (unstable API) # --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 13 __main__.TestCodegen.test_generate_docbook # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpo5s16vby # /tmp/tmpo5s16vby/tmpdzk3ojgg.xml: # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpo5s16vby/tmpdzk3ojgg.xml', '--generate-docbook', 'test'] # Return code: 0 # Output: # # Error: ok 14 __main__.TestCodegen.test_generate_md # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpd_e3ee9w # /tmp/tmpd_e3ee9w/tmp3zs2u9an.xml: # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpd_e3ee9w/tmp3zs2u9an.xml', '--generate-md', 'test'] # Return code: 0 # Output: # # Error: ok 15 __main__.TestCodegen.test_generate_methods_marshaller_simple_method # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpg2a72uvy # /tmp/tmpg2a72uvy/tmpp2iwa494.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpg2a72uvy/tmpp2iwa494.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 16 __main__.TestCodegen.test_generate_methods_marshaller_single_typed_in_args # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmper_z1p72 # /tmp/tmper_z1p72/tmpqfvjqetn.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpqfvjqetn.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpnekoi0zv.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpnekoi0zv.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpxuejxx3d.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpxuejxx3d.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmp03pa1tou.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmp03pa1tou.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpj5_3wx36.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpj5_3wx36.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpiu_dg3ib.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpiu_dg3ib.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpnyeko7kq.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpnyeko7kq.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpw05wua2d.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpw05wua2d.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpchfjesrl.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpchfjesrl.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpg_h3ydhl.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpg_h3ydhl.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpwt6pn32t.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpwt6pn32t.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpr4wbds31.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpr4wbds31.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpot1a0l6c.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpot1a0l6c.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpsgw9vqtf.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpsgw9vqtf.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpu4e975qj.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpu4e975qj.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpy_j43zka.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpy_j43zka.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmpx_kku28b.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmpx_kku28b.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmper_z1p72/tmp3j6wphmh.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmper_z1p72/tmp3j6wphmh.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 17 __main__.TestCodegen.test_generate_methods_marshaller_single_typed_out_args # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpmdw6i7fx # /tmp/tmpmdw6i7fx/tmp246zle_6.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmp246zle_6.xml', '--output', '-', '--body'] # Return code: 0 # Output: # /* # * This file is generated by gdbus-codegen, do not modify it. # * # * The license of this code is the same as for the D-Bus interface description # * it was derived from. Note that it links to GLib, so must comply with the # * LGPL linking clauses. # */ # # #ifdef HAVE_CONFIG_H # # include "config.h" # #endif # # #include # #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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpjli8rjby.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpjli8rjby.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpu3f8lzpv.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpu3f8lzpv.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmprk91k5kg.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmprk91k5kg.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpqw56le99.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpqw56le99.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpnindnf9l.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpnindnf9l.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpeuryj11s.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpeuryj11s.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpzjb0iqrp.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpzjb0iqrp.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpexllojv8.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpexllojv8.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpiuf6htzk.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpiuf6htzk.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpx8mltlnb.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpx8mltlnb.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmp5v7iha9_.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmp5v7iha9_.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpgdy6zedu.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpgdy6zedu.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpbhzlp120.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpbhzlp120.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpx9q4zxa0.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpx9q4zxa0.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmppjxsxk10.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmppjxsxk10.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpnqebrpl7.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpnqebrpl7.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpmdw6i7fx/tmpi73l9_gy.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdw6i7fx/tmpi73l9_gy.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 18 __main__.TestCodegen.test_generate_methods_marshallers_multiple_in_args # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp3u6balx3 # /tmp/tmp3u6balx3/tmpf_9ydir6.xml: # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp3u6balx3/tmpf_9ydir6.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 19 __main__.TestCodegen.test_generate_methods_marshallers_multiple_out_args # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp1msarmj3 # /tmp/tmp1msarmj3/tmpf7h0d8ha.xml: # # # # # # # # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp1msarmj3/tmpf7h0d8ha.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 20 __main__.TestCodegen.test_generate_methods_marshallers_with_unix_fds # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp8yektqzd # /tmp/tmp8yektqzd/tmpe6qq7qey.xml: # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp8yektqzd/tmpe6qq7qey.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 21 __main__.TestCodegen.test_generate_rst # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp3s2862t3 # /tmp/tmp3s2862t3/tmp0b5xi9q9.xml: # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp3s2862t3/tmp0b5xi9q9.xml', '--generate-rst', 'test'] # Return code: 0 # Output: # # Error: ok 22 __main__.TestCodegen.test_generate_rst_method # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpfp4tpr73 # /tmp/tmpfp4tpr73/tmpsao2ffou.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpfp4tpr73/tmpsao2ffou.xml', '--generate-rst', 'test'] # Return code: 0 # Output: # # Error: ok 23 __main__.TestCodegen.test_generate_rst_property # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp1wudmrpp # /tmp/tmp1wudmrpp/tmp1wy6_9eh.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp1wudmrpp/tmp1wy6_9eh.xml', '--generate-rst', 'test'] # Return code: 0 # Output: # # Error: ok 24 __main__.TestCodegen.test_generate_rst_signal # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpmdrphnnt # /tmp/tmpmdrphnnt/tmppvrhg9kj.xml: # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmdrphnnt/tmppvrhg9kj.xml', '--generate-rst', 'test'] # Return code: 0 # Output: # # Error: ok 25 __main__.TestCodegen.test_generate_signal_id_multiple_signal_args_types # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpkyip3vgx # /tmp/tmpkyip3vgx/tmptei65_kp.xml: # # # # # # # # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpkyip3vgx/tmptei65_kp.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 26 __main__.TestCodegen.test_generate_signal_id_multiple_signals_types # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpmip2n8jr # /tmp/tmpmip2n8jr/tmpu56cleym.xml: # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpmip2n8jr/tmpu56cleym.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 27 __main__.TestCodegen.test_generate_signal_id_simple_signal # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpbb9co_k1 # /tmp/tmpbb9co_k1/tmppxt223t0.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbb9co_k1/tmppxt223t0.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 28 __main__.TestCodegen.test_generate_signals_marshaller_simple_signal # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp5sijvpjc # /tmp/tmp5sijvpjc/tmp6tfyx9j0.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp5sijvpjc/tmp6tfyx9j0.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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: Executing: glib/codegen.py.test ok 29 __main__.TestCodegen.test_generate_signals_marshaller_single_typed_args # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpjfxvw9tz # /tmp/tmpjfxvw9tz/tmpvo5968_l.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpvo5968_l.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmp1e5ov9tq.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmp1e5ov9tq.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpc779br30.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpc779br30.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpafzbk1mj.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpafzbk1mj.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpa9l7kwcw.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpa9l7kwcw.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpeqh4vz8q.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpeqh4vz8q.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpntf2abox.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpntf2abox.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmptxf4qmyp.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmptxf4qmyp.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmphe86yzao.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmphe86yzao.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmppfelu8bm.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmppfelu8bm.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpnv38nsky.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpnv38nsky.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpr62rye63.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpr62rye63.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpsggi1dit.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpsggi1dit.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpdha2hwyr.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpdha2hwyr.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpzvnyc_0t.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpzvnyc_0t.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmp5w6eg22y.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmp5w6eg22y.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpxnin0omn.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpxnin0omn.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpjfxvw9tz/tmpr384gkae.xml: # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpjfxvw9tz/tmpr384gkae.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 30 __main__.TestCodegen.test_generate_signals_marshallers_multiple_args # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpirx80oe8 # /tmp/tmpirx80oe8/tmp82h5xl4n.xml: # # # # # # # # # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpirx80oe8/tmp82h5xl4n.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 31 __main__.TestCodegen.test_generate_valid_docbook # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpbqp4w862 # /tmp/tmpbqp4w862/tmpdewnx7fr.xml: # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpbqp4w862/tmpdewnx7fr.xml', '--generate-docbook', 'test'] # Return code: 0 # Output: # # Error: ok 32 __main__.TestCodegen.test_glib_max_allowed_less_than_min_required # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpkfj0r5gv # /tmp/tmpkfj0r5gv/tmpgbwqwnkp.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpkfj0r5gv/tmpgbwqwnkp.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 33 __main__.TestCodegen.test_glib_max_allowed_major_only # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp9m29t_xb # /tmp/tmp9m29t_xb/tmpcj03_wkm.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp9m29t_xb/tmpcj03_wkm.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 34 __main__.TestCodegen.test_glib_max_allowed_too_low # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpx617iw3e # /tmp/tmpx617iw3e/tmptsjrsi2m.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpx617iw3e/tmptsjrsi2m.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 35 __main__.TestCodegen.test_glib_max_allowed_unstable # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp5w7fynxq # /tmp/tmp5w7fynxq/tmp974kv57s.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp5w7fynxq/tmp974kv57s.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 36 __main__.TestCodegen.test_glib_max_allowed_with_micro # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp8jdrv_uf # /tmp/tmp8jdrv_uf/tmpakev1ut0.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp8jdrv_uf/tmpakev1ut0.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 37 __main__.TestCodegen.test_glib_min_required_invalid # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp221o7jdr # /tmp/tmp221o7jdr/tmp1d27k52v.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp221o7jdr/tmp1d27k52v.xml', '--output', '-', '--body', '--glib-min-required', 'hello mum'] # Return code: 1 # Output: # # Error: # ERROR: Unrecognized --glib-min-required string ‘hello mum’ ok 38 __main__.TestCodegen.test_glib_min_required_major_only # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp962htj3k # /tmp/tmp962htj3k/tmptxdix1k7.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp962htj3k/tmptxdix1k7.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 39 __main__.TestCodegen.test_glib_min_required_too_low # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpybck4oal # /tmp/tmpybck4oal/tmp_ao_hb0d.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpybck4oal/tmp_ao_hb0d.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 40 __main__.TestCodegen.test_glib_min_required_with_micro # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmp5dselc3a # /tmp/tmp5dselc3a/tmpzb2gp49_.xml: # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmp5dselc3a/tmpzb2gp49_.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 41 __main__.TestCodegen.test_help # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpv4_lxy3n # 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] # [--extension-path EXTENSION_PATH] # [--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 # --extension-path EXTENSION_PATH # Path to a gdbus-codegen Python extension file # (unstable API) # --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 42 __main__.TestCodegen.test_indentation_preservation_in_comments # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpnzn24d1o # /tmp/tmpnzn24d1o/tmp3pj7bbaq.xml: # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpnzn24d1o/tmp3pj7bbaq.xml', '--generate-rst', 'test'] # Return code: 0 # Output: # # Error: # # /tmp/tmpnzn24d1o/tmp3dmhary3.xml: # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpnzn24d1o/tmp3dmhary3.xml', '--generate-md', 'test'] # Return code: 0 # Output: # # Error: # # /tmp/tmpnzn24d1o/tmpf640ps2w.xml: # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpnzn24d1o/tmpf640ps2w.xml', '--generate-docbook', 'test'] # Return code: 0 # Output: # # Error: ok 43 __main__.TestCodegen.test_no_args # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpdx9qq0vm # 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] # [--extension-path EXTENSION_PATH] # [--generate-c-code OUTFILES | --header | --body | # --interface-info-header | --interface-info-body] # [--output FILE | --output-directory OUTDIR] # FILE [FILE ...] # gdbus-codegen: error: the following arguments are required: FILE ok 44 __main__.TestCodegen.test_reproducible # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpdfewzjfm # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpdfewzjfm/tmp2k6e88w91.xml', '/tmp/tmpdfewzjfm/tmp_y7m4pze2.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/tmpdfewzjfm/tmp_y7m4pze2.xml', '/tmp/tmpdfewzjfm/tmp2k6e88w91.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/tmpdfewzjfm/tmp2k6e88w91.xml', '/tmp/tmpdfewzjfm/tmp_y7m4pze2.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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/tmpdfewzjfm/tmp_y7m4pze2.xml', '/tmp/tmpdfewzjfm/tmp2k6e88w91.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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 # /* coverity[missing_lock : SUPPRESS] */ # g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy); # #else # if (skeleton->priv->changed_properties_idle_source != NULL) # g_source_destroy (skeleton->priv->changed_properties_idle_source); # skeleton->priv->changed_properties_idle_source = NULL; # #endif # 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 45 __main__.TestCodegen.test_unix_fd_types_and_annotations # gdbus-codegen: /usr/bin/gdbus-codegen # tmpdir: /tmp/tmpirz4gt_m # /tmp/tmpirz4gt_m/tmpxk083m8z.xml: # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpirz4gt_m/tmpxk083m8z.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/tmpirz4gt_m/tmpdyspu2wd.xml: # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpirz4gt_m/tmpdyspu2wd.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/tmpirz4gt_m/tmp5mtnv2j8.xml: # # # # # # # # # # # # # # # # # # # Running: ['/usr/bin/gdbus-codegen', '/tmp/tmpirz4gt_m/tmp5mtnv2j8.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..45 PASS: glib/codegen.py.test SUMMARY: total=308; passed=307; skipped=1; failed=0; user=211.2s; system=93.7s; maxrss=148148 + userdel glib2-test DURATION: 300