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