summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Kolny <marcin.kolny@gmail.com>2015-08-08 14:45:12 +0200
committerMarcin Kolny <marcin.kolny@gmail.com>2015-08-08 14:45:59 +0200
commit0d5f63b18f5766760cf39e82ee11482984e0a938 (patch)
treee3f74b9b37e7618c92840024077dff43e6d08f0d
parentdce7a844e48a582e42eb2b60eef5c1f2527540ac (diff)
parentd94115843f38967b5e883f5f7d8057882ae364cb (diff)
downloadglibmm-gir-gmmproc.tar.gz
Merge branch 'master' into glibmm-gir-gmmprocglibmm-gir-gmmproc
-rw-r--r--.gitignore2
-rw-r--r--MSVC_Net2010/compose.vcxproj8
-rw-r--r--MSVC_Net2010/dispatcher.vcxproj8
-rw-r--r--MSVC_Net2010/dispatcher2.vcxproj8
-rw-r--r--MSVC_Net2010/gendef.vcxproj8
-rw-r--r--MSVC_Net2010/giomm.vcxproj12
-rw-r--r--MSVC_Net2010/giomm.vcxproj.filters4
-rw-r--r--MSVC_Net2010/giomm_simple.vcxproj8
-rw-r--r--MSVC_Net2010/glibmm-version-paths.props2
-rw-r--r--MSVC_Net2010/glibmm.sln4
-rw-r--r--MSVC_Net2010/glibmm.vcxproj10
-rw-r--r--MSVC_Net2010/glibmm.vcxproj.filters2
-rw-r--r--MSVC_Net2010/glibmm_value.vcxproj8
-rw-r--r--MSVC_Net2010/install.vcxproj8
-rw-r--r--MSVC_Net2010/keyfile.vcxproj8
-rw-r--r--MSVC_Net2010/markup.vcxproj8
-rw-r--r--MSVC_Net2010/options.vcxproj8
-rw-r--r--MSVC_Net2010/properties.vcxproj8
-rw-r--r--MSVC_Net2010/regex.vcxproj8
-rw-r--r--MSVC_Net2010/resolver.vcxproj8
-rw-r--r--MSVC_Net2010/socket-client.vcxproj8
-rw-r--r--MSVC_Net2010/socket-server.vcxproj8
-rw-r--r--MSVC_Net2010/thread.vcxproj8
-rw-r--r--MSVC_Net2010/threadpool.vcxproj8
-rw-r--r--NEWS289
-rw-r--r--configure.ac10
-rw-r--r--examples/child_watch/main.cc4
-rw-r--r--examples/dbus/client_bus_listnames.cc16
-rw-r--r--examples/dbus/server_without_bus.cc8
-rw-r--r--examples/dbus/session_bus_service.cc6
-rw-r--r--examples/iochannel_stream/fdstream.cc11
-rw-r--r--examples/iochannel_stream/fdstream.h10
-rw-r--r--examples/iochannel_stream/main.cc2
-rw-r--r--examples/keyfile/main.cc6
-rw-r--r--examples/markup/parser.cc16
-rw-r--r--examples/network/resolver.cc67
-rw-r--r--examples/network/socket-client.cc6
-rw-r--r--examples/network/socket-server.cc35
-rw-r--r--examples/options/main.cc17
-rw-r--r--examples/regex/main.cc2
-rw-r--r--examples/settings/settings.cc16
-rw-r--r--examples/thread/dispatcher.cc12
-rw-r--r--examples/thread/dispatcher2.cc14
-rw-r--r--examples/thread/thread.cc2
-rw-r--r--examples/thread/threadpool.cc4
-rw-r--r--gio/giomm.h4
-rw-r--r--gio/giomm/contenttype.cc4
-rw-r--r--gio/giomm/slot_async.cc2
-rw-r--r--gio/giomm/socketsource.h3
-rw-r--r--gio/src/action.hg28
-rw-r--r--gio/src/actiongroup.hg21
-rw-r--r--gio/src/actionmap.ccg26
-rw-r--r--gio/src/appinfo.ccg12
-rw-r--r--gio/src/appinfo.hg10
-rw-r--r--gio/src/application.ccg47
-rw-r--r--gio/src/application.hg25
-rw-r--r--gio/src/asyncinitable.ccg32
-rw-r--r--gio/src/asyncresult.ccg4
-rw-r--r--gio/src/bufferedinputstream.ccg4
-rw-r--r--gio/src/cancellable.ccg2
-rw-r--r--gio/src/cancellable.hg3
-rw-r--r--gio/src/charsetconverter.hg1
-rw-r--r--gio/src/datainputstream.ccg30
-rw-r--r--gio/src/dbusaddress.ccg40
-rw-r--r--gio/src/dbusconnection.ccg48
-rw-r--r--gio/src/dbusintrospection.hg5
-rw-r--r--gio/src/dbusobject.hg4
-rw-r--r--gio/src/dbusownname.ccg16
-rw-r--r--gio/src/dbusproxy.ccg12
-rw-r--r--gio/src/dbussubtreevtable.ccg14
-rw-r--r--gio/src/dbuswatchname.ccg14
-rw-r--r--gio/src/desktopappinfo.hg7
-rw-r--r--gio/src/drive.ccg20
-rw-r--r--gio/src/file.ccg224
-rw-r--r--gio/src/file.hg56
-rw-r--r--gio/src/fileattributeinfolist.ccg4
-rw-r--r--gio/src/fileenumerator.ccg8
-rw-r--r--gio/src/fileinfo.hg4
-rw-r--r--gio/src/fileinputstream.ccg12
-rw-r--r--gio/src/fileinputstream.hg11
-rw-r--r--gio/src/fileiostream.ccg12
-rw-r--r--gio/src/filelist.am8
-rw-r--r--gio/src/fileoutputstream.ccg12
-rw-r--r--gio/src/fileoutputstream.hg16
-rw-r--r--gio/src/gio.defs1
-rw-r--r--gio/src/gio_docs.xml19215
-rw-r--r--gio/src/gio_enums.defs349
-rw-r--r--gio/src/gio_enums.defs.patch14
-rw-r--r--gio/src/gio_extra_objects.defs30
-rw-r--r--gio/src/gio_methods.defs988
-rw-r--r--gio/src/gio_methods.defs.patch66
-rw-r--r--gio/src/gio_others.defs44
-rw-r--r--gio/src/gio_signals.defs105
-rw-r--r--gio/src/gio_unix_functions.defs725
-rw-r--r--gio/src/icon.ccg4
-rw-r--r--gio/src/inetaddress.hg3
-rw-r--r--gio/src/inputstream.ccg52
-rw-r--r--gio/src/inputstream.hg77
-rw-r--r--gio/src/iostream.ccg8
-rw-r--r--gio/src/loadableicon.ccg12
-rw-r--r--gio/src/memoryinputstream.ccg8
-rw-r--r--gio/src/memoryinputstream.hg4
-rw-r--r--gio/src/memoryoutputstream.hg5
-rw-r--r--gio/src/menuattributeiter.ccg4
-rw-r--r--gio/src/menuitem.ccg2
-rw-r--r--gio/src/menulinkiter.ccg4
-rw-r--r--gio/src/mount.ccg28
-rw-r--r--gio/src/mount.hg3
-rw-r--r--gio/src/networkaddress.ccg4
-rw-r--r--gio/src/networkmonitor.ccg38
-rw-r--r--gio/src/networkmonitor.hg69
-rw-r--r--gio/src/notification.hg11
-rw-r--r--gio/src/outputstream.ccg65
-rw-r--r--gio/src/outputstream.hg99
-rw-r--r--gio/src/proxy.ccg4
-rw-r--r--gio/src/proxyresolver.ccg8
-rw-r--r--gio/src/resolver.ccg16
-rw-r--r--gio/src/resolver.hg5
-rw-r--r--gio/src/resource.ccg6
-rw-r--r--gio/src/resource.hg203
-rw-r--r--gio/src/settings.ccg8
-rw-r--r--gio/src/settings.hg26
-rw-r--r--gio/src/settingsschema.ccg23
-rw-r--r--gio/src/settingsschema.hg82
-rw-r--r--gio/src/settingsschemakey.ccg23
-rw-r--r--gio/src/settingsschemakey.hg63
-rw-r--r--gio/src/settingsschemasource.ccg23
-rw-r--r--gio/src/settingsschemasource.hg65
-rw-r--r--gio/src/simpleaction.hg4
-rw-r--r--gio/src/simpleactiongroup.hg5
-rw-r--r--gio/src/simpleiostream.ccg17
-rw-r--r--gio/src/simpleiostream.hg75
-rw-r--r--gio/src/socket.ccg20
-rw-r--r--gio/src/socket.hg3
-rw-r--r--gio/src/socketaddressenumerator.ccg2
-rw-r--r--gio/src/socketclient.ccg16
-rw-r--r--gio/src/socketconnection.ccg4
-rw-r--r--gio/src/socketconnection.hg3
-rw-r--r--gio/src/socketlistener.ccg84
-rw-r--r--gio/src/tcpwrapperconnection.ccg22
-rw-r--r--gio/src/tcpwrapperconnection.hg51
-rw-r--r--gio/src/themedicon.ccg6
-rw-r--r--gio/src/themedicon.hg28
-rw-r--r--gio/src/tlsconnection.hg5
-rw-r--r--gio/src/tlspassword.hg4
-rw-r--r--gio/src/unixconnection.ccg8
-rw-r--r--gio/src/unixfdlist.ccg43
-rw-r--r--gio/src/unixfdlist.hg7
-rw-r--r--gio/src/unixfdmessage.ccg9
-rw-r--r--gio/src/unixfdmessage.hg7
-rw-r--r--gio/src/unixsocketaddress.hg4
-rw-r--r--gio/src/volume.ccg12
-rw-r--r--gio/src/volumemonitor.hg7
-rw-r--r--glib/glibmm/arrayhandle.h4
-rw-r--r--glib/glibmm/dispatcher.cc10
-rw-r--r--glib/glibmm/dispatcher.h8
-rw-r--r--glib/glibmm/error.cc40
-rw-r--r--glib/glibmm/error.h8
-rw-r--r--glib/glibmm/exception.cc2
-rw-r--r--glib/glibmm/exception.h2
-rw-r--r--glib/glibmm/exceptionhandler.cc4
-rw-r--r--glib/glibmm/exceptionhandler.h2
-rw-r--r--glib/glibmm/filelist.am2
-rw-r--r--glib/glibmm/helperlist.h17
-rw-r--r--glib/glibmm/init.cc10
-rw-r--r--glib/glibmm/interface.cc2
-rw-r--r--glib/glibmm/interface.h11
-rw-r--r--glib/glibmm/listhandle.h8
-rw-r--r--glib/glibmm/main.cc24
-rw-r--r--glib/glibmm/main.h29
-rw-r--r--glib/glibmm/object.cc4
-rw-r--r--glib/glibmm/object.h8
-rw-r--r--glib/glibmm/objectbase.cc11
-rw-r--r--glib/glibmm/objectbase.h19
-rw-r--r--glib/glibmm/pattern.h8
-rw-r--r--glib/glibmm/property.cc8
-rw-r--r--glib/glibmm/property.h7
-rw-r--r--glib/glibmm/propertyproxy_base.cc2
-rw-r--r--glib/glibmm/random.h8
-rw-r--r--glib/glibmm/refptr.h122
-rw-r--r--glib/glibmm/sarray.cc61
-rw-r--r--glib/glibmm/sarray.h80
-rw-r--r--glib/glibmm/signalproxy.cc43
-rw-r--r--glib/glibmm/signalproxy_connectionnode.cc4
-rw-r--r--glib/glibmm/slisthandle.h8
-rw-r--r--glib/glibmm/streamiochannel.cc32
-rw-r--r--glib/glibmm/stringutils.cc2
-rw-r--r--glib/glibmm/threadpool.cc22
-rw-r--r--glib/glibmm/timer.h8
-rw-r--r--glib/glibmm/ustring.cc10
-rw-r--r--glib/glibmm/ustring.h54
-rw-r--r--glib/glibmm/utility.h11
-rw-r--r--glib/glibmm/wrap.cc8
-rw-r--r--glib/glibmm/wrap.h19
-rw-r--r--glib/src/binding.ccg33
-rw-r--r--glib/src/binding.hg90
-rw-r--r--glib/src/checksum.ccg2
-rw-r--r--glib/src/convert.ccg30
-rw-r--r--glib/src/date.ccg4
-rw-r--r--glib/src/date.hg6
-rw-r--r--glib/src/datetime.hg5
-rw-r--r--glib/src/filelist.am3
-rw-r--r--glib/src/fileutils.ccg18
-rw-r--r--glib/src/glib.defs2
-rw-r--r--glib/src/glib_deprecated_enums.defs22
-rw-r--r--glib/src/glib_deprecated_functions.defs50
-rw-r--r--glib/src/glib_docs.xml2176
-rw-r--r--glib/src/glib_docs_override.xml1
-rw-r--r--glib/src/glib_enums.defs76
-rw-r--r--glib/src/glib_enums.defs.patch27
-rw-r--r--glib/src/glib_functions.defs8168
-rw-r--r--glib/src/glib_functions.defs.patch14
-rw-r--r--glib/src/gobject.defs3
-rw-r--r--glib/src/gobject_enums.defs21
-rw-r--r--glib/src/gobject_functions.defs3283
-rw-r--r--glib/src/iochannel.ccg52
-rw-r--r--glib/src/iochannel.hg45
-rw-r--r--glib/src/keyfile.ccg44
-rw-r--r--glib/src/keyfile.hg1
-rw-r--r--glib/src/markup.ccg12
-rw-r--r--glib/src/miscutils.ccg (renamed from glib/glibmm/miscutils.cc)21
-rw-r--r--glib/src/miscutils.hg (renamed from glib/glibmm/miscutils.h)66
-rw-r--r--glib/src/module.ccg2
-rw-r--r--glib/src/module.hg2
-rw-r--r--glib/src/nodetree.hg29
-rw-r--r--glib/src/optioncontext.ccg6
-rw-r--r--glib/src/optioncontext.hg3
-rw-r--r--glib/src/optionentry.ccg6
-rw-r--r--glib/src/optiongroup.ccg206
-rw-r--r--glib/src/optiongroup.hg6
-rw-r--r--glib/src/regex.ccg54
-rw-r--r--glib/src/regex.hg6
-rw-r--r--glib/src/shell.ccg6
-rw-r--r--glib/src/signalproxy.h.m4105
-rw-r--r--glib/src/spawn.ccg42
-rw-r--r--glib/src/spawn.hg69
-rw-r--r--glib/src/thread.ccg14
-rw-r--r--glib/src/thread.hg18
-rw-r--r--glib/src/threads.ccg67
-rw-r--r--glib/src/threads.hg141
-rw-r--r--glib/src/value_basictypes.cc.m410
-rw-r--r--glib/src/value_basictypes.h.m48
-rw-r--r--glib/src/valuearray.ccg2
-rw-r--r--glib/src/variant.ccg197
-rw-r--r--glib/src/variant.hg125
-rw-r--r--glib/src/variant_basictypes.cc.m432
-rw-r--r--glib/src/variant_basictypes.h.m424
-rw-r--r--glib/src/varianttype.ccg8
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/giomm_asyncresult_sourceobject/main.cc4
-rw-r--r--tests/giomm_ioerror/main.cc4
-rw-r--r--tests/giomm_memoryinputstream/main.cc2
-rw-r--r--tests/giomm_simple/main.cc4
-rw-r--r--tests/giomm_tls_client/main.cc34
-rw-r--r--tests/glibmm_btree/main.cc5
-rw-r--r--tests/glibmm_interface_implementation/main.cc52
-rw-r--r--tests/glibmm_mainloop/main.cc6
-rw-r--r--tests/glibmm_refptr/main.cc275
-rw-r--r--tests/glibmm_refptr_sigc_bind/main.cc1
-rw-r--r--tests/glibmm_valuearray/main.cc22
-rw-r--r--tests/glibmm_variant/main.cc103
-rw-r--r--tests/glibmm_vector/main.cc4
-rw-r--r--tools/defs_gen/docextract.py27
-rwxr-xr-xtools/defs_gen/docextract_to_xml.py38
-rwxr-xr-xtools/defs_gen/h2def.py6
-rw-r--r--tools/extra_defs_gen/generate_defs_gio.cc6
-rw-r--r--tools/extra_defs_gen/generate_extra_defs.cc14
-rwxr-xr-xtools/gen_scripts/gio_generate_docs.sh1
-rwxr-xr-xtools/gen_scripts/gio_generate_extra_defs.sh31
-rwxr-xr-xtools/gen_scripts/glib_generate_docs.sh3
-rw-r--r--tools/generate_wrap_init.pl.in2
-rw-r--r--tools/gmmproc.in11
-rw-r--r--tools/m4/class_boxedtype.m417
-rw-r--r--tools/m4/class_gobject.m48
-rw-r--r--tools/m4/class_interface.m415
-rw-r--r--tools/m4/class_opaque_copyable.m44
-rw-r--r--tools/m4/class_opaque_refcounted.m48
-rw-r--r--tools/m4/class_shared.m42
-rw-r--r--tools/m4/convert_gio.m414
-rw-r--r--tools/m4/enum.m42
-rw-r--r--tools/m4/filelist.am1
-rw-r--r--tools/m4/gerror.m42
-rw-r--r--tools/m4/list.m4232
-rw-r--r--tools/m4/method.m467
-rw-r--r--tools/m4/property.m47
-rw-r--r--tools/m4/signal.m473
-rw-r--r--tools/m4/vfunc.m475
-rw-r--r--tools/pm/DocsParser.pm257
-rw-r--r--tools/pm/Enum.pm2
-rw-r--r--tools/pm/Output.pm120
-rw-r--r--tools/pm/Property.pm10
-rw-r--r--tools/pm/WrapParser.pm153
-rwxr-xr-xtools/test_scripts/testheaders.sh4
293 files changed, 23024 insertions, 19479 deletions
diff --git a/.gitignore b/.gitignore
index dc64b965..c3aa740e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -119,6 +119,8 @@ giommconfig.h
/glib/glibmm/keyfile.h
/glib/glibmm/markup.cc
/glib/glibmm/markup.h
+/glib/glibmm/miscutils.cc
+/glib/glibmm/miscutils.h
/glib/glibmm/module.cc
/glib/glibmm/module.h
/glib/glibmm/nodetree.cc
diff --git a/MSVC_Net2010/compose.vcxproj b/MSVC_Net2010/compose.vcxproj
index 1f5eca9e..b8e5bb9b 100644
--- a/MSVC_Net2010/compose.vcxproj
+++ b/MSVC_Net2010/compose.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/dispatcher.vcxproj b/MSVC_Net2010/dispatcher.vcxproj
index 60a8d4d0..0a093282 100644
--- a/MSVC_Net2010/dispatcher.vcxproj
+++ b/MSVC_Net2010/dispatcher.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/dispatcher2.vcxproj b/MSVC_Net2010/dispatcher2.vcxproj
index b280859a..30634c22 100644
--- a/MSVC_Net2010/dispatcher2.vcxproj
+++ b/MSVC_Net2010/dispatcher2.vcxproj
@@ -27,22 +27,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/gendef.vcxproj b/MSVC_Net2010/gendef.vcxproj
index de5b741b..f07083fb 100644
--- a/MSVC_Net2010/gendef.vcxproj
+++ b/MSVC_Net2010/gendef.vcxproj
@@ -26,22 +26,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/giomm.vcxproj b/MSVC_Net2010/giomm.vcxproj
index d7d67d3f..7fd60f91 100644
--- a/MSVC_Net2010/giomm.vcxproj
+++ b/MSVC_Net2010/giomm.vcxproj
@@ -26,22 +26,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -276,6 +276,7 @@
<ClCompile Include="..\gio\giomm\settings.cc" />
<ClCompile Include="..\gio\giomm\simpleaction.cc" />
<ClCompile Include="..\gio\giomm\simpleactiongroup.cc" />
+ <ClCompile Include="..\gio\giomm\simpleiostream.cc" />
<ClCompile Include="..\gio\giomm\simplepermission.cc" />
<ClCompile Include="..\gio\giomm\slot_async.cc" />
<ClCompile Include="..\gio\giomm\socket.cc" />
@@ -290,6 +291,7 @@
<ClCompile Include="..\gio\giomm\socketsource.cc" />
<ClCompile Include="..\gio\giomm\srvtarget.cc" />
<ClCompile Include="..\gio\giomm\tcpconnection.cc" />
+ <ClCompile Include="..\gio\giomm\tcpwrapperconnection.cc" />
<ClCompile Include="..\gio\giomm\themedicon.cc" />
<ClCompile Include="..\gio\giomm\threadedsocketservice.cc" />
<ClCompile Include="..\gio\giomm\tlscertificate.cc" />
@@ -398,6 +400,7 @@
<ClInclude Include="..\gio\giomm\settings.h" />
<ClInclude Include="..\gio\giomm\simpleaction.h" />
<ClInclude Include="..\gio\giomm\simpleactiongroup.h" />
+ <ClInclude Include="..\gio\giomm\simpleiostream.h" />
<ClInclude Include="..\gio\giomm\simplepermission.h" />
<ClInclude Include="..\gio\giomm\slot_async.h" />
<ClInclude Include="..\gio\giomm\socket.h" />
@@ -412,6 +415,7 @@
<ClInclude Include="..\gio\giomm\socketsource.h" />
<ClInclude Include="..\gio\giomm\srvtarget.h" />
<ClInclude Include="..\gio\giomm\tcpconnection.h" />
+ <ClInclude Include="..\gio\giomm\tcpwrapperconnection.h" />
<ClInclude Include="..\gio\giomm\themedicon.h" />
<ClInclude Include="..\gio\giomm\threadedsocketservice.h" />
<ClInclude Include="..\gio\giomm\tlscertificate.h" />
diff --git a/MSVC_Net2010/giomm.vcxproj.filters b/MSVC_Net2010/giomm.vcxproj.filters
index f4300a4a..5c42dd84 100644
--- a/MSVC_Net2010/giomm.vcxproj.filters
+++ b/MSVC_Net2010/giomm.vcxproj.filters
@@ -107,6 +107,7 @@
<ClCompile Include="..\gio\giomm\settings.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\gio\giomm\simpleaction.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\gio\giomm\simpleactiongroup.cc"><Filter>Source Files</Filter></ClCompile>
+ <ClCompile Include="..\gio\giomm\simpleiostream.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\gio\giomm\simplepermission.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\gio\giomm\slot_async.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\gio\giomm\socket.cc"><Filter>Source Files</Filter></ClCompile>
@@ -121,6 +122,7 @@
<ClCompile Include="..\gio\giomm\socketsource.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\gio\giomm\srvtarget.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\gio\giomm\tcpconnection.cc"><Filter>Source Files</Filter></ClCompile>
+ <ClCompile Include="..\gio\giomm\tcpwrapperconnection.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\gio\giomm\themedicon.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\gio\giomm\tlscertificate.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\gio\giomm\tlsclientconnection.cc"><Filter>Source Files</Filter></ClCompile>
@@ -228,6 +230,7 @@
<ClInclude Include="..\gio\giomm\settings.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\gio\giomm\simpleaction.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\gio\giomm\simpleactiongroup.h"><Filter>Header Files</Filter></ClInclude>
+ <ClInclude Include="..\gio\giomm\simpleiostream.h"><Filter>Source Files</Filter></ClInclude>
<ClInclude Include="..\gio\giomm\simplepermission.h"><Filter>Source Files</Filter></ClInclude>
<ClInclude Include="..\gio\giomm\slot_async.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\gio\giomm\socket.h"><Filter>Header Files</Filter></ClInclude>
@@ -242,6 +245,7 @@
<ClInclude Include="..\gio\giomm\socketsource.h"><Filter>Source Files</Filter></ClInclude>
<ClInclude Include="..\gio\giomm\srvtarget.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\gio\giomm\tcpconnection.h"><Filter>Header Files</Filter></ClInclude>
+ <ClInclude Include="..\gio\giomm\tcpwrapperconnection.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\gio\giomm\themedicon.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\gio\giomm\threadedsocketservice.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\gio\giomm\tlscertificate.h"><Filter>Header Files</Filter></ClInclude>
diff --git a/MSVC_Net2010/giomm_simple.vcxproj b/MSVC_Net2010/giomm_simple.vcxproj
index 692f5044..19da8a4e 100644
--- a/MSVC_Net2010/giomm_simple.vcxproj
+++ b/MSVC_Net2010/giomm_simple.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/glibmm-version-paths.props b/MSVC_Net2010/glibmm-version-paths.props
index d29aa3c2..56dc3098 100644
--- a/MSVC_Net2010/glibmm-version-paths.props
+++ b/MSVC_Net2010/glibmm-version-paths.props
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="UserMacros">
- <VSVer>10</VSVer>
+ <VSVer>12</VSVer>
<GlibEtcInstallRoot>$(SolutionDir)\..\..\vs$(VSVer)\$(Platform)</GlibEtcInstallRoot>
<CopyDir>$(GlibEtcInstallRoot)</CopyDir>
<DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)\</DefDir>
diff --git a/MSVC_Net2010/glibmm.sln b/MSVC_Net2010/glibmm.sln
index 46ca430e..0861e554 100644
--- a/MSVC_Net2010/glibmm.sln
+++ b/MSVC_Net2010/glibmm.sln
@@ -1,5 +1,5 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 13.00
+# Visual Studio 2013
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glibmm", "glibmm.vcxproj", "{58B2B53C-C4FF-47FD-817B-095E45B7F7D4}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gendef", "gendef.vcxproj", "{07324745-C9BE-4D65-B08A-9C88188C0C28}"
diff --git a/MSVC_Net2010/glibmm.vcxproj b/MSVC_Net2010/glibmm.vcxproj
index 426a720a..5c5519ba 100644
--- a/MSVC_Net2010/glibmm.vcxproj
+++ b/MSVC_Net2010/glibmm.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -201,6 +201,7 @@
<ClCompile Include="..\glib\glibmm\arrayhandle.cc" />
<ClCompile Include="..\glib\glibmm\balancedtree.cc" />
<ClCompile Include="..\glib\glibmm\base64.cc" />
+ <ClCompile Include="..\glib\glibmm\binding.cc" />
<ClCompile Include="..\glib\glibmm\bytes.cc" />
<ClCompile Include="..\glib\glibmm\bytearray.cc" />
<ClCompile Include="..\glib\glibmm\checksum.cc" />
@@ -270,6 +271,7 @@
<ClInclude Include="..\glib\glibmm\arrayhandle.h" />
<ClInclude Include="..\glib\glibmm\balancedtree.h" />
<ClInclude Include="..\glib\glibmm\base64.h" />
+ <ClInclude Include="..\glib\glibmm\binding.h" />
<ClInclude Include="..\glib\glibmm\bytes.h" />
<ClInclude Include="..\glib\glibmm\bytearray.h" />
<ClInclude Include="..\glib\glibmm\checksum.h" />
diff --git a/MSVC_Net2010/glibmm.vcxproj.filters b/MSVC_Net2010/glibmm.vcxproj.filters
index 4f4aad39..adcec275 100644
--- a/MSVC_Net2010/glibmm.vcxproj.filters
+++ b/MSVC_Net2010/glibmm.vcxproj.filters
@@ -18,6 +18,7 @@
<ClCompile Include="..\glib\glibmm\arrayhandle.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\glib\glibmm\balancedtree.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\glib\glibmm\base64.cc"><Filter>Source Files</Filter></ClCompile>
+ <ClCompile Include="..\glib\glibmm\binding.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\glib\glibmm\bytes.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\glib\glibmm\bytearray.cc"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\glib\glibmm\checksum.cc"><Filter>Source Files</Filter></ClCompile>
@@ -87,6 +88,7 @@
<ClInclude Include="..\glib\glibmm\arrayhandle.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\glib\glibmm\balancedtree.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\glib\glibmm\base64.h"><Filter>Header Files</Filter></ClInclude>
+ <ClInclude Include="..\glib\glibmm\binding.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\glib\glibmm\bytes.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\glib\glibmm\bytearray.h"><Filter>Header Files</Filter></ClInclude>
<ClInclude Include="..\glib\glibmm\checksum.h"><Filter>Header Files</Filter></ClInclude>
diff --git a/MSVC_Net2010/glibmm_value.vcxproj b/MSVC_Net2010/glibmm_value.vcxproj
index 40f15637..4ad39a76 100644
--- a/MSVC_Net2010/glibmm_value.vcxproj
+++ b/MSVC_Net2010/glibmm_value.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/install.vcxproj b/MSVC_Net2010/install.vcxproj
index 94624096..7e94904e 100644
--- a/MSVC_Net2010/install.vcxproj
+++ b/MSVC_Net2010/install.vcxproj
@@ -28,23 +28,23 @@
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/keyfile.vcxproj b/MSVC_Net2010/keyfile.vcxproj
index 1255f7c3..3f31c33e 100644
--- a/MSVC_Net2010/keyfile.vcxproj
+++ b/MSVC_Net2010/keyfile.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/markup.vcxproj b/MSVC_Net2010/markup.vcxproj
index 274ec364..8287e517 100644
--- a/MSVC_Net2010/markup.vcxproj
+++ b/MSVC_Net2010/markup.vcxproj
@@ -27,22 +27,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/options.vcxproj b/MSVC_Net2010/options.vcxproj
index 294cfa0a..d57e622d 100644
--- a/MSVC_Net2010/options.vcxproj
+++ b/MSVC_Net2010/options.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/properties.vcxproj b/MSVC_Net2010/properties.vcxproj
index a1acc53c..4d6d7496 100644
--- a/MSVC_Net2010/properties.vcxproj
+++ b/MSVC_Net2010/properties.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/regex.vcxproj b/MSVC_Net2010/regex.vcxproj
index 27d0c861..73e12dce 100644
--- a/MSVC_Net2010/regex.vcxproj
+++ b/MSVC_Net2010/regex.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/resolver.vcxproj b/MSVC_Net2010/resolver.vcxproj
index 64753931..1cf3f912 100644
--- a/MSVC_Net2010/resolver.vcxproj
+++ b/MSVC_Net2010/resolver.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/socket-client.vcxproj b/MSVC_Net2010/socket-client.vcxproj
index ad37cc4c..cdde60f7 100644
--- a/MSVC_Net2010/socket-client.vcxproj
+++ b/MSVC_Net2010/socket-client.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/socket-server.vcxproj b/MSVC_Net2010/socket-server.vcxproj
index 7a0b085c..53071d88 100644
--- a/MSVC_Net2010/socket-server.vcxproj
+++ b/MSVC_Net2010/socket-server.vcxproj
@@ -28,22 +28,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/thread.vcxproj b/MSVC_Net2010/thread.vcxproj
index 33e20548..19ed189f 100644
--- a/MSVC_Net2010/thread.vcxproj
+++ b/MSVC_Net2010/thread.vcxproj
@@ -27,22 +27,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/MSVC_Net2010/threadpool.vcxproj b/MSVC_Net2010/threadpool.vcxproj
index 3e047788..e94b0c43 100644
--- a/MSVC_Net2010/threadpool.vcxproj
+++ b/MSVC_Net2010/threadpool.vcxproj
@@ -27,22 +27,22 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v100</PlatformToolset>
+ <PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
diff --git a/NEWS b/NEWS
index 652d05a4..8c30d5be 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,292 @@
+2.45.41 (unstable):
+
+Glib:
+* Undeprecate HelperList and List_Iterator because gtkmm-2.4 uses these
+ in its undeprecated API. However, all of gtkmm-2.4 is deprecated, so
+ you (Inkscape) shouldn't be using it anyway.
+ Bug #752797 (Adam Williamson)
+ (Murray Cumming)
+
+2.45.40 (unstable):
+
+Glib:
+* RefPtr: Add move constructor and move assignment operator.
+ (Murray Cumming)
+
+Gio:
+* Application: Add the shutdown signal.
+ (Murray Cumming) Bug #752600 (Ben)
+
+Build:
+* C++11: Use noexcept instead of throw().
+ (Murray Cumming)
+* C++11: Use "= delete" instead of private copy constructors/operator=.
+ (Murray Cumming)
+* C++11: Use nullptr instead of 0.
+ (Murray Cumming)
+* C++11: Use the override keyword.
+
+
+2.45.31 (unstable):
+
+Glib:
+* HelperList: fix iterator check in operator[]
+ (Maks Naumov) Bug #751530.
+
+Build:
+* Use (and require) C++11.
+ (Murray Cumming, Kjell Ahlstedt)
+* Use some simple C++11 syntax.
+ (Murray Cumming)
+* Fix the build with -Wshadow.
+ (Murray Cumming)
+
+gmmproc:
+* Generate code that uses some simple C++11 syntax.
+ (Murray Cumming)
+* _WRAP_SIGNAL: Accept apostrophes in a preceding comment.
+ (Kjell Ahlstedt)
+
+
+2.45.3 (unstable):
+
+* Add SettingsSchema, SettingsSchemaKey and SettingsSchemaSource.
+ (Murray Cumming)
+* Deprecate HelperList and SArray because nothing uses them.
+ (Murray Cumming)
+
+Build:
+* Don't disable more deprecation warnings than necessary
+ (Kjell Ahlstedt) Bug #750379.
+
+gmmproc:
+* _WRAP_METHOD: deprecated: Use G_GNUC_[BEGIN|END]_IGNORE_DEPRECATIONS
+ per function, instead of one big undef [G|GDK|GTK]_DISABLE_DEPRECATED.
+ (Kjell Ahlstedt) Bug #750379
+* Remove GP_LIST, because nothing uses it.
+ (Murray Cumming)
+
+
+2.45.2 (unstable):
+
+Glib:
+* Add Glib::format_size().
+ (Kjell Ahlstedt) Bug #747311 (Zsolt Bölöny)
+* Add get_user_special_dir(UserDirectory), deprecating
+ get_user_special_dir(GUserDirectory directory).
+ (Kjell Ahlstedt) Bug #747311
+* Threads::Thread: Use GThread only via a pointer.
+ Kjell Ahlstedt (Bug #746533)
+* VariantBase: Add is_castable_to().
+* VariantContainerBase: get_iter(): Accept casts of complicated types
+ containing object paths and DBus type signatures to Variant<> types
+ containing Glib::ustring and std::string.
+ (Kjell Ahlstedt) Bug #747508.
+* Variant: Wrap handles and add get_data_as_bytes()
+ (Kjell Ahlstedt)
+* Added SignalProxyDetailed.
+
+Gio:
+* Settings: Add signal_changed(key).
+ (Kjell Ahlstedt, Murray Cumming) Bug #749034.
+* Added SimpleIOStream.
+ (Kjell Ahlstedt)
+
+Documentation:
+* API Reference: Remove generated " "You rarely need to use properties".
+ Some new glib and gtk+ classes (GSimpleIOStream, GtkModelButton,
+ GtkPopoverMenu) have no public set/get methods for their properties.
+ (Kjell Ahlstedt)
+* API Reference: Fix the version numbers in some @newin Doxygen commands.
+ (Kjell Ahlstedt)
+
+gmmproc:
+* Add _IGNORE_PROPERTY() and _IGNORE_CHILD_PROPERTY() macros.
+ (Kjell Ahlstedt)
+* Add support for 'newin "n,m"' in some _WRAP macros.
+ (Kjell Ahlstedt) Bug #748856 (Andrew Potter)
+* _WRAP_SIGNAL: Add support for detail_name.
+ (Kjell Ahlstedt) Bug #749034
+* Fetch property documentation from the docs.xml file, if available there.
+ (Kjell Ahlstedt)
+* docextract_to_xml.py: Distinguish sections from properties.
+ (Kjell Ahlstedt)
+* docextract_to_xml.py: Add support for the --no-recursion option.
+ (Kjell Ahlstedt)
+
+Build:
+* Glib::ObjectBase: Don't use std::auto_ptr (deprecated in C++11).
+ (Kjell Ahlstedt) Bug #748630 (Hubert Figuiere)
+* Add missing GLIBMM_API for Interface
+ (Mikhail Titov) Bug #748719.
+
+
+2.44:
+
+API additions since 2.42:
+
+Glib:
+* Add Binding.
+ (Kjell Ahlstedt) Bug #738663.
+* OptionContext: Add get/set_strict_posix().
+ (Murray Cumming)
+
+Gio:
+* Application:
+ - Add get/set/unset_resource_base_path() and property.
+ - Add get_is_busy() and property.
+ (Murray Cumming)
+* File: Add replace_contents_bytes_aync().
+ (Murray Cumming)
+* InputStream: Add read_all_async() and read_all_finish().
+ (Murray Cumming)
+* MemoryInputStream: Add add_bytes().
+ (Murray Cumming)
+* Added NetworkMonitor.
+ (Murray Cumming)
+* Notification: Add set_priority() and enum NotificationPriority.
+ (Kjell Ahlstedt)
+* OutputStream: Add write_all_async() and write_all_finish().
+ (Murray Cumming)
+* Add Resource.
+ (Kjell Ahlstedt)
+* Add TcpWrapperConnection.
+ (Murray Cumming)
+
+Gio::DBus
+* InterfaceInfo: Add cache_build() and cache_release().
+ (Murray Cumming)
+
+
+2.44.0 (stable):
+
+Gio:
+* Action, ActionGroup: Avoid memory leaks in funcs.
+ (Kjell Ahlstedt) Bug #705124
+
+gmmproc:
+* _WRAP_VFUNC(): Add keep_return parameter.
+ (Kjell Ahlstedt) Bug #705124
+
+
+2.43.91 (unstable):
+
+Glib:
+* OptionContext: Add get/set_strict_posix().
+ (Murray Cumming)
+
+Gio:
+* Application:
+ - Add get/set/unset_resource_base_path() and property.
+ - Add get_is_busy() and property.
+ (Murray Cumming)
+* File: Add replace_contents_bytes_aync().
+ (Murray Cumming)
+* InputStream: Add read_all_async() and read_all_finish().
+ (Murray Cumming)
+* MemoryInputStream: Add add_bytes().
+ (Murray Cumming)
+* OutputStream: Add write_all_async() and write_all_finish().
+ (Murray Cumming)
+
+Gio::DBus
+* InterfaceInfo: Add cache_build() and cache_release().
+ (Murray Cumming)
+
+
+
+2.43.90 (unstable):
+
+Glib:
+* Error::register_init(): Call Glib::wrap_register_init().
+ (Kjell Ahlstedt) Bug #743466 (Mike Fleetwood).
+* OptionGroup:
+ - Fix enable/disable bool option pairs.
+ (Kjell Ahlstedt) Bug #744854 (Tom Schoonjans)
+ - Fix memory leaks
+ (Kjell Ahlstedt) Bug #745173.
+ - Don't use deprecate g_option_group_free().
+ (Kjell Ahlstedt)
+* Value: Deprecate Value<char>, add Value<signed char>.
+ Because g_value_[get,set]_char() are deprecated in favour of
+ g_value_[get,set]_schar().
+ (Kjell Ahlstedt)
+
+Gio:
+* Application: Deprecate property_action_group().
+ (Kjell Ahlstedt)
+* Notification: Add set_priority() and enum NotificationPriority.
+ (Kjell Ahlstedt)
+* Add TcpWrapperConnection.
+ (Murray Cumming)
+* UnixSocketAddress: Deprecate property_abstract().
+ (Kjell Ahlstedt)
+
+gmmproc:
+* Fix error messages in glib and gio by removing unnecessary _IGNORES().
+ (Kjell Ahlstedt)
+* h2def.py: Remove *_DEPRECATED_IN_*_*_FOR(*) prefixes with white space.
+ (Kjell Ahlstedt)
+* Put DOXYGEN_SHOULD_SKIP_THIS around *_Class prototypes.
+ To workaround a doxygen bug, to fix the genereated DevHelp search index.
+ (Murray Cumming) Bug #743918
+
+
+2.43.3 (unstable):
+
+Glib:
+* Binding: Rename and change BindingTransformSlot to SlotTransform.
+ (Kjell Ahlstedt) Bug #738663.
+* Add SlotSpawnChildSetup.
+ (Kjell Ahlstedt) Bug #528285.
+
+Documentation:
+* Resource: Suppress incorrect doxygen links.
+ (Kjell Ahlstedt)
+
+
+2.43.2 (unstable):
+
+Gio:
+* Added NetworkMonitor.
+ (Murray Cumming)
+* UnixFDList, UnixFDMessage: Correct array lengths in steal_fds()
+ (Kjell Ahlstedt) Bug #741365 (Matthew Balkam)
+
+gmmproc:
+* Don't make one very long line for the enum documentation.
+ (Kjell Ahlstedt)
+* Improve the conversion of Since to @newin.
+ (Kjell Ahlstedt)
+* Add an empty line after @newin where it's missing
+ (Kjell Ahlstedt)
+
+
+2.43.1 (unstable):
+
+gmmproc:
+* Tidy up the generation of enum docs
+ (Kjell Ahlstedt)
+* _WRAP_GERROR: Add documentation to the generated enum Code.
+ (Kjell Ahlstedt)
+* Change messages that MS Visual Studio can misunderstand.
+ (Kjell Ahlstedt)
+* Warn when an ignored method or signal doesn't exist.
+ (Marcin Kolny) Bug #737212.
+
+Glib:
+* Add Binding.
+ (Kjell Ahlstedt) Bug #738663.
+* Checksum::ChecksumType: Remove erroneous documentation
+ (Kjell Ahlstedt)
+* Property: Add some documentation.
+ (Kjell Ahlstedt) Bug #523043.
+
+Gio:
+ Add Resource.
+ (Kjell Ahlstedt)
+
+
2.42:
API additions since 2.40:
diff --git a/configure.ac b/configure.ac
index a8ea03ed..ffa74891 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@
## You should have received a copy of the GNU Lesser General Public License
## along with this library. If not, see <http://www.gnu.org/licenses/>.
-AC_INIT([glibmm], [2.42.0],
+AC_INIT([glibmm], [2.45.41],
[http://bugzilla.gnome.org/enter_bug.cgi?product=glibmm],
[glibmm], [http://www.gtkmm.org/])
AC_PREREQ([2.59])
@@ -30,7 +30,7 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
AM_MAINTAINER_MODE
AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I <macro dir>])
-MM_PREREQ([0.9.7])
+MM_PREREQ([0.9.8])
MM_INIT_MODULE([glibmm-2.4])
MM_INIT_MODULE([giomm-2.4])
@@ -43,6 +43,8 @@ MM_CONFIG_DOCTOOL_DIR([docs])
AC_SUBST([LIBGLIBMM_SO_VERSION], [4:0:3])
AC_PROG_CXX
+MM_AX_CXX_COMPILE_STDCXX_11([noext],[mandatory])
+
AC_DISABLE_STATIC
LT_INIT([win32-dll])
MM_PATH_PERL
@@ -60,7 +62,7 @@ AS_IF([test "x$enable_static" = xyes],
AC_DEFINE([GIOMM_STATIC_LIB], [1], [Define if giomm is built as a static library])
])
-glibreq='2.0 >= 2.42.0'
+glibreq='2.0 >= 2.45.4'
GLIBMM_MODULES="sigc++-2.0 >= 2.2.10 glib-$glibreq gobject-$glibreq gmodule-$glibreq"
GIOMM_MODULES="$GLIBMM_MODULES gio-$glibreq"
@@ -114,7 +116,7 @@ GLIBMM_ARG_ENABLE_DEBUG_REFCOUNTING
# Evaluate the --enable-warnings=level option.
MM_ARG_ENABLE_WARNINGS([GLIBMM_WXXFLAGS],
[-Wall],
- [-pedantic -Wall -Wextra -Wformat-security -Wno-long-long],
+ [-pedantic -Wall -Wextra -Wformat-security -Wsuggest-override -Wshadow -Wno-long-long],
[G SIGCXX])
# Offer the ability to omit some API from the library,
diff --git a/examples/child_watch/main.cc b/examples/child_watch/main.cc
index 3bbc368b..010992e3 100644
--- a/examples/child_watch/main.cc
+++ b/examples/child_watch/main.cc
@@ -40,7 +40,7 @@ void ChildWatch::run()
{
GPid pid = fork();
- if(pid==0)
+ if(!pid)
{
sleep(5);
exit(0);
@@ -59,7 +59,7 @@ void ChildWatch::on_child_exited(GPid pid, int status)
int main()
{
- Glib::RefPtr<Glib::MainLoop> mainLoop = Glib::MainLoop::create();
+ auto mainLoop = Glib::MainLoop::create();
ChildWatch cwatch(mainLoop);
cwatch.run();
diff --git a/examples/dbus/client_bus_listnames.cc b/examples/dbus/client_bus_listnames.cc
index b46fdcf8..7b9adad6 100644
--- a/examples/dbus/client_bus_listnames.cc
+++ b/examples/dbus/client_bus_listnames.cc
@@ -34,7 +34,7 @@ bool on_main_loop_idle()
// method.
void on_dbus_proxy_available(Glib::RefPtr<Gio::AsyncResult>& result)
{
- Glib::RefPtr<Gio::DBus::Proxy> proxy = Gio::DBus::Proxy::create_finish(result);
+ const auto proxy = Gio::DBus::Proxy::create_finish(result);
if(!proxy)
{
@@ -48,20 +48,20 @@ void on_dbus_proxy_available(Glib::RefPtr<Gio::AsyncResult>& result)
{
// The proxy's call method returns a tuple of the value(s) that the method
// call produces so just get the tuple as a VariantContainerBase.
- const Glib::VariantContainerBase result = proxy->call_sync("ListNames");
+ const auto call_result = proxy->call_sync("ListNames");
// Now extract the single item in the variant container which is the
// array of strings (the names).
- Glib::Variant< std::vector<Glib::ustring> > names_variant;
- result.get_child(names_variant);
+ Glib::Variant< std::vector<Glib::ustring>> names_variant;
+ call_result.get_child(names_variant);
// Get the vector of strings.
- std::vector<Glib::ustring> names = names_variant.get();
+ auto names = names_variant.get();
std::cout << "The names on the message bus are:" << std::endl;
- for(unsigned i = 0; i < names.size(); i++)
- std::cout << names[i] << "." << std::endl;
+ for(const auto& i : names)
+ std::cout << i << "." << std::endl;
}
catch(const Glib::Error& error)
{
@@ -81,7 +81,7 @@ int main(int, char**)
loop = Glib::MainLoop::create();
// Get the user session bus connection.
- Glib::RefPtr<Gio::DBus::Connection> connection =
+ auto connection =
Gio::DBus::Connection::get_sync(Gio::DBus::BUS_TYPE_SESSION);
// Check for an unavailable connection.
diff --git a/examples/dbus/server_without_bus.cc b/examples/dbus/server_without_bus.cc
index d50632dc..6002c149 100644
--- a/examples/dbus/server_without_bus.cc
+++ b/examples/dbus/server_without_bus.cc
@@ -68,7 +68,7 @@ static void on_method_call(const Glib::RefPtr<Gio::DBus::Connection>& /* connect
curr_time.assign_current_time();
const Glib::ustring time_str = curr_time.as_iso8601();
- const Glib::Variant<Glib::ustring> time_var =
+ const auto time_var =
Glib::Variant<Glib::ustring>::create(time_str);
// Create the tuple.
@@ -114,7 +114,7 @@ const Gio::DBus::InterfaceVTable interface_vtable(sigc::ptr_fun(&on_method_call)
bool on_server_new_connection(const Glib::RefPtr<Gio::DBus::Connection>& connection)
{
- Glib::RefPtr<Gio::Credentials> credentials =
+ auto credentials =
connection->get_peer_credentials();
std::string credentials_str;
@@ -166,7 +166,7 @@ int main(int, char**)
std::locale::global(std::locale(""));
Gio::init();
- try
+ try
{
introspection_data = Gio::DBus::NodeInfo::create_for_xml(introspection_xml);
}
@@ -200,7 +200,7 @@ int main(int, char**)
server->signal_new_connection().connect(sigc::ptr_fun(&on_server_new_connection));
//Keep the server running until the process is killed:
- Glib::RefPtr<Glib::MainLoop> loop = Glib::MainLoop::create();
+ auto loop = Glib::MainLoop::create();
loop->run();
return EXIT_SUCCESS;
diff --git a/examples/dbus/session_bus_service.cc b/examples/dbus/session_bus_service.cc
index 0f0bd01d..ed320b8b 100644
--- a/examples/dbus/session_bus_service.cc
+++ b/examples/dbus/session_bus_service.cc
@@ -66,7 +66,7 @@ static void on_method_call(const Glib::RefPtr<Gio::DBus::Connection>& /* connect
curr_time.assign_current_time();
const Glib::ustring time_str = curr_time.as_iso8601();
- const Glib::Variant<Glib::ustring> time_var =
+ const auto time_var =
Glib::Variant<Glib::ustring>::create(time_str);
// Create the tuple.
@@ -156,14 +156,14 @@ int main(int, char**)
return 1;
}
- const guint id = Gio::DBus::own_name(Gio::DBus::BUS_TYPE_SESSION,
+ const auto id = Gio::DBus::own_name(Gio::DBus::BUS_TYPE_SESSION,
"org.glibmm.DBusExample",
sigc::ptr_fun(&on_bus_acquired),
sigc::ptr_fun(&on_name_acquired),
sigc::ptr_fun(&on_name_lost));
//Keep the service running until the process is killed:
- Glib::RefPtr<Glib::MainLoop> loop = Glib::MainLoop::create();
+ auto loop = Glib::MainLoop::create();
loop->run();
Gio::DBus::unown_name(id);
diff --git a/examples/iochannel_stream/fdstream.cc b/examples/iochannel_stream/fdstream.cc
index be97676f..3764546a 100644
--- a/examples/iochannel_stream/fdstream.cc
+++ b/examples/iochannel_stream/fdstream.cc
@@ -265,7 +265,8 @@ std::streamsize fdstreambuf::xsgetn(char* dest, std::streamsize num)
*putback_buffer = *(gptr() - 1);
putback_count = 2;
}
- else putback_count = 1;
+ else
+ putback_count = 1;
}
*(putback_buffer + 1) = *(dest + (chars_read - 1));
@@ -280,8 +281,8 @@ std::streamsize fdstreambuf::xsgetn(char* dest, std::streamsize num)
}
fdstream::fdstream(int fd, bool manage)
-: std::istream(0),
- std::ostream(0),
+: std::istream(nullptr),
+ std::ostream(nullptr),
buf(fd, manage)
{
std::istream::rdbuf(&buf);
@@ -289,8 +290,8 @@ fdstream::fdstream(int fd, bool manage)
}
fdstream::fdstream()
-: std::istream(0),
- std::ostream(0)
+: std::istream(nullptr),
+ std::ostream(nullptr)
{
std::istream::rdbuf(&buf);
std::ostream::rdbuf(&buf);
diff --git a/examples/iochannel_stream/fdstream.h b/examples/iochannel_stream/fdstream.h
index 8c7f45dc..80f46757 100644
--- a/examples/iochannel_stream/fdstream.h
+++ b/examples/iochannel_stream/fdstream.h
@@ -77,11 +77,11 @@ public:
fdstream_error get_error() const;
protected:
- virtual int_type underflow();
- virtual std::streamsize xsgetn(char* dest, std::streamsize num);
- virtual int sync();
- virtual int_type overflow(int_type c);
- virtual std::streamsize xsputn(const char* source, std::streamsize num);
+ int_type underflow() override;
+ std::streamsize xsgetn(char* dest, std::streamsize num) override;
+ int sync() override;
+ int_type overflow(int_type c) override;
+ std::streamsize xsputn(const char* source, std::streamsize num) override;
private:
Glib::RefPtr<Glib::IOChannel> iochannel_;
diff --git a/examples/iochannel_stream/main.cc b/examples/iochannel_stream/main.cc
index aaebbdda..e2e670f0 100644
--- a/examples/iochannel_stream/main.cc
+++ b/examples/iochannel_stream/main.cc
@@ -81,7 +81,7 @@ int main( /* int argc, char *argv[] */)
}
}
- int read_fd = open("testfifo", O_RDONLY);
+ const auto read_fd = open("testfifo", O_RDONLY);
if(read_fd == -1)
{
std::cerr << "error opening fifo" << std::endl;
diff --git a/examples/keyfile/main.cc b/examples/keyfile/main.cc
index 533bc532..33e90677 100644
--- a/examples/keyfile/main.cc
+++ b/examples/keyfile/main.cc
@@ -66,10 +66,10 @@ int main(int, char**)
// An exception will be thrown if the value is not in the file:
try
{
- const std::vector<int> values = keyfile.get_integer_list("Another Group", "Numbers");
+ const auto values = keyfile.get_integer_list("Another Group", "Numbers");
- for(std::vector<int>::const_iterator p = values.begin(); p != values.end(); ++p)
- std::cout << "Number list value: item=" << *p << std::endl;
+ for(const auto& p : values)
+ std::cout << "Number list value: item=" << p << std::endl;
}
catch(const Glib::KeyFileError& ex)
{
diff --git a/examples/markup/parser.cc b/examples/markup/parser.cc
index 30423a66..b954a671 100644
--- a/examples/markup/parser.cc
+++ b/examples/markup/parser.cc
@@ -26,7 +26,7 @@ namespace
void file_get_contents(const std::string& filename, Glib::ustring& contents)
{
- const Glib::RefPtr<Glib::IOChannel> channel = Glib::IOChannel::create_from_file(filename, "r");
+ const auto channel = Glib::IOChannel::create_from_file(filename, "r");
channel->read_to_end(contents);
}
@@ -54,14 +54,14 @@ public:
virtual ~DumpParser();
protected:
- virtual void on_start_element(Glib::Markup::ParseContext& context,
+ void on_start_element(Glib::Markup::ParseContext& context,
const Glib::ustring& element_name,
- const AttributeMap& attributes);
+ const AttributeMap& attributes) override;
- virtual void on_end_element(Glib::Markup::ParseContext& context,
- const Glib::ustring& element_name);
+ void on_end_element(Glib::Markup::ParseContext& context,
+ const Glib::ustring& element_name) override;
- virtual void on_text(Glib::Markup::ParseContext& context, const Glib::ustring& text);
+ void on_text(Glib::Markup::ParseContext& context, const Glib::ustring& text) override;
private:
int parse_depth_;
@@ -84,9 +84,9 @@ void DumpParser::on_start_element(Glib::Markup::ParseContext&,
indent();
std::cout << '<' << element_name;
- for(AttributeMap::const_iterator p = attributes.begin(); p != attributes.end(); ++p)
+ for(const auto& p : attributes)
{
- std::cout << ' ' << p->first << "=\"" << p->second << '"';
+ std::cout << ' ' << p.first << "=\"" << p.second << '"';
}
std::cout << ">\n";
diff --git a/examples/network/resolver.cc b/examples/network/resolver.cc
index 4112c146..42f36a63 100644
--- a/examples/network/resolver.cc
+++ b/examples/network/resolver.cc
@@ -91,14 +91,13 @@ print_resolved_name (const Glib::ustring& phys,
static void
print_resolved_addresses (const Glib::ustring& name,
- const std::list<Glib::RefPtr<Gio::InetAddress> >& addresses)
+ const std::list<Glib::RefPtr<Gio::InetAddress>>& addresses)
{
G_LOCK (response);
std::cout << Glib::ustring::compose ("Name: %1\n", name);
- for (std::list<Glib::RefPtr<Gio::InetAddress> >::const_iterator iter = addresses.begin ();
- iter != addresses.end (); ++iter)
+ for (const auto& i : addresses)
{
- std::cout << Glib::ustring::compose ("Address: %1\n", (*iter)->to_string ());
+ std::cout << Glib::ustring::compose ("Address: %1\n", i->to_string ());
}
std::cout << std::endl;
@@ -112,15 +111,14 @@ print_resolved_service (const Glib::ustring& service,
{
G_LOCK (response);
std::cout << Glib::ustring::compose ("Service: %1\n", service);
- for (std::list<Gio::SrvTarget>::const_iterator iter = targets.begin ();
- iter != targets.end (); ++iter)
+ for (const auto& i : targets)
{
std::cout <<
Glib::ustring::compose ("%1:%2 (pri %3, weight %4)\n",
- iter->get_hostname (),
- iter->get_port (),
- iter->get_priority (),
- iter->get_weight ());
+ i.get_hostname (),
+ i.get_port (),
+ i.get_priority (),
+ i.get_weight ());
}
std::cout << std::endl;
@@ -152,9 +150,8 @@ lookup_one_sync (const Glib::ustring& arg)
{
if (arg.find ('/') != std::string::npos)
{
- std::list<Gio::SrvTarget> targets;
/* service/protocol/domain */
- std::vector<Glib::ustring> parts = split_service_parts (arg);
+ const auto parts = split_service_parts (arg);
if (parts.size () != 3) {
usage ();
return;
@@ -162,7 +159,7 @@ lookup_one_sync (const Glib::ustring& arg)
try
{
- targets = resolver->lookup_service (parts[0], parts[1], parts[2],
+ const auto targets = resolver->lookup_service (parts[0], parts[1], parts[2],
cancellable);
print_resolved_service (arg, targets);
}
@@ -173,7 +170,7 @@ lookup_one_sync (const Glib::ustring& arg)
}
else if (Gio::hostname_is_ip_address (arg))
{
- Glib::RefPtr<Gio::InetAddress> addr = Gio::InetAddress::create (arg);
+ auto addr = Gio::InetAddress::create (arg);
try
{
Glib::ustring name = resolver->lookup_by_address (addr, cancellable);
@@ -209,13 +206,11 @@ lookup_thread (const Glib::ustring& arg)
static void
start_threaded_lookups (char **argv, int argc)
{
- int i;
-
- for (i = 0; i < argc; i++)
- {
- Glib::Threads::Thread::create (sigc::bind (sigc::ptr_fun (lookup_thread),
- argv[i]));
- }
+ for (auto i = 0; i < argc; i++)
+ {
+ Glib::Threads::Thread::create (sigc::bind (sigc::ptr_fun (lookup_thread),
+ argv[i]));
+ }
}
static void
@@ -265,13 +260,13 @@ lookup_service_callback (Glib::RefPtr<Gio::AsyncResult> result,
static void
start_async_lookups (char **argv, int argc)
{
- for (int i = 0; i < argc; i++)
+ for (auto i = 0; i < argc; i++)
{
Glib::ustring arg (argv[i]);
if (arg.find ('/') != std::string::npos)
{
/* service/protocol/domain */
- std::vector<Glib::ustring> parts = split_service_parts (arg);
+ auto parts = split_service_parts (arg);
if (parts.size () != 3) {
usage ();
return;
@@ -286,7 +281,7 @@ start_async_lookups (char **argv, int argc)
}
else if (Gio::hostname_is_ip_address (argv[i]))
{
- Glib::RefPtr<Gio::InetAddress> addr = Gio::InetAddress::create (argv[i]);
+ auto addr = Gio::InetAddress::create (argv[i]);
resolver->lookup_by_address_async (addr,
sigc::bind (sigc::ptr_fun
@@ -312,7 +307,7 @@ static void
print_connectable_sockaddr (Glib::RefPtr<Gio::SocketAddress> sockaddr)
{
Glib::ustring phys;
- Glib::RefPtr<Gio::InetSocketAddress> isa =
+ auto isa =
Glib::RefPtr<Gio::InetSocketAddress>::cast_dynamic (sockaddr);
if (!isa)
@@ -351,7 +346,7 @@ got_next_async (Glib::RefPtr<Gio::AsyncResult> result,
{
try
{
- Glib::RefPtr<Gio::SocketAddress> sockaddr = enumerator->next_finish (result);
+ const auto sockaddr = enumerator->next_finish (result);
if (sockaddr)
{
print_connectable_sockaddr (sockaddr);
@@ -384,7 +379,6 @@ do_connectable (const std::string& arg, gboolean synchronous)
{
std::vector<Glib::ustring> parts;
Glib::RefPtr<Gio::SocketConnectable> connectable;
- Glib::RefPtr<Gio::SocketAddressEnumerator> enumerator;
if (arg.find ('/') != std::string::npos)
{
@@ -402,27 +396,26 @@ do_connectable (const std::string& arg, gboolean synchronous)
std::string host, port_str;
guint16 port;
- std::size_t pos = arg.find (':');
+ const auto pos = arg.find (':');
if (pos != std::string::npos)
{
host = arg.substr (0, pos);
port_str = arg.substr(pos);
- port = strtoul (port_str.c_str (), NULL, 10);
+ port = strtoul (port_str.c_str (), nullptr, 10);
}
else
port = 0;
if (Gio::hostname_is_ip_address (host))
{
- Glib::RefPtr<Gio::InetAddress> addr = Gio::InetAddress::create (host);
+ const auto addr = Gio::InetAddress::create (host);
connectable = Gio::InetSocketAddress::create (addr, port);
}
else
connectable = Gio::NetworkAddress::create (arg, port);
}
- enumerator = connectable->enumerate ();
-
+ const auto enumerator = connectable->enumerate ();
if (synchronous)
do_sync_connectable (enumerator);
else
@@ -442,9 +435,9 @@ interrupted (int /*sig*/)
}
static bool
-async_cancel (Glib::IOCondition /*cond*/, Glib::RefPtr<Gio::Cancellable> cancellable)
+async_cancel (Glib::IOCondition /*cond*/, Glib::RefPtr<Gio::Cancellable> the_cancellable)
{
- cancellable->cancel ();
+ the_cancellable->cancel ();
return false;
}
#endif
@@ -452,8 +445,8 @@ async_cancel (Glib::IOCondition /*cond*/, Glib::RefPtr<Gio::Cancellable> cancell
int
main (int argc, char **argv)
{
- bool synchronous = false;
- bool use_connectable = false;
+ auto synchronous = false;
+ auto use_connectable = false;
#ifdef G_OS_UNIX
Glib::RefPtr<Glib::IOChannel> chan;
sigc::connection watch_conn;
@@ -497,7 +490,7 @@ main (int argc, char **argv)
signal (SIGINT, interrupted);
chan = Glib::IOChannel::create_from_fd (cancel_fds[0]);
- Glib::RefPtr<Glib::IOSource> source = chan->create_watch (Glib::IO_IN);
+ const auto source = chan->create_watch (Glib::IO_IN);
watch_conn = source->connect (sigc::bind (sigc::ptr_fun (async_cancel), cancellable));
#endif
diff --git a/examples/network/socket-client.cc b/examples/network/socket-client.cc
index c7df51e8..44fd94ce 100644
--- a/examples/network/socket-client.cc
+++ b/examples/network/socket-client.cc
@@ -61,7 +61,7 @@ socket_address_to_string (const Glib::RefPtr<Gio::SocketAddress>& address)
Glib::ustring str, res;
int port;
- Glib::RefPtr<Gio::InetSocketAddress> isockaddr =
+ auto isockaddr =
Glib::RefPtr<Gio::InetSocketAddress>::cast_dynamic (address);
if (!isockaddr)
return Glib::ustring ();
@@ -90,7 +90,7 @@ ensure_condition (const Glib::RefPtr<Gio::Socket>& socket,
if (use_source)
{
- Glib::RefPtr<Gio::SocketSource> source = socket->create_source(condition, cancellable);
+ auto source = socket->create_source(condition, cancellable);
source->connect(sigc::ptr_fun(&source_ready));
source->attach();
loop->run();
@@ -154,7 +154,7 @@ main (int argc,
if (argc != 2)
{
- const char* error_message = "Need to specify hostname";
+ const auto error_message = "Need to specify hostname";
std::cerr << Glib::ustring::compose ("%1: %2\n", argv[0], error_message);
return 1;
}
diff --git a/examples/network/socket-server.cc b/examples/network/socket-server.cc
index b9e1a837..897c5d14 100644
--- a/examples/network/socket-server.cc
+++ b/examples/network/socket-server.cc
@@ -68,19 +68,16 @@ public:
Glib::ustring
socket_address_to_string (const Glib::RefPtr<Gio::SocketAddress>& address)
{
- Glib::RefPtr<Gio::InetAddress> inet_address;
- Glib::ustring str, res;
- int port;
-
- Glib::RefPtr<Gio::InetSocketAddress> isockaddr =
- Glib::RefPtr<Gio::InetSocketAddress>::cast_dynamic (address);
- if (!isockaddr)
- return Glib::ustring ();
- inet_address = isockaddr->get_address ();
- str = inet_address->to_string ();
- port = isockaddr->get_port ();
- res = Glib::ustring::compose ("%1:%2", str, port);
- return res;
+ auto isockaddr =
+ Glib::RefPtr<Gio::InetSocketAddress>::cast_dynamic (address);
+ if (!isockaddr)
+ return Glib::ustring ();
+
+ auto inet_address = isockaddr->get_address ();
+ auto str = inet_address->to_string ();
+ auto the_port = isockaddr->get_port ();
+ auto res = Glib::ustring::compose ("%1:%2", str, the_port);
+ return res;
}
static bool
@@ -132,10 +129,7 @@ main (int argc,
char *argv[])
{
Glib::RefPtr<Gio::Socket> socket, new_socket, recv_socket;
- Glib::RefPtr<Gio::SocketAddress> src_address;
Glib::RefPtr<Gio::SocketAddress> address;
- Gio::SocketType socket_type;
- Gio::SocketFamily socket_family;
Glib::RefPtr<Gio::Cancellable> cancellable;
Gio::init ();
@@ -161,8 +155,8 @@ main (int argc,
loop = Glib::MainLoop::create ();
- socket_type = use_udp ? Gio::SOCKET_TYPE_DATAGRAM : Gio::SOCKET_TYPE_STREAM;
- socket_family = use_ipv6 ? Gio::SOCKET_FAMILY_IPV6 : Gio::SOCKET_FAMILY_IPV4;
+ auto socket_type = use_udp ? Gio::SOCKET_TYPE_DATAGRAM : Gio::SOCKET_TYPE_STREAM;
+ auto socket_family = use_ipv6 ? Gio::SOCKET_FAMILY_IPV6 : Gio::SOCKET_FAMILY_IPV4;
try {
socket = Gio::Socket::create (socket_family, socket_type, Gio::SOCKET_PROTOCOL_DEFAULT);
@@ -175,7 +169,7 @@ main (int argc,
if (non_blocking)
socket->set_blocking (false);
- src_address = Gio::InetSocketAddress::create (Gio::InetAddress::create_any (socket_family), port);
+ auto src_address = Gio::InetSocketAddress::create (Gio::InetAddress::create_any (socket_family), port);
try {
socket->bind (src_address, !dont_reuse_address);
} catch (const Gio::Error& error) {
@@ -234,7 +228,6 @@ main (int argc,
{
gchar buffer[4096] = { };
gssize size;
- gsize to_send;
ensure_condition (recv_socket, "receive", cancellable, Glib::IO_IN);
try {
@@ -266,7 +259,7 @@ main (int argc,
"-------------------------\n",
(int)size, buffer);
- to_send = size;
+ auto to_send = size;
while (to_send > 0)
{
diff --git a/examples/options/main.cc b/examples/options/main.cc
index 1ef290b1..fcda4a98 100644
--- a/examples/options/main.cc
+++ b/examples/options/main.cc
@@ -25,15 +25,17 @@ class ExampleOptionGroup : public Glib::OptionGroup
public:
ExampleOptionGroup();
- virtual bool on_pre_parse(Glib::OptionContext& context, Glib::OptionGroup& group);
- virtual bool on_post_parse(Glib::OptionContext& context, Glib::OptionGroup& group);
- virtual void on_error(Glib::OptionContext& context, Glib::OptionGroup& group);
+private:
+ bool on_pre_parse(Glib::OptionContext& context, Glib::OptionGroup& group) override;
+ bool on_post_parse(Glib::OptionContext& context, Glib::OptionGroup& group) override;
+ void on_error(Glib::OptionContext& context, Glib::OptionGroup& group) override;
bool on_option_arg_string(const Glib::ustring& option_name,
const Glib::ustring& value, bool has_value);
bool on_option_arg_filename(const Glib::ustring& option_name,
const std::string& value, bool has_value);
+public:
//These members should live as long as the OptionGroup to which they are added,
//and as long as the OptionContext to which that OptionGroup is added.
int m_arg_foo;
@@ -221,17 +223,18 @@ int main(int argc, char** argv)
//This one shows the results of multiple instance of the same option, such as --list=1 --list=a --list=b
std::cout << " list = ";
- for(Glib::OptionGroup::vecustrings::const_iterator iter = group.m_arg_list.begin(); iter != group.m_arg_list.end(); ++iter)
+ for(const auto& i : group.m_arg_list)
+
{
- std::cout << *iter << ", ";
+ std::cout << i << ", ";
}
std::cout << std::endl;
//This one shows the remaining arguments on the command line, which had no name= form:
std::cout << " remaining = ";
- for(Glib::OptionGroup::vecustrings::const_iterator iter = group.m_remaining_list.begin(); iter != group.m_remaining_list.end(); ++iter)
+ for(const auto& i : group.m_remaining_list)
{
- std::cout << *iter << ", ";
+ std::cout << i << ", ";
}
std::cout << std::endl;
diff --git a/examples/regex/main.cc b/examples/regex/main.cc
index cc128ab2..ed6ac567 100644
--- a/examples/regex/main.cc
+++ b/examples/regex/main.cc
@@ -24,7 +24,7 @@ int main(int, char**)
Glib::init();
/* Reusing one regex pattern: */
- Glib::RefPtr<Glib::Regex> regex = Glib::Regex::create("(a)?(b)");
+ const auto regex = Glib::Regex::create("(a)?(b)");
std::cout << "Pattern=" << regex->get_pattern()
<< ", with string=abcd, result="
<< std::boolalpha << regex->match("abcd")
diff --git a/examples/settings/settings.cc b/examples/settings/settings.cc
index b7ce0ca5..84df7a0e 100644
--- a/examples/settings/settings.cc
+++ b/examples/settings/settings.cc
@@ -50,6 +50,18 @@ static void on_key_changed(const Glib::ustring& key, const Glib::RefPtr<Gio::Set
std::cerr << "Unknown key\n";
}
+static void on_key_changed_all(const Glib::ustring& key)
+{
+ std::cout << "on_key_changed_all(" << key << ")\n";
+}
+
+static void on_key_changed_int(const Glib::ustring& key)
+{
+ std::cout << "on_key_changed_int(" << key << ")\n";
+ if (key != INT_KEY)
+ std::cerr << "Unexpected key\n";
+}
+
int main(int, char**)
{
std::locale::global(std::locale(""));
@@ -63,10 +75,12 @@ int main(int, char**)
Glib::setenv("GSETTINGS_SCHEMA_DIR", ".", true);
Glib::setenv("GSETTINGS_BACKEND", "memory", true);
- const Glib::RefPtr<Gio::Settings> settings =
+ const auto settings =
Gio::Settings::create("org.gtkmm.demo");
settings->signal_changed().connect(sigc::bind(sigc::ptr_fun(&on_key_changed), settings));
+ settings->signal_changed("").connect(sigc::ptr_fun(&on_key_changed_all));
+ settings->signal_changed(INT_KEY).connect(sigc::ptr_fun(&on_key_changed_int));
std::cout << Glib::ustring::compose("Initial value of '%1': '%2'\n",
STRING_KEY, settings->get_string(STRING_KEY));
diff --git a/examples/thread/dispatcher.cc b/examples/thread/dispatcher.cc
index 21833e7f..e58cb227 100644
--- a/examples/thread/dispatcher.cc
+++ b/examples/thread/dispatcher.cc
@@ -29,7 +29,7 @@ namespace
class ThreadProgress
{
public:
- explicit ThreadProgress(int id);
+ explicit ThreadProgress(int the_id);
virtual ~ThreadProgress();
int id() const;
@@ -78,10 +78,10 @@ public:
void operator()(T ptr) const { delete ptr; }
};
-ThreadProgress::ThreadProgress(int id)
+ThreadProgress::ThreadProgress(int the_id)
:
- thread_ (0),
- id_ (id),
+ thread_ (nullptr),
+ id_ (the_id),
progress_ (0)
{
// Connect to the cross-thread signal.
@@ -91,7 +91,7 @@ ThreadProgress::ThreadProgress(int id)
ThreadProgress::~ThreadProgress()
{
// It is an error if the thread is still running at this point.
- g_return_if_fail(thread_ == 0);
+ g_return_if_fail(thread_ == nullptr);
}
int ThreadProgress::id() const
@@ -134,7 +134,7 @@ void ThreadProgress::thread_function()
{
Glib::Rand rand;
- for (int i = 0; i < ITERATIONS; ++i)
+ for (auto i = 0; i < ITERATIONS; ++i)
{
Glib::usleep(rand.get_int_range(2000, 20000));
diff --git a/examples/thread/dispatcher2.cc b/examples/thread/dispatcher2.cc
index dd7d7de8..cd0faf26 100644
--- a/examples/thread/dispatcher2.cc
+++ b/examples/thread/dispatcher2.cc
@@ -77,7 +77,7 @@ ThreadTimer::ThreadTimer()
// Create a new Glib::Dispatcher that is attached to the default main context,
signal_increment_ (),
// This pointer will be initialized later by the 2nd thread.
- signal_finished_ptr_ (NULL)
+ signal_finished_ptr_ (nullptr)
{
// Connect the cross-thread signal.
signal_increment_.connect(sigc::mem_fun(*this, &ThreadTimer::timer_increment));
@@ -99,7 +99,7 @@ void ThreadTimer::launch()
sigc::mem_fun(*this, &ThreadTimer::thread_function));
// Wait for the 2nd thread's startup notification.
- while(signal_finished_ptr_ == NULL)
+ while(!signal_finished_ptr_)
startup_cond_.wait(startup_mutex_);
}
@@ -109,10 +109,10 @@ void ThreadTimer::signal_finished_emit()
signal_finished_ptr_->emit();
// wait for the thread to join
- if(thread_ != NULL)
+ if(thread_)
thread_->join();
- signal_finished_ptr_ = NULL;
+ signal_finished_ptr_ = nullptr;
}
void ThreadTimer::print() const
@@ -156,9 +156,9 @@ bool ThreadTimer::timeout_handler()
void ThreadTimer::thread_function()
{
// create a new Main Context
- Glib::RefPtr<Glib::MainContext> context = Glib::MainContext::create();
+ auto context = Glib::MainContext::create();
// create a new Main Loop
- Glib::RefPtr<Glib::MainLoop> mainloop = Glib::MainLoop::create(context, true);
+ auto mainloop = Glib::MainLoop::create(context, true);
// attach a timeout handler, that is called every second, to the
// newly created MainContext
@@ -189,7 +189,7 @@ ThreadTimer::type_signal_end ThreadTimer::signal_end_;
ThreadDispatcher::ThreadDispatcher()
:
- timer_ (NULL)
+ timer_ (nullptr)
{
std::cout << "Thread Dispatcher Example #2" << std::endl;
diff --git a/examples/thread/thread.cc b/examples/thread/thread.cc
index ad7cfebd..6fb546c1 100644
--- a/examples/thread/thread.cc
+++ b/examples/thread/thread.cc
@@ -36,7 +36,7 @@ void MessageQueue::producer()
{
Glib::Rand rand (1234);
- for(int i = 0; i < 200; ++i)
+ for(auto i = 0; i < 200; ++i)
{
{
Glib::Threads::Mutex::Lock lock (mutex_);
diff --git a/examples/thread/threadpool.cc b/examples/thread/threadpool.cc
index 632a77af..557997f4 100644
--- a/examples/thread/threadpool.cc
+++ b/examples/thread/threadpool.cc
@@ -15,7 +15,7 @@ void print_char(char c)
{
Glib::Rand rand;
- for(int i = 0; i < 100; ++i)
+ for(auto i = 0; i < 100; ++i)
{
{
Glib::Threads::Mutex::Lock lock (mutex);
@@ -33,7 +33,7 @@ int main(int, char**)
{
Glib::ThreadPool pool (10);
- for(char c = 'a'; c <= 'z'; ++c)
+ for(auto c = 'a'; c <= 'z'; ++c)
{
pool.push(sigc::bind<1>(sigc::ptr_fun(&print_char), c));
}
diff --git a/gio/giomm.h b/gio/giomm.h
index a618251a..43f6ed55 100644
--- a/gio/giomm.h
+++ b/gio/giomm.h
@@ -114,8 +114,11 @@
#include <giomm/resource.h>
#include <giomm/seekable.h>
#include <giomm/settings.h>
+#include <giomm/settingsschema.h>
+#include <giomm/settingsschemakey.h>
#include <giomm/simpleaction.h>
#include <giomm/simpleactiongroup.h>
+#include <giomm/simpleiostream.h>
#include <giomm/simplepermission.h>
#include <giomm/socket.h>
#include <giomm/socketaddress.h>
@@ -129,6 +132,7 @@
#include <giomm/socketsource.h>
#include <giomm/srvtarget.h>
#include <giomm/tcpconnection.h>
+#include <giomm/tcpwrapperconnection.h>
#include <giomm/themedicon.h>
#include <giomm/threadedsocketservice.h>
#include <giomm/tlscertificate.h>
diff --git a/gio/giomm/contenttype.cc b/gio/giomm/contenttype.cc
index a01a487e..74efd24a 100644
--- a/gio/giomm/contenttype.cc
+++ b/gio/giomm/contenttype.cc
@@ -50,7 +50,7 @@ Glib::ustring content_type_get_mime_type(const Glib::ustring& type)
Glib::RefPtr<Gio::Icon> content_type_get_icon(const Glib::ustring& type)
{
- Glib::RefPtr<Icon> retvalue = Glib::wrap(g_content_type_get_icon(type.c_str()));
+ auto retvalue = Glib::wrap(g_content_type_get_icon(type.c_str()));
if(retvalue)
retvalue->reference(); //The function does not do a ref for us.
return retvalue;
@@ -59,7 +59,7 @@ Glib::RefPtr<Gio::Icon> content_type_get_icon(const Glib::ustring& type)
#ifdef G_OS_UNIX
Glib::RefPtr<Gio::Icon> content_type_get_symbolic_icon(const Glib::ustring& type)
{
- Glib::RefPtr<Icon> retvalue = Glib::wrap(g_content_type_get_symbolic_icon(type.c_str()));
+ auto retvalue = Glib::wrap(g_content_type_get_symbolic_icon(type.c_str()));
if(retvalue)
retvalue->reference(); //The function does not do a ref for us.
return retvalue;
diff --git a/gio/giomm/slot_async.cc b/gio/giomm/slot_async.cc
index 8db82bc8..31f90778 100644
--- a/gio/giomm/slot_async.cc
+++ b/gio/giomm/slot_async.cc
@@ -31,7 +31,7 @@ SignalProxy_async_callback(GObject*, GAsyncResult* res, void* data)
try
{
- Glib::RefPtr<Gio::AsyncResult> result = Glib::wrap(res, true /* take copy */);
+ auto result = Glib::wrap(res, true /* take copy */);
(*the_slot)(result);
}
catch(...)
diff --git a/gio/giomm/socketsource.h b/gio/giomm/socketsource.h
index f166d753..77bec405 100644
--- a/gio/giomm/socketsource.h
+++ b/gio/giomm/socketsource.h
@@ -45,7 +45,7 @@ public:
* is equivalent to:
* @code
* bool io_handler(Glib::IOCondition io_condition) { ... }
- * const Glib::RefPtr<Gio::SocketSource> socket_source = Gio::SocketSource::create(socket, Glib::IO_IN | Glib::IO_OUT);
+ * const auto socket_source = Gio::SocketSource::create(socket, Glib::IO_IN | Glib::IO_OUT);
* socket_source->connect(sigc::ptr_fun(&io_handler));
* socket_source->attach(Glib::MainContext::get_default());
* @endcode
@@ -55,6 +55,7 @@ public:
* object's MainContext runs.
*
* @newin{2,42}
+ *
* @param slot A slot to call when polling @a socket results in an event that matches @a condition.
* The event will be passed as a parameter to @a slot.
* If <tt>io_handler()</tt> returns <tt>false</tt> the handler is disconnected.
diff --git a/gio/src/action.hg b/gio/src/action.hg
index 932ab8c5..1b10876e 100644
--- a/gio/src/action.hg
+++ b/gio/src/action.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2011 The giomm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -119,6 +117,7 @@ public:
* See get_state_hint().
*
* @newin{2,38}
+ *
* @param value The new state.
*/
template <typename T_Value>
@@ -180,6 +179,7 @@ public:
* Detailed action names can have three formats. See parse_detailed_name_variant().
*
* @newin{2,40}
+ *
* @param detailed_name A detailed action name.
* @param[out] action_name The action name.
* @param[out] target_value The target value.
@@ -214,21 +214,19 @@ public:
_WRAP_PROPERTY("state", Glib::VariantBase)
_WRAP_PROPERTY("state-type", Glib::VariantType)
-#m4 _CONVERSION(`Glib::ustring',`const gchar*',`g_strdup($3.c_str())')
- _WRAP_VFUNC(Glib::ustring get_name() const, "get_name")
-
-#m4 _CONVERSION(`Glib::VariantType',`const GVariantType*',`$3.gobj_copy()')
+#m4 _CONVERSION(`Glib::ustring',`const gchar*',`$3.c_str()')
+ _WRAP_VFUNC(Glib::ustring get_name() const, "get_name", keep_return)
- _WRAP_VFUNC(Glib::VariantType get_parameter_type() const, "get_parameter_type")
- _WRAP_VFUNC(Glib::VariantType get_state_type() const, "get_state_type")
+#m4 _CONVERSION(`Glib::VariantType',`const GVariantType*',`$3.gobj()')
-#m4 _CONVERSION(`Glib::VariantBase',`GVariant*',`$3.gobj_copy()')
+ _WRAP_VFUNC(Glib::VariantType get_parameter_type() const, "get_parameter_type", keep_return)
+ _WRAP_VFUNC(Glib::VariantType get_state_type() const, "get_state_type", keep_return)
- _WRAP_VFUNC(Glib::VariantBase get_state_hint() const, "get_state_hint")
+ _WRAP_VFUNC(Glib::VariantBase get_state_hint() const, "get_state_hint", refreturn_ctype)
_WRAP_VFUNC(bool get_enabled() const, "get_enabled")
- _WRAP_VFUNC(Glib::VariantBase get_state() const, "get_state")
+ _WRAP_VFUNC(Glib::VariantBase get_state() const, "get_state", refreturn_ctype)
#m4 _CONVERSION(`GVariant*',`const Glib::VariantBase&',`Glib::wrap($3, true)')
_WRAP_VFUNC(void change_state(const Glib::VariantBase& value), "change_state")
@@ -245,8 +243,8 @@ void Action::get_state(T_Value& value) const
g_return_if_fail(
g_variant_type_equal(g_action_get_state_type(const_cast<GAction*>(gobj())), type_glib_variant::variant_type().gobj()));
- const Glib::VariantBase variantBase = get_state_variant();
- const type_glib_variant variantDerived = variantBase.cast_dynamic<type_glib_variant>(variantBase);
+ const auto variantBase = get_state_variant();
+ const auto variantDerived = variantBase.cast_dynamic<type_glib_variant>(variantBase);
value = variantDerived.get();
}
@@ -257,13 +255,13 @@ void Action::get_state_hint(T_Value& value) const
typedef Glib::Variant<T_Value> type_glib_variant;
- const Glib::VariantBase variantBase = get_state_hint_variant();
+ const auto variantBase = get_state_hint_variant();
// We can't check the type (a range) that will be returned before getting the range hint.
g_return_if_fail(
variantBase.is_of_type(type_glib_variant::variant_type()) );
- const type_glib_variant variantDerived = variantBase.cast_dynamic<type_glib_variant>(variantBase);
+ const auto variantDerived = variantBase.cast_dynamic<type_glib_variant>(variantBase);
value = variantDerived.get();
}
diff --git a/gio/src/actiongroup.hg b/gio/src/actiongroup.hg
index 54411cf6..a1d5d333 100644
--- a/gio/src/actiongroup.hg
+++ b/gio/src/actiongroup.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2010 The giomm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -150,13 +148,12 @@ public:
_WRAP_VFUNC(bool get_action_enabled(const Glib::ustring& name) const, "get_action_enabled")
-#m4 _CONVERSION(`Glib::VariantType',`const GVariantType*',`$3.gobj_copy()')
- _WRAP_VFUNC(Glib::VariantType get_action_parameter_type(const Glib::ustring& name) const, "get_action_parameter_type")
- _WRAP_VFUNC(Glib::VariantType get_action_state_type(const Glib::ustring& name) const, "get_action_state_type")
+#m4 _CONVERSION(`Glib::VariantType',`const GVariantType*',`$3.gobj()')
+ _WRAP_VFUNC(Glib::VariantType get_action_parameter_type(const Glib::ustring& name) const, "get_action_parameter_type", keep_return)
+ _WRAP_VFUNC(Glib::VariantType get_action_state_type(const Glib::ustring& name) const, "get_action_state_type", keep_return)
-#m4 _CONVERSION(`Glib::VariantBase',`GVariant*',`$3.gobj_copy()')
- _WRAP_VFUNC(Glib::VariantBase get_action_state_hint(const Glib::ustring& name) const, "get_action_state_hint")
- _WRAP_VFUNC(Glib::VariantBase get_action_state(const Glib::ustring& name) const, "get_action_state")
+ _WRAP_VFUNC(Glib::VariantBase get_action_state_hint(const Glib::ustring& name) const, "get_action_state_hint", refreturn_ctype)
+ _WRAP_VFUNC(Glib::VariantBase get_action_state(const Glib::ustring& name) const, "get_action_state", refreturn_ctype)
_WRAP_VFUNC(void change_action_state(const Glib::ustring& name, const Glib::VariantBase& value), "change_action_state")
_WRAP_VFUNC(void activate_action(const Glib::ustring& name, const Glib::VariantBase& parameter), "activate_action")
@@ -172,10 +169,10 @@ void ActionGroup::get_action_state(const Glib::ustring& action_name, T_Value& va
g_return_if_fail(
g_variant_type_equal(g_action_group_get_action_state_type(const_cast<GActionGroup*>(gobj()), action_name.c_str()), type_glib_variant::variant_type().gobj()));
- const Glib::VariantBase variantBase = get_action_state_variant(action_name);
+ const auto variantBase = get_action_state_variant(action_name);
//TODO: Add a bool return instead of letting a std::bad_cast from the cast_dynamic() be thrown up to the caller?
- const type_glib_variant variantDerived = variantBase.cast_dynamic<type_glib_variant>(variantBase);
+ const auto variantDerived = variantBase.cast_dynamic<type_glib_variant>(variantBase);
value = variantDerived.get();
}
@@ -186,13 +183,13 @@ void ActionGroup::get_action_state_hint(const Glib::ustring& action_name, T_Valu
typedef Glib::Variant<T_Value> type_glib_variant;
- const Glib::VariantBase variantBase = get_action_state_hint_variant(action_name);
+ const auto variantBase = get_action_state_hint_variant(action_name);
// We can't check the type (a range) that will be returned before getting the range hint.
g_return_if_fail(
variantBase.is_of_type(type_glib_variant::variant_type()) );
- const type_glib_variant variantDerived = variantBase.cast_dynamic<type_glib_variant>(variantBase);
+ const auto variantDerived = variantBase.cast_dynamic<type_glib_variant>(variantBase);
value = variantDerived.get();
}
diff --git a/gio/src/actionmap.ccg b/gio/src/actionmap.ccg
index 432b65f8..20194d43 100644
--- a/gio/src/actionmap.ccg
+++ b/gio/src/actionmap.ccg
@@ -25,21 +25,21 @@ namespace Gio
Glib::RefPtr<SimpleAction> ActionMap::add_action(const Glib::ustring& name)
{
- Glib::RefPtr<SimpleAction> action = SimpleAction::create(name);
+ auto action = SimpleAction::create(name);
add_action(action);
return action;
}
Glib::RefPtr<SimpleAction> ActionMap::add_action_with_parameter(const Glib::ustring& name, const ActivateWithParameterSlot& slot)
{
- Glib::RefPtr<SimpleAction> action = add_action(name);
+ auto action = add_action(name);
action->signal_activate().connect(slot);
return action;
}
Glib::RefPtr<SimpleAction> ActionMap::add_action(const Glib::ustring& name, const ActivateSlot& slot)
{
- Glib::RefPtr<SimpleAction> action = add_action(name);
+ auto action = add_action(name);
action->signal_activate().connect(
sigc::hide(slot));
return action;
@@ -48,7 +48,7 @@ Glib::RefPtr<SimpleAction> ActionMap::add_action(const Glib::ustring& name, cons
Glib::RefPtr<SimpleAction> ActionMap::add_action_bool(const Glib::ustring& name, bool state)
{
- Glib::RefPtr<SimpleAction> action = SimpleAction::create_bool(name, state);
+ auto action = SimpleAction::create_bool(name, state);
add_action(action);
return action;
}
@@ -56,7 +56,7 @@ Glib::RefPtr<SimpleAction> ActionMap::add_action_bool(const Glib::ustring& name,
//TODO: Use a slot that takes a bool?
Glib::RefPtr<SimpleAction> ActionMap::add_action_bool(const Glib::ustring& name, const ActivateSlot& slot, bool state)
{
- Glib::RefPtr<SimpleAction> action = add_action_bool(name, state);
+ auto action = add_action_bool(name, state);
action->signal_activate().connect(
sigc::hide(slot));
return action;
@@ -65,7 +65,7 @@ Glib::RefPtr<SimpleAction> ActionMap::add_action_bool(const Glib::ustring& name,
//TODO: Use a slot that takes a string?
Glib::RefPtr<SimpleAction> ActionMap::add_action_radio_string(const Glib::ustring& name, const Glib::ustring& state)
{
- Glib::RefPtr<SimpleAction> action = SimpleAction::create_radio_string(name, state);
+ auto action = SimpleAction::create_radio_string(name, state);
add_action(action);
return action;
}
@@ -77,9 +77,9 @@ namespace {
static void on_action_radio_string(const Glib::VariantBase& parameter, const Gio::ActionMap::ActivateWithStringParameterSlot& slot)
{
//TODO: This syntax is odd:
- const Glib::Variant<Glib::ustring> variantDerived =
+ const auto variantDerived =
parameter.cast_dynamic< Glib::Variant<Glib::ustring> >(parameter);
- const Glib::ustring str = variantDerived.get();
+ const auto str = variantDerived.get();
slot(str);
}
@@ -87,7 +87,7 @@ static void on_action_radio_string(const Glib::VariantBase& parameter, const Gio
Glib::RefPtr<SimpleAction> ActionMap::add_action_radio_string(const Glib::ustring& name, const ActivateWithStringParameterSlot& slot, const Glib::ustring& state)
{
- Glib::RefPtr<SimpleAction> action = add_action_radio_string(name, state);
+ auto action = add_action_radio_string(name, state);
action->signal_activate().connect(
sigc::bind(sigc::ptr_fun(&on_action_radio_string), slot));
return action;
@@ -99,9 +99,9 @@ namespace {
static void on_action_radio_int(const Glib::VariantBase& parameter, const Gio::ActionMap::ActivateWithIntParameterSlot& slot)
{
//TODO: This syntax is odd:
- const Glib::Variant<int> variantDerived =
+ const auto variantDerived =
parameter.cast_dynamic< Glib::Variant<int> >(parameter);
- const int str = variantDerived.get();
+ const auto str = variantDerived.get();
slot(str);
}
@@ -110,14 +110,14 @@ static void on_action_radio_int(const Glib::VariantBase& parameter, const Gio::A
//TODO: Use a slot that takes an integer?
Glib::RefPtr<SimpleAction> ActionMap::add_action_radio_integer(const Glib::ustring& name, gint32 state)
{
- Glib::RefPtr<SimpleAction> action = SimpleAction::create_radio_integer(name, state);
+ auto action = SimpleAction::create_radio_integer(name, state);
add_action(action);
return action;
}
Glib::RefPtr<SimpleAction> ActionMap::add_action_radio_integer(const Glib::ustring& name, const ActivateWithIntParameterSlot& slot, gint32 state)
{
- Glib::RefPtr<SimpleAction> action = add_action_radio_integer(name, state);
+ auto action = add_action_radio_integer(name, state);
action->signal_activate().connect(
sigc::bind(sigc::ptr_fun(&on_action_radio_int), slot));
return action;
diff --git a/gio/src/appinfo.ccg b/gio/src/appinfo.ccg
index 8fab8a37..64f04d03 100644
--- a/gio/src/appinfo.ccg
+++ b/gio/src/appinfo.ccg
@@ -30,8 +30,8 @@ AppInfo::create_from_commandline(const std::string& commandline,
const std::string& application_name,
AppInfoCreateFlags flags)
{
- GAppInfo* capp_info = 0;
- GError* gerror = 0;
+ GAppInfo* capp_info = nullptr;
+ GError* gerror = nullptr;
capp_info = g_app_info_create_from_commandline(commandline.c_str(),
application_name.c_str(),
@@ -54,7 +54,7 @@ bool AppInfo::launch(const Glib::RefPtr<Gio::File>& file, const Glib::RefPtr<App
std::vector< Glib::RefPtr<Gio::File> > vec;
vec.push_back(file);
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_app_info_launch(gobj(), Glib::ListHandler<Glib::RefPtr<Gio::File> >::vector_to_list(vec).data (), Glib::unwrap(launch_context), &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -67,7 +67,7 @@ bool AppInfo::launch(const Glib::RefPtr<Gio::File>& file)
std::vector< Glib::RefPtr<Gio::File> > vec;
vec.push_back(file);
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_app_info_launch(gobj(), Glib::ListHandler<Glib::RefPtr<Gio::File> >::vector_to_list(vec).data (), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -80,7 +80,7 @@ bool AppInfo::launch_uri(const std::string& uri, const Glib::RefPtr<AppLaunchCon
std::vector<std::string> vec;
vec.push_back(uri);
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_app_info_launch_uris(gobj(), Glib::ListHandler<std::string>::vector_to_list(vec).data (), Glib::unwrap(launch_context), &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -93,7 +93,7 @@ bool AppInfo::launch_uri(const std::string& uri)
std::vector<std::string> vec;
vec.push_back(uri);
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_app_info_launch_uris(gobj(), Glib::ListHandler<std::string>::vector_to_list(vec).data (), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
diff --git a/gio/src/appinfo.hg b/gio/src/appinfo.hg
index 40457575..330e2a23 100644
--- a/gio/src/appinfo.hg
+++ b/gio/src/appinfo.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -114,7 +112,7 @@ public:
* @param launch_context An AppLaunchContext.
* @return <tt>true</tt> on successful launch, <tt>false</tt> otherwise.
*
- * @newin{3,2}
+ * @newin{2,30}
*/
bool launch(const Glib::RefPtr<Gio::File>& file, const Glib::RefPtr<AppLaunchContext>& launch_context);
@@ -142,7 +140,7 @@ public:
* @param file A File object.
* @return <tt>true</tt> on successful launch, <tt>false</tt> otherwise.
*
- * @newin{3,2}
+ * @newin{2,30}
*/
bool launch(const Glib::RefPtr<Gio::File>& file);
@@ -178,13 +176,13 @@ public:
* @param launch_context An AppLaunchContext.
* @return <tt>true</tt> on successful launch, <tt>false</tt> otherwise.
*
- * @newin{3,2}
+ * @newin{2,30}
*/
bool launch_uri(const std::string& uris, const Glib::RefPtr<AppLaunchContext>& launch_context);
/** A launch_uri() convenience overload.
*
- * @newin{3,2}
+ * @newin{2,30}
*/
bool launch_uri(const std::string& uris);
diff --git a/gio/src/application.ccg b/gio/src/application.ccg
index 53fc1005..7b157b01 100644
--- a/gio/src/application.ccg
+++ b/gio/src/application.ccg
@@ -39,11 +39,9 @@ struct ExtraApplicationData
~ExtraApplicationData()
{
- for (std::vector<gchar*>::iterator iter = option_entry_strings.begin();
- iter != option_entry_strings.end(); ++iter)
+ for(auto str : option_entry_strings)
{
- g_free(*iter);
- *iter = 0;
+ g_free(str);
}
}
};
@@ -68,14 +66,14 @@ static void Application_signal_open_callback(GApplication* self, GFile** files,
vec_files[i] = Glib::wrap(files[i], true);
}
- const Glib::ustring hint_str = (hint ? hint : Glib::ustring());
+ const auto hint_str = (hint ? hint : Glib::ustring());
// Do not try to call a signal on a disassociated wrapper.
if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
{
try
{
- if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data)) {
+ if(const auto slot = Glib::SignalProxyNormal::data_to_slot(data)) {
(*static_cast<SlotType*>(slot))(vec_files, hint_str);
return;
}
@@ -101,14 +99,14 @@ static void Application_signal_open_notify_callback(GApplication* self, GFile**
vec_files[i] = Glib::wrap(files[i], true);
}
- const Glib::ustring hint_str = (hint ? hint : Glib::ustring());
+ const auto hint_str = (hint ? hint : Glib::ustring());
// Do not try to call a signal on a disassociated wrapper.
if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
{
try
{
- if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
+ if(const auto slot = Glib::SignalProxyNormal::data_to_slot(data))
{
(*static_cast<SlotType*>(slot))(vec_files, hint_str);
return;
@@ -156,7 +154,7 @@ public:
const Gio::Application* get_application() const { return application_; }
gchar get_short_name() const { return short_name_; }
- bool is_filename_option() const { return slot_filename_ != 0; }
+ bool is_filename_option() const { return slot_filename_ != nullptr; }
const Glib::OptionGroup::SlotOptionArgString* get_slot_string() const
{ return slot_string_; }
@@ -202,13 +200,13 @@ gboolean Application_option_arg_callback(const gchar* option_name, const gchar*
if (option_name[1] == '-')
{
// Long option name.
- const Glib::ustring long_option_name = Glib::ustring(option_name+2);
+ const auto long_option_name = Glib::ustring(option_name+2);
iterFind = option_arg_callback_data.find(long_option_name);
}
else
{
// Short option name.
- const gchar short_option_name = option_name[1];
+ const auto short_option_name = option_name[1];
for (iterFind = option_arg_callback_data.begin();
iterFind != option_arg_callback_data.end(); ++iterFind)
{
@@ -224,20 +222,20 @@ gboolean Application_option_arg_callback(const gchar* option_name, const gchar*
return false;
}
- const bool has_value = (value != 0);
+ const bool has_value = (value != nullptr);
const OptionArgCallbackData* const option_arg = iterFind->second;
try
{
if (option_arg->is_filename_option())
{
- const Glib::OptionGroup::SlotOptionArgFilename* the_slot = option_arg->get_slot_filename();
+ const auto the_slot = option_arg->get_slot_filename();
lock.release();
const std::string cpp_value(value ? value : "");
return (*the_slot)(cpp_option_name, cpp_value, has_value);
}
else
{
- const Glib::OptionGroup::SlotOptionArgString* the_slot = option_arg->get_slot_string();
+ const auto the_slot = option_arg->get_slot_string();
lock.release();
const Glib::ustring cpp_value(value ? value : "");
return (*the_slot)(cpp_option_name, cpp_value, has_value);
@@ -303,7 +301,7 @@ void Application::unset_default()
void Application_Class::open_callback(GApplication* self, GFile** files,
gint n_files, const gchar *hint)
{
- Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
+ const auto obj_base = static_cast<Glib::ObjectBase*>(
Glib::ObjectBase::_get_current_wrapper((GObject*)self));
// Non-gtkmmproc-generated custom classes implicitly call the default
@@ -314,7 +312,7 @@ void Application_Class::open_callback(GApplication* self, GFile** files,
if(obj_base && obj_base->is_derived_())
{
- CppObjectType *const obj = dynamic_cast<CppObjectType* const>(obj_base);
+ const auto obj = dynamic_cast<CppObjectType* const>(obj_base);
if(obj) // This can be NULL during destruction.
{
try // Trap C++ exceptions which would normally be lost because this is a C callback.
@@ -325,7 +323,7 @@ void Application_Class::open_callback(GApplication* self, GFile** files,
vec_files[i] = Glib::wrap(files[i], true);
}
- const Glib::ustring hint_str = (hint ? hint : Glib::ustring());
+ const auto hint_str = (hint ? hint : Glib::ustring());
obj->on_open(vec_files, hint_str);
return;
@@ -337,7 +335,7 @@ void Application_Class::open_callback(GApplication* self, GFile** files,
}
}
- BaseClassType *const base = static_cast<BaseClassType*>(
+ const auto base = static_cast<BaseClassType*>(
g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
);
@@ -353,7 +351,7 @@ Glib::SignalProxy2< void, const Application::type_vec_files&, const Glib::ustrin
void Gio::Application::on_open(const Application::type_vec_files& files, const Glib::ustring& hint)
{
- BaseClassType *const base = static_cast<BaseClassType*>(
+ const auto base = static_cast<BaseClassType*>(
g_type_class_peek_parent(G_OBJECT_GET_CLASS(gobject_)) // Get the parent class of the object class (The original underlying C class).
);
@@ -397,7 +395,7 @@ void Application::add_main_option_entry(
if (iterFind != option_arg_callback_data.end())
return; // Ignore duplicates
- OptionArgCallbackData* callback_data = new OptionArgCallbackData(this, short_name, slot);
+ auto callback_data = new OptionArgCallbackData(this, short_name, slot);
option_arg_callback_data[long_name] = callback_data;
lock.release();
@@ -415,7 +413,7 @@ void Application::add_main_option_entry_filename(
if (iterFind != option_arg_callback_data.end())
return; // Ignore duplicates
- OptionArgCallbackData* callback_data = new OptionArgCallbackData(this, short_name, slot);
+ auto callback_data = new OptionArgCallbackData(this, short_name, slot);
option_arg_callback_data[long_name] = callback_data;
lock.release();
@@ -477,9 +475,14 @@ void Application::add_main_option_entry_private(GOptionArg arg, const Glib::ustr
else
// We ensure that this is null to ensure that it is not used,
// telling GApplication to put the parsed value in the options VariantDict instead.
- array[0].arg_data = 0;
+ array[0].arg_data = nullptr;
g_application_add_main_option_entries(gobj(), array);
}
+void Application::unset_resource_base_path()
+{
+ g_application_set_resource_base_path(gobj(), 0 /* see the C docs. */);
+}
+
} // namespace Gio
diff --git a/gio/src/application.hg b/gio/src/application.hg
index 48613dc2..b80ddac3 100644
--- a/gio/src/application.hg
+++ b/gio/src/application.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -19,11 +17,6 @@
_CONFIGINCLUDE(giommconfig.h)
-#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
-#undef G_DISABLE_DEPRECATED
-#define GLIB_DISABLE_DEPRECATION_WARNINGS 1
-#m4 _POP()
-
#include <giomm/actiongroup.h>
#include <giomm/actionmap.h>
#include <giomm/applicationcommandline.h>
@@ -162,6 +155,15 @@ public:
_WRAP_METHOD(ApplicationFlags get_flags() const, g_application_get_flags)
_WRAP_METHOD(void set_flags(ApplicationFlags flags), g_application_set_flags)
+ _WRAP_METHOD(std::string get_resource_base_path() const, g_application_get_resource_base_path, newin "2,44")
+ _WRAP_METHOD(void set_resource_base_path(const std::string& resource_path), g_application_set_resource_base_path, newin "2,44")
+
+ /** Disable automatic resource loading functionality.
+ * See set_resource_base_path().
+ * @newin{2,44}
+ */
+ void unset_resource_base_path();
+
_WRAP_METHOD(void set_action_group(const Glib::RefPtr<ActionGroup>& action_group), g_application_set_action_group,
deprecated "Use the Gio::ActionMap interface instead.")
@@ -343,21 +345,28 @@ public:
_WRAP_METHOD(void mark_busy(), g_application_mark_busy)
_WRAP_METHOD(void unmark_busy(), g_application_unmark_busy)
+ _WRAP_METHOD(void get_is_busy() const, g_application_get_is_busy)
_WRAP_METHOD(void send_notification(const Glib::ustring& id{?}, const Glib::RefPtr<Notification>& notification), g_application_send_notification)
_WRAP_METHOD(void withdraw_notification(const Glib::ustring& id), g_application_withdraw_notification)
- _WRAP_PROPERTY("action-group", Glib::RefPtr<ActionGroup>)
+ _WRAP_PROPERTY("action-group", Glib::RefPtr<ActionGroup>, deprecated "Use the Gio::ActionMap interface instead.")
_WRAP_PROPERTY("application-id", Glib::ustring)
_WRAP_PROPERTY("flags", ApplicationFlags)
_WRAP_PROPERTY("inactivity-timeout", guint)
_WRAP_PROPERTY("is-registered", bool)
_WRAP_PROPERTY("is-remote", bool)
+ _WRAP_PROPERTY("resource-base-path", bool, newin "2,44")
+ _WRAP_PROPERTY("is-busy", bool)
//#m4 _CONVERSION(`const gchar*', `const Glib::ustring&', `Glib::ustring($3)')
//#m4 _CONVERSION(`GVariant*', `const Glib::VariantBase&', `Glib::wrap($3, true)')
_WRAP_SIGNAL(void startup(), "startup")
+
+ //TODO: Remove no_default_handler when we can break ABI
+ _WRAP_SIGNAL(void shutdown(), "shutdown", no_default_handler, newin "2,46")
+
_WRAP_SIGNAL(void activate(), "activate")
//We wrap the open signal without _WRAP_SIGNAL(), because we need to change its parameters.
diff --git a/gio/src/asyncinitable.ccg b/gio/src/asyncinitable.ccg
index 6a3c855a..df26f6f5 100644
--- a/gio/src/asyncinitable.ccg
+++ b/gio/src/asyncinitable.ccg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2010 The giomm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -32,7 +30,7 @@ void AsyncInitable::init_async(const SlotAsyncReady& slot,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_async_initable_init_async(gobj(), io_priority, Glib::unwrap(cancellable),
&SignalProxy_async_callback, slot_copy);
@@ -43,7 +41,7 @@ void AsyncInitable::init_async(const SlotAsyncReady& slot, int io_priority)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_async_initable_init_async(gobj(), io_priority, 0,
&SignalProxy_async_callback, slot_copy);
@@ -53,7 +51,7 @@ void AsyncInitable_Class::init_async_vfunc_callback(GAsyncInitable* self,
int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback,
gpointer user_data)
{
- Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
+ const auto obj_base = static_cast<Glib::ObjectBase*>(
Glib::ObjectBase::_get_current_wrapper((GObject*)self));
// Non-gtkmmproc-generated custom classes implicitly call the default
@@ -63,13 +61,11 @@ void AsyncInitable_Class::init_async_vfunc_callback(GAsyncInitable* self,
// being overridden:
if(obj_base && obj_base->is_derived_())
{
- CppObjectType *const obj = dynamic_cast<CppObjectType* const>(obj_base);
+ const auto obj = dynamic_cast<CppObjectType* const>(obj_base);
if(obj) // This can be NULL during destruction.
{
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
try // Trap C++ exceptions which would normally be lost because this is a C callback.
{
- #endif //GLIBMM_EXCEPTIONS_ENABLED
// Get the slot.
Gio::SlotAsyncReady* the_slot =
static_cast<Gio::SlotAsyncReady*>(user_data);
@@ -78,17 +74,15 @@ void AsyncInitable_Class::init_async_vfunc_callback(GAsyncInitable* self,
obj->init_async_vfunc(*the_slot, Glib::wrap(cancellable, true),
io_priority);
return;
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
}
catch(...)
{
Glib::exception_handlers_invoke();
}
- #endif //GLIBMM_EXCEPTIONS_ENABLED
}
}
- BaseClassType *const base = static_cast<BaseClassType*>(
+ const auto base = static_cast<BaseClassType*>(
g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
) );
@@ -101,7 +95,7 @@ g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Ge
void Gio::AsyncInitable::init_async_vfunc(const SlotAsyncReady& slot,
const Glib::RefPtr<Cancellable>& cancellable, int io_priority)
{
- BaseClassType *const base = static_cast<BaseClassType*>(
+ const auto base = static_cast<BaseClassType*>(
g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
) );
@@ -116,7 +110,7 @@ g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) /
gboolean AsyncInitable_Class::init_finish_vfunc_callback(GAsyncInitable* self,
GAsyncResult* res, GError** error)
{
- Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
+ const auto obj_base = static_cast<Glib::ObjectBase*>(
Glib::ObjectBase::_get_current_wrapper((GObject*)self));
// Non-gtkmmproc-generated custom classes implicitly call the default
@@ -126,26 +120,22 @@ gboolean AsyncInitable_Class::init_finish_vfunc_callback(GAsyncInitable* self,
// being overridden:
if(obj_base && obj_base->is_derived_())
{
- CppObjectType *const obj = dynamic_cast<CppObjectType* const>(obj_base);
+ const auto obj = dynamic_cast<CppObjectType* const>(obj_base);
if(obj) // This can be NULL during destruction.
{
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
try // Trap C++ exceptions which would normally be lost because this is a C callback.
{
- #endif //GLIBMM_EXCEPTIONS_ENABLED
// Call the virtual member method, which derived classes might override.
return static_cast<int>(obj->init_finish_vfunc(Glib::wrap(res, true)));
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
}
catch(...)
{
Glib::exception_handlers_invoke();
}
- #endif //GLIBMM_EXCEPTIONS_ENABLED
}
}
- BaseClassType *const base = static_cast<BaseClassType*>(
+ const auto base = static_cast<BaseClassType*>(
g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Get the interface.
) );
@@ -160,14 +150,14 @@ g_type_interface_peek(G_OBJECT_GET_CLASS(self), CppObjectType::get_type()) // Ge
}
bool Gio::AsyncInitable::init_finish_vfunc(const Glib::RefPtr<AsyncResult>& res)
{
- BaseClassType *const base = static_cast<BaseClassType*>(
+ const auto base = static_cast<BaseClassType*>(
g_type_interface_peek_parent( // Get the parent interface of the interface (The original underlying C interface).
g_type_interface_peek(G_OBJECT_GET_CLASS(gobject_), CppObjectType::get_type()) // Get the interface.
) );
if(base && base->init_finish)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool const result = (*base->init_finish)(gobj(), Glib::unwrap(res),
&gerror);
diff --git a/gio/src/asyncresult.ccg b/gio/src/asyncresult.ccg
index 9697606e..b336f181 100644
--- a/gio/src/asyncresult.ccg
+++ b/gio/src/asyncresult.ccg
@@ -31,8 +31,8 @@ static GObject* unwrap_objectbase_custom(const Glib::RefPtr<Glib::ObjectBase>& c
Glib::RefPtr<Glib::ObjectBase> AsyncResult::get_source_object_base()
{
- GObject* cobj = g_async_result_get_source_object(gobj());
- ObjectBase* cppobj = Glib::wrap_auto(cobj); //ObjectBase::_get_current_wrapper(cobj);
+ auto cobj = g_async_result_get_source_object(gobj());
+ auto cppobj = Glib::wrap_auto(cobj); //ObjectBase::_get_current_wrapper(cobj);
return Glib::RefPtr<Glib::ObjectBase>(cppobj); //g_async_result_get_source_object() gives us a ref, unusually.
//TODO: For some reason this fails: Glib::wrap(cobj);
}
diff --git a/gio/src/bufferedinputstream.ccg b/gio/src/bufferedinputstream.ccg
index b015f9a9..af74ea92 100644
--- a/gio/src/bufferedinputstream.ccg
+++ b/gio/src/bufferedinputstream.ccg
@@ -36,7 +36,7 @@ void BufferedInputStream::fill_async(const SlotAsyncReady& slot,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_buffered_input_stream_fill_async(gobj(),
count,
@@ -53,7 +53,7 @@ void BufferedInputStream::fill_async(const SlotAsyncReady& slot,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_buffered_input_stream_fill_async(gobj(),
count,
diff --git a/gio/src/cancellable.ccg b/gio/src/cancellable.ccg
index a266e7e5..787990e1 100644
--- a/gio/src/cancellable.ccg
+++ b/gio/src/cancellable.ccg
@@ -43,7 +43,7 @@ void slot_cancelled_proxy(GCancellable * /*cancellable*/, gpointer data)
gulong
Cancellable::connect(const SlotCancelledCallback& slot)
{
- SlotCancelledCallback* slot_copy = new SlotCancelledCallback(slot);
+ auto slot_copy = new SlotCancelledCallback(slot);
return g_cancellable_connect (gobj(),
G_CALLBACK(slot_cancelled_proxy),
slot_copy,
diff --git a/gio/src/cancellable.hg b/gio/src/cancellable.hg
index 2fcd58bd..886dc272 100644
--- a/gio/src/cancellable.hg
+++ b/gio/src/cancellable.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -75,6 +73,7 @@ public:
* See Cancellable::signal_cancelled() for details on how to use this.
*
* @newin{2,22}
+ *
* @param slot The slot to connect.
* @return The id of the signal handler or 0 if @a cancellable has already
* been cancelled.
diff --git a/gio/src/charsetconverter.hg b/gio/src/charsetconverter.hg
index b4808c85..d5f8d87d 100644
--- a/gio/src/charsetconverter.hg
+++ b/gio/src/charsetconverter.hg
@@ -43,6 +43,7 @@ public:
/** Creates a new CharsetConverter.
*
* @newin{2,24}
+ *
* @param to_charset Destination charset.
* @param from_charset Source charset.
* @return A new CharsetConverter, or <tt>0</tt> on error.
diff --git a/gio/src/datainputstream.ccg b/gio/src/datainputstream.ccg
index 485c7b1e..8dd8b317 100644
--- a/gio/src/datainputstream.ccg
+++ b/gio/src/datainputstream.ccg
@@ -26,7 +26,7 @@ namespace Gio
bool DataInputStream::read_line(std::string& line, const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char* c_line = g_data_input_stream_read_line(gobj(),
0, // pass NULL since we can easily determine the length from the returned std::string
Glib::unwrap(cancellable),
@@ -44,7 +44,7 @@ bool DataInputStream::read_line(std::string& line, const Glib::RefPtr<Cancellabl
bool DataInputStream::read_line(std::string& line)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char* c_line = g_data_input_stream_read_line(gobj(),
0, // pass NULL since we can easily determine the length from the returned std::string
0,
@@ -65,7 +65,7 @@ void DataInputStream::read_line_async(const SlotAsyncReady& slot, const Glib::Re
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_data_input_stream_read_line_async(gobj(),
io_priority,
@@ -76,7 +76,7 @@ void DataInputStream::read_line_async(const SlotAsyncReady& slot, const Glib::Re
bool DataInputStream::read_line_finish(const Glib::RefPtr<AsyncResult>& result, std::string& data)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
gsize size = 0;
gchar* buffer = g_data_input_stream_read_line_finish(gobj(), Glib::unwrap(result), &size, &(gerror));
if(gerror)
@@ -85,7 +85,7 @@ bool DataInputStream::read_line_finish(const Glib::RefPtr<AsyncResult>& result,
bool retval = false;
if(buffer && size)
{
- retval = (buffer != 0);
+ retval = (buffer != nullptr);
data = std::string(buffer, size);
g_free (buffer);
}
@@ -95,7 +95,7 @@ bool DataInputStream::read_line_finish(const Glib::RefPtr<AsyncResult>& result,
bool DataInputStream::read_until(std::string& data, const std::string& stop_chars, const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char* c_str = g_data_input_stream_read_until(gobj(),
stop_chars.c_str(),
0, // pass NULL since we can easily determine the length from the returned std::string
@@ -116,7 +116,7 @@ bool DataInputStream::read_until(std::string& data, const std::string& stop_char
*/
bool DataInputStream::read_until(std::string& data, const std::string& stop_chars)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char* c_str = g_data_input_stream_read_until(gobj(),
stop_chars.c_str(),
0, // pass NULL since we can easily determine the length from the returned std::string
@@ -138,7 +138,7 @@ void DataInputStream::read_until_async(const std::string& stop_chars, const Slot
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_data_input_stream_read_until_async(gobj(), stop_chars.c_str(),
io_priority,
@@ -149,7 +149,7 @@ void DataInputStream::read_until_async(const std::string& stop_chars, const Slot
bool DataInputStream::read_until_finish(const Glib::RefPtr<AsyncResult>& result, std::string& data)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
gsize size = 0;
gchar* buffer = g_data_input_stream_read_until_finish(gobj(), Glib::unwrap(result), &size, &(gerror));
if(gerror)
@@ -158,7 +158,7 @@ bool DataInputStream::read_until_finish(const Glib::RefPtr<AsyncResult>& result,
bool retval = false;
if(buffer && size)
{
- retval = (buffer != 0);
+ retval = (buffer != nullptr);
data = std::string(buffer, size);
g_free (buffer);
}
@@ -169,7 +169,7 @@ bool DataInputStream::read_until_finish(const Glib::RefPtr<AsyncResult>& result,
bool DataInputStream::read_upto(std::string& data, const std::string& stop_chars, const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char* c_str = g_data_input_stream_read_upto(gobj(),
stop_chars.c_str(), -1, /* null-terminated */
0, // pass NULL since we can easily determine the length from the returned std::string
@@ -190,7 +190,7 @@ bool DataInputStream::read_upto(std::string& data, const std::string& stop_chars
*/
bool DataInputStream::read_upto(std::string& data, const std::string& stop_chars)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char* c_str = g_data_input_stream_read_upto(gobj(),
stop_chars.c_str(), -1, /* null-terminated */
0, // pass NULL since we can easily determine the length from the returned std::string
@@ -215,7 +215,7 @@ void DataInputStream::read_upto_async(const std::string& stop_chars, const SlotA
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_data_input_stream_read_upto_async(gobj(), stop_chars.c_str(), -1, /* null-terminated */
io_priority,
@@ -226,7 +226,7 @@ void DataInputStream::read_upto_async(const std::string& stop_chars, const SlotA
bool DataInputStream::read_upto_finish(const Glib::RefPtr<AsyncResult>& result, std::string& data)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
gsize size = 0;
gchar* buffer = g_data_input_stream_read_upto_finish(gobj(), Glib::unwrap(result), &size, &(gerror));
if(gerror)
@@ -235,7 +235,7 @@ bool DataInputStream::read_upto_finish(const Glib::RefPtr<AsyncResult>& result,
bool retval = false;
if(buffer && size)
{
- retval = (buffer != 0);
+ retval = (buffer != nullptr);
data = std::string(buffer, size);
g_free (buffer);
}
diff --git a/gio/src/dbusaddress.ccg b/gio/src/dbusaddress.ccg
index 2fe11d9b..2b395095 100644
--- a/gio/src/dbusaddress.ccg
+++ b/gio/src/dbusaddress.ccg
@@ -37,7 +37,7 @@ bool is_address(const std::string& string)
bool is_supported(const std::string& address)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool const result = g_dbus_is_supported_address(address.c_str(), &gerror);
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -47,14 +47,14 @@ bool is_supported(const std::string& address)
void get_stream(const std::string& address, const SlotAsyncReady slot,
const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_address_get_stream(address.c_str(), Glib::unwrap(cancellable),
&SignalProxy_async_callback, slot_copy);
}
void get_stream(const std::string& address, const SlotAsyncReady slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_address_get_stream(address.c_str(), 0, &SignalProxy_async_callback,
slot_copy);
}
@@ -62,10 +62,10 @@ void get_stream(const std::string& address, const SlotAsyncReady slot)
Glib::RefPtr<IOStream> get_stream_finish(const Glib::RefPtr<AsyncResult>& res,
std::string& out_guid)
{
- GError* gerror = 0;
- gchar* g_out_guid = 0;
+ GError* gerror = nullptr;
+ gchar* g_out_guid = nullptr;
- Glib::RefPtr<IOStream> result =
+ auto result =
Glib::wrap(g_dbus_address_get_stream_finish(Glib::unwrap(res),
&g_out_guid, &gerror));
@@ -78,9 +78,9 @@ Glib::RefPtr<IOStream> get_stream_finish(const Glib::RefPtr<AsyncResult>& res,
Glib::RefPtr<IOStream> get_stream_finish(const Glib::RefPtr<AsyncResult>& res)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
- Glib::RefPtr<IOStream> result =
+ auto result =
Glib::wrap(g_dbus_address_get_stream_finish(Glib::unwrap(res), 0,
&gerror));
@@ -93,10 +93,10 @@ Glib::RefPtr<IOStream> get_stream_finish(const Glib::RefPtr<AsyncResult>& res)
Glib::RefPtr<IOStream> get_stream_sync(const std::string& address,
const Glib::RefPtr<Cancellable>& cancellable, std::string& out_guid)
{
- GError* gerror = 0;
- gchar* g_out_guid = 0;
+ GError* gerror = nullptr;
+ gchar* g_out_guid = nullptr;
- Glib::RefPtr<IOStream> result =
+ auto result =
Glib::wrap(g_dbus_address_get_stream_sync(address.c_str(),
&g_out_guid, Glib::unwrap(cancellable), &gerror));
@@ -110,10 +110,10 @@ Glib::RefPtr<IOStream> get_stream_sync(const std::string& address,
Glib::RefPtr<IOStream> get_stream_sync(const std::string& address,
std::string& out_guid)
{
- GError* gerror = 0;
- gchar* g_out_guid = 0;
+ GError* gerror = nullptr;
+ gchar* g_out_guid = nullptr;
- Glib::RefPtr<IOStream> result =
+ auto result =
Glib::wrap(g_dbus_address_get_stream_sync(address.c_str(),
&g_out_guid, 0, &gerror));
@@ -127,9 +127,9 @@ Glib::RefPtr<IOStream> get_stream_sync(const std::string& address,
Glib::RefPtr<IOStream> get_stream_sync(const std::string& address,
const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
- Glib::RefPtr<IOStream> result =
+ auto result =
Glib::wrap(g_dbus_address_get_stream_sync(address.c_str(), 0,
Glib::unwrap(cancellable), &gerror));
@@ -141,9 +141,9 @@ Glib::RefPtr<IOStream> get_stream_sync(const std::string& address,
Glib::RefPtr<IOStream> get_stream_sync(const std::string& address)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
- Glib::RefPtr<IOStream> result =
+ auto result =
Glib::wrap(g_dbus_address_get_stream_sync(address.c_str(), 0, 0, &gerror));
if(gerror)
@@ -155,7 +155,7 @@ Glib::RefPtr<IOStream> get_stream_sync(const std::string& address)
std::string get_for_bus_sync(BusType bus_type,
const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
std::string result(g_dbus_address_get_for_bus_sync(
static_cast<GBusType>(bus_type), Glib::unwrap(cancellable), &gerror));
@@ -168,7 +168,7 @@ std::string get_for_bus_sync(BusType bus_type,
std::string get_for_bus_sync(BusType bus_type)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
std::string result(g_dbus_address_get_for_bus_sync(
static_cast<GBusType>(bus_type), 0, &gerror));
diff --git a/gio/src/dbusconnection.ccg b/gio/src/dbusconnection.ccg
index f2f60355..0e9faf67 100644
--- a/gio/src/dbusconnection.ccg
+++ b/gio/src/dbusconnection.ccg
@@ -68,7 +68,7 @@ static GDBusMessage* DBusConnection_Message_Filter_giomm_callback(
try
{
- Glib::RefPtr<Gio::DBus::Message> result = (*the_slot)(
+ auto result = (*the_slot)(
Glib::wrap(connection, true), Glib::wrap(message, true),
static_cast<bool>(incoming));
return (result) ? result->gobj_copy() : 0;
@@ -477,7 +477,7 @@ Glib::RefPtr<Connection> Connection::create_for_address_sync(
void Connection::get(BusType bus_type, const SlotAsyncReady& slot,
const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_bus_get(static_cast<GBusType>(bus_type), Glib::unwrap(cancellable),
&SignalProxy_async_callback, slot_copy);
@@ -486,7 +486,7 @@ void Connection::get(BusType bus_type, const SlotAsyncReady& slot,
//static
void Connection::get(BusType bus_type, const SlotAsyncReady& slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_bus_get(static_cast<GBusType>(bus_type), 0, &SignalProxy_async_callback,
slot_copy);
@@ -499,7 +499,7 @@ void Connection::close()
void Connection::close(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_connection_close(gobj(),
Glib::unwrap(cancellable),
@@ -509,7 +509,7 @@ void Connection::close(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellabl
void Connection::close(const SlotAsyncReady& slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_connection_close(gobj(),
0,
@@ -524,7 +524,7 @@ void Connection::flush()
void Connection::flush(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_connection_flush(gobj(),
Glib::unwrap(cancellable),
@@ -534,7 +534,7 @@ void Connection::flush(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellabl
void Connection::flush(const SlotAsyncReady& slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_connection_flush(gobj(),
0,
@@ -545,7 +545,7 @@ void Connection::flush(const SlotAsyncReady& slot)
bool Connection::send_message(const Glib::RefPtr<Message>& message,
SendMessageFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
const bool result = g_dbus_connection_send_message(gobj(),
Glib::unwrap(message), static_cast<GDBusSendMessageFlags>(flags), 0,
@@ -559,7 +559,7 @@ bool Connection::send_message(const Glib::RefPtr<Message>& message,
void Connection::send_message_with_reply(const Glib::RefPtr<Message>& message, int timeout_msec,const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
volatile guint32 out_serial = 0;
g_dbus_connection_send_message_with_reply(gobj(), Glib::unwrap(message),
static_cast<GDBusSendMessageFlags>(message->get_flags()),
@@ -571,7 +571,7 @@ void Connection::send_message_with_reply(const Glib::RefPtr<Message>& message, i
void Connection::send_message_with_reply(const Glib::RefPtr<Message>& message, int timeout_msec,const SlotAsyncReady& slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
volatile guint32 out_serial = 0;
g_dbus_connection_send_message_with_reply(gobj(), Glib::unwrap(message),
static_cast<GDBusSendMessageFlags>(message->get_flags()),
@@ -587,7 +587,7 @@ Glib::RefPtr<Message> Connection::send_message_with_reply_sync(
gint timeout_msec)
{
volatile guint32 out_serial = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
GDBusMessage* result =
g_dbus_connection_send_message_with_reply_sync(gobj(),
@@ -606,7 +606,7 @@ Glib::RefPtr<Message> Connection::send_message_with_reply_sync(
gint timeout_msec)
{
volatile guint32 out_serial = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
GDBusMessage* result =
g_dbus_connection_send_message_with_reply_sync(gobj(),
@@ -635,7 +635,7 @@ void Connection::call(
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_connection_call(gobj(), bus_name.c_str(), object_path.c_str(),
interface_name.c_str(), method_name.c_str(),
@@ -659,7 +659,7 @@ void Connection::call(
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_connection_call(gobj(), bus_name.c_str(), object_path.c_str(),
interface_name.c_str(), method_name.c_str(),
@@ -679,7 +679,7 @@ Glib::VariantContainerBase Connection::call_sync(
CallFlags flags,
const Glib::VariantType& reply_type)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
GVariant* const gvariant =
g_dbus_connection_call_sync(gobj(), bus_name.c_str(), object_path.c_str(),
@@ -705,7 +705,7 @@ Glib::VariantContainerBase Connection::call_sync(
CallFlags flags,
const Glib::VariantType& reply_type)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
GVariant* const gvariant =
g_dbus_connection_call_sync(gobj(), bus_name.c_str(), object_path.c_str(),
@@ -737,7 +737,7 @@ void Connection::call(
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_connection_call_with_unix_fd_list(gobj(), bus_name.c_str(),
object_path.c_str(), interface_name.c_str(), method_name.c_str(),
@@ -762,7 +762,7 @@ void Connection::call(
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_connection_call_with_unix_fd_list(gobj(), bus_name.c_str(),
object_path.c_str(), interface_name.c_str(), method_name.c_str(),
@@ -779,7 +779,7 @@ void Connection::emit_signal(
const Glib::ustring& destination_bus_name,
const Glib::VariantContainerBase& parameters)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
// Strings are checked to see if they are empty so that NULL can be passed
// for those strings to the C API. This is done because some strings such as
@@ -805,7 +805,7 @@ guint Connection::signal_subscribe(
const Glib::ustring& arg0,
SignalFlags flags)
{
- SlotSignal* slot_copy = new SlotSignal(slot);
+ auto slot_copy = new SlotSignal(slot);
return g_dbus_connection_signal_subscribe(gobj(), sender.c_str(),
interface_name.c_str(), member.c_str(), object_path.c_str(), arg0.c_str(),
@@ -816,7 +816,7 @@ guint Connection::signal_subscribe(
guint Connection::add_filter(const SlotMessageFilter& slot)
{
- SlotMessageFilter* slot_copy = new SlotMessageFilter(slot);
+ auto slot_copy = new SlotMessageFilter(slot);
return g_dbus_connection_add_filter(gobj(),
&DBusConnection_Message_Filter_giomm_callback, slot_copy,
@@ -827,7 +827,7 @@ guint Connection::register_object(const Glib::ustring& object_path,
const Glib::RefPtr<InterfaceInfo>& interface_info,
const InterfaceVTable& vtable)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
const guint result = g_dbus_connection_register_object(gobj(),
object_path.c_str(), Glib::unwrap(interface_info),
@@ -842,7 +842,7 @@ guint Connection::register_object(const Glib::ustring& object_path,
guint Connection::register_object(const Glib::ustring& object_path,
const Glib::RefPtr<InterfaceInfo>& interface_info)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
const guint result = g_dbus_connection_register_object(gobj(),
object_path.c_str(), Glib::unwrap(interface_info),
@@ -857,7 +857,7 @@ guint Connection::register_object(const Glib::ustring& object_path,
guint Connection::register_subtree(const Glib::ustring& object_path,
const SubtreeVTable& vtable, SubtreeFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
const guint result = g_dbus_connection_register_subtree(gobj(),
object_path.c_str(),
diff --git a/gio/src/dbusintrospection.hg b/gio/src/dbusintrospection.hg
index 9613edf0..442415a7 100644
--- a/gio/src/dbusintrospection.hg
+++ b/gio/src/dbusintrospection.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2010 The giomm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -119,6 +117,9 @@ public:
_WRAP_METHOD(Glib::RefPtr<PropertyInfo> lookup_property(const Glib::ustring& name), g_dbus_interface_info_lookup_property, refreturn)
_WRAP_METHOD(Glib::RefPtr<const PropertyInfo> lookup_property(const Glib::ustring& name) const, g_dbus_interface_info_lookup_property, constversion, refreturn)
+ _WRAP_METHOD(void cache_build(), g_dbus_interface_info_cache_build, newin "2,44")
+ _WRAP_METHOD(void cache_release(), g_dbus_interface_info_cache_release, newin "2,44")
+
//TODO: _WRAP_METHOD(void generate_xml(guint indent, GString* string_builder), g_dbus_interface_info_generate_xml)
};
diff --git a/gio/src/dbusobject.hg b/gio/src/dbusobject.hg
index 5431004a..6979d82e 100644
--- a/gio/src/dbusobject.hg
+++ b/gio/src/dbusobject.hg
@@ -66,8 +66,8 @@ public:
_WRAP_SIGNAL(void interface_added(const Glib::RefPtr<Gio::DBus::Interface>& iface), "interface_added")
_WRAP_SIGNAL(void interface_removed(const Glib::RefPtr<Gio::DBus::Interface>& iface), "interface_removed")
-#m4 _CONVERSION(`Glib::ustring',`const gchar*',`g_strdup($3.c_str())')
- _WRAP_VFUNC(Glib::ustring get_object_path() const, "get_object_path")
+#m4 _CONVERSION(`Glib::ustring',`const gchar*',`$3.c_str()')
+ _WRAP_VFUNC(Glib::ustring get_object_path() const, "get_object_path", keep_return)
#m4 _CONVERSION(`std::vector< Glib::RefPtr<Gio::DBus::Interface> >',`GList*',`g_list_copy(Glib::ListHandler< Glib::RefPtr<Gio::DBus::Interface> >::vector_to_list($3).data())')
_WRAP_VFUNC(std::vector< Glib::RefPtr<Gio::DBus::Interface> > get_interfaces() const, "get_interfaces")
diff --git a/gio/src/dbusownname.ccg b/gio/src/dbusownname.ccg
index d295247d..49de2042 100644
--- a/gio/src/dbusownname.ccg
+++ b/gio/src/dbusownname.ccg
@@ -37,8 +37,8 @@ extern "C"
static void Bus_Acquired_giomm_callback(GDBusConnection* connection,
const gchar* name, gpointer data)
{
- OwnSlots* slots = static_cast<OwnSlots*>(data);
- Gio::DBus::SlotBusAcquired* the_slot = slots->bus_acquired_slot;
+ auto slots = static_cast<OwnSlots*>(data);
+ auto the_slot = slots->bus_acquired_slot;
try
{
@@ -53,8 +53,8 @@ static void Bus_Acquired_giomm_callback(GDBusConnection* connection,
static void Bus_Name_Acquired_giomm_callback(GDBusConnection* connection,
const gchar* name, gpointer data)
{
- OwnSlots* slots = static_cast<OwnSlots*>(data);
- Gio::DBus::SlotNameAcquired* the_slot = slots->name_acquired_slot;
+ auto slots = static_cast<OwnSlots*>(data);
+ auto the_slot = slots->name_acquired_slot;
try
{
@@ -69,8 +69,8 @@ static void Bus_Name_Acquired_giomm_callback(GDBusConnection* connection,
static void Bus_Name_Lost_giomm_callback(GDBusConnection* connection,
const gchar* name, gpointer data)
{
- OwnSlots* slots = static_cast<OwnSlots*>(data);
- Gio::DBus::SlotNameLost* the_slot = slots->name_lost_slot;
+ auto slots = static_cast<OwnSlots*>(data);
+ auto the_slot = slots->name_lost_slot;
try
{
@@ -84,7 +84,7 @@ static void Bus_Name_Lost_giomm_callback(GDBusConnection* connection,
static void Bus_Own_Name_giomm_callback_destroy(void* data)
{
- OwnSlots* slots = static_cast<OwnSlots*>(data);
+ auto slots = static_cast<OwnSlots*>(data);
if(slots->bus_acquired_slot)
delete slots->bus_acquired_slot;
@@ -118,7 +118,7 @@ guint own_name(
BusNameOwnerFlags flags
)
{
- struct OwnSlots* slots = new OwnSlots;
+ auto slots = new OwnSlots;
// Make copies of the slots which will be deleted on destroy notification.
slots->bus_acquired_slot = new SlotBusAcquired(bus_acquired_slot);
diff --git a/gio/src/dbusproxy.ccg b/gio/src/dbusproxy.ccg
index 3c93d4b1..d9850d70 100644
--- a/gio/src/dbusproxy.ccg
+++ b/gio/src/dbusproxy.ccg
@@ -296,7 +296,7 @@ void Proxy::call(const Glib::ustring& method_name,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_proxy_call(gobj(), method_name.c_str(),
const_cast<GVariant*>(parameters.gobj()),
@@ -314,7 +314,7 @@ void Proxy::call(const Glib::ustring& method_name,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_proxy_call(gobj(), method_name.c_str(),
const_cast<GVariant*>(parameters.gobj()),
@@ -330,7 +330,7 @@ Glib::VariantContainerBase Proxy::call_sync(
CallFlags flags
)
{
- GError* g_error = 0;
+ GError* g_error = nullptr;
GVariant* const gvariant =
g_dbus_proxy_call_sync(gobj(), method_name.c_str(),
@@ -351,7 +351,7 @@ Glib::VariantContainerBase Proxy::call_sync(
CallFlags flags
)
{
- GError* g_error = 0;
+ GError* g_error = nullptr;
GVariant* const gvariant =
g_dbus_proxy_call_sync(gobj(), method_name.c_str(),
@@ -378,7 +378,7 @@ void Proxy::call(
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_proxy_call_with_unix_fd_list(gobj(), method_name.c_str(),
const_cast<GVariant*>(parameters.gobj()),
@@ -398,7 +398,7 @@ void Proxy::call(
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_dbus_proxy_call_with_unix_fd_list(gobj(), method_name.c_str(),
const_cast<GVariant*>(parameters.gobj()),
diff --git a/gio/src/dbussubtreevtable.ccg b/gio/src/dbussubtreevtable.ccg
index a2481012..da8dd753 100644
--- a/gio/src/dbussubtreevtable.ccg
+++ b/gio/src/dbussubtreevtable.ccg
@@ -44,7 +44,7 @@ static char** DBusSubtreeVTable_Enumerate_giomm_callback(
try
{
- std::vector<Glib::ustring> result =
+ auto result =
(*the_slot)(Glib::wrap(connection, true), sender, object_path);
// This will be freed by the caller.
@@ -77,7 +77,7 @@ static GDBusInterfaceInfo** DBusSubtreeVTable_Introspect_giomm_callback(
try
{
- std::vector< Glib::RefPtr<Gio::DBus::InterfaceInfo> > result =
+ auto result =
(*the_slot)(Glib::wrap(connection, true), sender, object_path, node);
// This will be freed by the caller, along with unreferencing its members.
@@ -105,21 +105,21 @@ static const GDBusInterfaceVTable* DBusSubtreeVTable_Dispatch_giomm_callback(
const char* interface_name, const char* node, void** out_user_data,
void* user_data)
{
- Gio::DBus::SubtreeVTable* vtable =
+ Gio::DBus::SubtreeVTable* vtable_subtree =
static_cast<Gio::DBus::SubtreeVTable*>(user_data);
Gio::DBus::SubtreeVTable::SlotSubtreeDispatch* the_slot =
- vtable->get_slot_dispatch();
+ vtable_subtree->get_slot_dispatch();
try
{
- const Gio::DBus::InterfaceVTable* vtable =
+ const Gio::DBus::InterfaceVTable* vtable_iface =
(*the_slot)(Glib::wrap(connection, true), sender, object_path,
interface_name, (node ? node : ""));
- *out_user_data = const_cast<Gio::DBus::InterfaceVTable*>(vtable);
+ *out_user_data = const_cast<Gio::DBus::InterfaceVTable*>(vtable_iface);
- return vtable->gobj();
+ return vtable_iface->gobj();
}
catch(...)
{
diff --git a/gio/src/dbuswatchname.ccg b/gio/src/dbuswatchname.ccg
index ca9947bb..0900b6a0 100644
--- a/gio/src/dbuswatchname.ccg
+++ b/gio/src/dbuswatchname.ccg
@@ -36,8 +36,8 @@ extern "C"
static void Bus_Name_Appeared_giomm_callback(GDBusConnection* connection,
const gchar* name, const char* name_owner, gpointer data)
{
- WatchSlots* slots = static_cast<WatchSlots*>(data);
- Gio::DBus::SlotNameAppeared* the_slot = slots->name_appeared_slot;
+ auto slots = static_cast<WatchSlots*>(data);
+ auto the_slot = slots->name_appeared_slot;
try
{
@@ -53,8 +53,8 @@ static void Bus_Name_Appeared_giomm_callback(GDBusConnection* connection,
static void Bus_Name_Vanished_giomm_callback(GDBusConnection* connection,
const gchar* name, gpointer data)
{
- WatchSlots* slots = static_cast<WatchSlots*>(data);
- Gio::DBus::SlotNameVanished* the_slot = slots->name_vanished_slot;
+ auto slots = static_cast<WatchSlots*>(data);
+ auto the_slot = slots->name_vanished_slot;
try
{
@@ -68,7 +68,7 @@ static void Bus_Name_Vanished_giomm_callback(GDBusConnection* connection,
static void Bus_Watch_Name_giomm_callback_destroy(void* data)
{
- WatchSlots* slots = static_cast<WatchSlots*>(data);
+ auto slots = static_cast<WatchSlots*>(data);
if(slots->name_appeared_slot)
delete slots->name_appeared_slot;
@@ -98,7 +98,7 @@ guint watch_name(
BusNameWatcherFlags flags
)
{
- struct WatchSlots* slots = new WatchSlots;
+ auto slots = new WatchSlots;
// Make copies of the slots which will be deleted on destroy notification.
slots->name_appeared_slot = new SlotNameAppeared(name_appeared_slot);
@@ -118,7 +118,7 @@ guint watch_name(
BusNameWatcherFlags flags
)
{
- struct WatchSlots* slots = new WatchSlots;
+ auto slots = new WatchSlots;
// Make copies of the slots which will be deleted on destroy notification.
slots->name_appeared_slot = new SlotNameAppeared(name_appeared_slot);
diff --git a/gio/src/desktopappinfo.hg b/gio/src/desktopappinfo.hg
index 916830ef..9c084014 100644
--- a/gio/src/desktopappinfo.hg
+++ b/gio/src/desktopappinfo.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -25,11 +23,6 @@ _CONFIGINCLUDE(giommconfig.h)
_DEFS(giomm,gio)
_PINCLUDE(glibmm/private/object_p.h)
-#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
-#undef G_DISABLE_DEPRECATED
-#define GLIB_DISABLE_DEPRECATION_WARNINGS 1
-#m4 _POP()
-
namespace Glib
{
diff --git a/gio/src/drive.ccg b/gio/src/drive.ccg
index c0568616..da3fe0e0 100644
--- a/gio/src/drive.ccg
+++ b/gio/src/drive.ccg
@@ -31,7 +31,7 @@ void Drive::eject(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& c
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_drive_eject_with_operation(gobj(),
static_cast<GMountUnmountFlags>(flags),
@@ -46,7 +46,7 @@ void Drive::eject(const SlotAsyncReady& slot, MountUnmountFlags flags)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_drive_eject_with_operation(gobj(),
static_cast<GMountUnmountFlags>(flags),
@@ -61,7 +61,7 @@ void Drive::eject(const Glib::RefPtr<MountOperation>& mount_operation, const Slo
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_drive_eject_with_operation(gobj(),
static_cast<GMountUnmountFlags>(flags),
@@ -76,7 +76,7 @@ void Drive::eject(const Glib::RefPtr<MountOperation>& mount_operation, const Slo
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_drive_eject_with_operation(gobj(),
static_cast<GMountUnmountFlags>(flags),
@@ -111,7 +111,7 @@ void Drive::poll_for_media(const SlotAsyncReady& slot, const Glib::RefPtr<Cancel
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_drive_poll_for_media(gobj(),
Glib::unwrap(cancellable),
@@ -124,7 +124,7 @@ void Drive::poll_for_media(const SlotAsyncReady& slot)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_drive_poll_for_media(gobj(),
0, // cancellable
@@ -149,7 +149,7 @@ Drive::stop(const Glib::RefPtr<MountOperation>& mount_operation,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_drive_stop(gobj(),
static_cast<GMountUnmountFlags>(flags),
@@ -167,7 +167,7 @@ Drive::stop(const Glib::RefPtr<MountOperation>& mount_operation,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_drive_stop(gobj(),
static_cast<GMountUnmountFlags>(flags),
@@ -187,7 +187,7 @@ Drive::start(const Glib::RefPtr<MountOperation>& mount_operation,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_drive_start(gobj(),
static_cast<GDriveStartFlags>(flags),
@@ -205,7 +205,7 @@ Drive::start(const Glib::RefPtr<MountOperation>& mount_operation,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_drive_start(gobj(),
static_cast<GDriveStartFlags>(flags),
diff --git a/gio/src/file.ccg b/gio/src/file.ccg
index cdd31e6b..7bace932 100644
--- a/gio/src/file.ccg
+++ b/gio/src/file.ccg
@@ -36,7 +36,7 @@ SignalProxy_file_progress_callback(goffset current_num_bytes,
goffset total_num_bytes,
gpointer data)
{
- Gio::File::SlotFileProgress* the_slot = static_cast<Gio::File::SlotFileProgress*>(data);
+ auto the_slot = static_cast<Gio::File::SlotFileProgress*>(data);
try
{
@@ -56,14 +56,14 @@ SignalProxy_file_progress_callback(goffset current_num_bytes,
static void
SignalProxy_file_copy_async_callback(GObject*, GAsyncResult* res, void* data)
{
- CopySlots* slot_pair = static_cast<CopySlots*>(data);
- Gio::SlotAsyncReady* the_slot = slot_pair->second;
+ auto slot_pair = static_cast<CopySlots*>(data);
+ auto the_slot = slot_pair->second;
try
{
if(*the_slot)
{
- Glib::RefPtr<Gio::AsyncResult> result = Glib::wrap(res, true /* take copy */);
+ auto result = Glib::wrap(res, true /* take copy */);
(*the_slot)(result);
}
}
@@ -84,14 +84,14 @@ SignalProxy_file_copy_async_callback(GObject*, GAsyncResult* res, void* data)
static void
SignalProxy_file_measure_async_callback(GObject*, GAsyncResult* res, void* data)
{
- MeasureSlots* slot_pair = static_cast<MeasureSlots*>(data);
- Gio::SlotAsyncReady* the_slot = slot_pair->second;
+ auto slot_pair = static_cast<MeasureSlots*>(data);
+ auto the_slot = slot_pair->second;
try
{
if(*the_slot)
{
- Glib::RefPtr<Gio::AsyncResult> result = Glib::wrap(res, true /* take copy */);
+ auto result = Glib::wrap(res, true /* take copy */);
(*the_slot)(result);
}
}
@@ -108,8 +108,8 @@ SignalProxy_file_measure_async_callback(GObject*, GAsyncResult* res, void* data)
static gboolean
SignalProxy_load_partial_contents_read_more_callback(const char* file_contents, goffset file_size, gpointer data)
{
- LoadPartialSlots* slot_pair = static_cast<LoadPartialSlots*>(data);
- Gio::File::SlotReadMore* the_slot = slot_pair->first;
+ auto slot_pair = static_cast<LoadPartialSlots*>(data);
+ auto the_slot = slot_pair->first;
bool result = false;
@@ -138,7 +138,7 @@ SignalProxy_load_partial_contents_ready_callback(GObject*, GAsyncResult* res, vo
try
{
- Glib::RefPtr<Gio::AsyncResult> result = Glib::wrap(res, true /* take copy */);
+ auto result = Glib::wrap(res, true /* take copy */);
(*the_slot)(result);
}
catch(...)
@@ -440,8 +440,8 @@ FileType File::query_file_type(FileQueryInfoFlags flags) const
Glib::RefPtr<FileInfo> File::query_info(const Glib::RefPtr<Cancellable>& cancellable, const std::string& attributes, FileQueryInfoFlags flags) const
{
- GError* gerror = 0;
- Glib::RefPtr<FileInfo> retvalue = Glib::wrap(g_file_query_info(const_cast<GFile*>(gobj()), attributes.c_str(), ((GFileQueryInfoFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_query_info(const_cast<GFile*>(gobj()), attributes.c_str(), ((GFileQueryInfoFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -450,8 +450,8 @@ Glib::RefPtr<FileInfo> File::query_info(const Glib::RefPtr<Cancellable>& cancell
Glib::RefPtr<FileInfo> File::query_info(const std::string& attributes, FileQueryInfoFlags flags) const
{
- GError* gerror = 0;
- Glib::RefPtr<FileInfo> retvalue = Glib::wrap(g_file_query_info(const_cast<GFile*>(gobj()), attributes.c_str(), ((GFileQueryInfoFlags)(flags)), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_query_info(const_cast<GFile*>(gobj()), attributes.c_str(), ((GFileQueryInfoFlags)(flags)), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -495,8 +495,8 @@ File::query_info_async(const SlotAsyncReady& slot, const std::string& attributes
Glib::RefPtr<FileInfo> File::query_filesystem_info(const Glib::RefPtr<Cancellable>& cancellable, const std::string& attributes)
{
- GError* gerror = 0;
- Glib::RefPtr<FileInfo> retvalue = Glib::wrap(g_file_query_filesystem_info(gobj(), attributes.c_str(), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_query_filesystem_info(gobj(), attributes.c_str(), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -505,8 +505,8 @@ Glib::RefPtr<FileInfo> File::query_filesystem_info(const Glib::RefPtr<Cancellabl
Glib::RefPtr<FileInfo> File::query_filesystem_info(const std::string& attributes)
{
- GError* gerror = 0;
- Glib::RefPtr<FileInfo> retvalue = Glib::wrap(g_file_query_filesystem_info(gobj(), attributes.c_str(), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_query_filesystem_info(gobj(), attributes.c_str(), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -547,8 +547,8 @@ File::query_filesystem_info_async(const SlotAsyncReady& slot, const std::string&
Glib::RefPtr<FileEnumerator> File::enumerate_children(const Glib::RefPtr<Cancellable>& cancellable, const std::string& attributes, FileQueryInfoFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileEnumerator> retvalue = Glib::wrap(g_file_enumerate_children(gobj(), attributes.c_str(), ((GFileQueryInfoFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_enumerate_children(gobj(), attributes.c_str(), ((GFileQueryInfoFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -557,8 +557,8 @@ Glib::RefPtr<FileEnumerator> File::enumerate_children(const Glib::RefPtr<Cancell
Glib::RefPtr<FileEnumerator> File::enumerate_children(const std::string& attributes, FileQueryInfoFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileEnumerator> retvalue = Glib::wrap(g_file_enumerate_children(gobj(), attributes.c_str(), ((GFileQueryInfoFlags)(flags)), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_enumerate_children(gobj(), attributes.c_str(), ((GFileQueryInfoFlags)(flags)), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -634,7 +634,7 @@ File::set_display_name_async(const Glib::ustring& display_name, const SlotAsyncR
bool
File::copy(const Glib::RefPtr<File>& destination, const SlotFileProgress& slot, const Glib::RefPtr<Cancellable>& cancellable, FileCopyFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool res;
// Create a copy of the slot.
@@ -661,7 +661,7 @@ File::copy(const Glib::RefPtr<File>& destination, const SlotFileProgress& slot,
bool
File::copy(const Glib::RefPtr<File>& destination, const SlotFileProgress& slot, FileCopyFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool res;
// Create a copy of the slot.
@@ -688,7 +688,7 @@ File::copy(const Glib::RefPtr<File>& destination, const SlotFileProgress& slot,
bool
File::copy(const Glib::RefPtr<File>& destination, FileCopyFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool res = g_file_copy(gobj(),
Glib::unwrap(destination),
static_cast<GFileCopyFlags>(flags),
@@ -806,7 +806,7 @@ File::copy_async(const Glib::RefPtr<File>& destination,
bool
File::move(const Glib::RefPtr<File>& destination, const SlotFileProgress& slot, const Glib::RefPtr<Cancellable>& cancellable, FileCopyFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool res;
// Create a move of the slot.
@@ -833,7 +833,7 @@ File::move(const Glib::RefPtr<File>& destination, const SlotFileProgress& slot,
bool
File::move(const Glib::RefPtr<File>& destination, const SlotFileProgress& slot, FileCopyFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool res;
// Create a move of the slot.
@@ -860,7 +860,7 @@ File::move(const Glib::RefPtr<File>& destination, const SlotFileProgress& slot,
bool
File::move(const Glib::RefPtr<File>& destination, FileCopyFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool res;
res = g_file_move(gobj(),
@@ -915,7 +915,7 @@ bool
File::set_attributes_finish(const Glib::RefPtr<AsyncResult>& result,
const Glib::RefPtr<FileInfo>& info)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
GFileInfo* cinfo = Glib::unwrap(info);
bool res;
@@ -1282,8 +1282,8 @@ File::load_partial_contents_async(const SlotReadMore& slot_read_more,
void File::replace_contents(const char* contents, gsize length, const std::string& etag, std::string& new_etag, const Glib::RefPtr<Cancellable>& cancellable, bool make_backup, FileCreateFlags flags)
{
- GError* gerror = 0;
- gchar* c_etag_new = 0;
+ GError* gerror = nullptr;
+ gchar* c_etag_new = nullptr;
g_file_replace_contents(gobj(), contents, length, etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), &c_etag_new, const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1296,8 +1296,8 @@ void File::replace_contents(const char* contents, gsize length, const std::strin
void File::replace_contents(const char* contents, gsize length, const std::string& etag, std::string& new_etag, bool make_backup, FileCreateFlags flags)
{
- GError* gerror = 0;
- gchar* c_etag_new = 0;
+ GError* gerror = nullptr;
+ gchar* c_etag_new = nullptr;
g_file_replace_contents(gobj(), contents, length, etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), &c_etag_new, 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1310,8 +1310,8 @@ void File::replace_contents(const char* contents, gsize length, const std::strin
void File::replace_contents(const std::string& contents, const std::string& etag, std::string& new_etag, const Glib::RefPtr<Cancellable>& cancellable, bool make_backup, FileCreateFlags flags)
{
- GError* gerror = 0;
- gchar* c_etag_new = 0;
+ GError* gerror = nullptr;
+ gchar* c_etag_new = nullptr;
g_file_replace_contents(gobj(), contents.c_str(), contents.size(), etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), &c_etag_new, const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1324,8 +1324,8 @@ void File::replace_contents(const std::string& contents, const std::string& etag
void File::replace_contents(const std::string& contents, const std::string& etag, std::string& new_etag, bool make_backup, FileCreateFlags flags)
{
- GError* gerror = 0;
- gchar* c_etag_new = 0;
+ GError* gerror = nullptr;
+ gchar* c_etag_new = nullptr;
g_file_replace_contents(gobj(), contents.c_str(), contents.size(), etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), &c_etag_new, 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1434,8 +1434,8 @@ File::replace_contents_async(const SlotAsyncReady& slot,
void File::replace_contents_finish(const Glib::RefPtr<AsyncResult>& result, std::string& new_etag)
{
- GError* gerror = 0;
- gchar* c_new_etag = 0;
+ GError* gerror = nullptr;
+ gchar* c_new_etag = nullptr;
g_file_replace_contents_finish(gobj(), Glib::unwrap(result), &c_new_etag, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1449,17 +1449,63 @@ void File::replace_contents_finish(const Glib::RefPtr<AsyncResult>& result, std:
void File::replace_contents_finish(const Glib::RefPtr<AsyncResult>& result)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
g_file_replace_contents_finish(gobj(), Glib::unwrap(result), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
}
+void
+File::replace_contents_bytes_async(const SlotAsyncReady& slot,
+ const Glib::RefPtr<Cancellable>& cancellable,
+ const Glib::RefPtr<const Glib::Bytes>& contents,
+ const std::string& etag,
+ bool make_backup,
+ FileCreateFlags flags)
+{
+ // Create a copy of the slot.
+ // A pointer to it will be passed through the callback's data parameter
+ // and deleted in the callback.
+ SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+
+ g_file_replace_contents_bytes_async(gobj(),
+ const_cast<GBytes*>(Glib::unwrap(contents)),
+ etag.empty() ? 0 : etag.c_str(),
+ make_backup,
+ static_cast<GFileCreateFlags>(flags),
+ Glib::unwrap(cancellable),
+ &SignalProxy_async_callback,
+ slot_copy);
+}
+
+void
+File::replace_contents_bytes_async(const SlotAsyncReady& slot,
+ const Glib::RefPtr<const Glib::Bytes>& contents,
+ const std::string& etag,
+ bool make_backup,
+ FileCreateFlags flags)
+{
+ // Create a copy of the slot.
+ // A pointer to it will be passed through the callback's data parameter
+ // and deleted in the callback.
+ SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+
+ g_file_replace_contents_bytes_async(gobj(),
+ const_cast<GBytes*>(Glib::unwrap(contents)),
+ etag.empty() ? 0 : etag.c_str(),
+ make_backup,
+ static_cast<GFileCreateFlags>(flags),
+ 0,
+ &SignalProxy_async_callback,
+ slot_copy);
+}
+
+
Glib::RefPtr<FileOutputStream> File::replace(const Glib::RefPtr<Cancellable>& cancellable, const std::string& etag, bool make_backup, FileCreateFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileOutputStream> retvalue = Glib::wrap(g_file_replace(gobj(), etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_replace(gobj(), etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1468,8 +1514,8 @@ Glib::RefPtr<FileOutputStream> File::replace(const Glib::RefPtr<Cancellable>& ca
Glib::RefPtr<FileOutputStream> File::replace(const std::string& etag, bool make_backup, FileCreateFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileOutputStream> retvalue = Glib::wrap(g_file_replace(gobj(), etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_replace(gobj(), etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1479,8 +1525,8 @@ Glib::RefPtr<FileOutputStream> File::replace(const std::string& etag, bool make_
Glib::RefPtr<FileIOStream> File::replace_readwrite(const Glib::RefPtr<Cancellable>& cancellable, const std::string& etag, bool make_backup, FileCreateFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileIOStream> retvalue = Glib::wrap(g_file_replace_readwrite(gobj(), etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_replace_readwrite(gobj(), etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1489,8 +1535,8 @@ Glib::RefPtr<FileIOStream> File::replace_readwrite(const Glib::RefPtr<Cancellabl
Glib::RefPtr<FileIOStream> File::replace_readwrite(const std::string& etag, bool make_backup, FileCreateFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileIOStream> retvalue = Glib::wrap(g_file_replace_readwrite(gobj(), etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_replace_readwrite(gobj(), etag.empty() ? 0 : etag.c_str(), static_cast<int>(make_backup), ((GFileCreateFlags)(flags)), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1501,8 +1547,8 @@ Glib::RefPtr<FileIOStream> File::replace_readwrite(const std::string& etag, bool
Glib::RefPtr<FileMonitor> File::monitor_directory(const Glib::RefPtr<Cancellable>& cancellable, FileMonitorFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileMonitor> retvalue = Glib::wrap(g_file_monitor_directory(gobj(), ((GFileMonitorFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_monitor_directory(gobj(), ((GFileMonitorFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1511,8 +1557,8 @@ Glib::RefPtr<FileMonitor> File::monitor_directory(const Glib::RefPtr<Cancellable
Glib::RefPtr<FileMonitor> File::monitor_directory(FileMonitorFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileMonitor> retvalue = Glib::wrap(g_file_monitor_directory(gobj(), ((GFileMonitorFlags)(flags)), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_monitor_directory(gobj(), ((GFileMonitorFlags)(flags)), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1521,8 +1567,8 @@ Glib::RefPtr<FileMonitor> File::monitor_directory(FileMonitorFlags flags)
Glib::RefPtr<FileMonitor> File::monitor_file(const Glib::RefPtr<Cancellable>& cancellable, FileMonitorFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileMonitor> retvalue = Glib::wrap(g_file_monitor_file(gobj(), ((GFileMonitorFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_monitor_file(gobj(), ((GFileMonitorFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1531,8 +1577,8 @@ Glib::RefPtr<FileMonitor> File::monitor_file(const Glib::RefPtr<Cancellable>& ca
Glib::RefPtr<FileMonitor> File::monitor_file(FileMonitorFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileMonitor> retvalue = Glib::wrap(g_file_monitor_file(gobj(), ((GFileMonitorFlags)(flags)), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_monitor_file(gobj(), ((GFileMonitorFlags)(flags)), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1542,8 +1588,8 @@ Glib::RefPtr<FileMonitor> File::monitor_file(FileMonitorFlags flags)
Glib::RefPtr<FileMonitor> File::monitor(const Glib::RefPtr<Cancellable>& cancellable, FileMonitorFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileMonitor> retvalue = Glib::wrap(g_file_monitor(gobj(), ((GFileMonitorFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_monitor(gobj(), ((GFileMonitorFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1552,8 +1598,8 @@ Glib::RefPtr<FileMonitor> File::monitor(const Glib::RefPtr<Cancellable>& cancell
Glib::RefPtr<FileMonitor> File::monitor(FileMonitorFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileMonitor> retvalue = Glib::wrap(g_file_monitor(gobj(), ((GFileMonitorFlags)(flags)), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_monitor(gobj(), ((GFileMonitorFlags)(flags)), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1563,7 +1609,7 @@ Glib::RefPtr<FileMonitor> File::monitor(FileMonitorFlags flags)
void File::measure_disk_usage(const Glib::RefPtr<Cancellable>& cancellable, const SlotFileMeasureProgress& slot_progress, guint64& disk_usage, guint64& num_dirs, guint64& num_files, FileMeasureFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
g_file_measure_disk_usage(gobj(), ((GFileMeasureFlags)(flags)),
const_cast<GCancellable*>(Glib::unwrap(cancellable)),
&SignalProxy_file_measure_progress_callback, const_cast<SlotFileMeasureProgress*>(&slot_progress),
@@ -1708,7 +1754,7 @@ void File::find_enclosing_mount_async(const SlotAsyncReady& slot, int io_priorit
bool File::set_attributes_from_info(const Glib::RefPtr<FileInfo>& info, const Glib::RefPtr<Cancellable>& cancellable, FileQueryInfoFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_file_set_attributes_from_info(gobj(), Glib::unwrap(info), ((GFileQueryInfoFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1718,7 +1764,7 @@ bool File::set_attributes_from_info(const Glib::RefPtr<FileInfo>& info, const Gl
bool File::set_attributes_from_info(const Glib::RefPtr<FileInfo>& info, FileQueryInfoFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_file_set_attributes_from_info(gobj(), Glib::unwrap(info), ((GFileQueryInfoFlags)(flags)), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1729,7 +1775,7 @@ bool File::set_attributes_from_info(const Glib::RefPtr<FileInfo>& info, FileQuer
bool
File::copy_attributes(const Glib::RefPtr<File>& destination, const Glib::RefPtr<Cancellable>& cancellable, FileCopyFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool res;
res = g_file_copy_attributes(gobj(),
@@ -1747,7 +1793,7 @@ File::copy_attributes(const Glib::RefPtr<File>& destination, const Glib::RefPtr<
bool
File::copy_attributes(const Glib::RefPtr<File>& destination, FileCopyFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool res;
res = g_file_copy_attributes(gobj(),
@@ -1764,8 +1810,8 @@ File::copy_attributes(const Glib::RefPtr<File>& destination, FileCopyFlags flags
Glib::RefPtr<FileOutputStream> File::create_file(const Glib::RefPtr<Cancellable>& cancellable, FileCreateFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileOutputStream> retvalue = Glib::wrap(g_file_create(gobj(), ((GFileCreateFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_create(gobj(), ((GFileCreateFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1774,8 +1820,8 @@ Glib::RefPtr<FileOutputStream> File::create_file(const Glib::RefPtr<Cancellable>
Glib::RefPtr<FileOutputStream> File::create_file(FileCreateFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileOutputStream> retvalue = Glib::wrap(g_file_create(gobj(), ((GFileCreateFlags)(flags)), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_create(gobj(), ((GFileCreateFlags)(flags)), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1784,8 +1830,8 @@ Glib::RefPtr<FileOutputStream> File::create_file(FileCreateFlags flags)
Glib::RefPtr<FileIOStream> File::create_file_readwrite(const Glib::RefPtr<Cancellable>& cancellable, FileCreateFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileIOStream> retvalue = Glib::wrap(g_file_create_readwrite(gobj(), ((GFileCreateFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_create_readwrite(gobj(), ((GFileCreateFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1794,8 +1840,8 @@ Glib::RefPtr<FileIOStream> File::create_file_readwrite(const Glib::RefPtr<Cancel
Glib::RefPtr<FileIOStream> File::create_file_readwrite(FileCreateFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileIOStream> retvalue = Glib::wrap(g_file_create_readwrite(gobj(), ((GFileCreateFlags)(flags)), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_create_readwrite(gobj(), ((GFileCreateFlags)(flags)), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1804,8 +1850,8 @@ Glib::RefPtr<FileIOStream> File::create_file_readwrite(FileCreateFlags flags)
Glib::RefPtr<FileOutputStream> File::append_to(const Glib::RefPtr<Cancellable>& cancellable, FileCreateFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileOutputStream> retvalue = Glib::wrap(g_file_append_to(gobj(), ((GFileCreateFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_append_to(gobj(), ((GFileCreateFlags)(flags)), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1814,8 +1860,8 @@ Glib::RefPtr<FileOutputStream> File::append_to(const Glib::RefPtr<Cancellable>&
Glib::RefPtr<FileOutputStream> File::append_to(FileCreateFlags flags)
{
- GError* gerror = 0;
- Glib::RefPtr<FileOutputStream> retvalue = Glib::wrap(g_file_append_to(gobj(), ((GFileCreateFlags)(flags)), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_append_to(gobj(), ((GFileCreateFlags)(flags)), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1824,8 +1870,8 @@ Glib::RefPtr<FileOutputStream> File::append_to(FileCreateFlags flags)
bool File::load_contents(const Glib::RefPtr<Cancellable>& cancellable, char*& contents, gsize& length, std::string& etag_out)
{
- GError* gerror = 0;
- gchar* cetag_out = 0;
+ GError* gerror = nullptr;
+ gchar* cetag_out = nullptr;
bool retvalue = g_file_load_contents(gobj(), Glib::unwrap(cancellable), &contents, &(length), &cetag_out, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1837,7 +1883,7 @@ bool File::load_contents(const Glib::RefPtr<Cancellable>& cancellable, char*& co
bool File::load_contents(const Glib::RefPtr<Cancellable>& cancellable, char*& contents, gsize& length)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_file_load_contents(gobj(), Glib::unwrap(cancellable), &contents, &(length), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1847,8 +1893,8 @@ bool File::load_contents(const Glib::RefPtr<Cancellable>& cancellable, char*& co
bool File::load_contents(char*& contents, gsize& length, std::string& etag_out)
{
- GError* gerror = 0;
- gchar* cetag_out = 0;
+ GError* gerror = nullptr;
+ gchar* cetag_out = nullptr;
bool retvalue = g_file_load_contents(gobj(), 0, &contents, &(length), &cetag_out, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1860,7 +1906,7 @@ bool File::load_contents(char*& contents, gsize& length, std::string& etag_out)
bool File::load_contents(char*& contents, gsize& length)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_file_load_contents(gobj(), 0, &contents, &(length), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1870,8 +1916,8 @@ bool File::load_contents(char*& contents, gsize& length)
bool File::load_contents_finish(const Glib::RefPtr<AsyncResult>& result, char*& contents, gsize& length, std::string& etag_out)
{
- GError* gerror = 0;
- gchar* cetag_out = 0;
+ GError* gerror = nullptr;
+ gchar* cetag_out = nullptr;
bool retvalue = g_file_load_contents_finish(gobj(), Glib::unwrap(result), &contents, &(length), &cetag_out, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1883,7 +1929,7 @@ bool File::load_contents_finish(const Glib::RefPtr<AsyncResult>& result, char*&
bool File::load_contents_finish(const Glib::RefPtr<AsyncResult>& result, char*& contents, gsize& length)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_file_load_contents_finish(gobj(), Glib::unwrap(result), &contents, &(length), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1893,8 +1939,8 @@ bool File::load_contents_finish(const Glib::RefPtr<AsyncResult>& result, char*&
bool File::load_partial_contents_finish(const Glib::RefPtr<AsyncResult>& result, char*& contents, gsize& length, std::string& etag_out)
{
- GError* gerror = 0;
- gchar* cetag_out = 0;
+ GError* gerror = nullptr;
+ gchar* cetag_out = nullptr;
bool retvalue = g_file_load_partial_contents_finish(gobj(), Glib::unwrap(result), &contents, &(length), &cetag_out, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -1906,7 +1952,7 @@ bool File::load_partial_contents_finish(const Glib::RefPtr<AsyncResult>& result,
bool File::load_partial_contents_finish(const Glib::RefPtr<AsyncResult>& result, char*& contents, gsize& length)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_file_load_partial_contents_finish(gobj(), Glib::unwrap(result), &contents, &(length), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
diff --git a/gio/src/file.hg b/gio/src/file.hg
index 7df94c3e..27b991c7 100644
--- a/gio/src/file.hg
+++ b/gio/src/file.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -17,11 +15,6 @@
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
-#undef G_DISABLE_DEPRECATED
-#define GLIB_DISABLE_DEPRECATION_WARNINGS 1
-#m4 _POP()
-
#include <glibmm/error.h>
#include <glibmm/interface.h>
#include <giomm/appinfo.h>
@@ -1052,7 +1045,7 @@ public:
g_file_set_display_name_finish,
errthrow)
- //TODO: Remove the bool results from this and other methods that thrown an exception.
+ //TODO: Remove the bool results from this and other methods that throw an exception.
/** Deletes a file.
* If the file is a directory, it will only be deleted if it is empty.
@@ -1472,7 +1465,7 @@ public:
* @param flags Flags affecting the operation.
*/
void mount_enclosing_volume(MountMountFlags flags = MOUNT_MOUNT_NONE);
- _IGNORE(g_file_mount_enclosing _volume)
+ _IGNORE(g_file_mount_enclosing_volume)
_WRAP_METHOD(bool mount_enclosing_volume_finish(const Glib::RefPtr<AsyncResult>& result),
g_file_mount_enclosing_volume_finish,
@@ -2362,6 +2355,51 @@ public:
void replace_contents_finish(const Glib::RefPtr<AsyncResult>& result);
_IGNORE(g_file_replace_contents_finish)
+
+ /** Same as replace_contents_async() but takes a Gio::Bytes input instead.
+ *
+ * When this operation has completed, @a slot will be called
+ * and the operation can be finalized with replace_contents_finish().
+ *
+ * The operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, a Gio::Error with CANCELLED will be thrown.
+ *
+ * If @a make_backup is true, this function will attempt to
+ * make a backup of the file.
+ *
+ * @param slot: A callback to call when the request is satisfied.
+ * @param cancellable A Cancellable object.
+ * @param contents Bytes of contents to replace the file with.
+ * @param etag a new entity tag for the file.
+ * @param make_backup true if a backup should be created.
+ * @param flags A set of FileCreateFlags.
+ */
+ void replace_contents_bytes_async(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable, const Glib::RefPtr<const Glib::Bytes>& contents, const std::string& etag, bool make_backup = false, FileCreateFlags flags = FILE_CREATE_NONE);
+
+ /** Same as replace_contents_async() but takes a Gio::Bytes input instead.
+ *
+ * When this operation has completed, @a slot will be called
+ * and the operation can be finalized with replace_contents_finish().
+ *
+ * The operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, a Gio::Error with CANCELLED will be thrown.
+ *
+ * If @a make_backup is true, this function will attempt to
+ * make a backup of the file.
+ *
+ * @param slot: A callback to call when the request is satisfied.
+ * @param contents Bytes of contents to replace the file with.
+ * @param etag a new entity tag for the file.
+ * @param make_backup true if a backup should be created.
+ * @param flags A set of FileCreateFlags.
+ */
+ void replace_contents_bytes_async(const SlotAsyncReady& slot, const Glib::RefPtr<const Glib::Bytes>& contents, const std::string& etag, bool make_backup = false, FileCreateFlags flags = FILE_CREATE_NONE);
+
+ _IGNORE(g_file_replace_contents_async)
+
+
_WRAP_METHOD(bool supports_thread_contexts() const, g_file_supports_thread_contexts)
// *** vfuncs ***
diff --git a/gio/src/fileattributeinfolist.ccg b/gio/src/fileattributeinfolist.ccg
index b4320457..717b731e 100644
--- a/gio/src/fileattributeinfolist.ccg
+++ b/gio/src/fileattributeinfolist.ccg
@@ -29,13 +29,13 @@ FileAttributeInfoList::operator bool() const
bool FileAttributeInfoList::empty() const
{
- return gobj() == 0;
+ return gobj() == nullptr;
}
FileAttributeInfo
FileAttributeInfoList::lookup(const std::string& name) const
{
- GFileAttributeInfoList* cobject = const_cast<GFileAttributeInfoList*>(gobj());
+ auto cobject = const_cast<GFileAttributeInfoList*>(gobj());
const GFileAttributeInfo* cinfo =
g_file_attribute_info_list_lookup (cobject, name.c_str());
diff --git a/gio/src/fileenumerator.ccg b/gio/src/fileenumerator.ccg
index 49a893af..d5cb85cb 100644
--- a/gio/src/fileenumerator.ccg
+++ b/gio/src/fileenumerator.ccg
@@ -32,7 +32,7 @@ FileEnumerator::next_files_async(const SlotAsyncReady& slot, const Glib::RefPtr<
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_file_enumerator_next_files_async(gobj(),
num_files,
@@ -48,7 +48,7 @@ FileEnumerator::next_files_async(const SlotAsyncReady& slot, int num_files, int
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_file_enumerator_next_files_async(gobj(),
num_files,
@@ -66,7 +66,7 @@ FileEnumerator::close_async(int io_priority,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_file_enumerator_close_async(gobj(),
io_priority,
@@ -82,7 +82,7 @@ FileEnumerator::close_async(int io_priority,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_file_enumerator_close_async(gobj(),
io_priority,
diff --git a/gio/src/fileinfo.hg b/gio/src/fileinfo.hg
index d10eb685..b14a6013 100644
--- a/gio/src/fileinfo.hg
+++ b/gio/src/fileinfo.hg
@@ -200,8 +200,8 @@ public:
// helper setters
_WRAP_METHOD(void set_file_type(FileType type), g_file_info_set_file_type)
- _WRAP_METHOD(void set_is_hidden(bool is_hidden = true), g_file_info_set_is_hidden)
- _WRAP_METHOD(void set_is_symlink(bool is_symlink = true), g_file_info_set_is_symlink)
+ _WRAP_METHOD(void set_is_hidden(bool hidden = true), g_file_info_set_is_hidden)
+ _WRAP_METHOD(void set_is_symlink(bool symlink = true), g_file_info_set_is_symlink)
_WRAP_METHOD(void set_name(const std::string& name), g_file_info_set_name)
//TODO: This should take a ustring instead. See https://bugzilla.gnome.org/show_bug.cgi?id=615950#c4
diff --git a/gio/src/fileinputstream.ccg b/gio/src/fileinputstream.ccg
index 9dc275e2..74242ddb 100644
--- a/gio/src/fileinputstream.ccg
+++ b/gio/src/fileinputstream.ccg
@@ -26,8 +26,8 @@ namespace Gio
Glib::RefPtr<FileInfo> FileInputStream::query_info(const Glib::RefPtr<Cancellable>& cancellable, const std::string& attributes)
{
- GError* gerror = 0;
- Glib::RefPtr<FileInfo> retvalue = Glib::wrap(g_file_input_stream_query_info(gobj(), g_strdup((attributes).c_str()), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_input_stream_query_info(gobj(), g_strdup((attributes).c_str()), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -36,8 +36,8 @@ Glib::RefPtr<FileInfo> FileInputStream::query_info(const Glib::RefPtr<Cancellabl
Glib::RefPtr<FileInfo> FileInputStream::query_info(const std::string& attributes)
{
- GError* gerror = 0;
- Glib::RefPtr<FileInfo> retvalue = Glib::wrap(g_file_input_stream_query_info(gobj(), g_strdup((attributes).c_str()), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_input_stream_query_info(gobj(), g_strdup((attributes).c_str()), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -50,7 +50,7 @@ FileInputStream::query_info_async(const SlotAsyncReady& slot, const Glib::RefPtr
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_file_input_stream_query_info_async(gobj(),
const_cast<char*>(attributes.c_str()),
@@ -66,7 +66,7 @@ FileInputStream::query_info_async(const SlotAsyncReady& slot, const std::string&
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_file_input_stream_query_info_async(gobj(),
const_cast<char*>(attributes.c_str()),
diff --git a/gio/src/fileinputstream.hg b/gio/src/fileinputstream.hg
index 476e3916..a9cca15b 100644
--- a/gio/src/fileinputstream.hg
+++ b/gio/src/fileinputstream.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -102,15 +100,6 @@ public:
_WRAP_METHOD(Glib::RefPtr<FileInfo> query_info_finish(const Glib::RefPtr<AsyncResult>& result),
g_file_input_stream_query_info_finish,
errthrow)
-
- //These seem to be just C convenience functions - they are already in the Seekable base class:
- //See http://bugzilla.gnome.org/show_bug.cgi?id=509990
- _IGNORE(g_file_input_stream_tell, g_file_input_stream_can_seek, g_file_input_stream_seek)
-// _WRAP_METHOD(goffset tell() const, g_file_input_stream_tell)
-// _WRAP_METHOD(bool can_seek() const, g_file_input_stream_can_seek)
-// _WRAP_METHOD(bool seek(goffset offset, Glib::SeekType type, const Glib::RefPtr<Cancellable>& cancellable),
-// g_file_input_stream_seek,
-// errthrow)
};
} // namespace Gio
diff --git a/gio/src/fileiostream.ccg b/gio/src/fileiostream.ccg
index 5ae6ac50..e1a7c2d9 100644
--- a/gio/src/fileiostream.ccg
+++ b/gio/src/fileiostream.ccg
@@ -26,8 +26,8 @@ namespace Gio
Glib::RefPtr<FileInfo> FileIOStream::query_info(const Glib::RefPtr<Cancellable>& cancellable, const std::string& attributes)
{
- GError* gerror = 0;
- Glib::RefPtr<FileInfo> retvalue = Glib::wrap(g_file_io_stream_query_info(gobj(), g_strdup((attributes).c_str()), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_io_stream_query_info(gobj(), g_strdup((attributes).c_str()), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -36,8 +36,8 @@ Glib::RefPtr<FileInfo> FileIOStream::query_info(const Glib::RefPtr<Cancellable>&
Glib::RefPtr<FileInfo> FileIOStream::query_info(const std::string& attributes)
{
- GError* gerror = 0;
- Glib::RefPtr<FileInfo> retvalue = Glib::wrap(g_file_io_stream_query_info(gobj(), g_strdup((attributes).c_str()), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_io_stream_query_info(gobj(), g_strdup((attributes).c_str()), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -50,7 +50,7 @@ FileIOStream::query_info_async(const SlotAsyncReady& slot, const Glib::RefPtr<Ca
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_file_io_stream_query_info_async(gobj(),
const_cast<char*>(attributes.c_str()),
@@ -66,7 +66,7 @@ FileIOStream::query_info_async(const SlotAsyncReady& slot, const std::string& at
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_file_io_stream_query_info_async(gobj(),
const_cast<char*>(attributes.c_str()),
diff --git a/gio/src/filelist.am b/gio/src/filelist.am
index 8ce9dd5f..0f494e48 100644
--- a/gio/src/filelist.am
+++ b/gio/src/filelist.am
@@ -5,8 +5,6 @@ giomm_files_defs = \
gio_enums.defs \
gio_methods.defs \
gio_extra_objects.defs \
- gio_unix_functions.defs \
- gio_others.defs \
gio_signals.defs \
gio_vfuncs.defs \
gio_docs.xml \
@@ -87,6 +85,7 @@ giomm_files_any_hg = \
mount.hg \
mountoperation.hg \
networkaddress.hg \
+ networkmonitor.hg \
networkservice.hg \
notification.hg \
outputstream.hg \
@@ -101,8 +100,12 @@ giomm_files_any_hg = \
resource.hg \
seekable.hg \
settings.hg \
+ settingsschema.hg \
+ settingsschemakey.hg \
+ settingsschemasource.hg \
simpleaction.hg \
simpleactiongroup.hg \
+ simpleiostream.hg \
simplepermission.hg \
socket.hg \
socketaddress.hg \
@@ -115,6 +118,7 @@ giomm_files_any_hg = \
socketservice.hg \
srvtarget.hg \
tcpconnection.hg \
+ tcpwrapperconnection.hg \
threadedsocketservice.hg \
themedicon.hg \
tlscertificate.hg \
diff --git a/gio/src/fileoutputstream.ccg b/gio/src/fileoutputstream.ccg
index e46308cb..a0c31df6 100644
--- a/gio/src/fileoutputstream.ccg
+++ b/gio/src/fileoutputstream.ccg
@@ -28,8 +28,8 @@ namespace Gio
Glib::RefPtr<FileInfo> FileOutputStream::query_info(const Glib::RefPtr<Cancellable>& cancellable, const std::string& attributes)
{
- GError* gerror = 0;
- Glib::RefPtr<FileInfo> retvalue = Glib::wrap(g_file_output_stream_query_info(gobj(), g_strdup((attributes).c_str()), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_output_stream_query_info(gobj(), g_strdup((attributes).c_str()), const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -40,8 +40,8 @@ Glib::RefPtr<FileInfo> FileOutputStream::query_info(const Glib::RefPtr<Cancellab
Glib::RefPtr<FileInfo> FileOutputStream::query_info(const std::string& attributes)
{
- GError* gerror = 0;
- Glib::RefPtr<FileInfo> retvalue = Glib::wrap(g_file_output_stream_query_info(gobj(), g_strdup((attributes).c_str()), 0, &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::wrap(g_file_output_stream_query_info(gobj(), g_strdup((attributes).c_str()), 0, &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -56,7 +56,7 @@ FileOutputStream::query_info_async(const SlotAsyncReady& slot, const Glib::RefPt
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_file_output_stream_query_info_async(gobj(),
const_cast<char*>(attributes.c_str()),
@@ -72,7 +72,7 @@ FileOutputStream::query_info_async(const SlotAsyncReady& slot, const std::string
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_file_output_stream_query_info_async(gobj(),
const_cast<char*>(attributes.c_str()),
diff --git a/gio/src/fileoutputstream.hg b/gio/src/fileoutputstream.hg
index 4b24272f..a31567bd 100644
--- a/gio/src/fileoutputstream.hg
+++ b/gio/src/fileoutputstream.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -138,20 +136,6 @@ public:
refreturn, errthrow)
_WRAP_METHOD(std::string get_etag() const, g_file_output_stream_get_etag)
-
- //These seem to be just C convenience functions - they are already in the Seekable base class:
- //See http://bugzilla.gnome.org/show_bug.cgi?id=509990
- _IGNORE(g_file_output_stream_tell, g_file_output_stream_can_seek, g_file_output_stream_seek,
- g_file_output_stream_can_truncate, g_file_output_stream_truncate)
-// _WRAP_METHOD(goffset tell() const, g_file_output_stream_tell)
-// _WRAP_METHOD(bool can_seek() const, g_file_output_stream_can_seek)
-// _WRAP_METHOD(bool seek(goffset offset, Glib::SeekType type, const Glib::RefPtr<Cancellable>& cancellable),
-// g_file_output_stream_seek,
-// errthrow)
-// _WRAP_METHOD(bool can_truncate() const, g_file_output_stream_can_truncate)
-// _WRAP_METHOD(bool truncate(goffset size, const Glib::RefPtr<Cancellable>& cancellable),
-// g_file_output_stream_truncate,
-// errthrow)
};
} // namespace Gio
diff --git a/gio/src/gio.defs b/gio/src/gio.defs
index 4db096ff..b86c2792 100644
--- a/gio/src/gio.defs
+++ b/gio/src/gio.defs
@@ -1,5 +1,4 @@
(include gio_methods.defs)
-(include gio_unix_functions.defs)
(include gio_extra_objects.defs)
(include gio_enums.defs)
(include gio_signals.defs)
diff --git a/gio/src/gio_docs.xml b/gio/src/gio_docs.xml
index e6a2b328..9f9a22c8 100644
--- a/gio/src/gio_docs.xml
+++ b/gio/src/gio_docs.xml
@@ -1,1343 +1,55 @@
<root>
-<signal name="ExampleAnimal::handle-poke">
+<property name="GAction:enabled">
<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-gtk-GDBus-Example-ObjectManager-Animal.Poke&quot;&gt;Poke()&lt;/link&gt; D-Bus method.
+If @action is currently enabled.
-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 example_animal_complete_poke() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+If the action is disabled then calls to g_action_activate() and
+g_action_change_state() have no effect.
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_make_sad">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_make_happy">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-
-</return>
-</signal>
-
-<signal name="ExampleAnimal::jumped">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-org-gtk-GDBus-Example-ObjectManager-Animal.Jumped&quot;&gt;&quot;Jumped&quot;&lt;/link&gt; 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.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-<parameter name="arg_height">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenAuthorize::handle-check-authorized">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckAuthorized&quot;&gt;CheckAuthorized()&lt;/link&gt; 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 foo_igen_authorize_complete_check_authorized() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenAuthorize.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenAuthorize::handle-check-not-authorized">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckNotAuthorized&quot;&gt;CheckNotAuthorized()&lt;/link&gt; 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 foo_igen_authorize_complete_check_not_authorized() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenAuthorize.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenAuthorize::handle-check-not-authorized-from-object">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckNotAuthorizedFromObject&quot;&gt;CheckNotAuthorizedFromObject()&lt;/link&gt; 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 foo_igen_authorize_complete_check_not_authorized_from_object() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenAuthorize.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenBar::another-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-org-project-Bar.AnotherSignal&quot;&gt;&quot;AnotherSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="arg_word">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenBar::handle-hello-world">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Bar.HelloWorld&quot;&gt;HelloWorld()&lt;/link&gt; 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 foo_igen_bar_complete_hello_world() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenBar::handle-property-cancellation">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Bar.PropertyCancellation&quot;&gt;PropertyCancellation()&lt;/link&gt; 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 foo_igen_bar_complete_property_cancellation() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenBar::handle-request-multi-property-mods">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Bar.RequestMultiPropertyMods&quot;&gt;RequestMultiPropertyMods()&lt;/link&gt; 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 foo_igen_bar_complete_request_multi_property_mods() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenBar::handle-request-signal-emission">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Bar.RequestSignalEmission&quot;&gt;RequestSignalEmission()&lt;/link&gt; 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 foo_igen_bar_complete_request_signal_emission() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_which_one">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenBar::handle-test-non-primitive-types">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Bar.TestNonPrimitiveTypes&quot;&gt;TestNonPrimitiveTypes()&lt;/link&gt; 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 foo_igen_bar_complete_test_non_primitive_types() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_dict_s_to_s">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_dict_s_to_pairs">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_a_struct">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_strings">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_objpaths">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_signatures">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_bytestrings">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenBar::handle-test-primitive-types">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Bar.TestPrimitiveTypes&quot;&gt;TestPrimitiveTypes()&lt;/link&gt; 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 foo_igen_bar_complete_test_primitive_types() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_byte">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_boolean">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_int16">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_uint16">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_int32">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_uint32">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_int64">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_uint64">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_double">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_string">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_objpath">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_signature">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_bytestring">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenBar::handle-unimplemented-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Bar.UnimplementedMethod&quot;&gt;UnimplementedMethod()&lt;/link&gt; 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 foo_igen_bar_complete_unimplemented_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenBar::test-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-org-project-Bar.TestSignal&quot;&gt;&quot;TestSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_int32">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_strings">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_bytestrings">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-<parameter name="arg_dict_s_to_pairs">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenBarFrobnicator::handle-random-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Bar-Frobnicator.RandomMethod&quot;&gt;RandomMethod()&lt;/link&gt; 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 foo_igen_bar_frobnicator_complete_random_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBarFrobnicator.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenBat::force-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-org-project-Bat.ForceSignal&quot;&gt;&quot;ForceSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_i">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_s">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_ay">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_struct">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenBat::handle-force-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-Bat.ForceMethod&quot;&gt;ForceMethod()&lt;/link&gt; 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 foo_igen_bat_complete_force_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_i">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_s">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_ay">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_struct">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV10::added-signal-in10">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV10.AddedSignalIn10&quot;&gt;&quot;AddedSignalIn10&quot;&lt;/link&gt; 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.
-
-Since: 10.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV10::bar-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV10.BarSignal&quot;&gt;&quot;BarSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV10::baz-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV10.BazSignal&quot;&gt;&quot;BazSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV10::foo-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV10.FooSignal&quot;&gt;&quot;FooSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV10::handle-added-method-in10">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.AddedMethodIn10&quot;&gt;AddedMethodIn10()&lt;/link&gt; 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 foo_igen_changing_interface_v10_complete_added_method_in10() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-Since: 10.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV10::handle-bar-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; 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 foo_igen_changing_interface_v10_complete_bar_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV10::handle-baz-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; 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 foo_igen_changing_interface_v10_complete_baz_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV10::handle-foo-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; 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 foo_igen_changing_interface_v10_complete_foo_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV10::handle-new-method-in2">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.NewMethodIn2&quot;&gt;NewMethodIn2()&lt;/link&gt; 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 foo_igen_changing_interface_v10_complete_new_method_in2() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV10::new-signal-in2">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV10.NewSignalIn2&quot;&gt;&quot;NewSignalIn2&quot;&lt;/link&gt; 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.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV1::bar-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV1.BarSignal&quot;&gt;&quot;BarSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV1::baz-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV1.BazSignal&quot;&gt;&quot;BazSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV1::foo-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV1.FooSignal&quot;&gt;&quot;FooSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV1::handle-bar-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; 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 foo_igen_changing_interface_v1_complete_bar_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV1::handle-baz-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; 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 foo_igen_changing_interface_v1_complete_baz_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV1::handle-foo-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; 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 foo_igen_changing_interface_v1_complete_foo_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV2::bar-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV2.BarSignal&quot;&gt;&quot;BarSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV2::baz-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV2.BazSignal&quot;&gt;&quot;BazSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV2::foo-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV2.FooSignal&quot;&gt;&quot;FooSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV2::handle-bar-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; 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 foo_igen_changing_interface_v2_complete_bar_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV2::handle-baz-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; 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 foo_igen_changing_interface_v2_complete_baz_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV2::handle-foo-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; 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 foo_igen_changing_interface_v2_complete_foo_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV2::handle-new-method-in2">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.NewMethodIn2&quot;&gt;NewMethodIn2()&lt;/link&gt; 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 foo_igen_changing_interface_v2_complete_new_method_in2() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-
-</return>
-</signal>
-
-<signal name="FooiGenChangingInterfaceV2::new-signal-in2">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV2.NewSignalIn2&quot;&gt;&quot;NewSignalIn2&quot;&lt;/link&gt; 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.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenComAcmeCoyote::handle-attack">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Attack&quot;&gt;Attack()&lt;/link&gt; 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 foo_igen_com_acme_coyote_complete_attack() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenComAcmeCoyote.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenComAcmeCoyote::handle-run">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Run&quot;&gt;Run()&lt;/link&gt; 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 foo_igen_com_acme_coyote_complete_run() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenComAcmeCoyote.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenComAcmeCoyote::handle-sleep">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Sleep&quot;&gt;Sleep()&lt;/link&gt; 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 foo_igen_com_acme_coyote_complete_sleep() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenComAcmeCoyote.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenComAcmeCoyote::surprised">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-com-acme-Coyote.Surprised&quot;&gt;&quot;Surprised&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenComAcmeCoyote.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenFDPassing::handle-hello-fd">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-FDPassing.HelloFD&quot;&gt;HelloFD()&lt;/link&gt; 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 foo_igen_fdpassing_complete_hello_fd() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenFDPassing.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="fd_list">
-<parameter_description> A #GUnixFDList or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenInlineDocs::bar-signal">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-org-project-InlineDocs.BarSignal&quot;&gt;&quot;BarSignal&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="arg_blah">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-<parameter name="arg_boo">
-<parameter_description> Argument.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenInlineDocs::handle-foo-method">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-InlineDocs.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; 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 foo_igen_inline_docs_complete_foo_method() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenInlineDocs::handle-method2">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-InlineDocs.Method2&quot;&gt;Method2()&lt;/link&gt; 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 foo_igen_inline_docs_complete_method2() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument passed by remote caller.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenMethodThreads::handle-get-self">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-org-project-MethodThreads.GetSelf&quot;&gt;GetSelf()&lt;/link&gt; 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 foo_igen_method_threads_complete_get_self() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenMethodThreads.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenOldieInterface::bar">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-OldieInterface.Bar&quot;&gt;&quot;Bar&quot;&lt;/link&gt; 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.
-
-Deprecated: The D-Bus signal has been deprecated.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenOldieInterface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<signal name="FooiGenOldieInterface::handle-foo">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-OldieInterface.Foo&quot;&gt;Foo()&lt;/link&gt; 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 foo_igen_oldie_interface_complete_foo() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-Deprecated: The D-Bus method has been deprecated.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenOldieInterface.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-
-</return>
-</signal>
-
-<signal name="FooiGenRocket123::exploded-xyz">
-<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-com-acme-Rocket.Exploded&quot;&gt;&quot;Exploded&quot;&lt;/link&gt; 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.
+Since: 2.28
</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
+</property>
-<signal name="FooiGenRocket123::handle-ignite-xyz">
+<property name="GAction:name">
<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-com-acme-Rocket.Ignite&quot;&gt;Ignite()&lt;/link&gt; 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 foo_igen_rocket123_complete_ignite_xyz() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
-
-<signal name="FooiGenTesTuglyCASEInterface::handle-get-iscsi-servers">
-<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-TestUglyCaseInterface.GetiSCSIServers&quot;&gt;GetiSCSIServers()&lt;/link&gt; 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 foo_igen_test_ugly_case_interface_complete_get_iscsi_servers() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+The name of the action. This is mostly meaningful for identifying
+the action once it has been added to a #GActionGroup. It is immutable.
+Since: 2.28
</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenTesTuglyCASEInterface.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
+</property>
-<signal name="FooiGenTesTuglyCASEInterface::servers-updated-now">
+<property name="GAction:parameter-type">
<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-TestUglyCaseInterface.serversUPDATEDNOW&quot;&gt;&quot;serversUPDATEDNOW&quot;&lt;/link&gt; is received.
+The type of the parameter that must be given when activating the
+action. This is immutable, and may be %NULL if no parameter is needed when
+activating the action.
-On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+Since: 2.28
</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenTesTuglyCASEInterface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
+</property>
-<signal name="FooiGenUnknownXmlTags::handle-can-set-timezone">
+<property name="GAction:state">
<description>
-Signal emitted when a remote caller is invoking the &lt;link linkend=&quot;gdbus-method-UnknownXmlTags.CanSetTimezone&quot;&gt;CanSetTimezone()&lt;/link&gt; 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 foo_igen_unknown_xml_tags_complete_can_set_timezone() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+The state of the action, or %NULL if the action is stateless.
+Since: 2.28
</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenUnknownXmlTags.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
-</return>
-</signal>
+</property>
-<signal name="FooiGenUnknownXmlTags::some-signal">
+<property name="GAction:state-type">
<description>
-On the client-side, this signal is emitted whenever the D-Bus signal &lt;link linkend=&quot;gdbus-signal-UnknownXmlTags.SomeSignal&quot;&gt;&quot;SomeSignal&quot;&lt;/link&gt; is received.
+The #GVariantType of the state that the action has, or %NULL if the
+action is stateless. This is immutable.
-On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+Since: 2.28
</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenUnknownXmlTags.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
+</property>
<signal name="GActionGroup::action-added">
<description>
@@ -1456,6 +168,67 @@ Flags used when creating a #GAppInfo.
</parameters>
</enum>
+<signal name="GAppInfoMonitor::changed">
+<description>
+Signal emitted when the app info database for changes (ie: newly installed
+or removed applications).
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</signal>
+
+<signal name="GAppLaunchContext::launch-failed">
+<description>
+The ::launch-failed signal is emitted when a #GAppInfo launch
+fails. The startup notification id is provided, so that the launcher
+can cancel the startup notification.
+
+Since: 2.36
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> the object emitting the signal
+</parameter_description>
+</parameter>
+<parameter name="startup_notify_id">
+<parameter_description> the startup notification id for the failed launch
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</signal>
+
+<signal name="GAppLaunchContext::launched">
+<description>
+The ::launched signal is emitted when a #GAppInfo is successfully
+launched. The @platform_data is an GVariant dictionary mapping
+strings to variants (ie a{sv}), which contains additional,
+platform-specific data about this launch. On UNIX, at least the
+&quot;pid&quot; and &quot;startup-notification-id&quot; keys will be present.
+
+Since: 2.36
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> the object emitting the signal
+</parameter_description>
+</parameter>
+<parameter name="info">
+<parameter_description> the #GAppInfo that was just launched
+</parameter_description>
+</parameter>
+<parameter name="platform_data">
+<parameter_description> additional platform-specific data for this launch
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</signal>
+
<signal name="GApplication::activate">
<description>
The ::activate signal is emitted on the primary instance when an
@@ -1617,6 +390,16 @@ after registration. See g_application_register().
<return></return>
</signal>
+<property name="GApplication:is-busy">
+<description>
+Whether the application is currently marked as busy through
+g_application_mark_busy() or g_application_bind_busy_property().
+
+Since: 2.44
+
+</description>
+</property>
+
<enum name="GApplicationFlags">
<description>
Flags used to define the behaviour of a #GApplication.
@@ -1781,6 +564,13 @@ Since: 2.26
</parameters>
</enum>
+<property name="GBytesIcon:bytes">
+<description>
+The bytes containing the icon.
+
+</description>
+</property>
+
<signal name="GCancellable::cancelled">
<description>
Emitted when the operation has been cancelled.
@@ -1915,10 +705,6 @@ Since: 2.26
<parameter_description> The native credentials type is a &lt;type&gt;struct cmsgcred&lt;/type&gt;.
</parameter_description>
</parameter>
-<parameter name="G_CREDENTIALS_TYPE_NETBSD_UNPCBID">
-<parameter_description> The native credentials type is a &lt;type&gt;struct unpcbid&lt;/type&gt;.
-</parameter_description>
-</parameter>
<parameter name="G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED">
<parameter_description> The native credentials type is a &lt;type&gt;struct sockpeercred&lt;/type&gt;. Added in 2.30.
</parameter_description>
@@ -1927,9 +713,24 @@ Since: 2.26
<parameter_description> The native credentials type is a &lt;type&gt;ucred_t&lt;/type&gt;. Added in 2.40.
</parameter_description>
</parameter>
+<parameter name="G_CREDENTIALS_TYPE_NETBSD_UNPCBID">
+<parameter_description> The native credentials type is a &lt;type&gt;struct unpcbid&lt;/type&gt;.
+</parameter_description>
+</parameter>
</parameters>
</enum>
+<property name="GDBusAuthMechanism:credentials">
+<description>
+If authenticating as a server, this property contains the
+received credentials, if any.
+
+If authenticating as a client, the property contains the
+credentials that were sent, if any.
+
+</description>
+</property>
+
<signal name="GDBusAuthObserver::allow-mechanism">
<description>
Emitted to check if @mechanism is allowed to be used.
@@ -1997,6 +798,11 @@ an owner for the destination name in response to this method
invocation.
</parameter_description>
</parameter>
+<parameter name="G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION">
+<parameter_description> the caller is prepared to
+wait for interactive authorization. Since 2.46.
+</parameter_description>
+</parameter>
</parameters>
</enum>
@@ -2060,6 +866,123 @@ remote peer closed its end of the connection
<return></return>
</signal>
+<property name="GDBusConnection:address">
+<description>
+A D-Bus address specifying potential endpoints that can be used
+when establishing the connection.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusConnection:authentication-observer">
+<description>
+A #GDBusAuthObserver object to assist in the authentication process or %NULL.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusConnection:capabilities">
+<description>
+Flags from the #GDBusCapabilityFlags enumeration
+representing connection features negotiated with the other peer.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusConnection:closed">
+<description>
+A boolean specifying whether the connection has been closed.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusConnection:exit-on-close">
+<description>
+A boolean specifying whether the process will be terminated (by
+calling `raise(SIGTERM)`) if the connection is closed by the
+remote peer.
+
+Note that #GDBusConnection objects returned by g_bus_get_finish()
+and g_bus_get_sync() will (usually) have this property set to %TRUE.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusConnection:flags">
+<description>
+Flags from the #GDBusConnectionFlags enumeration.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusConnection:guid">
+<description>
+The GUID of the peer performing the role of server when
+authenticating.
+
+If you are constructing a #GDBusConnection and pass
+%G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER in the
+#GDBusConnection:flags property then you MUST also set this
+property to a valid guid.
+
+If you are constructing a #GDBusConnection and pass
+%G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT in the
+#GDBusConnection:flags property you will be able to read the GUID
+of the other peer here after the connection has been successfully
+initialized.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusConnection:locked">
+<description>
+A boolean specifying whether the message is locked.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusConnection:stream">
+<description>
+The underlying #GIOStream used for I/O.
+
+If this is passed on construction and is a #GSocketConnection,
+then the corresponding #GSocket will be put into non-blocking mode.
+
+While the #GDBusConnection is active, it will interact with this
+stream from a worker thread, so it is not safe to interact with
+the stream directly.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusConnection:unique-name">
+<description>
+The unique name as assigned by the message bus or %NULL if the
+connection is not open or not a message bus connection.
+
+Since: 2.26
+
+</description>
+</property>
+
<enum name="GDBusConnectionFlags">
<description>
Flags used when creating a new #GDBusConnection.
@@ -2399,6 +1322,15 @@ Since: 2.30
</return>
</signal>
+<property name="GDBusInterfaceSkeleton:g-flags">
+<description>
+Flags from the #GDBusInterfaceSkeletonFlags enumeration.
+
+Since: 2.30
+
+</description>
+</property>
+
<enum name="GDBusInterfaceSkeletonFlags">
<description>
Flags describing the behavior of a #GDBusInterfaceSkeleton instance.
@@ -2461,6 +1393,12 @@ Since: 2.26
owner for the destination name in response to this message.
</parameter_description>
</parameter>
+<parameter name="G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION">
+<parameter_description> If set on a method
+call, this flag means that the caller is prepared to wait for interactive
+authorization. Since 2.46.
+</parameter_description>
+</parameter>
</parameters>
</enum>
@@ -2765,6 +1703,93 @@ Since: 2.30
<return></return>
</signal>
+<property name="GDBusObjectManagerClient:bus-type">
+<description>
+If this property is not %G_BUS_TYPE_NONE, then
+#GDBusObjectManagerClient:connection must be %NULL and will be set to the
+#GDBusConnection obtained by calling g_bus_get() with the value
+of this property.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GDBusObjectManagerClient:connection">
+<description>
+The #GDBusConnection to use.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GDBusObjectManagerClient:flags">
+<description>
+Flags from the #GDBusObjectManagerClientFlags enumeration.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GDBusObjectManagerClient:get-proxy-type-destroy-notify">
+<description>
+A #GDestroyNotify for the #gpointer user_data in #GDBusObjectManagerClient:get-proxy-type-user-data.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GDBusObjectManagerClient:get-proxy-type-func">
+<description>
+The #GDBusProxyTypeFunc to use when determining what #GType to
+use for interface proxies or %NULL.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GDBusObjectManagerClient:get-proxy-type-user-data">
+<description>
+The #gpointer user_data to pass to #GDBusObjectManagerClient:get-proxy-type-func.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GDBusObjectManagerClient:name">
+<description>
+The well-known name or unique name that the manager is for.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GDBusObjectManagerClient:name-owner">
+<description>
+The unique name that owns #GDBusObjectManagerClient:name or %NULL if
+no-one is currently owning the name. Connect to the
+#GObject::notify signal to track changes to this property.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GDBusObjectManagerClient:object-path">
+<description>
+The object path the manager is for.
+
+Since: 2.30
+
+</description>
+</property>
+
<enum name="GDBusObjectManagerClientFlags">
<description>
Flags used when constructing a #GDBusObjectManagerClient.
@@ -2787,6 +1812,42 @@ be used in managers for well-known names.
</parameters>
</enum>
+<property name="GDBusObjectManagerServer:connection">
+<description>
+The #GDBusConnection to export objects on.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GDBusObjectManagerServer:object-path">
+<description>
+The object path to register the manager object at.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GDBusObjectProxy:g-connection">
+<description>
+The connection of the proxy.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GDBusObjectProxy:g-object-path">
+<description>
+The object path of the proxy.
+
+Since: 2.30
+
+</description>
+</property>
+
<signal name="GDBusObjectSkeleton::authorize-method">
<description>
Emitted when a method is invoked by a remote caller and used to
@@ -2820,6 +1881,15 @@ Since: 2.30
</return>
</signal>
+<property name="GDBusObjectSkeleton:g-object-path">
+<description>
+The object path where the object is exported.
+
+Since: 2.30
+
+</description>
+</property>
+
<enum name="GDBusPropertyInfoFlags">
<description>
Flags describing the access control of a D-Bus property.
@@ -2906,6 +1976,122 @@ Since: 2.26
<return></return>
</signal>
+<property name="GDBusProxy:g-bus-type">
+<description>
+If this property is not %G_BUS_TYPE_NONE, then
+#GDBusProxy:g-connection must be %NULL and will be set to the
+#GDBusConnection obtained by calling g_bus_get() with the value
+of this property.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusProxy:g-connection">
+<description>
+The #GDBusConnection the proxy is for.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusProxy:g-default-timeout">
+<description>
+The timeout to use if -1 (specifying default timeout) is passed
+as @timeout_msec in the g_dbus_proxy_call() and
+g_dbus_proxy_call_sync() functions.
+
+This allows applications to set a proxy-wide timeout for all
+remote method invocations on the proxy. If this property is -1,
+the default timeout (typically 25 seconds) is used. If set to
+%G_MAXINT, then no timeout is used.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusProxy:g-flags">
+<description>
+Flags from the #GDBusProxyFlags enumeration.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusProxy:g-interface-info">
+<description>
+Ensure that interactions with this proxy conform to the given
+interface. This is mainly to ensure that malformed data received
+from the other peer is ignored. The given #GDBusInterfaceInfo is
+said to be the &quot;expected interface&quot;.
+
+The checks performed are:
+- When completing a method call, if the type signature of
+the reply message isn't what's expected, the reply is
+discarded and the #GError is set to %G_IO_ERROR_INVALID_ARGUMENT.
+
+- Received signals that have a type signature mismatch are dropped and
+a warning is logged via g_warning().
+
+- Properties received via the initial `GetAll()` call or via the
+`::PropertiesChanged` signal (on the
+[org.freedesktop.DBus.Properties](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties)
+interface) or set using g_dbus_proxy_set_cached_property()
+with a type signature mismatch are ignored and a warning is
+logged via g_warning().
+
+Note that these checks are never done on methods, signals and
+properties that are not referenced in the given
+#GDBusInterfaceInfo, since extending a D-Bus interface on the
+service-side is not considered an ABI break.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusProxy:g-interface-name">
+<description>
+The D-Bus interface name the proxy is for.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusProxy:g-name">
+<description>
+The well-known or unique name that the proxy is for.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusProxy:g-name-owner">
+<description>
+The unique name that owns #GDBusProxy:g-name or %NULL if no-one
+currently owns that name. You may connect to #GObject::notify signal to
+track changes to this property.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusProxy:g-object-path">
+<description>
+The object path the proxy is for.
+
+Since: 2.26
+
+</description>
+</property>
+
<enum name="GDBusProxyFlags">
<description>
Flags used when constructing an instance of a #GDBusProxy derived class.
@@ -3010,6 +2196,60 @@ run.
</return>
</signal>
+<property name="GDBusServer:active">
+<description>
+Whether the server is currently active.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusServer:address">
+<description>
+The D-Bus address to listen on.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusServer:authentication-observer">
+<description>
+A #GDBusAuthObserver object to assist in the authentication process or %NULL.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusServer:client-address">
+<description>
+The D-Bus address that clients can use.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusServer:flags">
+<description>
+Flags from the #GDBusServerFlags enumeration.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GDBusServer:guid">
+<description>
+The guid of the server.
+
+Since: 2.26
+
+</description>
+</property>
+
<enum name="GDBusServerFlags">
<description>
Flags used when creating a #GDBusServer.
@@ -3089,6 +2329,31 @@ to dynamically spawn objects in the subtree.
</parameters>
</enum>
+<property name="GDataOutputStream:byte-order">
+<description>
+Determines the byte ordering that is used when writing
+multi-byte entities (such as integers) to the stream.
+
+</description>
+</property>
+
+<property name="GDataStream:byte-order">
+<description>
+The ::byte-order property determines the byte ordering that
+is used when reading multi-byte entities (such as integers)
+from the stream.
+
+</description>
+</property>
+
+<property name="GDataStream:newline-type">
+<description>
+The :newline-type property determines what is considered
+as a line ending when reading complete lines from the stream.
+
+</description>
+</property>
+
<enum name="GDataStreamByteOrder">
<description>
#GDataStreamByteOrder is used to ensure proper endianness of streaming data sources
@@ -3137,6 +2402,13 @@ across various machine architectures.
</parameters>
</enum>
+<property name="GDesktopAppInfo:filename">
+<description>
+The origin filename of this #GDesktopAppInfo
+
+</description>
+</property>
+
<signal name="GDrive::changed">
<description>
Emitted when the drive's state has changed.
@@ -3439,6 +2711,13 @@ be exactly like that. Since 2.20
</parameters>
</enum>
+<property name="GFileIcon:file">
+<description>
+The file containing the icon.
+
+</description>
+</property>
+
<enum name="GFileMeasureFlags">
<description>
Flags that can be used with g_file_measure_disk_usage().
@@ -3476,7 +2755,28 @@ Compare with `du -x`.
<description>
Emitted when @file has been changed.
-If using #G_FILE_MONITOR_SEND_MOVED flag and @event_type is
+If using %G_FILE_MONITOR_WATCH_RENAMES on a directory monitor, and
+the information is available (and if supported by the backend),
+@event_type may be %G_FILE_MONITOR_EVENT_RENAMED,
+%G_FILE_MONITOR_EVENT_MOVED_IN or %G_FILE_MONITOR_EVENT_MOVED_OUT.
+
+In all cases @file will be a child of the monitored directory. For
+renames, @file will be the old name and @other_file is the new
+name. For &quot;moved in&quot; events, @file is the name of the file that
+appeared and @other_file is the old name that it was moved from (in
+another directory). For &quot;moved out&quot; events, @file is the name of
+the file that used to be in this directory and @other_file is the
+name of the file at its new location.
+
+It makes sense to treat %G_FILE_MONITOR_EVENT_MOVED_IN as
+equivalent to %G_FILE_MONITOR_EVENT_CREATED and
+%G_FILE_MONITOR_EVENT_MOVED_OUT as equivalent to
+%G_FILE_MONITOR_EVENT_DELETED, with extra information.
+%G_FILE_MONITOR_EVENT_RENAMED is equivalent to a delete/create
+pair. This is exactly how the events will be reported in the case
+that the %G_FILE_MONITOR_WATCH_RENAMES flag is not in use.
+
+If using the deprecated flag %G_FILE_MONITOR_SEND_MOVED flag and @event_type is
#G_FILE_MONITOR_EVENT_MOVED, @file will be set to a #GFile containing the
old path, and @other_file will be set to a #GFile containing the new path.
@@ -3539,7 +2839,26 @@ Specifies what type of event a monitor event is.
</parameter_description>
</parameter>
<parameter name="G_FILE_MONITOR_EVENT_MOVED">
-<parameter_description> the file was moved.
+<parameter_description> the file was moved -- only sent if the
+(deprecated) %G_FILE_MONITOR_SEND_MOVED flag is set
+</parameter_description>
+</parameter>
+<parameter name="G_FILE_MONITOR_EVENT_RENAMED">
+<parameter_description> the file was renamed within the
+current directory -- only sent if the %G_FILE_MONITOR_WATCH_MOVES
+flag is set. Since: 2.44.
+</parameter_description>
+</parameter>
+<parameter name="G_FILE_MONITOR_EVENT_MOVED_IN">
+<parameter_description> the file was moved into the
+monitored directory from another location -- only sent if the
+%G_FILE_MONITOR_WATCH_MOVES flag is set. Since: 2.44.
+</parameter_description>
+</parameter>
+<parameter name="G_FILE_MONITOR_EVENT_MOVED_OUT">
+<parameter_description> the file was moved out of the
+monitored directory to another location -- only sent if the
+%G_FILE_MONITOR_WATCH_MOVES flag is set. Since: 2.44
</parameter_description>
</parameter>
</parameters>
@@ -3564,7 +2883,8 @@ Flags used to set what a #GFileMonitor will watch for.
by file renames (moves) and send a single G_FILE_MONITOR_EVENT_MOVED
event instead (NB: not supported on all backends; the default
behaviour -without specifying this flag- is to send single DELETED
-and CREATED events).
+and CREATED events). Deprecated since 2.44: use
+%G_FILE_MONITOR_WATCH_MOVES instead.
</parameter_description>
</parameter>
<parameter name="G_FILE_MONITOR_WATCH_HARD_LINKS">
@@ -3572,6 +2892,13 @@ and CREATED events).
via another hard link. Since 2.36.
</parameter_description>
</parameter>
+<parameter name="G_FILE_MONITOR_WATCH_MOVES">
+<parameter_description> Watch for rename operations on a
+monitored directory. This causes %G_FILE_MONITOR_EVENT_RENAMED,
+%G_FILE_MONITOR_EVENT_MOVED_IN and %G_FILE_MONITOR_EVENT_MOVED_OUT
+events to be emitted when possible. Since: 2.44.
+</parameter_description>
+</parameter>
</parameters>
</enum>
@@ -3670,7 +2997,7 @@ Error codes returned by GIO functions.
Note that this domain may be extended in future GLib releases. In
general, new error codes either only apply to new APIs, or else
-replace #G_IO_ERROR_FAILED in cases that were not explicitly
+replace %G_IO_ERROR_FAILED in cases that were not explicitly
distinguished before. You should therefore avoid writing code like
|[&lt;!-- language=&quot;C&quot; --&gt;
if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_FAILED))
@@ -3873,6 +3200,18 @@ Since 2.26
<parameter_description> Broken pipe. Since 2.36
</parameter_description>
</parameter>
+<parameter name="G_IO_ERROR_CONNECTION_CLOSED">
+<parameter_description> Connection closed by peer. Note that this
+is the same code as %G_IO_ERROR_BROKEN_PIPE; before 2.44 some
+&quot;connection closed&quot; errors returned %G_IO_ERROR_BROKEN_PIPE, but others
+returned %G_IO_ERROR_FAILED. Now they should all return the same
+value, which has this more logical name. Since 2.44.
+</parameter_description>
+</parameter>
+<parameter name="G_IO_ERROR_NOT_CONNECTED">
+<parameter_description> Transport endpoint is not connected. Since 2.44
+</parameter_description>
+</parameter>
</parameters>
</enum>
@@ -3927,6 +3266,200 @@ before calling the callback.
</parameters>
</enum>
+<property name="GInetAddress:is-any">
+<description>
+Whether this is the &quot;any&quot; address for its family.
+See g_inet_address_get_is_any().
+
+Since: 2.22
+
+</description>
+</property>
+
+<property name="GInetAddress:is-link-local">
+<description>
+Whether this is a link-local address.
+See g_inet_address_get_is_link_local().
+
+Since: 2.22
+
+</description>
+</property>
+
+<property name="GInetAddress:is-loopback">
+<description>
+Whether this is the loopback address for its family.
+See g_inet_address_get_is_loopback().
+
+Since: 2.22
+
+</description>
+</property>
+
+<property name="GInetAddress:is-mc-global">
+<description>
+Whether this is a global multicast address.
+See g_inet_address_get_is_mc_global().
+
+Since: 2.22
+
+</description>
+</property>
+
+<property name="GInetAddress:is-mc-link-local">
+<description>
+Whether this is a link-local multicast address.
+See g_inet_address_get_is_mc_link_local().
+
+Since: 2.22
+
+</description>
+</property>
+
+<property name="GInetAddress:is-mc-node-local">
+<description>
+Whether this is a node-local multicast address.
+See g_inet_address_get_is_mc_node_local().
+
+Since: 2.22
+
+</description>
+</property>
+
+<property name="GInetAddress:is-mc-org-local">
+<description>
+Whether this is an organization-local multicast address.
+See g_inet_address_get_is_mc_org_local().
+
+Since: 2.22
+
+</description>
+</property>
+
+<property name="GInetAddress:is-mc-site-local">
+<description>
+Whether this is a site-local multicast address.
+See g_inet_address_get_is_mc_site_local().
+
+Since: 2.22
+
+</description>
+</property>
+
+<property name="GInetAddress:is-multicast">
+<description>
+Whether this is a multicast address.
+See g_inet_address_get_is_multicast().
+
+Since: 2.22
+
+</description>
+</property>
+
+<property name="GInetAddress:is-site-local">
+<description>
+Whether this is a site-local address.
+See g_inet_address_get_is_loopback().
+
+Since: 2.22
+
+</description>
+</property>
+
+<property name="GInetSocketAddress:flowinfo">
+<description>
+The `sin6_flowinfo` field, for IPv6 addresses.
+
+Since: 2.32
+
+</description>
+</property>
+
+<signal name="GListModel::items-changed">
+<description>
+This signal is emitted whenever items were added or removed to
+@list. At @position, @removed items were removed and @added items
+were added in their place.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> the #GListModel that changed
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the position at which @list changed
+</parameter_description>
+</parameter>
+<parameter name="removed">
+<parameter_description> the number of items removed
+</parameter_description>
+</parameter>
+<parameter name="added">
+<parameter_description> the number of items added
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</signal>
+
+<property name="GListStore:item-type">
+<description>
+The type of items contained in this list store. Items must be
+subclasses of #GObject.
+
+Since: 2.44
+
+</description>
+</property>
+
+<property name="GMemoryOutputStream:data">
+<description>
+Pointer to buffer where data will be written.
+
+Since: 2.24
+
+</description>
+</property>
+
+<property name="GMemoryOutputStream:data-size">
+<description>
+Size of data written to the buffer.
+
+Since: 2.24
+
+</description>
+</property>
+
+<property name="GMemoryOutputStream:destroy-function">
+<description>
+Function called with the buffer as argument when the stream is destroyed.
+
+Since: 2.24
+
+</description>
+</property>
+
+<property name="GMemoryOutputStream:realloc-function">
+<description>
+Function with realloc semantics called to enlarge the buffer.
+
+Since: 2.24
+
+</description>
+</property>
+
+<property name="GMemoryOutputStream:size">
+<description>
+Current size of the data buffer.
+
+Since: 2.24
+
+</description>
+</property>
+
<signal name="GMenuModel::items-changed">
<description>
Emitted when a change has occured to the menu.
@@ -4214,6 +3747,51 @@ is completed
<return></return>
</signal>
+<property name="GMountOperation:anonymous">
+<description>
+Whether to use an anonymous user when authenticating.
+
+</description>
+</property>
+
+<property name="GMountOperation:choice">
+<description>
+The index of the user's choice when a question is asked during the
+mount operation. See the #GMountOperation::ask-question signal.
+
+</description>
+</property>
+
+<property name="GMountOperation:domain">
+<description>
+The domain to use for the mount operation.
+
+</description>
+</property>
+
+<property name="GMountOperation:password">
+<description>
+The password that is used for authentication when carrying out
+the mount operation.
+
+</description>
+</property>
+
+<property name="GMountOperation:password-save">
+<description>
+Determines if and how the password information should be saved.
+
+</description>
+</property>
+
+<property name="GMountOperation:username">
+<description>
+The user name that is used for authentication when carrying out
+the mount operation.
+
+</description>
+</property>
+
<enum name="GMountOperationResult">
<description>
#GMountOperationResult is returned as a result when a request for
@@ -4257,6 +3835,39 @@ file operations on the mount.
</parameters>
</enum>
+<enum name="GNetworkConnectivity">
+<description>
+The host's network connectivity state, as reported by #GNetworkMonitor.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="G_NETWORK_CONNECTIVITY_LOCAL">
+<parameter_description> The host is not configured with a
+route to the Internet; it may or may not be connected to a local
+network.
+</parameter_description>
+</parameter>
+<parameter name="G_NETWORK_CONNECTIVITY_LIMITED">
+<parameter_description> The host is connected to a network, but
+does not appear to be able to reach the full Internet, perhaps
+due to upstream network problems.
+</parameter_description>
+</parameter>
+<parameter name="G_NETWORK_CONNECTIVITY_PORTAL">
+<parameter_description> The host is behind a captive portal and
+cannot reach the full Internet.
+</parameter_description>
+</parameter>
+<parameter name="G_NETWORK_CONNECTIVITY_FULL">
+<parameter_description> The host is connected to a network, and
+appears to be able to reach the full Internet.
+</parameter_description>
+</parameter>
+</parameters>
+</enum>
+
<signal name="GNetworkMonitor::network-changed">
<description>
Emitted when the network configuration changes. If @available is
@@ -4281,6 +3892,42 @@ Since: 2.32
<return></return>
</signal>
+<property name="GNetworkMonitor:connectivity">
+<description>
+More detailed information about the host's network connectivity.
+See g_network_monitor_get_connectivity() and
+#GNetworkConnectivity for more details.
+
+Since: 2.44
+
+</description>
+</property>
+
+<property name="GNetworkMonitor:network-available">
+<description>
+Whether the network is considered available. That is, whether the
+system has a default route for at least one of IPv4 or IPv6.
+
+Real-world networks are of course much more complicated than
+this; the machine may be connected to a wifi hotspot that
+requires payment before allowing traffic through, or may be
+connected to a functioning router that has lost its own upstream
+connectivity. Some hosts might only be accessible when a VPN is
+active. Other hosts might only be accessible when the VPN is
+not active. Thus, it is best to use g_network_monitor_can_reach()
+or g_network_monitor_can_reach_async() to test for reachability
+on a host-by-host basis. (On the other hand, when the property is
+%FALSE, the application can reasonably expect that no remote
+hosts at all are reachable, and should indicate this to the user
+in its UI.)
+
+See also #GNetworkMonitor::network-changed.
+
+Since: 2.32
+
+</description>
+</property>
+
<enum name="GNotificationPriority">
<description>
Priority levels for #GNotifications.
@@ -4363,6 +4010,153 @@ to, and later retrieves it again from there.
</parameters>
</enum>
+<property name="GPermission:allowed">
+<description>
+%TRUE if the caller currently has permission to perform the action that
+@permission represents the permission to perform.
+
+</description>
+</property>
+
+<property name="GPermission:can-acquire">
+<description>
+%TRUE if it is generally possible to acquire the permission by calling
+g_permission_acquire().
+
+</description>
+</property>
+
+<property name="GPermission:can-release">
+<description>
+%TRUE if it is generally possible to release the permission by calling
+g_permission_release().
+
+</description>
+</property>
+
+<property name="GPropertyAction:enabled">
+<description>
+If @action is currently enabled.
+
+If the action is disabled then calls to g_action_activate() and
+g_action_change_state() have no effect.
+
+Since: 2.38
+
+</description>
+</property>
+
+<property name="GPropertyAction:invert-boolean">
+<description>
+If %TRUE, the state of the action will be the negation of the
+property value, provided the property is boolean.
+
+Since: 2.46
+
+</description>
+</property>
+
+<property name="GPropertyAction:name">
+<description>
+The name of the action. This is mostly meaningful for identifying
+the action once it has been added to a #GActionMap.
+
+Since: 2.38
+
+</description>
+</property>
+
+<property name="GPropertyAction:object">
+<description>
+The object to wrap a property on.
+
+The object must be a non-%NULL #GObject with properties.
+
+Since: 2.38
+
+</description>
+</property>
+
+<property name="GPropertyAction:parameter-type">
+<description>
+The type of the parameter that must be given when activating the
+action.
+
+Since: 2.38
+
+</description>
+</property>
+
+<property name="GPropertyAction:property-name">
+<description>
+The name of the property to wrap on the object.
+
+The property must exist on the passed-in object and it must be
+readable and writable (and not construct-only).
+
+Since: 2.38
+
+</description>
+</property>
+
+<property name="GPropertyAction:state">
+<description>
+The state of the action, or %NULL if the action is stateless.
+
+Since: 2.38
+
+</description>
+</property>
+
+<property name="GPropertyAction:state-type">
+<description>
+The #GVariantType of the state that the action has, or %NULL if the
+action is stateless.
+
+Since: 2.38
+
+</description>
+</property>
+
+<property name="GProxyAddress:destination-protocol">
+<description>
+The protocol being spoke to the destination host, or %NULL if
+the #GProxyAddress doesn't know.
+
+Since: 2.34
+
+</description>
+</property>
+
+<property name="GProxyAddress:uri">
+<description>
+The URI string that the proxy was constructed from (or %NULL
+if the creator didn't specify this).
+
+Since: 2.34
+
+</description>
+</property>
+
+<property name="GProxyAddressEnumerator:default-port">
+<description>
+The default port to use if #GProxyAddressEnumerator:uri does not
+specify one.
+
+Since: 2.38
+
+</description>
+</property>
+
+<property name="GProxyAddressEnumerator:proxy-resolver">
+<description>
+The proxy resolver to use.
+
+Since: 2.36
+
+</description>
+</property>
+
<signal name="GResolver::reload">
<description>
Emitted when the resolver notices that the system resolver
@@ -4639,6 +4433,77 @@ callbacks when the writability of &quot;x&quot; changes.
<return></return>
</signal>
+<property name="GSettings:context">
+<description>
+The name of the context that the settings are stored in.
+
+</description>
+</property>
+
+<property name="GSettings:delay-apply">
+<description>
+Whether the #GSettings object is in 'delay-apply' mode. See
+g_settings_delay() for details.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GSettings:has-unapplied">
+<description>
+If this property is %TRUE, the #GSettings object has outstanding
+changes that will be applied when g_settings_apply() is called.
+
+</description>
+</property>
+
+<property name="GSettings:path">
+<description>
+The path within the backend where the settings are stored.
+
+</description>
+</property>
+
+<property name="GSettings:schema">
+<description>
+The name of the schema that describes the types of keys
+for this #GSettings object.
+
+The type of this property is *not* #GSettingsSchema.
+#GSettingsSchema has only existed since version 2.32 and
+unfortunately this name was used in previous versions to refer to
+the schema ID rather than the schema itself. Take care to use the
+'settings-schema' property if you wish to pass in a
+#GSettingsSchema.
+
+Deprecated:2.32:Use the 'schema-id' property instead. In a future
+version, this property may instead refer to a #GSettingsSchema.
+
+</description>
+</property>
+
+<property name="GSettings:schema-id">
+<description>
+The name of the schema that describes the types of keys
+for this #GSettings object.
+
+</description>
+</property>
+
+<property name="GSettings:settings-schema">
+<description>
+The #GSettingsSchema describing the types of keys for this
+#GSettings object.
+
+Ideally, this property would be called 'schema'. #GSettingsSchema
+has only existed since version 2.32, however, and before then the
+'schema' property was used to refer to the ID of the schema rather
+than the schema itself. Take care.
+
+</description>
+</property>
+
<enum name="GSettingsBindFlags">
<description>
Flags used when creating a binding. These flags determine in which
@@ -4760,6 +4625,169 @@ Since: 2.30
<return></return>
</signal>
+<property name="GSimpleAction:enabled">
+<description>
+If @action is currently enabled.
+
+If the action is disabled then calls to g_action_activate() and
+g_action_change_state() have no effect.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GSimpleAction:name">
+<description>
+The name of the action. This is mostly meaningful for identifying
+the action once it has been added to a #GSimpleActionGroup.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GSimpleAction:parameter-type">
+<description>
+The type of the parameter that must be given when activating the
+action.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GSimpleAction:state">
+<description>
+The state of the action, or %NULL if the action is stateless.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GSimpleAction:state-type">
+<description>
+The #GVariantType of the state that the action has, or %NULL if the
+action is stateless.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GSimpleIOStream:input-stream">
+<description>
+Since: 2.44
+
+</description>
+</property>
+
+<property name="GSimpleIOStream:output-stream">
+<description>
+Since: 2.44
+
+</description>
+</property>
+
+<property name="GSimpleProxyResolver:default-proxy">
+<description>
+The default proxy URI that will be used for any URI that doesn't
+match #GSimpleProxyResolver:ignore-hosts, and doesn't match any
+of the schemes set with g_simple_proxy_resolver_set_uri_proxy().
+
+Note that as a special case, if this URI starts with
+&quot;socks://&quot;, #GSimpleProxyResolver will treat it as referring
+to all three of the socks5, socks4a, and socks4 proxy types.
+
+</description>
+</property>
+
+<property name="GSimpleProxyResolver:ignore-hosts">
+<description>
+A list of hostnames and IP addresses that the resolver should
+allow direct connections to.
+
+Entries can be in one of 4 formats:
+
+- A hostname, such as &quot;example.com&quot;, &quot;.example.com&quot;, or
+&quot;*.example.com&quot;, any of which match &quot;example.com&quot; or
+any subdomain of it.
+
+- An IPv4 or IPv6 address, such as &quot;192.168.1.1&quot;,
+which matches only that address.
+
+- A hostname or IP address followed by a port, such as
+&quot;example.com:80&quot;, which matches whatever the hostname or IP
+address would match, but only for URLs with the (explicitly)
+indicated port. In the case of an IPv6 address, the address
+part must appear in brackets: &quot;[::1]:443&quot;
+
+- An IP address range, given by a base address and prefix length,
+such as &quot;fe80::/10&quot;, which matches any address in that range.
+
+Note that when dealing with Unicode hostnames, the matching is
+done against the ASCII form of the name.
+
+Also note that hostname exclusions apply only to connections made
+to hosts identified by name, and IP address exclusions apply only
+to connections made to hosts identified by address. That is, if
+example.com has an address of 192.168.1.1, and the :ignore-hosts list
+contains only &quot;192.168.1.1&quot;, then a connection to &quot;example.com&quot;
+(eg, via a #GNetworkAddress) will use the proxy, and a connection to
+&quot;192.168.1.1&quot; (eg, via a #GInetSocketAddress) will not.
+
+These rules match the &quot;ignore-hosts&quot;/&quot;noproxy&quot; rules most
+commonly used by other applications.
+
+</description>
+</property>
+
+<property name="GSocket:broadcast">
+<description>
+Whether the socket should allow sending to broadcast addresses.
+
+Since: 2.32
+
+</description>
+</property>
+
+<property name="GSocket:multicast-loopback">
+<description>
+Whether outgoing multicast packets loop back to the local host.
+
+Since: 2.32
+
+</description>
+</property>
+
+<property name="GSocket:multicast-ttl">
+<description>
+Time-to-live out outgoing multicast packets
+
+Since: 2.32
+
+</description>
+</property>
+
+<property name="GSocket:timeout">
+<description>
+The timeout in seconds on socket I/O
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GSocket:ttl">
+<description>
+Time-to-live for outgoing unicast packets
+
+Since: 2.32
+
+</description>
+</property>
+
<signal name="GSocketClient::event">
<description>
Emitted when @client's activity on @connectable changes state.
@@ -4836,6 +4864,15 @@ Since: 2.32
<return></return>
</signal>
+<property name="GSocketClient:proxy-resolver">
+<description>
+The proxy resolver to use
+
+Since: 2.36
+
+</description>
+</property>
+
<enum name="GSocketClientEvent">
<description>
Describes an event occurring on a #GSocketClient. See the
@@ -4922,6 +4959,65 @@ Since: 2.22
</parameters>
</enum>
+<signal name="GSocketListener::event">
+<description>
+Emitted when @listener's activity on @socket changes state.
+Note that when @listener is used to listen on both IPv4 and
+IPv6, a separate set of signals will be emitted for each, and
+the order they happen in is undefined.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="listener">
+<parameter_description> the #GSocketListener
+</parameter_description>
+</parameter>
+<parameter name="event">
+<parameter_description> the event that is occurring
+</parameter_description>
+</parameter>
+<parameter name="socket">
+<parameter_description> the #GSocket the event is occurring on
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</signal>
+
+<enum name="GSocketListenerEvent">
+<description>
+Describes an event occurring on a #GSocketListener. See the
+#GSocketListener::event signal for more details.
+
+Additional values may be added to this type in the future.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="G_SOCKET_LISTENER_BINDING">
+<parameter_description> The listener is about to bind a socket.
+</parameter_description>
+</parameter>
+<parameter name="G_SOCKET_LISTENER_BOUND">
+<parameter_description> The listener has bound a socket.
+</parameter_description>
+</parameter>
+<parameter name="G_SOCKET_LISTENER_LISTENING">
+<parameter_description> The listener is about to start
+listening on this socket.
+</parameter_description>
+</parameter>
+<parameter name="G_SOCKET_LISTENER_LISTENED">
+<parameter_description> The listener is now listening on
+this socket.
+</parameter_description>
+</parameter>
+</parameters>
+</enum>
+
<enum name="GSocketMsgFlags">
<description>
Flags used in g_socket_receive_message() and g_socket_send_message().
@@ -5124,6 +5220,32 @@ over the &quot;standard&quot; file descriptors (stdin, stdout, stderr).
</parameters>
</enum>
+<property name="GTask:completed">
+<description>
+Whether the task has completed, meaning its callback (if set) has been
+invoked. This can only happen after g_task_return_pointer(),
+g_task_return_error() or one of the other return functions have been called
+on the task.
+
+This property is guaranteed to change from %FALSE to %TRUE exactly once.
+
+The #GObject::notify signal for this change is emitted in the same main
+context as the task’s callback, immediately after that callback is invoked.
+
+Since: 2.44
+
+</description>
+</property>
+
+<property name="GTestDBus:flags">
+<description>
+#GTestDBusFlags specifying the behaviour of the D-Bus session.
+
+Since: 2.34
+
+</description>
+</property>
+
<enum name="GTestDBusFlags">
<description>
Flags to define future #GTestDBus behaviour.
@@ -5139,6 +5261,41 @@ Since: 2.34
</parameters>
</enum>
+<property name="GThemedIcon:name">
+<description>
+The icon name.
+
+</description>
+</property>
+
+<property name="GThemedIcon:names">
+<description>
+A %NULL-terminated array of icon names.
+
+</description>
+</property>
+
+<property name="GThemedIcon:use-default-fallbacks">
+<description>
+Whether to use the default fallbacks found by shortening the icon name
+at '-' characters. If the &quot;names&quot; array has more than one element,
+ignores any past the first.
+
+For example, if the icon name was &quot;gnome-dev-cdrom-audio&quot;, the array
+would become
+|[&lt;!-- language=&quot;C&quot; --&gt;
+{
+&quot;gnome-dev-cdrom-audio&quot;,
+&quot;gnome-dev-cdrom&quot;,
+&quot;gnome-dev&quot;,
+&quot;gnome&quot;,
+NULL
+};
+]|
+
+</description>
+</property>
+
<signal name="GThreadedSocketService::run">
<description>
The ::run signal is emitted in a worker thread in response to an
@@ -5189,6 +5346,75 @@ Since: 2.28
</parameters>
</enum>
+<property name="GTlsCertificate:certificate">
+<description>
+The DER (binary) encoded representation of the certificate.
+This property and the #GTlsCertificate:certificate-pem property
+represent the same data, just in different forms.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsCertificate:certificate-pem">
+<description>
+The PEM (ASCII) encoded representation of the certificate.
+This property and the #GTlsCertificate:certificate
+property represent the same data, just in different forms.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsCertificate:issuer">
+<description>
+A #GTlsCertificate representing the entity that issued this
+certificate. If %NULL, this means that the certificate is either
+self-signed, or else the certificate of the issuer is not
+available.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsCertificate:private-key">
+<description>
+The DER (binary) encoded representation of the certificate's
+private key, in either PKCS#1 format or unencrypted PKCS#8
+format. This property (or the #GTlsCertificate:private-key-pem
+property) can be set when constructing a key (eg, from a file),
+but cannot be read.
+
+PKCS#8 format is supported since 2.32; earlier releases only
+support PKCS#1. You can use the `openssl rsa`
+tool to convert PKCS#8 keys to PKCS#1.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsCertificate:private-key-pem">
+<description>
+The PEM (ASCII) encoded representation of the certificate's
+private key in either PKCS#1 format (&quot;`BEGIN RSA PRIVATE
+KEY`&quot;) or unencrypted PKCS#8 format (&quot;`BEGIN
+PRIVATE KEY`&quot;). This property (or the
+#GTlsCertificate:private-key property) can be set when
+constructing a key (eg, from a file), but cannot be read.
+
+PKCS#8 format is supported since 2.32; earlier releases only
+support PKCS#1. You can use the `openssl rsa`
+tool to convert PKCS#8 keys to PKCS#1.
+
+Since: 2.28
+
+</description>
+</property>
+
<enum name="GTlsCertificateFlags">
<description>
A set of flags describing TLS certification validation. This can be
@@ -5260,6 +5486,73 @@ Since: 2.40
</parameters>
</enum>
+<property name="GTlsClientConnection:accepted-cas">
+<description>
+A list of the distinguished names of the Certificate Authorities
+that the server will accept client certificates signed by. If the
+server requests a client certificate during the handshake, then
+this property will be set after the handshake completes.
+
+Each item in the list is a #GByteArray which contains the complete
+subject DN of the certificate authority.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsClientConnection:server-identity">
+<description>
+A #GSocketConnectable describing the identity of the server that
+is expected on the other end of the connection.
+
+If the %G_TLS_CERTIFICATE_BAD_IDENTITY flag is set in
+#GTlsClientConnection:validation-flags, this object will be used
+to determine the expected identify of the remote end of the
+connection; if #GTlsClientConnection:server-identity is not set,
+or does not match the identity presented by the server, then the
+%G_TLS_CERTIFICATE_BAD_IDENTITY validation will fail.
+
+In addition to its use in verifying the server certificate,
+this is also used to give a hint to the server about what
+certificate we expect, which is useful for servers that serve
+virtual hosts.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsClientConnection:use-ssl3">
+<description>
+If %TRUE, tells the connection to use a fallback version of TLS
+or SSL, rather than trying to negotiate the best version of TLS
+to use. This can be used when talking to servers that don't
+implement version negotiation correctly and therefore refuse to
+handshake at all with a &quot;modern&quot; TLS handshake.
+
+Despite the property name, the fallback version is not
+necessarily SSL 3.0; if SSL 3.0 has been disabled, the
+#GTlsClientConnection will use the next highest available version
+(normally TLS 1.0) as the fallback version.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsClientConnection:validation-flags">
+<description>
+What steps to perform when validating a certificate received from
+a server. Server certificates that fail to validate in all of the
+ways indicated here will be rejected unless the application
+overrides the default via #GTlsConnection::accept-certificate.
+
+Since: 2.28
+
+</description>
+</property>
+
<signal name="GTlsConnection::accept-certificate">
<description>
Emitted during the TLS handshake after the peer certificate has
@@ -5321,6 +5614,107 @@ no one else overrides it.
</return>
</signal>
+<property name="GTlsConnection:base-io-stream">
+<description>
+The #GIOStream that the connection wraps
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsConnection:certificate">
+<description>
+The connection's certificate; see
+g_tls_connection_set_certificate().
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsConnection:database">
+<description>
+The certificate database to use when verifying this TLS connection.
+If no cerificate database is set, then the default database will be
+used. See g_tls_backend_get_default_database().
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GTlsConnection:interaction">
+<description>
+A #GTlsInteraction object to be used when the connection or certificate
+database need to interact with the user. This will be used to prompt the
+user for passwords where necessary.
+
+Since: 2.30
+
+</description>
+</property>
+
+<property name="GTlsConnection:peer-certificate">
+<description>
+The connection's peer's certificate, after the TLS handshake has
+completed and the certificate has been accepted. Note in
+particular that this is not yet set during the emission of
+#GTlsConnection::accept-certificate.
+
+(You can watch for a #GObject::notify signal on this property to
+detect when a handshake has occurred.)
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsConnection:peer-certificate-errors">
+<description>
+The errors noticed-and-ignored while verifying
+#GTlsConnection:peer-certificate. Normally this should be 0, but
+it may not be if #GTlsClientConnection:validation-flags is not
+%G_TLS_CERTIFICATE_VALIDATE_ALL, or if
+#GTlsConnection::accept-certificate overrode the default
+behavior.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsConnection:rehandshake-mode">
+<description>
+The rehandshaking mode. See
+g_tls_connection_set_rehandshake_mode().
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsConnection:require-close-notify">
+<description>
+Whether or not proper TLS close notification is required.
+See g_tls_connection_set_require_close_notify().
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GTlsConnection:use-system-certdb">
+<description>
+Whether or not the system certificate database will be used to
+verify peer certificates. See
+g_tls_connection_set_use_system_certdb().
+
+Deprecated: 2.30: Use GTlsConnection:database instead
+
+</description>
+</property>
+
<enum name="GTlsDatabaseLookupFlags">
<description>
Flags for g_tls_database_lookup_certificate_handle(),
@@ -5404,6 +5798,18 @@ g_tls_connection_set_require_close_notify().
</parameters>
</enum>
+<property name="GTlsFileDatabase:anchors">
+<description>
+The path to a file containing PEM encoded certificate authority
+root anchors. The certificates in this file will be treated as
+root authorities for the purpose of verifying other certificates
+via the g_tls_database_verify_chain() operation.
+
+Since: 2.30
+
+</description>
+</property>
+
<enum name="GTlsInteractionResult">
<description>
#GTlsInteractionResult is returned by various functions in #GTlsInteraction
@@ -5484,6 +5890,44 @@ Since: 2.28
</parameters>
</enum>
+<property name="GTlsServerConnection:authentication-mode">
+<description>
+The #GTlsAuthenticationMode for the server. This can be changed
+before calling g_tls_connection_handshake() if you want to
+rehandshake with a different mode from the initial handshake.
+
+Since: 2.28
+
+</description>
+</property>
+
+<property name="GUnixCredentialsMessage:credentials">
+<description>
+The credentials stored in the message.
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GUnixInputStream:close-fd">
+<description>
+Whether to close the file descriptor when the stream is closed.
+
+Since: 2.20
+
+</description>
+</property>
+
+<property name="GUnixInputStream:fd">
+<description>
+The file descriptor that the stream reads from.
+
+Since: 2.20
+
+</description>
+</property>
+
<signal name="GUnixMountMonitor::mountpoints-changed">
<description>
Emitted when the unix mount points have changed.
@@ -5573,6 +6017,35 @@ Types of UNIX mounts.
</parameters>
</enum>
+<property name="GUnixOutputStream:close-fd">
+<description>
+Whether to close the file descriptor when the stream is closed.
+
+Since: 2.20
+
+</description>
+</property>
+
+<property name="GUnixOutputStream:fd">
+<description>
+The file descriptor that the stream writes to.
+
+Since: 2.20
+
+</description>
+</property>
+
+<property name="GUnixSocketAddress:abstract">
+<description>
+Whether or not this is an abstract address
+
+Deprecated: Use #GUnixSocketAddress:address-type, which
+distinguishes between zero-padded and non-zero-padded
+abstract addresses.
+
+</description>
+</property>
+
<enum name="GUnixSocketAddressType">
<description>
The type of name used by a #GUnixSocketAddress.
@@ -5859,13659 +6332,106 @@ Emitted when a mountable volume is removed from the system.
<return></return>
</signal>
-<enum name="GZlibCompressorFormat">
-<description>
-Used to select the type of data format to use for #GZlibDecompressor
-and #GZlibCompressor.
-
-Since: 2.24
-
-</description>
-<parameters>
-<parameter name="G_ZLIB_COMPRESSOR_FORMAT_ZLIB">
-<parameter_description> deflate compression with zlib header
-</parameter_description>
-</parameter>
-<parameter name="G_ZLIB_COMPRESSOR_FORMAT_GZIP">
-<parameter_description> gzip file format
-</parameter_description>
-</parameter>
-<parameter name="G_ZLIB_COMPRESSOR_FORMAT_RAW">
-<parameter_description> deflate compression with no header
-</parameter_description>
-</parameter>
-</parameters>
-</enum>
-
-<function name="convert_kqueue_events_to_gio">
-<description>
-Translates kqueue filter flags into GIO event flags.
-
-
-</description>
-<parameters>
-<parameter name="flags">
-<parameter_description> a set of kqueue filter flags
-</parameter_description>
-</parameter>
-<parameter name="done">
-<parameter_description> a pointer to #gboolean indicating that the
-conversion has been done (out)
-</parameter_description>
-</parameter>
-</parameters>
-<return> a #GFileMonitorEvent
-</return>
-</function>
-
-<function name="example_animal_call_poke">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-gtk-GDBus-Example-ObjectManager-Animal.Poke&quot;&gt;Poke()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call example_animal_call_poke_finish() to get the result of the operation.
-
-See example_animal_call_poke_sync() for the synchronous, blocking version of this method.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #ExampleAnimalProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_make_sad">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_make_happy">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_animal_call_poke_finish">
-<description>
-Finishes an operation started with example_animal_call_poke().
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #ExampleAnimalProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to example_animal_call_poke().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-
-</return>
-</function>
-
-<function name="example_animal_call_poke_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-gtk-GDBus-Example-ObjectManager-Animal.Poke&quot;&gt;Poke()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See example_animal_call_poke() for the asynchronous version of this method.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #ExampleAnimalProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_make_sad">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_make_happy">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-
-</return>
-</function>
-
-<function name="example_animal_complete_poke">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-gtk-GDBus-Example-ObjectManager-Animal.Poke&quot;&gt;Poke()&lt;/link&gt; 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.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_animal_dup_bar">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-gtk-GDBus-Example-ObjectManager-Animal.Bar&quot;&gt;&quot;Bar&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-Since: 2.36
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-
-</return>
-</function>
-
-<function name="example_animal_dup_foo">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-gtk-GDBus-Example-ObjectManager-Animal.Foo&quot;&gt;&quot;Foo&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-
-</return>
-</function>
-
-<function name="example_animal_dup_mood">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-gtk-GDBus-Example-ObjectManager-Animal.Mood&quot;&gt;&quot;Mood&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-
-</return>
-</function>
-
-<function name="example_animal_emit_jumped">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-org-gtk-GDBus-Example-ObjectManager-Animal.Jumped&quot;&gt;&quot;Jumped&quot;&lt;/link&gt; D-Bus signal.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-<parameter name="arg_height">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_animal_get_bar">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-gtk-GDBus-Example-ObjectManager-Animal.Bar&quot;&gt;&quot;Bar&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 example_animal_dup_bar() if on another thread.&lt;/warning&gt;
-
-Since: 2.36
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-
-</return>
-</function>
-
-<function name="example_animal_get_foo">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-gtk-GDBus-Example-ObjectManager-Animal.Foo&quot;&gt;&quot;Foo&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 example_animal_dup_foo() if on another thread.&lt;/warning&gt;
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-
-</return>
-</function>
-
-<function name="example_animal_get_mood">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-gtk-GDBus-Example-ObjectManager-Animal.Mood&quot;&gt;&quot;Mood&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 example_animal_dup_mood() if on another thread.&lt;/warning&gt;
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-
-</return>
-</function>
-
-<function name="example_animal_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Animal.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Animal&lt;/link&gt; D-Bus interface.
-
-Since: 2.30
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-
-</return>
-</function>
-
-<function name="example_animal_override_properties">
-<description>
-Overrides all #GObject properties in the #ExampleAnimal interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-
-</return>
-</function>
-
-<function name="example_animal_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Animal.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Animal&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call example_animal_proxy_new_finish() to get the result of the operation.
-
-See example_animal_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_animal_proxy_new_finish">
-<description>
-Finishes an operation started with example_animal_proxy_new().
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to example_animal_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-
-</return>
-</function>
-
-<function name="example_animal_proxy_new_for_bus">
-<description>
-Like example_animal_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call example_animal_proxy_new_for_bus_finish() to get the result of the operation.
-
-See example_animal_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_animal_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with example_animal_proxy_new_for_bus().
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to example_animal_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-
-</return>
-</function>
-
-<function name="example_animal_proxy_new_for_bus_sync">
-<description>
-Like example_animal_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See example_animal_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-
-</return>
-</function>
-
-<function name="example_animal_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Animal.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Animal&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See example_animal_proxy_new() for the asynchronous version of this constructor.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-
-</return>
-</function>
-
-<function name="example_animal_set_bar">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-gtk-GDBus-Example-ObjectManager-Animal.Bar&quot;&gt;&quot;Bar&quot;&lt;/link&gt; 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.
-
-Since: 2.36
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_animal_set_foo">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-gtk-GDBus-Example-ObjectManager-Animal.Foo&quot;&gt;&quot;Foo&quot;&lt;/link&gt; 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.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_animal_set_mood">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-gtk-GDBus-Example-ObjectManager-Animal.Mood&quot;&gt;&quot;Mood&quot;&lt;/link&gt; 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.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleAnimal.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_animal_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Animal.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Animal&lt;/link&gt;.
-
-Since: 2.30
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-
-</return>
-</function>
-
-<function name="example_cat_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Cat.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Cat&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="example_cat_override_properties">
-<description>
-Overrides all #GObject properties in the #ExampleCat interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="example_cat_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Cat.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Cat&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call example_cat_proxy_new_finish() to get the result of the operation.
-
-See example_cat_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_cat_proxy_new_finish">
-<description>
-Finishes an operation started with example_cat_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to example_cat_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="example_cat_proxy_new_for_bus">
-<description>
-Like example_cat_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call example_cat_proxy_new_for_bus_finish() to get the result of the operation.
-
-See example_cat_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_cat_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with example_cat_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to example_cat_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="example_cat_proxy_new_for_bus_sync">
-<description>
-Like example_cat_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See example_cat_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="example_cat_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Cat.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Cat&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See example_cat_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="example_cat_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Cat.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Cat&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="example_object_get_animal">
-<description>
-Gets the #ExampleAnimal instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Animal.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Animal&lt;/link&gt; on @object, if any.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #ExampleAnimal that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-
-</return>
-</function>
-
-<function name="example_object_get_cat">
-<description>
-Gets the #ExampleCat instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Cat.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Cat&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #ExampleCat that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="example_object_manager_client_get_proxy_type">
-<description>
-A #GDBusProxyTypeFunc that maps @interface_name to the generated #GDBusObjectProxy&lt;!-- --&gt;- and #GDBusProxy&lt;!-- --&gt;-derived types.
-
-
-</description>
-<parameters>
-<parameter name="manager">
-<parameter_description> A #GDBusObjectManagerClient.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> The object path of the remote object (unused).
-</parameter_description>
-</parameter>
-<parameter name="interface_name">
-<parameter_description> Interface name of the remote object or %NULL to get the object proxy #GType.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data (unused).
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #GDBusProxy&lt;!-- --&gt;-derived #GType if @interface_name is not %NULL, otherwise the #GType for #ExampleObjectProxy.
-</return>
-</function>
-
-<function name="example_object_manager_client_new">
-<description>
-Asynchronously creates #GDBusObjectManagerClient using example_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call example_object_manager_client_new_finish() to get the result of the operation.
-
-See example_object_manager_client_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusObjectManagerClientFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_object_manager_client_new_finish">
-<description>
-Finishes an operation started with example_object_manager_client_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to example_object_manager_client_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed object manager client or %NULL if @error is set.
-</return>
-</function>
-
-<function name="example_object_manager_client_new_for_bus">
-<description>
-Like example_object_manager_client_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call example_object_manager_client_new_for_bus_finish() to get the result of the operation.
-
-See example_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusObjectManagerClientFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_object_manager_client_new_for_bus_finish">
-<description>
-Finishes an operation started with example_object_manager_client_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to example_object_manager_client_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed object manager client or %NULL if @error is set.
-</return>
-</function>
-
-<function name="example_object_manager_client_new_for_bus_sync">
-<description>
-Like example_object_manager_client_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See example_object_manager_client_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusObjectManagerClientFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed object manager client or %NULL if @error is set.
-</return>
-</function>
-
-<function name="example_object_manager_client_new_sync">
-<description>
-Synchronously creates #GDBusObjectManagerClient using example_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See example_object_manager_client_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusObjectManagerClientFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed object manager client or %NULL if @error is set.
-</return>
-</function>
-
-<function name="example_object_peek_animal">
-<description>
-Like example_object_get_animal() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #ExampleAnimal or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-
-</return>
-</function>
-
-<function name="example_object_peek_cat">
-<description>
-Like example_object_get_cat() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #ExampleCat or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="example_object_proxy_new">
-<description>
-Creates a new proxy object.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The proxy object.
-</return>
-</function>
-
-<function name="example_object_skeleton_new">
-<description>
-Creates a new skeleton object.
-
-
-</description>
-<parameters>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="example_object_skeleton_set_animal">
-<description>
-Sets the #ExampleAnimal instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Animal.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Animal&lt;/link&gt; on @object.
-
-Since: 2.30
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #ExampleAnimal or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="example_object_skeleton_set_cat">
-<description>
-Sets the #ExampleCat instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-gtk-GDBus-Example-ObjectManager-Cat.top_of_page&quot;&gt;org.gtk.GDBus.Example.ObjectManager.Cat&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #ExampleObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #ExampleCat or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="fen_add">
-<description>
-Won't hold a ref, we have a timout callback to clean unused node_t.
-If there is no value for a key, add it and return it; else return the old
-one.
-
-</description>
-<parameters>
-</parameters>
-<return></return>
-</function>
-
-<function name="fen_init">
-<description>
-FEN subsystem initializing.
-
-</description>
-<parameters>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_authorize_call_check_authorized">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckAuthorized&quot;&gt;CheckAuthorized()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_authorize_call_check_authorized_finish() to get the result of the operation.
-
-See foo_igen_authorize_call_check_authorized_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenAuthorizeProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_authorize_call_check_authorized_finish">
-<description>
-Finishes an operation started with foo_igen_authorize_call_check_authorized().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenAuthorizeProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_authorize_call_check_authorized().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_authorize_call_check_authorized_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckAuthorized&quot;&gt;CheckAuthorized()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_authorize_call_check_authorized() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenAuthorizeProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_authorize_call_check_not_authorized">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckNotAuthorized&quot;&gt;CheckNotAuthorized()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_authorize_call_check_not_authorized_finish() to get the result of the operation.
-
-See foo_igen_authorize_call_check_not_authorized_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenAuthorizeProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_authorize_call_check_not_authorized_finish">
-<description>
-Finishes an operation started with foo_igen_authorize_call_check_not_authorized().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenAuthorizeProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_authorize_call_check_not_authorized().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_authorize_call_check_not_authorized_from_object">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckNotAuthorizedFromObject&quot;&gt;CheckNotAuthorizedFromObject()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_authorize_call_check_not_authorized_from_object_finish() to get the result of the operation.
-
-See foo_igen_authorize_call_check_not_authorized_from_object_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenAuthorizeProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_authorize_call_check_not_authorized_from_object_finish">
-<description>
-Finishes an operation started with foo_igen_authorize_call_check_not_authorized_from_object().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenAuthorizeProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_authorize_call_check_not_authorized_from_object().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_authorize_call_check_not_authorized_from_object_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckNotAuthorizedFromObject&quot;&gt;CheckNotAuthorizedFromObject()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_authorize_call_check_not_authorized_from_object() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenAuthorizeProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_authorize_call_check_not_authorized_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckNotAuthorized&quot;&gt;CheckNotAuthorized()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_authorize_call_check_not_authorized() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenAuthorizeProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_authorize_complete_check_authorized">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckAuthorized&quot;&gt;CheckAuthorized()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenAuthorize.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_authorize_complete_check_not_authorized">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckNotAuthorized&quot;&gt;CheckNotAuthorized()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenAuthorize.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_authorize_complete_check_not_authorized_from_object">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Authorize.CheckNotAuthorizedFromObject&quot;&gt;CheckNotAuthorizedFromObject()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenAuthorize.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_authorize_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-org-project-Authorize.top_of_page&quot;&gt;org.project.Authorize&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_authorize_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenAuthorize interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_authorize_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Authorize.top_of_page&quot;&gt;org.project.Authorize&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_authorize_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_authorize_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_authorize_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_authorize_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_authorize_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_authorize_proxy_new_for_bus">
-<description>
-Like foo_igen_authorize_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_authorize_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_authorize_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_authorize_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_authorize_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_authorize_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_authorize_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_authorize_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_authorize_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_authorize_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Authorize.top_of_page&quot;&gt;org.project.Authorize&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_authorize_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_authorize_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Authorize.top_of_page&quot;&gt;org.project.Authorize&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_hello_world">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.HelloWorld&quot;&gt;HelloWorld()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_call_hello_world_finish() to get the result of the operation.
-
-See foo_igen_bar_call_hello_world_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_call_hello_world_finish">
-<description>
-Finishes an operation started with foo_igen_bar_call_hello_world().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="out_response">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_call_hello_world().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_hello_world_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.HelloWorld&quot;&gt;HelloWorld()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_call_hello_world() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="out_response">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_property_cancellation">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.PropertyCancellation&quot;&gt;PropertyCancellation()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_call_property_cancellation_finish() to get the result of the operation.
-
-See foo_igen_bar_call_property_cancellation_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_call_property_cancellation_finish">
-<description>
-Finishes an operation started with foo_igen_bar_call_property_cancellation().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_call_property_cancellation().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_property_cancellation_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.PropertyCancellation&quot;&gt;PropertyCancellation()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_call_property_cancellation() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_request_multi_property_mods">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.RequestMultiPropertyMods&quot;&gt;RequestMultiPropertyMods()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_call_request_multi_property_mods_finish() to get the result of the operation.
-
-See foo_igen_bar_call_request_multi_property_mods_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_call_request_multi_property_mods_finish">
-<description>
-Finishes an operation started with foo_igen_bar_call_request_multi_property_mods().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_call_request_multi_property_mods().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_request_multi_property_mods_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.RequestMultiPropertyMods&quot;&gt;RequestMultiPropertyMods()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_call_request_multi_property_mods() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_request_signal_emission">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.RequestSignalEmission&quot;&gt;RequestSignalEmission()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_call_request_signal_emission_finish() to get the result of the operation.
-
-See foo_igen_bar_call_request_signal_emission_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_which_one">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_call_request_signal_emission_finish">
-<description>
-Finishes an operation started with foo_igen_bar_call_request_signal_emission().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_call_request_signal_emission().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_request_signal_emission_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.RequestSignalEmission&quot;&gt;RequestSignalEmission()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_call_request_signal_emission() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_which_one">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_test_non_primitive_types">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.TestNonPrimitiveTypes&quot;&gt;TestNonPrimitiveTypes()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_call_test_non_primitive_types_finish() to get the result of the operation.
-
-See foo_igen_bar_call_test_non_primitive_types_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_dict_s_to_s">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_dict_s_to_pairs">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_a_struct">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_strings">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_objpaths">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_signatures">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_bytestrings">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_call_test_non_primitive_types_finish">
-<description>
-Finishes an operation started with foo_igen_bar_call_test_non_primitive_types().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="out_result">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_call_test_non_primitive_types().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_test_non_primitive_types_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.TestNonPrimitiveTypes&quot;&gt;TestNonPrimitiveTypes()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_call_test_non_primitive_types() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_dict_s_to_s">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_dict_s_to_pairs">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_a_struct">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_strings">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_objpaths">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_signatures">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_bytestrings">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="out_result">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_test_primitive_types">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.TestPrimitiveTypes&quot;&gt;TestPrimitiveTypes()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_call_test_primitive_types_finish() to get the result of the operation.
-
-See foo_igen_bar_call_test_primitive_types_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_byte">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_boolean">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_int16">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_uint16">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_int32">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_uint32">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_int64">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_uint64">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_double">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_string">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_objpath">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_signature">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_bytestring">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_call_test_primitive_types_finish">
-<description>
-Finishes an operation started with foo_igen_bar_call_test_primitive_types().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_byte">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_boolean">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_int16">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_uint16">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_int32">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_uint32">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_int64">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_uint64">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_double">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_string">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_objpath">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_signature">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_bytestring">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_call_test_primitive_types().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_test_primitive_types_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.TestPrimitiveTypes&quot;&gt;TestPrimitiveTypes()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_call_test_primitive_types() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_byte">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_boolean">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_int16">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_uint16">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_int32">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_uint32">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_int64">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_uint64">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_double">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_string">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_objpath">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_signature">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_bytestring">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_byte">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_boolean">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_int16">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_uint16">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_int32">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_uint32">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_int64">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_uint64">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_double">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_string">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_objpath">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_signature">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_ret_bytestring">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_unimplemented_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.UnimplementedMethod&quot;&gt;UnimplementedMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_call_unimplemented_method_finish() to get the result of the operation.
-
-See foo_igen_bar_call_unimplemented_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_call_unimplemented_method_finish">
-<description>
-Finishes an operation started with foo_igen_bar_call_unimplemented_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_call_unimplemented_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_call_unimplemented_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar.UnimplementedMethod&quot;&gt;UnimplementedMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_call_unimplemented_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_complete_hello_world">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Bar.HelloWorld&quot;&gt;HelloWorld()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="response">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_complete_property_cancellation">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Bar.PropertyCancellation&quot;&gt;PropertyCancellation()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_complete_request_multi_property_mods">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Bar.RequestMultiPropertyMods&quot;&gt;RequestMultiPropertyMods()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_complete_request_signal_emission">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Bar.RequestSignalEmission&quot;&gt;RequestSignalEmission()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_complete_test_non_primitive_types">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Bar.TestNonPrimitiveTypes&quot;&gt;TestNonPrimitiveTypes()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="result">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_complete_test_primitive_types">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Bar.TestPrimitiveTypes&quot;&gt;TestPrimitiveTypes()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="ret_byte">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_boolean">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_int16">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_uint16">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_int32">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_uint32">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_int64">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_uint64">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_double">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_string">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_objpath">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_signature">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="ret_bytestring">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_complete_unimplemented_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Bar.UnimplementedMethod&quot;&gt;UnimplementedMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_dup_aay">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.aay&quot;&gt;&quot;aay&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_strfreev().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_ag">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ag&quot;&gt;&quot;ag&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_ao">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ao&quot;&gt;&quot;ao&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_strfreev().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_as">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.as&quot;&gt;&quot;as&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_strfreev().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_ay">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ay&quot;&gt;&quot;ay&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_finally_normal_name">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.FinallyNormalName&quot;&gt;&quot;FinallyNormalName&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_g">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.g&quot;&gt;&quot;g&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_o">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.o&quot;&gt;&quot;o&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_readonly_property">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ReadonlyProperty&quot;&gt;&quot;ReadonlyProperty&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_s">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.s&quot;&gt;&quot;s&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_unset_ag">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_ag&quot;&gt;&quot;unset_ag&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_unset_ao">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_ao&quot;&gt;&quot;unset_ao&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_strfreev().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_unset_as">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_as&quot;&gt;&quot;unset_as&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_strfreev().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_unset_ay">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_ay&quot;&gt;&quot;unset_ay&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_unset_g">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_g&quot;&gt;&quot;unset_g&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_unset_o">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_o&quot;&gt;&quot;unset_o&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_unset_s">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_s&quot;&gt;&quot;unset_s&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_unset_struct">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_struct&quot;&gt;&quot;unset_struct&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref().
-</return>
-</function>
-
-<function name="foo_igen_bar_dup_writeonly_property">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.WriteonlyProperty&quot;&gt;&quot;WriteonlyProperty&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is not readable, it is only meaningful to use this function on the service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_bar_emit_another_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-org-project-Bar.AnotherSignal&quot;&gt;&quot;AnotherSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="arg_word">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_emit_test_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-org-project-Bar.TestSignal&quot;&gt;&quot;TestSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="arg_val_int32">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_strings">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-<parameter name="arg_array_of_bytestrings">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-<parameter name="arg_dict_s_to_pairs">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_call_random_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar-Frobnicator.RandomMethod&quot;&gt;RandomMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_frobnicator_call_random_method_finish() to get the result of the operation.
-
-See foo_igen_bar_frobnicator_call_random_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarFrobnicatorProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_call_random_method_finish">
-<description>
-Finishes an operation started with foo_igen_bar_frobnicator_call_random_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarFrobnicatorProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_frobnicator_call_random_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_call_random_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bar-Frobnicator.RandomMethod&quot;&gt;RandomMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_frobnicator_call_random_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBarFrobnicatorProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_complete_random_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Bar-Frobnicator.RandomMethod&quot;&gt;RandomMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBarFrobnicator.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-org-project-Bar-Frobnicator.top_of_page&quot;&gt;org.project.Bar.Frobnicator&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenBarFrobnicator interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bar-Frobnicator.top_of_page&quot;&gt;org.project.Bar.Frobnicator&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_frobnicator_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_bar_frobnicator_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_bar_frobnicator_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_frobnicator_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_proxy_new_for_bus">
-<description>
-Like foo_igen_bar_frobnicator_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_frobnicator_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_bar_frobnicator_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_bar_frobnicator_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_frobnicator_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_bar_frobnicator_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_frobnicator_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bar-Frobnicator.top_of_page&quot;&gt;org.project.Bar.Frobnicator&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_frobnicator_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_frobnicator_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bar-Frobnicator.top_of_page&quot;&gt;org.project.Bar.Frobnicator&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_aay">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.aay&quot;&gt;&quot;aay&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_aay() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_ag">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ag&quot;&gt;&quot;ag&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_ag() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_ao">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ao&quot;&gt;&quot;ao&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_ao() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_as">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.as&quot;&gt;&quot;as&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_as() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_ay">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ay&quot;&gt;&quot;ay&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_ay() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_b">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.b&quot;&gt;&quot;b&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_d">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.d&quot;&gt;&quot;d&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_finally_normal_name">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.FinallyNormalName&quot;&gt;&quot;FinallyNormalName&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_finally_normal_name() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_g">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.g&quot;&gt;&quot;g&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_g() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_i">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.i&quot;&gt;&quot;i&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_n">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.n&quot;&gt;&quot;n&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_o">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.o&quot;&gt;&quot;o&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_o() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_q">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.q&quot;&gt;&quot;q&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_readonly_property">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ReadonlyProperty&quot;&gt;&quot;ReadonlyProperty&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_readonly_property() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_s">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.s&quot;&gt;&quot;s&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_s() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_t">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.t&quot;&gt;&quot;t&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_u">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.u&quot;&gt;&quot;u&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_unset_ag">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_ag&quot;&gt;&quot;unset_ag&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_unset_ag() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_unset_ao">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_ao&quot;&gt;&quot;unset_ao&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_unset_ao() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_unset_as">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_as&quot;&gt;&quot;unset_as&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_unset_as() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_unset_ay">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_ay&quot;&gt;&quot;unset_ay&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_unset_ay() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_unset_d">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_d&quot;&gt;&quot;unset_d&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_unset_g">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_g&quot;&gt;&quot;unset_g&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_unset_g() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_unset_i">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_i&quot;&gt;&quot;unset_i&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_unset_o">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_o&quot;&gt;&quot;unset_o&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_unset_o() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_unset_s">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_s&quot;&gt;&quot;unset_s&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_unset_s() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_unset_struct">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_struct&quot;&gt;&quot;unset_struct&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_unset_struct() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_writeonly_property">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.WriteonlyProperty&quot;&gt;&quot;WriteonlyProperty&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is not readable, it is only meaningful to use this function on the service-side.
-
-&lt;warning&gt;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 foo_igen_bar_dup_writeonly_property() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_x">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.x&quot;&gt;&quot;x&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_bar_get_y">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bar.y&quot;&gt;&quot;y&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_bar_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-org-project-Bar.top_of_page&quot;&gt;org.project.Bar&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_bar_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenBar interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_bar_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bar.top_of_page&quot;&gt;org.project.Bar&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_bar_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_bar_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_proxy_new_for_bus">
-<description>
-Like foo_igen_bar_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bar_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_bar_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_bar_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bar_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_bar_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bar.top_of_page&quot;&gt;org.project.Bar&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_bar_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bar_set_aay">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.aay&quot;&gt;&quot;aay&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_ag">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ag&quot;&gt;&quot;ag&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_ao">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ao&quot;&gt;&quot;ao&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_as">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.as&quot;&gt;&quot;as&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_ay">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ay&quot;&gt;&quot;ay&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_b">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.b&quot;&gt;&quot;b&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_d">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.d&quot;&gt;&quot;d&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_finally_normal_name">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.FinallyNormalName&quot;&gt;&quot;FinallyNormalName&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_g">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.g&quot;&gt;&quot;g&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_i">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.i&quot;&gt;&quot;i&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_n">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.n&quot;&gt;&quot;n&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_o">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.o&quot;&gt;&quot;o&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_q">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.q&quot;&gt;&quot;q&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_readonly_property">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.ReadonlyProperty&quot;&gt;&quot;ReadonlyProperty&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_s">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.s&quot;&gt;&quot;s&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_t">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.t&quot;&gt;&quot;t&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_u">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.u&quot;&gt;&quot;u&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_unset_ag">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_ag&quot;&gt;&quot;unset_ag&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_unset_ao">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_ao&quot;&gt;&quot;unset_ao&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_unset_as">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_as&quot;&gt;&quot;unset_as&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_unset_ay">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_ay&quot;&gt;&quot;unset_ay&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_unset_d">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_d&quot;&gt;&quot;unset_d&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_unset_g">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_g&quot;&gt;&quot;unset_g&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_unset_i">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_i&quot;&gt;&quot;unset_i&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_unset_o">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_o&quot;&gt;&quot;unset_o&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_unset_s">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_s&quot;&gt;&quot;unset_s&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_unset_struct">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.unset_struct&quot;&gt;&quot;unset_struct&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_writeonly_property">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.WriteonlyProperty&quot;&gt;&quot;WriteonlyProperty&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_x">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.x&quot;&gt;&quot;x&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_set_y">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bar.y&quot;&gt;&quot;y&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBar.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bar_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bar.top_of_page&quot;&gt;org.project.Bar&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_bat_call_force_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bat.ForceMethod&quot;&gt;ForceMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bat_call_force_method_finish() to get the result of the operation.
-
-See foo_igen_bat_call_force_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBatProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_i">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_s">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_ay">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_struct">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bat_call_force_method_finish">
-<description>
-Finishes an operation started with foo_igen_bat_call_force_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBatProxy.
-</parameter_description>
-</parameter>
-<parameter name="out_force_out_i">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_force_out_s">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_force_out_ay">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_force_out_struct">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bat_call_force_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bat_call_force_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-Bat.ForceMethod&quot;&gt;ForceMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_bat_call_force_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenBatProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_i">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_s">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_ay">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_in_struct">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="out_force_out_i">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_force_out_s">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_force_out_ay">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_force_out_struct">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bat_complete_force_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-Bat.ForceMethod&quot;&gt;ForceMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="force_out_i">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="force_out_s">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="force_out_ay">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-<parameter name="force_out_struct">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bat_dup_force_ay">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_ay&quot;&gt;&quot;force_ay&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref().
-</return>
-</function>
-
-<function name="foo_igen_bat_dup_force_i">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_i&quot;&gt;&quot;force_i&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref().
-</return>
-</function>
-
-<function name="foo_igen_bat_dup_force_s">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_s&quot;&gt;&quot;force_s&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref().
-</return>
-</function>
-
-<function name="foo_igen_bat_dup_force_struct">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_struct&quot;&gt;&quot;force_struct&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref().
-</return>
-</function>
-
-<function name="foo_igen_bat_emit_force_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-org-project-Bat.ForceSignal&quot;&gt;&quot;ForceSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_i">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_s">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_ay">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-<parameter name="arg_force_struct">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bat_get_force_ay">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_ay&quot;&gt;&quot;force_ay&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bat_dup_force_ay() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bat_get_force_i">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_i&quot;&gt;&quot;force_i&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bat_dup_force_i() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bat_get_force_s">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_s&quot;&gt;&quot;force_s&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bat_dup_force_s() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bat_get_force_struct">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_struct&quot;&gt;&quot;force_struct&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_bat_dup_force_struct() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_bat_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-org-project-Bat.top_of_page&quot;&gt;org.project.Bat&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_bat_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenBat interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_bat_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bat.top_of_page&quot;&gt;org.project.Bat&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bat_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_bat_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bat_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_bat_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bat_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bat_proxy_new_for_bus">
-<description>
-Like foo_igen_bat_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_bat_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_bat_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bat_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_bat_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_bat_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bat_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_bat_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_bat_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bat_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bat.top_of_page&quot;&gt;org.project.Bat&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_bat_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_bat_set_force_ay">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_ay&quot;&gt;&quot;force_ay&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bat_set_force_i">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_i&quot;&gt;&quot;force_i&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bat_set_force_s">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_s&quot;&gt;&quot;force_s&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bat_set_force_struct">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-Bat.force_struct&quot;&gt;&quot;force_struct&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenBat.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_bat_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bat.top_of_page&quot;&gt;org.project.Bat&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_baz_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-org-project-Baz.top_of_page&quot;&gt;org.project.Baz&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_baz_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenBaz interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_baz_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Baz.top_of_page&quot;&gt;org.project.Baz&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_baz_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_baz_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_baz_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_baz_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_baz_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_baz_proxy_new_for_bus">
-<description>
-Like foo_igen_baz_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_baz_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_baz_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_baz_proxy_new_for_bus_finish">
+<property name="GWin32InputStream:close-handle">
<description>
-Finishes an operation started with foo_igen_baz_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_baz_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_baz_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_baz_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_baz_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_baz_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Baz.top_of_page&quot;&gt;org.project.Baz&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_baz_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_baz_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Baz.top_of_page&quot;&gt;org.project.Baz&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_added_method_in10">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.AddedMethodIn10&quot;&gt;AddedMethodIn10()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v10_call_added_method_in10_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v10_call_added_method_in10_sync() for the synchronous, blocking version of this method.
-
-Since: 10.0
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_added_method_in10_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v10_call_added_method_in10().
-
-Since: 10.0
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v10_call_added_method_in10().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_added_method_in10_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.AddedMethodIn10&quot;&gt;AddedMethodIn10()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v10_call_added_method_in10() for the asynchronous version of this method.
-
-Since: 10.0
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_bar_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v10_call_bar_method_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v10_call_bar_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_bar_method_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v10_call_bar_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v10_call_bar_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_bar_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v10_call_bar_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_baz_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v10_call_baz_method_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v10_call_baz_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_baz_method_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v10_call_baz_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v10_call_baz_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_baz_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v10_call_baz_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_foo_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v10_call_foo_method_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v10_call_foo_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_foo_method_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v10_call_foo_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v10_call_foo_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_foo_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v10_call_foo_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_new_method_in2">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.NewMethodIn2&quot;&gt;NewMethodIn2()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v10_call_new_method_in2_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v10_call_new_method_in2_sync() for the synchronous, blocking version of this method.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_new_method_in2_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v10_call_new_method_in2().
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v10_call_new_method_in2().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_call_new_method_in2_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.NewMethodIn2&quot;&gt;NewMethodIn2()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v10_call_new_method_in2() for the asynchronous version of this method.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV10Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_complete_added_method_in10">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.AddedMethodIn10&quot;&gt;AddedMethodIn10()&lt;/link&gt; 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.
-
-Since: 10.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_complete_bar_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_complete_baz_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_complete_foo_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_complete_new_method_in2">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV10.NewMethodIn2&quot;&gt;NewMethodIn2()&lt;/link&gt; 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.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_emit_added_signal_in10">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV10.AddedSignalIn10&quot;&gt;&quot;AddedSignalIn10&quot;&lt;/link&gt; D-Bus signal.
-
-Since: 10.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_emit_bar_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV10.BarSignal&quot;&gt;&quot;BarSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_emit_baz_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV10.BazSignal&quot;&gt;&quot;BazSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_emit_foo_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV10.FooSignal&quot;&gt;&quot;FooSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_emit_new_signal_in2">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV10.NewSignalIn2&quot;&gt;&quot;NewSignalIn2&quot;&lt;/link&gt; D-Bus signal.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV10.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV10.top_of_page&quot;&gt;ChangingInterfaceV10&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenChangingInterfaceV10 interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV10.top_of_page&quot;&gt;ChangingInterfaceV10&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v10_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v10_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v10_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v10_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_proxy_new_for_bus">
-<description>
-Like foo_igen_changing_interface_v10_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v10_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v10_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v10_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v10_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_changing_interface_v10_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v10_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV10.top_of_page&quot;&gt;ChangingInterfaceV10&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v10_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v10_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV10.top_of_page&quot;&gt;ChangingInterfaceV10&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_call_bar_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v1_call_bar_method_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v1_call_bar_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV1Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_call_bar_method_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v1_call_bar_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV1Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v1_call_bar_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_call_bar_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v1_call_bar_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV1Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_call_baz_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v1_call_baz_method_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v1_call_baz_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV1Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_call_baz_method_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v1_call_baz_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV1Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v1_call_baz_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_call_baz_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v1_call_baz_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV1Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_call_foo_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v1_call_foo_method_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v1_call_foo_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV1Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_call_foo_method_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v1_call_foo_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV1Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v1_call_foo_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_call_foo_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v1_call_foo_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV1Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_complete_bar_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_complete_baz_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_complete_foo_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV1.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_emit_bar_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV1.BarSignal&quot;&gt;&quot;BarSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_emit_baz_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV1.BazSignal&quot;&gt;&quot;BazSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_emit_foo_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV1.FooSignal&quot;&gt;&quot;FooSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV1.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV1.top_of_page&quot;&gt;ChangingInterfaceV1&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenChangingInterfaceV1 interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV1.top_of_page&quot;&gt;ChangingInterfaceV1&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v1_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v1_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v1_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v1_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_proxy_new_for_bus">
-<description>
-Like foo_igen_changing_interface_v1_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v1_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v1_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v1_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v1_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_changing_interface_v1_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v1_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV1.top_of_page&quot;&gt;ChangingInterfaceV1&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v1_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v1_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV1.top_of_page&quot;&gt;ChangingInterfaceV1&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_bar_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v2_call_bar_method_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v2_call_bar_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_bar_method_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v2_call_bar_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v2_call_bar_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_bar_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v2_call_bar_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_baz_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v2_call_baz_method_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v2_call_baz_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_baz_method_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v2_call_baz_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v2_call_baz_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_baz_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v2_call_baz_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_foo_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v2_call_foo_method_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v2_call_foo_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_foo_method_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v2_call_foo_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v2_call_foo_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_foo_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v2_call_foo_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_new_method_in2">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.NewMethodIn2&quot;&gt;NewMethodIn2()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v2_call_new_method_in2_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v2_call_new_method_in2_sync() for the synchronous, blocking version of this method.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_new_method_in2_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v2_call_new_method_in2().
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v2_call_new_method_in2().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_call_new_method_in2_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.NewMethodIn2&quot;&gt;NewMethodIn2()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v2_call_new_method_in2() for the asynchronous version of this method.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenChangingInterfaceV2Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_complete_bar_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.BarMethod&quot;&gt;BarMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_complete_baz_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.BazMethod&quot;&gt;BazMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_complete_foo_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_complete_new_method_in2">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-ChangingInterfaceV2.NewMethodIn2&quot;&gt;NewMethodIn2()&lt;/link&gt; 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.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_emit_bar_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV2.BarSignal&quot;&gt;&quot;BarSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_emit_baz_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV2.BazSignal&quot;&gt;&quot;BazSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_emit_foo_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV2.FooSignal&quot;&gt;&quot;FooSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_emit_new_signal_in2">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-ChangingInterfaceV2.NewSignalIn2&quot;&gt;&quot;NewSignalIn2&quot;&lt;/link&gt; D-Bus signal.
-
-Since: 2.0
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenChangingInterfaceV2.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV2.top_of_page&quot;&gt;ChangingInterfaceV2&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenChangingInterfaceV2 interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV2.top_of_page&quot;&gt;ChangingInterfaceV2&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v2_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v2_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v2_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v2_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_proxy_new_for_bus">
-<description>
-Like foo_igen_changing_interface_v2_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_changing_interface_v2_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_changing_interface_v2_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_changing_interface_v2_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_changing_interface_v2_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_changing_interface_v2_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v2_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV2.top_of_page&quot;&gt;ChangingInterfaceV2&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_changing_interface_v2_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_changing_interface_v2_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV2.top_of_page&quot;&gt;ChangingInterfaceV2&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_call_attack">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Attack&quot;&gt;Attack()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_com_acme_coyote_call_attack_finish() to get the result of the operation.
-
-See foo_igen_com_acme_coyote_call_attack_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenComAcmeCoyoteProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_call_attack_finish">
-<description>
-Finishes an operation started with foo_igen_com_acme_coyote_call_attack().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenComAcmeCoyoteProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_com_acme_coyote_call_attack().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_call_attack_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Attack&quot;&gt;Attack()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_com_acme_coyote_call_attack() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenComAcmeCoyoteProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_call_run">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Run&quot;&gt;Run()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_com_acme_coyote_call_run_finish() to get the result of the operation.
-
-See foo_igen_com_acme_coyote_call_run_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenComAcmeCoyoteProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_call_run_finish">
-<description>
-Finishes an operation started with foo_igen_com_acme_coyote_call_run().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenComAcmeCoyoteProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_com_acme_coyote_call_run().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_call_run_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Run&quot;&gt;Run()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_com_acme_coyote_call_run() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenComAcmeCoyoteProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_call_sleep">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Sleep&quot;&gt;Sleep()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_com_acme_coyote_call_sleep_finish() to get the result of the operation.
-
-See foo_igen_com_acme_coyote_call_sleep_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenComAcmeCoyoteProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_call_sleep_finish">
-<description>
-Finishes an operation started with foo_igen_com_acme_coyote_call_sleep().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenComAcmeCoyoteProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_com_acme_coyote_call_sleep().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_call_sleep_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Sleep&quot;&gt;Sleep()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_com_acme_coyote_call_sleep() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenComAcmeCoyoteProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_complete_attack">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Attack&quot;&gt;Attack()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenComAcmeCoyote.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_complete_run">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Run&quot;&gt;Run()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenComAcmeCoyote.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_complete_sleep">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-com-acme-Coyote.Sleep&quot;&gt;Sleep()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenComAcmeCoyote.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_dup_mood">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-com-acme-Coyote.Mood&quot;&gt;&quot;Mood&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenComAcmeCoyote.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_emit_surprised">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-com-acme-Coyote.Surprised&quot;&gt;&quot;Surprised&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenComAcmeCoyote.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_get_mood">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-com-acme-Coyote.Mood&quot;&gt;&quot;Mood&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_com_acme_coyote_dup_mood() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenComAcmeCoyote.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-com-acme-Coyote.top_of_page&quot;&gt;com.acme.Coyote&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenComAcmeCoyote interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-com-acme-Coyote.top_of_page&quot;&gt;com.acme.Coyote&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_com_acme_coyote_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_com_acme_coyote_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_com_acme_coyote_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_com_acme_coyote_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_proxy_new_for_bus">
-<description>
-Like foo_igen_com_acme_coyote_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_com_acme_coyote_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_com_acme_coyote_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_com_acme_coyote_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_com_acme_coyote_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_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 foo_igen_com_acme_coyote_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-com-acme-Coyote.top_of_page&quot;&gt;com.acme.Coyote&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_com_acme_coyote_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_set_mood">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-com-acme-Coyote.Mood&quot;&gt;&quot;Mood&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenComAcmeCoyote.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_com_acme_coyote_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-com-acme-Coyote.top_of_page&quot;&gt;com.acme.Coyote&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_fdpassing_call_hello_fd">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-FDPassing.HelloFD&quot;&gt;HelloFD()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_fdpassing_call_hello_fd_finish() to get the result of the operation.
-
-See foo_igen_fdpassing_call_hello_fd_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenFDPassingProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="fd_list">
-<parameter_description> A #GUnixFDList or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_fdpassing_call_hello_fd_finish">
-<description>
-Finishes an operation started with foo_igen_fdpassing_call_hello_fd().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenFDPassingProxy.
-</parameter_description>
-</parameter>
-<parameter name="out_response">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_fd_list">
-<parameter_description> Return location for a #GUnixFDList or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_fdpassing_call_hello_fd().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_fdpassing_call_hello_fd_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-FDPassing.HelloFD&quot;&gt;HelloFD()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_fdpassing_call_hello_fd() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenFDPassingProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="fd_list">
-<parameter_description> A #GUnixFDList or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="out_response">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="out_fd_list">
-<parameter_description> Return location for a #GUnixFDList or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_fdpassing_complete_hello_fd">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-FDPassing.HelloFD&quot;&gt;HelloFD()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenFDPassing.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="fd_list">
-<parameter_description> A #GUnixFDList or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="response">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_fdpassing_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-FDPassing.top_of_page&quot;&gt;FDPassing&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_fdpassing_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenFDPassing interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_fdpassing_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-FDPassing.top_of_page&quot;&gt;FDPassing&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_fdpassing_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_fdpassing_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_fdpassing_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_fdpassing_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_fdpassing_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_fdpassing_proxy_new_for_bus">
-<description>
-Like foo_igen_fdpassing_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_fdpassing_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_fdpassing_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_fdpassing_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_fdpassing_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_fdpassing_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_fdpassing_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_fdpassing_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_fdpassing_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_fdpassing_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-FDPassing.top_of_page&quot;&gt;FDPassing&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_fdpassing_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_fdpassing_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-FDPassing.top_of_page&quot;&gt;FDPassing&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_call_foo_method">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-InlineDocs.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_inline_docs_call_foo_method_finish() to get the result of the operation.
-
-See foo_igen_inline_docs_call_foo_method_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenInlineDocsProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_call_foo_method_finish">
-<description>
-Finishes an operation started with foo_igen_inline_docs_call_foo_method().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenInlineDocsProxy.
-</parameter_description>
-</parameter>
-<parameter name="out_response">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_inline_docs_call_foo_method().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_call_foo_method_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-InlineDocs.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_inline_docs_call_foo_method() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenInlineDocsProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="out_response">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_call_method2">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-InlineDocs.Method2&quot;&gt;Method2()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_inline_docs_call_method2_finish() to get the result of the operation.
-
-See foo_igen_inline_docs_call_method2_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenInlineDocsProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_call_method2_finish">
-<description>
-Finishes an operation started with foo_igen_inline_docs_call_method2().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenInlineDocsProxy.
-</parameter_description>
-</parameter>
-<parameter name="out_response">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_inline_docs_call_method2().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_call_method2_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-InlineDocs.Method2&quot;&gt;Method2()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_inline_docs_call_method2() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenInlineDocsProxy.
-</parameter_description>
-</parameter>
-<parameter name="arg_greeting">
-<parameter_description> Argument to pass with the method invocation.
-</parameter_description>
-</parameter>
-<parameter name="out_response">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_complete_foo_method">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-InlineDocs.FooMethod&quot;&gt;FooMethod()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="response">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_complete_method2">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-InlineDocs.Method2&quot;&gt;Method2()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="response">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_dup_baz_property">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.BazProperty&quot;&gt;&quot;BazProperty&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_dup_fancy_property">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.FancyProperty&quot;&gt;&quot;FancyProperty&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_dup_property2">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property2&quot;&gt;&quot;Property2&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_dup_property3">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property3&quot;&gt;&quot;Property3&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_dup_property4">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property4&quot;&gt;&quot;Property4&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_dup_property5">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property5&quot;&gt;&quot;Property5&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_emit_bar_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-org-project-InlineDocs.BarSignal&quot;&gt;&quot;BarSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="arg_blah">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-<parameter name="arg_boo">
-<parameter_description> Argument to pass with the signal.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_get_baz_property">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.BazProperty&quot;&gt;&quot;BazProperty&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_inline_docs_dup_baz_property() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_get_fancy_property">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.FancyProperty&quot;&gt;&quot;FancyProperty&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_inline_docs_dup_fancy_property() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_get_property2">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property2&quot;&gt;&quot;Property2&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_inline_docs_dup_property2() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_get_property3">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property3&quot;&gt;&quot;Property3&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_inline_docs_dup_property3() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_get_property4">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property4&quot;&gt;&quot;Property4&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_inline_docs_dup_property4() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_get_property5">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property5&quot;&gt;&quot;Property5&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_inline_docs_dup_property5() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-org-project-InlineDocs.top_of_page&quot;&gt;org.project.InlineDocs&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenInlineDocs interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-InlineDocs.top_of_page&quot;&gt;org.project.InlineDocs&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_inline_docs_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_inline_docs_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_inline_docs_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_inline_docs_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_proxy_new_for_bus">
-<description>
-Like foo_igen_inline_docs_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_inline_docs_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_inline_docs_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_inline_docs_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_inline_docs_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_inline_docs_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_inline_docs_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-InlineDocs.top_of_page&quot;&gt;org.project.InlineDocs&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_inline_docs_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_inline_docs_set_baz_property">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.BazProperty&quot;&gt;&quot;BazProperty&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_set_fancy_property">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.FancyProperty&quot;&gt;&quot;FancyProperty&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_set_property2">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property2&quot;&gt;&quot;Property2&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_set_property3">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property3&quot;&gt;&quot;Property3&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_set_property4">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property4&quot;&gt;&quot;Property4&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_set_property5">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-org-project-InlineDocs.Property5&quot;&gt;&quot;Property5&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenInlineDocs.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_inline_docs_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-InlineDocs.top_of_page&quot;&gt;org.project.InlineDocs&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_method_threads_call_get_self">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-MethodThreads.GetSelf&quot;&gt;GetSelf()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_method_threads_call_get_self_finish() to get the result of the operation.
-
-See foo_igen_method_threads_call_get_self_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenMethodThreadsProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_method_threads_call_get_self_finish">
-<description>
-Finishes an operation started with foo_igen_method_threads_call_get_self().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenMethodThreadsProxy.
-</parameter_description>
-</parameter>
-<parameter name="out_self_pointer">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_method_threads_call_get_self().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_method_threads_call_get_self_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-org-project-MethodThreads.GetSelf&quot;&gt;GetSelf()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_method_threads_call_get_self() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenMethodThreadsProxy.
-</parameter_description>
-</parameter>
-<parameter name="out_self_pointer">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_method_threads_complete_get_self">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-org-project-MethodThreads.GetSelf&quot;&gt;GetSelf()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenMethodThreads.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="self_pointer">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_method_threads_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-org-project-MethodThreads.top_of_page&quot;&gt;org.project.MethodThreads&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_method_threads_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenMethodThreads interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_method_threads_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-MethodThreads.top_of_page&quot;&gt;org.project.MethodThreads&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_method_threads_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_method_threads_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_method_threads_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_method_threads_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_method_threads_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_method_threads_proxy_new_for_bus">
-<description>
-Like foo_igen_method_threads_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_method_threads_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_method_threads_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_method_threads_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_method_threads_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_method_threads_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_method_threads_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_method_threads_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_method_threads_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_method_threads_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-MethodThreads.top_of_page&quot;&gt;org.project.MethodThreads&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_method_threads_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_method_threads_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-MethodThreads.top_of_page&quot;&gt;org.project.MethodThreads&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_naming_get_type_">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-Naming.Type&quot;&gt;&quot;Type&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenNaming.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_naming_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-Naming.top_of_page&quot;&gt;Naming&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_naming_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenNaming interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_naming_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-Naming.top_of_page&quot;&gt;Naming&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_naming_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_naming_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_naming_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_naming_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_naming_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_naming_proxy_new_for_bus">
-<description>
-Like foo_igen_naming_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_naming_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_naming_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_naming_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_naming_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_naming_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_naming_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_naming_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_naming_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_naming_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-Naming.top_of_page&quot;&gt;Naming&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_naming_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_naming_set_type_">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-Naming.Type&quot;&gt;&quot;Type&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenNaming.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_naming_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-Naming.top_of_page&quot;&gt;Naming&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_object_get_authorize">
-<description>
-Gets the #FooiGenAuthorize instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Authorize.top_of_page&quot;&gt;org.project.Authorize&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenAuthorize that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_bar">
-<description>
-Gets the #FooiGenBar instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bar.top_of_page&quot;&gt;org.project.Bar&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenBar that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_bar_frobnicator">
-<description>
-Gets the #FooiGenBarFrobnicator instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bar-Frobnicator.top_of_page&quot;&gt;org.project.Bar.Frobnicator&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenBarFrobnicator that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_bat">
-<description>
-Gets the #FooiGenBat instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bat.top_of_page&quot;&gt;org.project.Bat&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenBat that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_baz">
-<description>
-Gets the #FooiGenBaz instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Baz.top_of_page&quot;&gt;org.project.Baz&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenBaz that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_changing_interface_v1">
-<description>
-Gets the #FooiGenChangingInterfaceV1 instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV1.top_of_page&quot;&gt;ChangingInterfaceV1&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenChangingInterfaceV1 that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_changing_interface_v10">
-<description>
-Gets the #FooiGenChangingInterfaceV10 instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV10.top_of_page&quot;&gt;ChangingInterfaceV10&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenChangingInterfaceV10 that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_changing_interface_v2">
-<description>
-Gets the #FooiGenChangingInterfaceV2 instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV2.top_of_page&quot;&gt;ChangingInterfaceV2&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenChangingInterfaceV2 that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_com_acme_coyote">
-<description>
-Gets the #FooiGenComAcmeCoyote instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-com-acme-Coyote.top_of_page&quot;&gt;com.acme.Coyote&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenComAcmeCoyote that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_fdpassing">
-<description>
-Gets the #FooiGenFDPassing instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-FDPassing.top_of_page&quot;&gt;FDPassing&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenFDPassing that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_inline_docs">
-<description>
-Gets the #FooiGenInlineDocs instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-InlineDocs.top_of_page&quot;&gt;org.project.InlineDocs&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenInlineDocs that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_method_threads">
-<description>
-Gets the #FooiGenMethodThreads instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-MethodThreads.top_of_page&quot;&gt;org.project.MethodThreads&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenMethodThreads that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_naming">
-<description>
-Gets the #FooiGenNaming instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-Naming.top_of_page&quot;&gt;Naming&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenNaming that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_oldie_interface">
-<description>
-Gets the #FooiGenOldieInterface instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-OldieInterface.top_of_page&quot;&gt;OldieInterface&lt;/link&gt; on @object, if any.
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenOldieInterface that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-
-</return>
-</function>
-
-<function name="foo_igen_object_get_rocket123">
-<description>
-Gets the #FooiGenRocket123 instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-com-acme-Rocket.top_of_page&quot;&gt;com.acme.Rocket&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenRocket123 that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_test_ugly_case_interface">
-<description>
-Gets the #FooiGenTesTuglyCASEInterface instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-TestUglyCaseInterface.top_of_page&quot;&gt;TestUglyCaseInterface&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenTesTuglyCASEInterface that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_get_unknown_xml_tags">
-<description>
-Gets the #FooiGenUnknownXmlTags instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-UnknownXmlTags.top_of_page&quot;&gt;UnknownXmlTags&lt;/link&gt; on @object, if any.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenUnknownXmlTags that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
-</return>
-</function>
-
-<function name="foo_igen_object_manager_client_get_proxy_type">
-<description>
-A #GDBusProxyTypeFunc that maps @interface_name to the generated #GDBusObjectProxy&lt;!-- --&gt;- and #GDBusProxy&lt;!-- --&gt;-derived types.
-
-
-</description>
-<parameters>
-<parameter name="manager">
-<parameter_description> A #GDBusObjectManagerClient.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> The object path of the remote object (unused).
-</parameter_description>
-</parameter>
-<parameter name="interface_name">
-<parameter_description> Interface name of the remote object or %NULL to get the object proxy #GType.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data (unused).
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #GDBusProxy&lt;!-- --&gt;-derived #GType if @interface_name is not %NULL, otherwise the #GType for #FooiGenObjectProxy.
-</return>
-</function>
-
-<function name="foo_igen_object_manager_client_new">
-<description>
-Asynchronously creates #GDBusObjectManagerClient using foo_igen_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_object_manager_client_new_finish() to get the result of the operation.
-
-See foo_igen_object_manager_client_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusObjectManagerClientFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_manager_client_new_finish">
-<description>
-Finishes an operation started with foo_igen_object_manager_client_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_object_manager_client_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed object manager client or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_object_manager_client_new_for_bus">
-<description>
-Like foo_igen_object_manager_client_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_object_manager_client_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusObjectManagerClientFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_manager_client_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_object_manager_client_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_object_manager_client_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed object manager client or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_object_manager_client_new_for_bus_sync">
-<description>
-Like foo_igen_object_manager_client_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_object_manager_client_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusObjectManagerClientFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed object manager client or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_object_manager_client_new_sync">
-<description>
-Synchronously creates #GDBusObjectManagerClient using foo_igen_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_object_manager_client_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusObjectManagerClientFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed object manager client or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_authorize">
-<description>
-Like foo_igen_object_get_authorize() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenAuthorize or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_bar">
-<description>
-Like foo_igen_object_get_bar() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenBar or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_bar_frobnicator">
-<description>
-Like foo_igen_object_get_bar_frobnicator() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenBarFrobnicator or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_bat">
-<description>
-Like foo_igen_object_get_bat() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenBat or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_baz">
-<description>
-Like foo_igen_object_get_baz() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenBaz or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_changing_interface_v1">
-<description>
-Like foo_igen_object_get_changing_interface_v1() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenChangingInterfaceV1 or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_changing_interface_v10">
-<description>
-Like foo_igen_object_get_changing_interface_v10() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenChangingInterfaceV10 or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_changing_interface_v2">
-<description>
-Like foo_igen_object_get_changing_interface_v2() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenChangingInterfaceV2 or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_com_acme_coyote">
-<description>
-Like foo_igen_object_get_com_acme_coyote() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenComAcmeCoyote or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_fdpassing">
-<description>
-Like foo_igen_object_get_fdpassing() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenFDPassing or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_inline_docs">
-<description>
-Like foo_igen_object_get_inline_docs() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenInlineDocs or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_method_threads">
-<description>
-Like foo_igen_object_get_method_threads() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenMethodThreads or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_naming">
-<description>
-Like foo_igen_object_get_naming() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenNaming or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_oldie_interface">
-<description>
-Like foo_igen_object_get_oldie_interface() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenOldieInterface or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-
-</return>
-</function>
-
-<function name="foo_igen_object_peek_rocket123">
-<description>
-Like foo_igen_object_get_rocket123() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenRocket123 or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_test_ugly_case_interface">
-<description>
-Like foo_igen_object_get_test_ugly_case_interface() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenTesTuglyCASEInterface or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_peek_unknown_xml_tags">
-<description>
-Like foo_igen_object_get_unknown_xml_tags() but doesn't increase the reference count on the returned object.
-
-&lt;warning&gt;It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObject.
-</parameter_description>
-</parameter>
-</parameters>
-<return> A #FooiGenUnknownXmlTags or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
-</return>
-</function>
-
-<function name="foo_igen_object_proxy_new">
-<description>
-Creates a new proxy object.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The proxy object.
-</return>
-</function>
-
-<function name="foo_igen_object_skeleton_new">
-<description>
-Creates a new skeleton object.
-
-
-</description>
-<parameters>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_authorize">
-<description>
-Sets the #FooiGenAuthorize instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Authorize.top_of_page&quot;&gt;org.project.Authorize&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenAuthorize or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_bar">
-<description>
-Sets the #FooiGenBar instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bar.top_of_page&quot;&gt;org.project.Bar&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenBar or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_bar_frobnicator">
-<description>
-Sets the #FooiGenBarFrobnicator instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bar-Frobnicator.top_of_page&quot;&gt;org.project.Bar.Frobnicator&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenBarFrobnicator or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_bat">
-<description>
-Sets the #FooiGenBat instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Bat.top_of_page&quot;&gt;org.project.Bat&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenBat or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_baz">
-<description>
-Sets the #FooiGenBaz instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-Baz.top_of_page&quot;&gt;org.project.Baz&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenBaz or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_changing_interface_v1">
-<description>
-Sets the #FooiGenChangingInterfaceV1 instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV1.top_of_page&quot;&gt;ChangingInterfaceV1&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenChangingInterfaceV1 or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_changing_interface_v10">
-<description>
-Sets the #FooiGenChangingInterfaceV10 instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV10.top_of_page&quot;&gt;ChangingInterfaceV10&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenChangingInterfaceV10 or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_changing_interface_v2">
-<description>
-Sets the #FooiGenChangingInterfaceV2 instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-ChangingInterfaceV2.top_of_page&quot;&gt;ChangingInterfaceV2&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenChangingInterfaceV2 or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_com_acme_coyote">
-<description>
-Sets the #FooiGenComAcmeCoyote instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-com-acme-Coyote.top_of_page&quot;&gt;com.acme.Coyote&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenComAcmeCoyote or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_fdpassing">
-<description>
-Sets the #FooiGenFDPassing instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-FDPassing.top_of_page&quot;&gt;FDPassing&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenFDPassing or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_inline_docs">
-<description>
-Sets the #FooiGenInlineDocs instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-InlineDocs.top_of_page&quot;&gt;org.project.InlineDocs&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenInlineDocs or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_method_threads">
-<description>
-Sets the #FooiGenMethodThreads instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-org-project-MethodThreads.top_of_page&quot;&gt;org.project.MethodThreads&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenMethodThreads or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_naming">
-<description>
-Sets the #FooiGenNaming instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-Naming.top_of_page&quot;&gt;Naming&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenNaming or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_oldie_interface">
-<description>
-Sets the #FooiGenOldieInterface instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-OldieInterface.top_of_page&quot;&gt;OldieInterface&lt;/link&gt; on @object.
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenOldieInterface or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_rocket123">
-<description>
-Sets the #FooiGenRocket123 instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-com-acme-Rocket.top_of_page&quot;&gt;com.acme.Rocket&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenRocket123 or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_test_ugly_case_interface">
-<description>
-Sets the #FooiGenTesTuglyCASEInterface instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-TestUglyCaseInterface.top_of_page&quot;&gt;TestUglyCaseInterface&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenTesTuglyCASEInterface or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_object_skeleton_set_unknown_xml_tags">
-<description>
-Sets the #FooiGenUnknownXmlTags instance for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-UnknownXmlTags.top_of_page&quot;&gt;UnknownXmlTags&lt;/link&gt; on @object.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenObjectSkeleton.
-</parameter_description>
-</parameter>
-<parameter name="interface_">
-<parameter_description> A #FooiGenUnknownXmlTags or %NULL to clear the interface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_oldie_interface_call_foo">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-OldieInterface.Foo&quot;&gt;Foo()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_oldie_interface_call_foo_finish() to get the result of the operation.
-
-See foo_igen_oldie_interface_call_foo_sync() for the synchronous, blocking version of this method.
-
-Deprecated: The D-Bus method has been deprecated.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenOldieInterfaceProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_oldie_interface_call_foo_finish">
-<description>
-Finishes an operation started with foo_igen_oldie_interface_call_foo().
-
-Deprecated: The D-Bus method has been deprecated.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenOldieInterfaceProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_oldie_interface_call_foo().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_oldie_interface_call_foo_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-OldieInterface.Foo&quot;&gt;Foo()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_oldie_interface_call_foo() for the asynchronous version of this method.
-
-Deprecated: The D-Bus method has been deprecated.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenOldieInterfaceProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_oldie_interface_complete_foo">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-OldieInterface.Foo&quot;&gt;Foo()&lt;/link&gt; 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.
-
-Deprecated: The D-Bus method has been deprecated.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenOldieInterface.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_oldie_interface_emit_bar">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-OldieInterface.Bar&quot;&gt;&quot;Bar&quot;&lt;/link&gt; D-Bus signal.
-
-Deprecated: The D-Bus signal has been deprecated.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenOldieInterface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_oldie_interface_get_bat">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-OldieInterface.Bat&quot;&gt;&quot;Bat&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-Deprecated: The D-Bus property has been deprecated.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenOldieInterface.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-
-</return>
-</function>
-
-<function name="foo_igen_oldie_interface_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-OldieInterface.top_of_page&quot;&gt;OldieInterface&lt;/link&gt; D-Bus interface.
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-
-</return>
-</function>
-
-<function name="foo_igen_oldie_interface_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenOldieInterface interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-
-</return>
-</function>
-
-<function name="foo_igen_oldie_interface_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-OldieInterface.top_of_page&quot;&gt;OldieInterface&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_oldie_interface_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_oldie_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_oldie_interface_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_oldie_interface_proxy_new().
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_oldie_interface_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_oldie_interface_proxy_new_for_bus">
-<description>
-Like foo_igen_oldie_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_oldie_interface_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_oldie_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_oldie_interface_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_oldie_interface_proxy_new_for_bus().
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_oldie_interface_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_oldie_interface_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_oldie_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_oldie_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_oldie_interface_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-OldieInterface.top_of_page&quot;&gt;OldieInterface&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_oldie_interface_proxy_new() for the asynchronous version of this constructor.
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-
-</return>
-</function>
-
-<function name="foo_igen_oldie_interface_set_bat">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-OldieInterface.Bat&quot;&gt;&quot;Bat&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-Deprecated: The D-Bus property has been deprecated.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenOldieInterface.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_oldie_interface_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-OldieInterface.top_of_page&quot;&gt;OldieInterface&lt;/link&gt;.
-
-Deprecated: The D-Bus interface has been deprecated.
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-
-</return>
-</function>
-
-<function name="foo_igen_rocket123_call_ignite_xyz">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-com-acme-Rocket.Ignite&quot;&gt;Ignite()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_rocket123_call_ignite_xyz_finish() to get the result of the operation.
-
-See foo_igen_rocket123_call_ignite_xyz_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenRocket123Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_rocket123_call_ignite_xyz_finish">
-<description>
-Finishes an operation started with foo_igen_rocket123_call_ignite_xyz().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenRocket123Proxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_rocket123_call_ignite_xyz().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_rocket123_call_ignite_xyz_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-com-acme-Rocket.Ignite&quot;&gt;Ignite()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_rocket123_call_ignite_xyz() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenRocket123Proxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_rocket123_complete_ignite_xyz">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-com-acme-Rocket.Ignite&quot;&gt;Ignite()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_rocket123_dup_direction">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-com-acme-Rocket.Direction&quot;&gt;&quot;Direction&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_variant_unref().
-</return>
-</function>
-
-<function name="foo_igen_rocket123_dup_type_">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-com-acme-Rocket.Type&quot;&gt;&quot;Type&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_rocket123_emit_exploded_xyz">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-com-acme-Rocket.Exploded&quot;&gt;&quot;Exploded&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_rocket123_get_direction">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-com-acme-Rocket.Direction&quot;&gt;&quot;Direction&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_rocket123_dup_direction() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_rocket123_get_speed_xyz">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-com-acme-Rocket.Speed&quot;&gt;&quot;Speed&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_rocket123_get_type_">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-com-acme-Rocket.Type&quot;&gt;&quot;Type&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_rocket123_dup_type_() if on another thread.&lt;/warning&gt;
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
-
-<function name="foo_igen_rocket123_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-com-acme-Rocket.top_of_page&quot;&gt;com.acme.Rocket&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_rocket123_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenRocket123 interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_rocket123_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-com-acme-Rocket.top_of_page&quot;&gt;com.acme.Rocket&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_rocket123_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_rocket123_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_rocket123_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_rocket123_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_rocket123_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_rocket123_proxy_new_for_bus">
-<description>
-Like foo_igen_rocket123_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_rocket123_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_rocket123_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_rocket123_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_rocket123_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_rocket123_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_rocket123_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_rocket123_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_rocket123_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_rocket123_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-com-acme-Rocket.top_of_page&quot;&gt;com.acme.Rocket&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_rocket123_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_rocket123_set_direction">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-com-acme-Rocket.Direction&quot;&gt;&quot;Direction&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_rocket123_set_speed_xyz">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-com-acme-Rocket.Speed&quot;&gt;&quot;Speed&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_rocket123_set_type_">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-com-acme-Rocket.Type&quot;&gt;&quot;Type&quot;&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenRocket123.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_rocket123_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-com-acme-Rocket.top_of_page&quot;&gt;com.acme.Rocket&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_call_get_iscsi_servers">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-TestUglyCaseInterface.GetiSCSIServers&quot;&gt;GetiSCSIServers()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_test_ugly_case_interface_call_get_iscsi_servers_finish() to get the result of the operation.
-
-See foo_igen_test_ugly_case_interface_call_get_iscsi_servers_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenTesTuglyCASEInterfaceProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_call_get_iscsi_servers_finish">
-<description>
-Finishes an operation started with foo_igen_test_ugly_case_interface_call_get_iscsi_servers().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenTesTuglyCASEInterfaceProxy.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_test_ugly_case_interface_call_get_iscsi_servers().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_call_get_iscsi_servers_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-TestUglyCaseInterface.GetiSCSIServers&quot;&gt;GetiSCSIServers()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_test_ugly_case_interface_call_get_iscsi_servers() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenTesTuglyCASEInterfaceProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_complete_get_iscsi_servers">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-TestUglyCaseInterface.GetiSCSIServers&quot;&gt;GetiSCSIServers()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenTesTuglyCASEInterface.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_emit_servers_updated_now">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-TestUglyCaseInterface.serversUPDATEDNOW&quot;&gt;&quot;serversUPDATEDNOW&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenTesTuglyCASEInterface.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_get_ugly_name">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-TestUglyCaseInterface.UGLYNAME&quot;&gt;&quot;UGLYNAME&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenTesTuglyCASEInterface.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value.
-</return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_interface_info">
-<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-TestUglyCaseInterface.top_of_page&quot;&gt;TestUglyCaseInterface&lt;/link&gt; D-Bus interface.
-
-
-</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_override_properties">
-<description>
-Overrides all #GObject properties in the #FooiGenTesTuglyCASEInterface interface for a concrete class.
-The properties are overridden in the order they are defined.
-
-
-</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_proxy_new">
-<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-TestUglyCaseInterface.top_of_page&quot;&gt;TestUglyCaseInterface&lt;/link&gt;. See g_dbus_proxy_new() for more details.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_test_ugly_case_interface_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_test_ugly_case_interface_proxy_new_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_proxy_new_finish">
-<description>
-Finishes an operation started with foo_igen_test_ugly_case_interface_proxy_new().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_test_ugly_case_interface_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_proxy_new_for_bus">
-<description>
-Like foo_igen_test_ugly_case_interface_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_test_ugly_case_interface_proxy_new_for_bus_finish() to get the result of the operation.
-
-See foo_igen_test_ugly_case_interface_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_proxy_new_for_bus_finish">
-<description>
-Finishes an operation started with foo_igen_test_ugly_case_interface_proxy_new_for_bus().
-
-
-</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_test_ugly_case_interface_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_test_ugly_case_interface_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_test_ugly_case_interface_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_proxy_new_sync">
-<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-TestUglyCaseInterface.top_of_page&quot;&gt;TestUglyCaseInterface&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_test_ugly_case_interface_proxy_new() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_set_ugly_name">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-TestUglyCaseInterface.UGLYNAME&quot;&gt;&quot;UGLYNAME&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenTesTuglyCASEInterface.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_test_ugly_case_interface_skeleton_new">
-<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-TestUglyCaseInterface.top_of_page&quot;&gt;TestUglyCaseInterface&lt;/link&gt;.
-
-
-</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
-
-<function name="foo_igen_unknown_xml_tags_call_can_set_timezone">
-<description>
-Asynchronously invokes the &lt;link linkend=&quot;gdbus-method-UnknownXmlTags.CanSetTimezone&quot;&gt;CanSetTimezone()&lt;/link&gt; D-Bus method on @proxy.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_unknown_xml_tags_call_can_set_timezone_finish() to get the result of the operation.
-
-See foo_igen_unknown_xml_tags_call_can_set_timezone_sync() for the synchronous, blocking version of this method.
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenUnknownXmlTagsProxy.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_unknown_xml_tags_call_can_set_timezone_finish">
-<description>
-Finishes an operation started with foo_igen_unknown_xml_tags_call_can_set_timezone().
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenUnknownXmlTagsProxy.
-</parameter_description>
-</parameter>
-<parameter name="out_value">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_unknown_xml_tags_call_can_set_timezone().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_unknown_xml_tags_call_can_set_timezone_sync">
-<description>
-Synchronously invokes the &lt;link linkend=&quot;gdbus-method-UnknownXmlTags.CanSetTimezone&quot;&gt;CanSetTimezone()&lt;/link&gt; D-Bus method on @proxy. The calling thread is blocked until a reply is received.
-
-See foo_igen_unknown_xml_tags_call_can_set_timezone() for the asynchronous version of this method.
-
-
-</description>
-<parameters>
-<parameter name="proxy">
-<parameter_description> A #FooiGenUnknownXmlTagsProxy.
-</parameter_description>
-</parameter>
-<parameter name="out_value">
-<parameter_description> Return location for return parameter or %NULL to ignore.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the call succeded, %FALSE if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_unknown_xml_tags_complete_can_set_timezone">
-<description>
-Helper function used in service implementations to finish handling invocations of the &lt;link linkend=&quot;gdbus-method-UnknownXmlTags.CanSetTimezone&quot;&gt;CanSetTimezone()&lt;/link&gt; 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.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenUnknownXmlTags.
-</parameter_description>
-</parameter>
-<parameter name="invocation">
-<parameter_description> A #GDBusMethodInvocation.
-</parameter_description>
-</parameter>
-<parameter name="value">
-<parameter_description> Parameter to return.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_unknown_xml_tags_dup_some_property">
-<description>
-Gets a copy of the &lt;link linkend=&quot;gdbus-property-UnknownXmlTags.SomeProperty&quot;&gt;&quot;SomeProperty&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenUnknownXmlTags.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. The returned value should be freed with g_free().
-</return>
-</function>
-
-<function name="foo_igen_unknown_xml_tags_emit_some_signal">
-<description>
-Emits the &lt;link linkend=&quot;gdbus-signal-UnknownXmlTags.SomeSignal&quot;&gt;&quot;SomeSignal&quot;&lt;/link&gt; D-Bus signal.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenUnknownXmlTags.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="foo_igen_unknown_xml_tags_get_some_property">
-<description>
-Gets the value of the &lt;link linkend=&quot;gdbus-property-UnknownXmlTags.SomeProperty&quot;&gt;&quot;SomeProperty&quot;&lt;/link&gt; D-Bus property.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-&lt;warning&gt;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 foo_igen_unknown_xml_tags_dup_some_property() if on another thread.&lt;/warning&gt;
+Whether to close the file handle when the stream is closed.
+Since: 2.26
</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenUnknownXmlTags.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
-</return>
-</function>
+</property>
-<function name="foo_igen_unknown_xml_tags_interface_info">
+<property name="GWin32InputStream:handle">
<description>
-Gets a machine-readable description of the &lt;link linkend=&quot;gdbus-interface-UnknownXmlTags.top_of_page&quot;&gt;UnknownXmlTags&lt;/link&gt; D-Bus interface.
+The handle that the stream reads from.
+Since: 2.26
</description>
-<parameters>
-</parameters>
-<return> A #GDBusInterfaceInfo. Do not free.
-</return>
-</function>
+</property>
-<function name="foo_igen_unknown_xml_tags_override_properties">
+<property name="GWin32OutputStream:close-handle">
<description>
-Overrides all #GObject properties in the #FooiGenUnknownXmlTags interface for a concrete class.
-The properties are overridden in the order they are defined.
+Whether to close the file handle when the stream is closed.
+Since: 2.26
</description>
-<parameters>
-<parameter name="klass">
-<parameter_description> The class structure for a #GObject&lt;!-- --&gt;-derived class.
-</parameter_description>
-</parameter>
-<parameter name="property_id_begin">
-<parameter_description> The property id to assign to the first overridden property.
-</parameter_description>
-</parameter>
-</parameters>
-<return> The last property id.
-</return>
-</function>
+</property>
-<function name="foo_igen_unknown_xml_tags_proxy_new">
+<property name="GWin32OutputStream:handle">
<description>
-Asynchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-UnknownXmlTags.top_of_page&quot;&gt;UnknownXmlTags&lt;/link&gt;. See g_dbus_proxy_new() for more details.
+The file handle that the stream writes to.
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_unknown_xml_tags_proxy_new_finish() to get the result of the operation.
-
-See foo_igen_unknown_xml_tags_proxy_new_sync() for the synchronous, blocking version of this constructor.
+Since: 2.26
</description>
-<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
+</property>
-<function name="foo_igen_unknown_xml_tags_proxy_new_finish">
+<property name="GWin32RegistryKey:path">
<description>
-Finishes an operation started with foo_igen_unknown_xml_tags_proxy_new().
+A path to the key in the registry, in UTF-8.
+Since: 2.46
</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_unknown_xml_tags_proxy_new().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
+</property>
-<function name="foo_igen_unknown_xml_tags_proxy_new_for_bus">
+<property name="GWin32RegistryKey:path-utf16">
<description>
-Like foo_igen_unknown_xml_tags_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
-
-When the operation is finished, @callback will be invoked in the &lt;link linkend=&quot;g-main-context-push-thread-default&quot;&gt;thread-default main loop&lt;/link&gt; of the thread you are calling this method from.
-You can then call foo_igen_unknown_xml_tags_proxy_new_for_bus_finish() to get the result of the operation.
+A path to the key in the registry, in UTF-16.
-See foo_igen_unknown_xml_tags_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+Since: 2.46
</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="callback">
-<parameter_description> A #GAsyncReadyCallback to call when the request is satisfied.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> User data to pass to @callback.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
+</property>
-<function name="foo_igen_unknown_xml_tags_proxy_new_for_bus_finish">
+<property name="GZlibCompressor:file-info">
<description>
-Finishes an operation started with foo_igen_unknown_xml_tags_proxy_new_for_bus().
+If set to a non-%NULL #GFileInfo object, and #GZlibCompressor:format is
+%G_ZLIB_COMPRESSOR_FORMAT_GZIP, the compressor will write the file name
+and modification time from the file info to the GZIP header.
+Since: 2.26
</description>
-<parameters>
-<parameter name="res">
-<parameter_description> The #GAsyncResult obtained from the #GAsyncReadyCallback passed to foo_igen_unknown_xml_tags_proxy_new_for_bus().
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_unknown_xml_tags_proxy_new_for_bus_sync">
-<description>
-Like foo_igen_unknown_xml_tags_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+</property>
-The calling thread is blocked until a reply is received.
-
-See foo_igen_unknown_xml_tags_proxy_new_for_bus() for the asynchronous version of this constructor.
-
-
-</description>
-<parameters>
-<parameter name="bus_type">
-<parameter_description> A #GBusType.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique).
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_unknown_xml_tags_proxy_new_sync">
+<enum name="GZlibCompressorFormat">
<description>
-Synchronously creates a proxy for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-UnknownXmlTags.top_of_page&quot;&gt;UnknownXmlTags&lt;/link&gt;. See g_dbus_proxy_new_sync() for more details.
-
-The calling thread is blocked until a reply is received.
-
-See foo_igen_unknown_xml_tags_proxy_new() for the asynchronous version of this constructor.
+Used to select the type of data format to use for #GZlibDecompressor
+and #GZlibCompressor.
+Since: 2.24
</description>
<parameters>
-<parameter name="connection">
-<parameter_description> A #GDBusConnection.
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> Flags from the #GDBusProxyFlags enumeration.
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
-</parameter_description>
-</parameter>
-<parameter name="object_path">
-<parameter_description> An object path.
-</parameter_description>
-</parameter>
-<parameter name="cancellable">
-<parameter_description> A #GCancellable or %NULL.
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for error or %NULL
+<parameter name="G_ZLIB_COMPRESSOR_FORMAT_ZLIB">
+<parameter_description> deflate compression with zlib header
</parameter_description>
</parameter>
-</parameters>
-<return> The constructed proxy object or %NULL if @error is set.
-</return>
-</function>
-
-<function name="foo_igen_unknown_xml_tags_set_some_property">
-<description>
-Sets the &lt;link linkend=&quot;gdbus-property-UnknownXmlTags.SomeProperty&quot;&gt;&quot;SomeProperty&quot;&lt;/link&gt; D-Bus property to @value.
-
-Since this D-Bus property is both readable and writable, it is meaningful to use this function on both the client- and service-side.
-
-</description>
-<parameters>
-<parameter name="object">
-<parameter_description> A #FooiGenUnknownXmlTags.
+<parameter name="G_ZLIB_COMPRESSOR_FORMAT_GZIP">
+<parameter_description> gzip file format
</parameter_description>
</parameter>
-<parameter name="value">
-<parameter_description> The value to set.
+<parameter name="G_ZLIB_COMPRESSOR_FORMAT_RAW">
+<parameter_description> deflate compression with no header
</parameter_description>
</parameter>
</parameters>
-<return></return>
-</function>
+</enum>
-<function name="foo_igen_unknown_xml_tags_skeleton_new">
+<property name="GZlibDecompressor:file-info">
<description>
-Creates a skeleton object for the D-Bus interface &lt;link linkend=&quot;gdbus-interface-UnknownXmlTags.top_of_page&quot;&gt;UnknownXmlTags&lt;/link&gt;.
+A #GFileInfo containing the information found in the GZIP header
+of the data stream processed, or %NULL if the header was not yet
+fully processed, is not present at all, or the compressor's
+#GZlibDecompressor:format property is not %G_ZLIB_COMPRESSOR_FORMAT_GZIP.
+Since: 2.26
</description>
-<parameters>
-</parameters>
-<return> The skeleton object.
-</return>
-</function>
+</property>
<function name="g_action_activate">
<description>
@@ -20039,8 +6959,7 @@ Since: 2.28
</parameter_description>
</parameter>
</parameters>
-<return> the state type, if the action
-is stateful
+<return> the state type, if the action is stateful
</return>
</function>
@@ -21479,6 +8398,35 @@ Since: 2.40
<return></return>
</function>
+<function name="g_application_bind_busy_property">
+<description>
+Marks @application as busy (see g_application_mark_busy()) while
+@property on @object is %TRUE.
+
+The binding holds a reference to @application while it is active, but
+not to @object. Instead, the binding is destroyed when @object is
+finalized.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="application">
+<parameter_description> a #GApplication
+</parameter_description>
+</parameter>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+<parameter name="property">
+<parameter_description> the name of a boolean property of @object
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_application_command_line_create_file_for_arg">
<description>
Creates a #GFile corresponding to a filename that was given as part
@@ -21982,6 +8930,25 @@ Since: 2.28
</return>
</function>
+<function name="g_application_get_is_busy">
+<description>
+Gets the application's current busy state, as set through
+g_application_mark_busy() or g_application_bind_busy_property().
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="application">
+<parameter_description> a #GApplication
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if @application is currenty marked as busy
+
+</return>
+</function>
+
<function name="g_application_get_is_registered">
<description>
Checks if @application is registered.
@@ -22352,11 +9319,7 @@ except in the case that g_application_set_inactivity_timeout() is in
use.
This function sets the prgname (g_set_prgname()), if not already set,
-to the basename of argv[0]. Since 2.38, if %G_APPLICATION_IS_SERVICE
-is specified, the prgname is set to the application ID. The main
-impact of this is is that the wmclass of windows created by Gtk+ will
-be set accordingly, which helps the window manager determine which
-application is showing the window.
+to the basename of argv[0].
Since 2.40, applications that are not explicitly flagged as services
or launchers (ie: neither %G_APPLICATION_IS_SERVICE or
@@ -22619,6 +9582,32 @@ Since: 2.42
<return></return>
</function>
+<function name="g_application_unbind_busy_property">
+<description>
+Destroys a binding between @property and the busy state of
+@application that was previously created with
+g_application_bind_busy_property().
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="application">
+<parameter_description> a #GApplication
+</parameter_description>
+</parameter>
+<parameter name="object">
+<parameter_description> a #GObject
+</parameter_description>
+</parameter>
+<parameter name="property">
+<parameter_description> the name of a boolean property of @object
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_application_unmark_busy">
<description>
Decreases the busy count of @application.
@@ -24027,7 +11016,9 @@ This function is thread-safe. In other words, you can safely call
it from a thread other than the one running the operation that was
passed the @cancellable.
-The convention within gio is that cancelling an asynchronous
+If @cancellable is %NULL, this function returns immediately for convenience.
+
+The convention within GIO is that cancelling an asynchronous
operation causes it to complete asynchronously. That is, if you
cancel the operation from the same thread in which it is running,
then the operation's #GAsyncReadyCallback will not be invoked until
@@ -24309,6 +11300,13 @@ Resets @cancellable to its uncancelled state.
If cancellable is currently in use by any cancellable operation
then the behavior of this function is undefined.
+Note that it is generally not a good idea to reuse an existing
+cancellable for more operations after it has been cancelled once,
+as this function might tempt you to do. The recommended practice
+is to drop the reference to a cancellable after cancelling it,
+and let it die with the outstanding async operations. You should
+create a fresh cancellable for further async operations.
+
</description>
<parameters>
<parameter name="cancellable">
@@ -24350,6 +11348,8 @@ with g_source_add_child_source() to add cancellability to it.
For convenience, you can call this with a %NULL #GCancellable,
in which case the source will never trigger.
+The new #GSource will hold a reference to the #GCancellable.
+
Since: 2.28
</description>
@@ -28823,7 +15823,6 @@ Gets the #GDBusObject that @interface_ belongs to, if any.
Since: 2.32
-
</description>
<parameters>
<parameter name="interface_">
@@ -36049,6 +23048,76 @@ Checks if the file enumerator has been closed.
</return>
</function>
+<function name="g_file_enumerator_iterate">
+<description>
+This is a version of g_file_enumerator_next_file() that's easier to
+use correctly from C programs. With g_file_enumerator_next_file(),
+the gboolean return value signifies &quot;end of iteration or error&quot;, which
+requires allocation of a temporary #GError.
+
+In contrast, with this function, a %FALSE return from
+gs_file_enumerator_iterate() *always* means
+&quot;error&quot;. End of iteration is signaled by @out_info or @out_child being %NULL.
+
+Another crucial difference is that the references for @out_info and
+@out_child are owned by @direnum (they are cached as hidden
+properties). You must not unref them in your own code. This makes
+memory management significantly easier for C code in combination
+with loops.
+
+Finally, this function optionally allows retrieving a #GFile as
+well.
+
+You must specify at least one of @out_info or @out_child.
+
+The code pattern for correctly using g_file_enumerator_iterate() from C
+is:
+
+|[
+direnum = g_file_enumerate_children (file, ...);
+while (TRUE)
+{
+GFileInfo *info;
+if (!g_file_enumerator_iterate (direnum, &amp;info, NULL, cancellable, error))
+goto out;
+if (!info)
+break;
+... do stuff with &quot;info&quot;; do not unref it! ...
+}
+
+out:
+g_object_unref (direnum); // Note: frees the last @info
+]|
+
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="direnum">
+<parameter_description> an open #GFileEnumerator
+</parameter_description>
+</parameter>
+<parameter name="out_info">
+<parameter_description> Output location for the next #GFileInfo, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="out_child">
+<parameter_description> Output location for the next #GFile, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="cancellable">
+<parameter_description> a #GCancellable
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a #GError
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_file_enumerator_next_file">
<description>
Returns information for the next file in the enumerated object.
@@ -36184,7 +23253,7 @@ Sets the file enumerator as having pending operations.
<function name="g_file_equal">
<description>
-Checks equality of two given #GFiles.
+Checks if the two given #GFiles refer to the same file.
Note that two #GFiles that differ can still refer to the same
file on the filesystem due to various forms of filename
@@ -36577,6 +23646,9 @@ pathname match @prefix. Only full pathname elements are matched,
so a path like /foo is not considered a prefix of /foobar, only
of /foo/bar.
+A #GFile is not a prefix of itself. If you want to check for
+equality, use g_file_equal().
+
This call does no I/O, as it works purely on names. As such it can
sometimes return %FALSE even if @file is inside a @prefix (from a
filesystem point of view), because the prefix of @file is an alias
@@ -38795,7 +25867,7 @@ Cancels a file monitor.
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if monitor was cancelled.
+<return> always %TRUE
</return>
</function>
@@ -38842,37 +25914,6 @@ Free the returned object with g_object_unref().
</return>
</function>
-<function name="g_file_monitor_emit_event">
-<description>
-Emits the #GFileMonitor::changed signal if a change
-has taken place. Should be called from file monitor
-implementations only.
-
-The signal will be emitted from an idle handler (in the
-[thread-default main context][g-main-context-push-thread-default]).
-
-</description>
-<parameters>
-<parameter name="monitor">
-<parameter_description> a #GFileMonitor.
-</parameter_description>
-</parameter>
-<parameter name="child">
-<parameter_description> a #GFile.
-</parameter_description>
-</parameter>
-<parameter name="other_file">
-<parameter_description> a #GFile.
-</parameter_description>
-</parameter>
-<parameter name="event_type">
-<parameter_description> a set of #GFileMonitorEvent flags.
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
<function name="g_file_monitor_file">
<description>
Obtains a file monitor for the given file. If no file notification
@@ -40196,14 +27237,14 @@ by triggering the cancellable object from another thread. If the
operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
returned.
-If you pass in a non-%NULL @etag value, then this value is
-compared to the current entity tag of the file, and if they differ
-an %G_IO_ERROR_WRONG_ETAG error is returned. This generally means
-that the file has been changed since you last read it. You can get
-the new etag from g_file_output_stream_get_etag() after you've
-finished writing and closed the #GFileOutputStream. When you load
-a new file you can use g_file_input_stream_query_info() to get
-the etag of the file.
+If you pass in a non-%NULL @etag value and @file already exists, then
+this value is compared to the current entity tag of the file, and if
+they differ an %G_IO_ERROR_WRONG_ETAG error is returned. This
+generally means that the file has been changed since you last read
+it. You can get the new etag from g_file_output_stream_get_etag()
+after you've finished writing and closed the #GFileOutputStream. When
+you load a new file you can use g_file_input_stream_query_info() to
+get the etag of the file.
If @make_backup is %TRUE, this function will attempt to make a
backup of the current file before overwriting it. If this fails
@@ -40314,7 +27355,9 @@ If @etag is specified (not %NULL), any existing file must have that etag,
or the error %G_IO_ERROR_WRONG_ETAG will be returned.
If @make_backup is %TRUE, this function will attempt to make a backup
-of @file.
+of @file. Internally, it uses g_file_replace(), so will try to replace the
+file contents in the safest way possible. For example, atomic renames are
+used when replacing local files’ contents.
If @cancellable is not %NULL, then the operation can be cancelled by
triggering the cancellable object from another thread. If the operation
@@ -42801,22 +29844,6 @@ ignore.
</return>
</function>
-<function name="g_input_stream_async_read_is_via_threads">
-<description>
-Checks if an input stream's read_async function uses threads.
-
-
-</description>
-<parameters>
-<parameter name="stream">
-<parameter_description> input stream
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if @stream's read_async function uses threads.
-</return>
-</function>
-
<function name="g_input_stream_clear_pending">
<description>
Clears the pending flag on @stream.
@@ -43039,8 +30066,14 @@ stream, %TRUE is returned, and @bytes_read is set to the number of bytes
read into @buffer.
If there is an error during the operation %FALSE is returned and @error
-is set to indicate the error status, @bytes_read is updated to contain
-the number of bytes read into @buffer before the error occurred.
+is set to indicate the error status.
+
+As a special exception to the normal conventions for functions that
+use #GError, if this function returns %FALSE (and sets @error) then
+@bytes_read will be set to the number of bytes that were successfully
+read before the error was encountered. This functionality is only
+available from C. If you need it from another language then you must
+write your own loop around g_input_stream_read().
</description>
@@ -43075,6 +30108,94 @@ read data into (which should be at least count bytes long).
</return>
</function>
+<function name="g_input_stream_read_all_async">
+<description>
+Request an asynchronous read of @count bytes from the stream into the
+buffer starting at @buffer.
+
+This is the asynchronous equivalent of g_input_stream_read_all().
+
+Call g_input_stream_read_all_finish() to collect the result.
+
+Any outstanding I/O request with higher priority (lower numerical
+value) will be executed before an outstanding request with lower
+priority. Default priority is %G_PRIORITY_DEFAULT.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="stream">
+<parameter_description> A #GInputStream
+</parameter_description>
+</parameter>
+<parameter name="buffer">
+<parameter_description> a buffer to
+read data into (which should be at least count bytes long)
+</parameter_description>
+</parameter>
+<parameter name="count">
+<parameter_description> the number of bytes that will be read from the stream
+</parameter_description>
+</parameter>
+<parameter name="io_priority">
+<parameter_description> the [I/O priority][io-priority] of the request
+</parameter_description>
+</parameter>
+<parameter name="cancellable">
+<parameter_description> optional #GCancellable object, %NULL to ignore
+</parameter_description>
+</parameter>
+<parameter name="callback">
+<parameter_description> callback to call when the request is satisfied
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> the data to pass to callback function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_input_stream_read_all_finish">
+<description>
+Finishes an asynchronous stream read operation started with
+g_input_stream_read_all_async().
+
+As a special exception to the normal conventions for functions that
+use #GError, if this function returns %FALSE (and sets @error) then
+@bytes_read will be set to the number of bytes that were successfully
+read before the error was encountered. This functionality is only
+available from C. If you need it from another language then you must
+write your own loop around g_input_stream_read_async().
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="stream">
+<parameter_description> a #GInputStream
+</parameter_description>
+</parameter>
+<parameter name="result">
+<parameter_description> a #GAsyncResult
+</parameter_description>
+</parameter>
+<parameter name="bytes_read">
+<parameter_description> location to store the number of bytes that was read from the stream
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a #GError location to store the error occurring, or %NULL to ignore
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE on success, %FALSE if there was an error
+
+</return>
+</function>
+
<function name="g_input_stream_read_async">
<description>
Request an asynchronous read of @count bytes from the stream into the buffer
@@ -44478,6 +31599,345 @@ trouble.
</return>
</function>
+<function name="g_list_model_get_item">
+<description>
+Get the item at @position. If @position is greater than the number of
+items in @list, %NULL is returned.
+
+%NULL is never returned for an index that is smaller than the length
+of the list. See g_list_model_get_n_items().
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GListModel
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the position of the item to fetch
+</parameter_description>
+</parameter>
+</parameters>
+<return> the item at @position.
+
+</return>
+</function>
+
+<function name="g_list_model_get_item_type">
+<description>
+Gets the type of the items in @list. All items returned from
+g_list_model_get_type() are of that type or a subtype, or are an
+implementation of that interface.
+
+The item type of a #GListModel can not change during the life of the
+model.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GListModel
+</parameter_description>
+</parameter>
+</parameters>
+<return> the #GType of the items contained in @list.
+
+</return>
+</function>
+
+<function name="g_list_model_get_n_items">
+<description>
+Gets the number of items in @list.
+
+Depending on the model implementation, calling this function may be
+less efficient than iterating the list with increasing values for
+@position until g_list_model_get_item() returns %NULL.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GListModel
+</parameter_description>
+</parameter>
+</parameters>
+<return> the number of items in @list.
+
+</return>
+</function>
+
+<function name="g_list_model_get_object">
+<description>
+Get the item at @position. If @position is greater than the number of
+items in @list, %NULL is returned.
+
+%NULL is never returned for an index that is smaller than the length
+of the list. See g_list_model_get_n_items().
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GListModel
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the position of the item to fetch
+</parameter_description>
+</parameter>
+</parameters>
+<return> the object at @position.
+
+</return>
+</function>
+
+<function name="g_list_model_items_changed">
+<description>
+Emits the #GListModel::items-changed signal on @list.
+
+This function should only be called by classes implementing
+#GListModel. It has to be called after the internal representation
+of @list has been updated, because handlers connected to this signal
+might query the new state of the list.
+
+Implementations must only make changes to the model (as visible to
+its consumer) in places that will not cause problems for that
+consumer. For models that are driven directly by a write API (such
+as #GListStore), changes can be reported in response to uses of that
+API. For models that represent remote data, changes should only be
+made from a fresh mainloop dispatch. It is particularly not
+permitted to make changes in response to a call to the #GListModel
+consumer API.
+
+Stated another way: in general, it is assumed that code making a
+series of accesses to the model via the API, without returning to the
+mainloop, and without calling other code, will continue to view the
+same contents of the model.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="list">
+<parameter_description> a #GListModel
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the position at which @list changed
+</parameter_description>
+</parameter>
+<parameter name="removed">
+<parameter_description> the number of items removed
+</parameter_description>
+</parameter>
+<parameter name="added">
+<parameter_description> the number of items added
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_list_store_append">
+<description>
+Appends @item to @store. @item must be of type #GListStore:item-type.
+
+This function takes a ref on @item.
+
+Use g_list_store_splice() to append multiple items at the same time
+efficiently.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="store">
+<parameter_description> a #GListStore
+</parameter_description>
+</parameter>
+<parameter name="item">
+<parameter_description> the new item
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_list_store_insert">
+<description>
+Inserts @item into @store at @position. @item must be of type
+#GListStore:item-type or derived from it. @position must be smaller
+than the length of the list, or equal to it to append.
+
+This function takes a ref on @item.
+
+Use g_list_store_splice() to insert multiple items at the same time
+efficiently.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="store">
+<parameter_description> a #GListStore
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the position at which to insert the new item
+</parameter_description>
+</parameter>
+<parameter name="item">
+<parameter_description> the new item
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_list_store_insert_sorted">
+<description>
+Inserts @item into @store at a position to be determined by the
+@compare_func.
+
+The list must already be sorted before calling this function or the
+result is undefined. Usually you would approach this by only ever
+inserting items by way of this function.
+
+This function takes a ref on @item.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="store">
+<parameter_description> a #GListStore
+</parameter_description>
+</parameter>
+<parameter name="item">
+<parameter_description> the new item
+</parameter_description>
+</parameter>
+<parameter name="compare_func">
+<parameter_description> pairwise comparison function for sorting
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data for @compare_func
+</parameter_description>
+</parameter>
+</parameters>
+<return> the position at which @item was inserted
+
+</return>
+</function>
+
+<function name="g_list_store_new">
+<description>
+Creates a new #GListStore with items of type @item_type. @item_type
+must be a subclass of #GObject.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="item_type">
+<parameter_description> the #GType of items in the list
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GListStore
+</return>
+</function>
+
+<function name="g_list_store_remove">
+<description>
+Removes the item from @store that is at @position. @position must be
+smaller than the current length of the list.
+
+Use g_list_store_splice() to remove multiple items at the same time
+efficiently.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="store">
+<parameter_description> a #GListStore
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the position of the item that is to be removed
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_list_store_remove_all">
+<description>
+Removes all items from @store.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="store">
+<parameter_description> a #GListStore
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_list_store_splice">
+<description>
+Changes @store by removing @n_removals items and adding @n_additions
+items to it. @additions must contain @n_additions items of type
+#GListStore:item-type. %NULL is not permitted.
+
+This function is more efficient than g_list_store_insert() and
+g_list_store_remove(), because it only emits
+#GListModel::items-changed once for the change.
+
+This function takes a ref on each item in @additions.
+
+The parameters @position and @n_removals must be correct (ie:
+@position + @n_removals must be less than or equal to the length of
+the list at the time this function is called).
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="store">
+<parameter_description> a #GListStore
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the position at which to make the change
+</parameter_description>
+</parameter>
+<parameter name="n_removals">
+<parameter_description> the number of items to remove
+</parameter_description>
+</parameter>
+<parameter name="additions">
+<parameter_description> the items to add
+</parameter_description>
+</parameter>
+<parameter name="n_additions">
+<parameter_description> the number of items to add
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_loadable_icon_load">
<description>
Loads a loadable icon. For the asynchronous version of this function,
@@ -47354,6 +34814,28 @@ Since: 2.20
<return></return>
</function>
+<function name="g_native_socket_address_new">
+<description>
+Creates a new #GNativeSocketAddress for @address and @port.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="address">
+<parameter_description> a #GNativeAddress
+</parameter_description>
+</parameter>
+<parameter name="port">
+<parameter_description> a port number
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GNativeSocketAddress
+
+</return>
+</function>
+
<function name="g_network_address_get_hostname">
<description>
Gets @addr's hostname. This might be either UTF-8 or ASCII-encoded,
@@ -47414,6 +34896,12 @@ Since: 2.26
Creates a new #GSocketConnectable for connecting to the given
@hostname and @port.
+Note that depending on the configuration of the machine, a
+@hostname of `localhost` may refer to the IPv4 loopback address
+only, or to both IPv4 and IPv6; use
+g_network_address_new_loopback() to create a #GNetworkAddress that
+is guaranteed to resolve to both addresses.
+
Since: 2.22
</description>
@@ -47432,6 +34920,35 @@ Since: 2.22
</return>
</function>
+<function name="g_network_address_new_loopback">
+<description>
+Creates a new #GSocketConnectable for connecting to the local host
+over a loopback connection to the given @port. This is intended for
+use in connecting to local services which may be running on IPv4 or
+IPv6.
+
+The connectable will return IPv4 and IPv6 loopback addresses,
+regardless of how the host resolves `localhost`. By contrast,
+g_network_address_new() will often only return an IPv4 address when
+resolving `localhost`, and an IPv6 address for `localhost6`.
+
+g_network_address_get_hostname() will always return `localhost` for
+#GNetworkAddresses created with this constructor.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="port">
+<parameter_description> the port
+</parameter_description>
+</parameter>
+</parameters>
+<return> the new #GNetworkAddress
+
+</return>
+</function>
+
<function name="g_network_address_parse">
<description>
Creates a new #GSocketConnectable for connecting to the given
@@ -47473,7 +34990,8 @@ Since: 2.22
</parameter_description>
</parameter>
</parameters>
-<return> the new #GNetworkAddress, or %NULL on error
+<return> the new
+#GNetworkAddress, or %NULL on error
</return>
</function>
@@ -47504,7 +35022,8 @@ Since: 2.26
</parameter_description>
</parameter>
</parameters>
-<return> the new #GNetworkAddress, or %NULL on error
+<return> the new
+#GNetworkAddress, or %NULL on error
</return>
</function>
@@ -47682,6 +35201,42 @@ See g_network_monitor_can_reach_async().
</return>
</function>
+<function name="g_network_monitor_get_connectivity">
+<description>
+Gets a more detailed networking state than
+g_network_monitor_get_network_available().
+
+If #GNetworkMonitor:network-available is %FALSE, then the
+connectivity state will be %G_NETWORK_CONNECTIVITY_LOCAL.
+
+If #GNetworkMonitor:network-available is %TRUE, then the
+connectivity state will be %G_NETWORK_CONNECTIVITY_FULL (if there
+is full Internet connectivity), %G_NETWORK_CONNECTIVITY_LIMITED (if
+the host has a default route, but appears to be unable to actually
+reach the full Internet), or %G_NETWORK_CONNECTIVITY_PORTAL (if the
+host is trapped behind a &quot;captive portal&quot; that requires some sort
+of login or acknowledgement before allowing full Internet access).
+
+Note that in the case of %G_NETWORK_CONNECTIVITY_LIMITED and
+%G_NETWORK_CONNECTIVITY_PORTAL, it is possible that some sites are
+reachable but others are not. In this case, applications can
+attempt to connect to remote servers, but should gracefully fall
+back to their &quot;offline&quot; behavior if the connection attempt fails.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="monitor">
+<parameter_description> the #GNetworkMonitor
+</parameter_description>
+</parameter>
+</parameters>
+<return> the network connectivity state
+
+</return>
+</function>
+
<function name="g_network_monitor_get_default">
<description>
Gets the default #GNetworkMonitor for the system.
@@ -48195,22 +35750,6 @@ Since: 2.28
</return>
</function>
-<function name="g_output_stream_async_write_is_via_threads">
-<description>
-Checks if an ouput stream's write_async function uses threads.
-
-
-</description>
-<parameters>
-<parameter name="stream">
-<parameter_description> a #GOutputStream.
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if @stream's write_async function uses threads.
-</return>
-</function>
-
<function name="g_output_stream_clear_pending">
<description>
Clears the pending flag on @stream.
@@ -48784,8 +36323,15 @@ On a successful write of @count bytes, %TRUE is returned, and @bytes_written
is set to @count.
If there is an error during the operation %FALSE is returned and @error
-is set to indicate the error status, @bytes_written is updated to contain
-the number of bytes written into the stream before the error occurred.
+is set to indicate the error status.
+
+As a special exception to the normal conventions for functions that
+use #GError, if this function returns %FALSE (and sets @error) then
+@bytes_written will be set to the number of bytes that were
+successfully written before the error was encountered. This
+functionality is only available from C. If you need it from another
+language then you must write your own loop around
+g_output_stream_write().
</description>
@@ -48820,6 +36366,99 @@ written to the stream
</return>
</function>
+<function name="g_output_stream_write_all_async">
+<description>
+Request an asynchronous write of @count bytes from @buffer into
+the stream. When the operation is finished @callback will be called.
+You can then call g_output_stream_write_all_finish() to get the result of the
+operation.
+
+This is the asynchronous version of g_output_stream_write_all().
+
+Call g_output_stream_write_all_finish() to collect the result.
+
+Any outstanding I/O request with higher priority (lower numerical
+value) will be executed before an outstanding request with lower
+priority. Default priority is %G_PRIORITY_DEFAULT.
+
+Note that no copy of @buffer will be made, so it must stay valid
+until @callback is called.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="stream">
+<parameter_description> A #GOutputStream
+</parameter_description>
+</parameter>
+<parameter name="buffer">
+<parameter_description> the buffer containing the data to write
+</parameter_description>
+</parameter>
+<parameter name="count">
+<parameter_description> the number of bytes to write
+</parameter_description>
+</parameter>
+<parameter name="io_priority">
+<parameter_description> the io priority of the request
+</parameter_description>
+</parameter>
+<parameter name="cancellable">
+<parameter_description> optional #GCancellable object, %NULL to ignore
+</parameter_description>
+</parameter>
+<parameter name="callback">
+<parameter_description> callback to call when the request is satisfied
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> the data to pass to callback function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_output_stream_write_all_finish">
+<description>
+Finishes an asynchronous stream write operation started with
+g_output_stream_write_all_async().
+
+As a special exception to the normal conventions for functions that
+use #GError, if this function returns %FALSE (and sets @error) then
+@bytes_written will be set to the number of bytes that were
+successfully written before the error was encountered. This
+functionality is only available from C. If you need it from another
+language then you must write your own loop around
+g_output_stream_write_async().
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="stream">
+<parameter_description> a #GOutputStream
+</parameter_description>
+</parameter>
+<parameter name="result">
+<parameter_description> a #GAsyncResult
+</parameter_description>
+</parameter>
+<parameter name="bytes_written">
+<parameter_description> location to store the number of bytes that was written to the stream
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a #GError location to store the error occurring, or %NULL to ignore.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE on success, %FALSE if there was an error
+
+</return>
+</function>
+
<function name="g_output_stream_write_async">
<description>
Request an asynchronous write of @count bytes from @buffer into
@@ -49816,7 +37455,8 @@ Since: 2.38
</parameter_description>
</parameter>
<parameter name="object">
-<parameter_description> the object that has the property to wrap
+<parameter_description> the object that has the property
+to wrap
</parameter_description>
</parameter>
<parameter name="property_name">
@@ -51136,20 +38776,6 @@ Since: 2.32
</return>
</function>
-<function name="g_resource_new_from_table">
-<description>
-
-</description>
-<parameters>
-<parameter name="table">
-<parameter_description> a GvdbTable
-</parameter_description>
-</parameter>
-</parameters>
-<return> a new #GResource for @table
-</return>
-</function>
-
<function name="g_resource_open_stream">
<description>
Looks for a file at the specified @path in the resource and
@@ -51186,7 +38812,7 @@ Free the returned object with g_object_unref()
<function name="g_resource_ref">
<description>
-Atomically increments the reference count of @array by one. This
+Atomically increments the reference count of @resource by one. This
function is MT-safe and may be called from any thread.
Since: 2.32
@@ -51206,7 +38832,7 @@ Since: 2.32
<function name="g_resource_unref">
<description>
Atomically decrements the reference count of @resource by one. If the
-reference count drops to 0, all memory allocated by the array is
+reference count drops to 0, all memory allocated by the resource is
released. This function is MT-safe and may be called from any
thread.
@@ -52597,9 +40223,11 @@ with it.
<function name="g_settings_list_relocatable_schemas">
<description>
+&lt;!-- --&gt;
+
Since: 2.28
-Deprecated:2.40: Use g_settings_schema_source_list_schemas() instead
+Deprecated: 2.40: Use g_settings_schema_source_list_schemas() instead
</description>
<parameters>
@@ -52613,9 +40241,11 @@ modified or freed.
<function name="g_settings_list_schemas">
<description>
+&lt;!-- --&gt;
+
Since: 2.26
-Deprecated:2.40: Use g_settings_schema_source_list_schemas() instead.
+Deprecated: 2.40: Use g_settings_schema_source_list_schemas() instead.
If you used g_settings_list_schemas() to check for the presence of
a particular schema, use g_settings_schema_source_lookup() instead
of your whole loop.
@@ -52669,14 +40299,14 @@ At the most basic level, a #GSettings object is a pure composition of
backend, and a #GMainContext to which signals are dispatched.
This constructor therefore gives you full control over constructing
-#GSettings instances. The first 4 parameters are given directly as
+#GSettings instances. The first 3 parameters are given directly as
@schema, @backend and @path, and the main context is taken from the
thread-default (as per g_settings_new()).
If @backend is %NULL then the default backend is used.
If @path is %NULL then the path from the schema is used. It is an
-error f @path is %NULL and the schema has no path of its own or if
+error if @path is %NULL and the schema has no path of its own or if
@path is non-%NULL and not equal to the path that the schema does
have.
@@ -53006,6 +40636,24 @@ Since: 2.34
</return>
</function>
+<function name="g_settings_schema_key_get_name">
+<description>
+Gets the name of @key.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="key">
+<parameter_description> a #GSettingsSchemaKey
+</parameter_description>
+</parameter>
+</parameters>
+<return> the name of @key.
+
+</return>
+</function>
+
<function name="g_settings_schema_key_get_range">
<description>
Queries the range of a key.
@@ -53167,6 +40815,50 @@ Since: 2.40
<return></return>
</function>
+<function name="g_settings_schema_list_children">
+<description>
+Gets the list of children in @schema.
+
+You should free the return value with g_strfreev() when you are done
+with it.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="schema">
+<parameter_description> a #GSettingsSchema
+</parameter_description>
+</parameter>
+</parameters>
+<return> a list of the children on @settings
+
+</return>
+</function>
+
+<function name="g_settings_schema_list_keys">
+<description>
+Introspects the list of keys on @schema.
+
+You should probably not be calling this function from &quot;normal&quot; code
+(since you should already know what keys are in your schema). This
+function is intended for introspection reasons.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="schema">
+<parameter_description> a #GSettingsSchema
+</parameter_description>
+</parameter>
+</parameters>
+<return> a list of the keys on
+@schema
+
+</return>
+</function>
+
<function name="g_settings_schema_ref">
<description>
Increase the reference count of @schema, returning a new reference.
@@ -54001,12 +41693,37 @@ Since: 2.30
<return></return>
</function>
+<function name="g_simple_action_set_state_hint">
+<description>
+Sets the state hint for the action.
+
+See g_action_get_state_hint() for more information about
+action state hints.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="simple">
+<parameter_description> a #GSimpleAction
+</parameter_description>
+</parameter>
+<parameter name="state_hint">
+<parameter_description> a #GVariant representing the state hint
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_simple_async_report_error_in_idle">
<description>
Reports an error in an asynchronous function in an idle function by
directly setting the contents of the #GAsyncResult with the given error
information.
+Deprecated: 2.46: Use g_task_report_error().
+
</description>
<parameters>
<parameter name="object">
@@ -54047,6 +41764,8 @@ Reports an error in an idle function. Similar to
g_simple_async_report_error_in_idle(), but takes a #GError rather
than building a new one.
+Deprecated: 2.46: Use g_task_report_error().
+
</description>
<parameters>
<parameter name="object">
@@ -54077,6 +41796,8 @@ ownership of @error, so the caller does not have to free it any more.
Since: 2.28
+Deprecated: 2.46: Use g_task_report_error().
+
</description>
<parameters>
<parameter name="object">
@@ -54109,6 +41830,8 @@ g_simple_async_result_complete_in_idle().
Calling this function takes a reference to @simple for as long as
is needed to complete the call.
+Deprecated: 2.46: Use #GTask instead.
+
</description>
<parameters>
<parameter name="simple">
@@ -54129,6 +41852,8 @@ of the thread that @simple was initially created in
Calling this function takes a reference to @simple for as long as
is needed to complete the call.
+Deprecated: 2.46: Use #GTask instead.
+
</description>
<parameters>
<parameter name="simple">
@@ -54143,6 +41868,7 @@ is needed to complete the call.
<description>
Gets the operation result boolean from within the asynchronous result.
+Deprecated: 2.46: Use #GTask and g_task_propagate_boolean() instead.
</description>
<parameters>
@@ -54153,6 +41879,7 @@ Gets the operation result boolean from within the asynchronous result.
</parameters>
<return> %TRUE if the operation's result was %TRUE, %FALSE
if the operation's result was %FALSE.
+
</return>
</function>
@@ -54160,6 +41887,7 @@ if the operation's result was %FALSE.
<description>
Gets a pointer result as returned by the asynchronous function.
+Deprecated: 2.46: Use #GTask and g_task_propagate_pointer() instead.
</description>
<parameters>
@@ -54169,6 +41897,7 @@ Gets a pointer result as returned by the asynchronous function.
</parameter>
</parameters>
<return> a pointer from the result.
+
</return>
</function>
@@ -54176,6 +41905,7 @@ Gets a pointer result as returned by the asynchronous function.
<description>
Gets a gssize from the asynchronous result.
+Deprecated: 2.46: Use #GTask and g_task_propagate_int() instead.
</description>
<parameters>
@@ -54185,6 +41915,7 @@ Gets a gssize from the asynchronous result.
</parameter>
</parameters>
<return> a gssize returned from the asynchronous function.
+
</return>
</function>
@@ -54192,6 +41923,7 @@ Gets a gssize from the asynchronous result.
<description>
Gets the source tag for the #GSimpleAsyncResult.
+Deprecated: 2.46. Use #GTask and g_task_get_source_tag() instead.
</description>
<parameters>
@@ -54201,6 +41933,7 @@ Gets the source tag for the #GSimpleAsyncResult.
</parameter>
</parameters>
<return> a #gpointer to the source object for the #GSimpleAsyncResult.
+
</return>
</function>
@@ -54221,6 +41954,8 @@ check is skipped.)
Since: 2.20
+Deprecated: 2.46: Use #GTask and g_task_is_valid() instead.
+
</description>
<parameters>
<parameter name="result">
@@ -54254,6 +41989,7 @@ probably should) then you should provide the user's cancellable to
g_simple_async_result_set_check_cancellable() immediately after
this function returns.
+Deprecated: 2.46: Use g_task_new() instead.
</description>
<parameters>
@@ -54275,6 +42011,7 @@ this function returns.
</parameter>
</parameters>
<return> a #GSimpleAsyncResult.
+
</return>
</function>
@@ -54282,6 +42019,7 @@ this function returns.
<description>
Creates a new #GSimpleAsyncResult with a set error.
+Deprecated: 2.46: Use g_task_new() and g_task_return_new_error() instead.
</description>
<parameters>
@@ -54315,6 +42053,7 @@ Creates a new #GSimpleAsyncResult with a set error.
</parameter>
</parameters>
<return> a #GSimpleAsyncResult.
+
</return>
</function>
@@ -54322,6 +42061,7 @@ Creates a new #GSimpleAsyncResult with a set error.
<description>
Creates a #GSimpleAsyncResult from an error condition.
+Deprecated: 2.46: Use g_task_new() and g_task_return_error() instead.
</description>
<parameters>
@@ -54343,6 +42083,7 @@ Creates a #GSimpleAsyncResult from an error condition.
</parameter>
</parameters>
<return> a #GSimpleAsyncResult.
+
</return>
</function>
@@ -54353,6 +42094,8 @@ caller's ownership of @error, so the caller does not need to free it anymore.
Since: 2.28
+Deprecated: 2.46: Use g_task_new() and g_task_return_error() instead.
+
</description>
<parameters>
<parameter name="source_object">
@@ -54386,6 +42129,7 @@ If the #GCancellable given to a prior call to
g_simple_async_result_set_check_cancellable() is cancelled then this
function will return %TRUE with @dest set appropriately.
+Deprecated: 2.46: Use #GTask instead.
</description>
<parameters>
@@ -54399,6 +42143,7 @@ function will return %TRUE with @dest set appropriately.
</parameter>
</parameters>
<return> %TRUE if the error was propagated to @dest. %FALSE otherwise.
+
</return>
</function>
@@ -54411,6 +42156,8 @@ the result to the appropriate main loop.
Calling this function takes a reference to @simple for as long as
is needed to run the job and report its completion.
+Deprecated: 2.46: Use #GTask and g_task_run_in_thread() instead.
+
</description>
<parameters>
<parameter name="simple">
@@ -54453,6 +42200,8 @@ unrelated g_simple_async_result_set_handle_cancellation() function.
Since: 2.32
+Deprecated: 2.46: Use #GTask instead.
+
</description>
<parameters>
<parameter name="simple">
@@ -54471,6 +42220,8 @@ Since: 2.32
<description>
Sets an error within the asynchronous result without a #GError.
+Deprecated: 2.46: Use #GTask and g_task_return_new_error() instead.
+
</description>
<parameters>
<parameter name="simple">
@@ -54502,6 +42253,8 @@ Sets an error within the asynchronous result without a #GError.
Sets an error within the asynchronous result without a #GError.
Unless writing a binding, see g_simple_async_result_set_error().
+Deprecated: 2.46: Use #GTask and g_task_return_error() instead.
+
</description>
<parameters>
<parameter name="simple">
@@ -54532,6 +42285,8 @@ Unless writing a binding, see g_simple_async_result_set_error().
<description>
Sets the result from a #GError.
+Deprecated: 2.46: Use #GTask and g_task_return_error() instead.
+
</description>
<parameters>
<parameter name="simple">
@@ -54554,6 +42309,8 @@ This function has nothing to do with
g_simple_async_result_set_check_cancellable(). It only refers to the
#GCancellable passed to g_simple_async_result_run_in_thread().
+Deprecated: 2.46
+
</description>
<parameters>
<parameter name="simple">
@@ -54572,6 +42329,8 @@ g_simple_async_result_set_check_cancellable(). It only refers to the
<description>
Sets the operation result to a boolean within the asynchronous result.
+Deprecated: 2.46: Use #GTask and g_task_return_boolean() instead.
+
</description>
<parameters>
<parameter name="simple">
@@ -54590,6 +42349,8 @@ Sets the operation result to a boolean within the asynchronous result.
<description>
Sets the operation result within the asynchronous result to a pointer.
+Deprecated: 2.46: Use #GTask and g_task_return_pointer() instead.
+
</description>
<parameters>
<parameter name="simple">
@@ -54613,6 +42374,8 @@ Sets the operation result within the asynchronous result to a pointer.
Sets the operation result within the asynchronous result to
the given @op_res.
+Deprecated: 2.46: Use #GTask and g_task_return_int() instead.
+
</description>
<parameters>
<parameter name="simple">
@@ -54634,6 +42397,8 @@ of @error, so the caller does not need to free it any more.
Since: 2.28
+Deprecated: 2.46: Use #GTask and g_task_return_error() instead.
+
</description>
<parameters>
<parameter name="simple">
@@ -54648,6 +42413,29 @@ Since: 2.28
<return></return>
</function>
+<function name="g_simple_io_stream_new">
+<description>
+Creates a new #GSimpleIOStream wrapping @input_stream and @output_stream.
+See also #GIOStream.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="input_stream">
+<parameter_description> a #GInputStream.
+</parameter_description>
+</parameter>
+<parameter name="output_stream">
+<parameter_description> a #GOutputStream.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GSimpleIOStream instance.
+
+</return>
+</function>
+
<function name="g_simple_permission_new">
<description>
Creates a new #GPermission instance that represents an action that is
@@ -56522,7 +44310,7 @@ Since: 2.22
</parameter_description>
</parameter>
</parameters>
-<return> a #GSocketAddress or %NULL on error.
+<return> a #GSocket or %NULL on error.
</return>
</function>
@@ -57741,6 +45529,12 @@ all properties should work. Note that the file descriptor
will be set to non-blocking mode, independent on the blocking
mode of the #GSocket.
+On success, the returned #GSocket takes ownership of @fd. On failure, the
+caller must close @fd themselves.
+
+Since GLib 2.46, it is no longer a fatal error to call this on a non-socket
+descriptor. Instead, a GError will be set with code %G_IO_ERROR_FAILED
+
Since: 2.22
</description>
@@ -58154,6 +45948,78 @@ on error
</return>
</function>
+<function name="g_socket_send_messages">
+<description>
+Send multiple data messages from @socket in one go. This is the most
+complicated and fully-featured version of this call. For easier use, see
+g_socket_send(), g_socket_send_to(), and g_socket_send_message().
+
+@messages must point to an array of #GOutputMessage structs and
+@num_messages must be the length of this array. Each #GOutputMessage
+contains an address to send the data to, and a pointer to an array of
+#GOutputVector structs to describe the buffers that the data to be sent
+for each message will be gathered from. Using multiple #GOutputVectors is
+more memory-efficient than manually copying data from multiple sources
+into a single buffer, and more network-efficient than making multiple
+calls to g_socket_send(). Sending multiple messages in one go avoids the
+overhead of making a lot of syscalls in scenarios where a lot of data
+packets need to be sent (e.g. high-bandwidth video streaming over RTP/UDP),
+or where the same data needs to be sent to multiple recipients.
+
+@flags modify how the message is sent. The commonly available arguments
+for this are available in the #GSocketMsgFlags enum, but the
+values there are the same as the system values, and the flags
+are passed in as-is, so you can pass in system-specific flags too.
+
+If the socket is in blocking mode the call will block until there is
+space for all the data in the socket queue. If there is no space available
+and the socket is in non-blocking mode a %G_IO_ERROR_WOULD_BLOCK error
+will be returned if no data was written at all, otherwise the number of
+messages sent will be returned. To be notified when space is available,
+wait for the %G_IO_OUT condition. Note though that you may still receive
+%G_IO_ERROR_WOULD_BLOCK from g_socket_send() even if you were previously
+notified of a %G_IO_OUT condition. (On Windows in particular, this is
+very common due to the way the underlying APIs work.)
+
+On error -1 is returned and @error is set accordingly.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="socket">
+<parameter_description> a #GSocket
+</parameter_description>
+</parameter>
+<parameter name="messages">
+<parameter_description> an array of #GOutputMessage structs
+</parameter_description>
+</parameter>
+<parameter name="num_messages">
+<parameter_description> the number of elements in @messages
+</parameter_description>
+</parameter>
+<parameter name="flags">
+<parameter_description> an int containing #GSocketMsgFlags flags
+</parameter_description>
+</parameter>
+<parameter name="cancellable">
+<parameter_description> a %GCancellable or %NULL
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> #GError for error reporting, or %NULL to ignore.
+</parameter_description>
+</parameter>
+</parameters>
+<return> number of messages sent, or -1 on error. Note that the number of
+messages sent may be smaller than @num_messages if the socket is
+non-blocking or if @num_messages was larger than UIO_MAXIOV (1024),
+in which case the caller may re-try to send the remaining messages.
+
+</return>
+</function>
+
<function name="g_socket_send_to">
<description>
Tries to send @size bytes from @buffer to @address. If @address is
@@ -59366,9 +47232,8 @@ Since: 2.40
Returns the value of the environment variable @variable in the
environment of processes launched from this launcher.
-The returned string is in the GLib file name encoding. On UNIX, this
-means that it can be an arbitrary byte string. On Windows, it will
-be UTF-8.
+On UNIX, the returned string can be an arbitrary byte string.
+On Windows, it will be UTF-8.
Since: 2.40
@@ -59484,9 +47349,8 @@ g_environ_unsetenv(), etc.
As an alternative, you can use g_subprocess_launcher_setenv(),
g_subprocess_launcher_unsetenv(), etc.
-All strings in this array are expected to be in the GLib file name
-encoding. On UNIX, this means that they can be arbitrary byte
-strings. On Windows, they should be in UTF-8.
+On UNIX, all strings in this array can be arbitrary byte strings.
+On Windows, they should be in UTF-8.
Since: 2.40
@@ -59632,10 +47496,9 @@ Since: 2.40
Sets the environment variable @variable in the environment of
processes launched from this launcher.
-Both the variable's name and value should be in the GLib file name
-encoding. On UNIX, this means that they can be arbitrary byte
-strings. On Windows, they should be in UTF-8.
-
+On UNIX, both the variable's name and value can be arbitrary byte
+strings, except that the variable's name cannot contain '='.
+On Windows, they should be in UTF-8.
Since: 2.40
@@ -59861,9 +47724,8 @@ Since: 2.40
Removes the environment variable @variable from the environment of
processes launched from this launcher.
-The variable name should be in the GLib file name encoding. On UNIX,
-this means that they can be arbitrary byte strings. On Windows, they
-should be in UTF-8.
+On UNIX, the variable's name can be an arbitrary byte string not
+containing '='. On Windows, it should be in UTF-8.
Since: 2.40
@@ -60214,6 +48076,26 @@ Since: 2.36
<return></return>
</function>
+<function name="g_task_get_completed">
+<description>
+Gets the value of #GTask:completed. This changes from %FALSE to %TRUE after
+the task’s callback is invoked, and will return %FALSE if called from inside
+the callback.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="task">
+<parameter_description> a #GTask.
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the task has completed, %FALSE otherwise.
+
+</return>
+</function>
+
<function name="g_task_get_context">
<description>
Gets the #GMainContext that @task will return its result in (that
@@ -60779,6 +48661,12 @@ This takes a ref on @task until the task completes.
See #GTaskThreadFunc for more details about how @task_func is handled.
+Although GLib currently rate-limits the tasks queued via
+g_task_run_in_thread(), you should not assume that it will always
+do this. If you have a very large number of tasks to run, but don't
+want them to all run at once, you should only queue a limited
+number of them at a time.
+
Since: 2.36
</description>
@@ -60806,6 +48694,13 @@ See #GTaskThreadFunc for more details about how @task_func is handled.
Normally this is used with tasks created with a %NULL
`callback`, but note that even if the task does
have a callback, it will not be invoked when @task_func returns.
+#GTask:completed will be set to %TRUE just before this function returns.
+
+Although GLib currently rate-limits the tasks queued via
+g_task_run_in_thread_sync(), you should not assume that it will
+always do this. If you have a very large number of tasks to run,
+but don't want them to all run at once, you should only queue a
+limited number of them at a time.
Since: 2.36
@@ -61005,7 +48900,7 @@ Since: 2.22
<function name="g_tcp_connection_set_graceful_disconnect">
<description>
-This enabled graceful disconnects on close. A graceful disconnect
+This enables graceful disconnects on close. A graceful disconnect
means that we signal the receiving end that the connection is terminated
and wait for it to close the connection before closing the connection.
@@ -61561,8 +49456,17 @@ and its contents when you are done with it.
<function name="g_tls_certificate_new_from_file">
<description>
-Creates a #GTlsCertificate from the PEM-encoded data in @file. If
-@file cannot be read or parsed, the function will return %NULL and
+Creates a #GTlsCertificate from the PEM-encoded data in @file. The
+returned certificate will be the first certificate found in @file. As
+of GLib 2.44, if @file contains more certificates it will try to load
+a certificate chain. All certificates will be verified in the order
+found (top-level certificate should be the last one in the file) and
+the #GTlsCertificate:issuer property of each certificate will be set
+accordingly if the verification succeeds. If any certificate in the
+chain cannot be verified, the first certificate in the file will
+still be returned.
+
+If @file cannot be read or parsed, the function will return %NULL and
set @error. Otherwise, this behaves like
g_tls_certificate_new_from_pem().
@@ -61587,16 +49491,27 @@ Since: 2.28
<function name="g_tls_certificate_new_from_files">
<description>
Creates a #GTlsCertificate from the PEM-encoded data in @cert_file
-and @key_file. If either file cannot be read or parsed, the
-function will return %NULL and set @error. Otherwise, this behaves
-like g_tls_certificate_new_from_pem().
+and @key_file. The returned certificate will be the first certificate
+found in @cert_file. As of GLib 2.44, if @cert_file contains more
+certificates it will try to load a certificate chain. All
+certificates will be verified in the order found (top-level
+certificate should be the last one in the file) and the
+#GTlsCertificate:issuer property of each certificate will be set
+accordingly if the verification succeeds. If any certificate in the
+chain cannot be verified, the first certificate in the file will
+still be returned.
+
+If either file cannot be read or parsed, the function will return
+%NULL and set @error. Otherwise, this behaves like
+g_tls_certificate_new_from_pem().
Since: 2.28
</description>
<parameters>
<parameter name="cert_file">
-<parameter_description> file containing a PEM-encoded certificate to import
+<parameter_description> file containing one or more PEM-encoded certificates to
+import
</parameter_description>
</parameter>
<parameter name="key_file">
@@ -61615,14 +49530,20 @@ Since: 2.28
<function name="g_tls_certificate_new_from_pem">
<description>
-Creates a new #GTlsCertificate from the PEM-encoded data in @data.
-If @data includes both a certificate and a private key, then the
+Creates a #GTlsCertificate from the PEM-encoded data in @data. If
+@data includes both a certificate and a private key, then the
returned certificate will include the private key data as well. (See
the #GTlsCertificate:private-key-pem property for information about
supported formats.)
-If @data includes multiple certificates, only the first one will be
-parsed.
+The returned certificate will be the first certificate found in
+@data. As of GLib 2.44, if @data contains more certificates it will
+try to load a certificate chain. All certificates will be verified in
+the order found (top-level certificate should be the last one in the
+file) and the #GTlsCertificate:issuer property of each certificate
+will be set accordingly if the verification succeeds. If any
+certificate in the chain cannot be verified, the first certificate in
+the file will still be returned.
Since: 2.28
@@ -61690,6 +49611,31 @@ Since: 2.28
</return>
</function>
+<function name="g_tls_client_connection_copy_session_state">
+<description>
+Copies session state from one connection to another. This is
+not normally needed, but may be used when the same session
+needs to be used between different endpoints as is required
+by some protocols such as FTP over TLS. @source should have
+already completed a handshake, and @conn should not have
+completed a handshake.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="conn">
+<parameter_description> a #GTlsClientConnection
+</parameter_description>
+</parameter>
+<parameter name="source">
+<parameter_description> a #GTlsClientConnection
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_tls_client_connection_get_accepted_cas">
<description>
Gets the list of distinguished names of the Certificate Authorities
@@ -64548,28 +52494,59 @@ Checks if a unix mount is a system path.
</return>
</function>
+<function name="g_unix_mount_monitor_get">
+<description>
+Gets the #GUnixMountMonitor for the current thread-default main
+context.
+
+The mount monitor can be used to monitor for changes to the list of
+mounted filesystems as well as the list of mount points (ie: fstab
+entries).
+
+You must only call g_object_unref() on the return value from under
+the same main context as you called this function.
+
+Since: 2.44
+
+</description>
+<parameters>
+</parameters>
+<return> the #GUnixMountMonitor.
+
+</return>
+</function>
+
<function name="g_unix_mount_monitor_new">
<description>
-Gets a new #GUnixMountMonitor. The default rate limit for which the
-monitor will report consecutive changes for the mount and mount
-point entry files is the default for a #GFileMonitor. Use
-g_unix_mount_monitor_set_rate_limit() to change this.
+Deprecated alias for g_unix_mount_monitor_get().
+This function was never a true constructor, which is why it was
+renamed.
+
+Deprecated:2.44:Use g_unix_mount_monitor_get() instead.
</description>
<parameters>
</parameters>
-<return> a #GUnixMountMonitor.
+<return> a #GUnixMountMonitor.
+
</return>
</function>
<function name="g_unix_mount_monitor_set_rate_limit">
<description>
-Sets the rate limit to which the @mount_monitor will report
-consecutive change events to the mount and mount point entry files.
+This function does nothing.
+
+Before 2.44, this was a partially-effective way of controlling the
+rate at which events would be reported under some uncommon
+circumstances. Since @mount_monitor is a singleton, it also meant
+that calling this function would have side effects for other users of
+the monitor.
Since: 2.18
+Deprecated:2.44:This function does nothing. Don't call it.
+
</description>
<parameters>
<parameter name="mount_monitor">
@@ -66081,883 +54058,1091 @@ Since: 2.26
<return></return>
</function>
-<function name="g_winhttp_file_input_stream_new">
+<function name="g_win32_registry_key_erase_change_indicator">
<description>
+Erases change indicator of the @key.
+
+Subsequent calls to g_win32_registry_key_has_changed() will return %FALSE
+until the key is put on watch again by calling
+g_win32_registry_key_watch() again.
+
+Since: 2.46
</description>
<parameters>
-<parameter name="file">
-<parameter_description> the GWinHttpFile being read
-</parameter_description>
-</parameter>
-<parameter name="connection">
-<parameter_description> handle to the HTTP connection, as from WinHttpConnect()
-</parameter_description>
-</parameter>
-<parameter name="request">
-<parameter_description> handle to the HTTP request, as from WinHttpOpenRequest
+<parameter name="key">
+<parameter_description> a #GWin32RegistryKey
</parameter_description>
</parameter>
</parameters>
-<return> #GFileInputStream for the given request
-</return>
+<return></return>
</function>
-<function name="g_winhttp_file_output_stream_new">
+<function name="g_win32_registry_key_get_child">
<description>
+Opens a @subkey of the @key.
+
</description>
<parameters>
-<parameter name="file">
-<parameter_description> the GWinHttpFile being read
+<parameter name="key">
+<parameter_description> a parent #GWin32RegistryKey
</parameter_description>
</parameter>
-<parameter name="connection">
-<parameter_description> handle to the HTTP connection, as from WinHttpConnect()
+<parameter name="subkey">
+<parameter_description> name of a child key to open (in UTF-8), relative to @key
</parameter_description>
</parameter>
-<parameter name="request">
-<parameter_description> handle to the HTTP request, as from WinHttpOpenRequest
+<parameter name="error">
+<parameter_description> a pointer to a %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return> #GFileOutputStream for the given request
+<return> a #GWin32RegistryKey or %NULL if can't be opened. Free
+with g_object_unref().
</return>
</function>
-<function name="g_winhttp_vfs_new">
+<function name="g_win32_registry_key_get_child_w">
<description>
-Returns a new #GVfs handle for a WinHttp vfs.
+Opens a @subkey of the @key.
</description>
<parameters>
+<parameter name="key">
+<parameter_description> a parent #GWin32RegistryKey
+</parameter_description>
+</parameter>
+<parameter name="subkey">
+<parameter_description> name of a child key to open (in UTF-8), relative to @key
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a pointer to a %NULL #GError, or %NULL
+</parameter_description>
+</parameter>
</parameters>
-<return> a new #GVfs handle.
+<return> a #GWin32RegistryKey or %NULL if can't be opened. Free
+with g_object_unref().
</return>
</function>
-<function name="g_zlib_compressor_get_file_info">
+<function name="g_win32_registry_key_get_path">
<description>
-Returns the #GZlibCompressor:file-info property.
+Get full path to the key
-Since: 2.26
+Since: 2.46
</description>
<parameters>
-<parameter name="compressor">
-<parameter_description> a #GZlibCompressor
+<parameter name="key">
+<parameter_description> a #GWin32RegistryKey
</parameter_description>
</parameter>
</parameters>
-<return> a #GFileInfo, or %NULL
+<return> a full path to the key (in UTF-8),
+or %NULL if it can't be converted to UTF-8.
</return>
</function>
-<function name="g_zlib_compressor_new">
+<function name="g_win32_registry_key_get_path_w">
<description>
-Creates a new #GZlibCompressor.
+Get full path to the key
-Since: 2.24
+Since: 2.46
</description>
<parameters>
-<parameter name="format">
-<parameter_description> The format to use for the compressed data
-</parameter_description>
-</parameter>
-<parameter name="level">
-<parameter_description> compression level (0-9), -1 for default
+<parameter name="key">
+<parameter_description> a #GWin32RegistryKey
</parameter_description>
</parameter>
</parameters>
-<return> a new #GZlibCompressor
+<return> a full path to the key (in UTF-16)
</return>
</function>
-<function name="g_zlib_compressor_set_file_info">
+<function name="g_win32_registry_key_get_value">
<description>
-Sets @file_info in @compressor. If non-%NULL, and @compressor's
-#GZlibCompressor:format property is %G_ZLIB_COMPRESSOR_FORMAT_GZIP,
-it will be used to set the file name and modification time in
-the GZIP header of the compressed data.
+Get data from a value of a key. String data is guaranteed to be
+appropriately terminated and will be in UTF-8.
-Note: it is an error to call this function while a compression is in
-progress; it may only be called immediately after creation of @compressor,
-or after resetting it with g_converter_reset().
-
-Since: 2.26
+Since: 2.46
</description>
<parameters>
-<parameter name="compressor">
-<parameter_description> a #GZlibCompressor
+<parameter name="key">
+<parameter_description> a #GWin32RegistryKey
</parameter_description>
</parameter>
-<parameter name="file_info">
-<parameter_description> a #GFileInfo
+<parameter name="auto_expand">
+<parameter_description> (in) %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR
+to G_WIN32_REGISTRY_VALUE_STR.
</parameter_description>
</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="g_zlib_decompressor_get_file_info">
-<description>
-Retrieves the #GFileInfo constructed from the GZIP header data
-of compressed data processed by @compressor, or %NULL if @decompressor's
-#GZlibDecompressor:format property is not %G_ZLIB_COMPRESSOR_FORMAT_GZIP,
-or the header data was not fully processed yet, or it not present in the
-data stream at all.
-
-Since: 2.26
-
-</description>
-<parameters>
-<parameter name="decompressor">
-<parameter_description> a #GZlibDecompressor
+<parameter name="value_name">
+<parameter_description> name of the value to get (in UTF-8).
+Empty string means the '(Default)' value.
+</parameter_description>
+</parameter>
+<parameter name="value_type">
+<parameter_description> type of the value retrieved.
+</parameter_description>
+</parameter>
+<parameter name="value_data">
+<parameter_description> contents of the value.
+</parameter_description>
+</parameter>
+<parameter name="value_data_size">
+<parameter_description> size of the buffer pointed
+by @value_data.
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return> a #GFileInfo, or %NULL
+<return> %TRUE on success, %FALSE on failure.
</return>
</function>
-<function name="g_zlib_decompressor_new">
+<function name="g_win32_registry_key_get_value_w">
<description>
-Creates a new #GZlibDecompressor.
+Get data from a value of a key.
-Since: 2.24
+Get data from a value of a key. String data is guaranteed to be
+appropriately terminated and will be in UTF-16.
+
+When calling with value_data == NULL (to get data size without getting
+the data itself) remember that returned size corresponds to possibly
+unterminated string data (if value is some kind of string), because
+termination cannot be checked and fixed unless the data is retreived
+too.
+
+Since: 2.46
</description>
<parameters>
-<parameter name="format">
-<parameter_description> The format to use for the compressed data
+<parameter name="key">
+<parameter_description> a #GWin32RegistryKey
+</parameter_description>
+</parameter>
+<parameter name="auto_expand">
+<parameter_description> (in) %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR
+to G_WIN32_REGISTRY_VALUE_STR.
+</parameter_description>
+</parameter>
+<parameter name="value_name">
+<parameter_description> name of the value to get (in UTF-16).
+Empty string means the '(Default)' value.
+</parameter_description>
+</parameter>
+<parameter name="value_type">
+<parameter_description> type of the value retrieved.
+</parameter_description>
+</parameter>
+<parameter name="value_data">
+<parameter_description> contents of the value.
+</parameter_description>
+</parameter>
+<parameter name="value_data_size">
+<parameter_description> size of the buffer pointed
+by @value_data.
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return> a new #GZlibDecompressor
+<return> %TRUE on success, %FALSE on failure.
</return>
</function>
-<function name="get_sync_in_thread">
+<function name="g_win32_registry_key_has_changed">
<description>
-Sleep for a short time, then get a session bus connection and call
-a method on it.
-
-Runs in a non-main thread.
+Check the @key's status indicator.
+Since: 2.46
</description>
<parameters>
-<parameter name="data">
-<parameter_description> delay in microseconds
+<parameter name="key">
+<parameter_description> a #GWin32RegistryKey
</parameter_description>
</parameter>
</parameters>
-<return> the connection
+<return> %TRUE if the @key was put under watch at some point and has changed
+since then, %FALSE if it either wasn't changed or wasn't watched at all.
+
</return>
</function>
-<function name="get_viewable_logical_drives">
+<function name="g_win32_registry_key_new">
<description>
-Returns the list of logical and viewable drives as defined by
-GetLogicalDrives() and the registry keys
-Software\Microsoft\Windows\CurrentVersion\Policies\Explorer under
-HKLM or HKCU. If neither key exists the result of
-GetLogicalDrives() is returned.
+Creates an object that represents a registry key specified by @path.
+@path must start with one of the following pre-defined names:
+- HKEY_CLASSES_ROOT
+- HKEY_CURRENT_CONFIG
+- HKEY_CURRENT_USER
+- HKEY_CURRENT_USER_LOCAL_SETTINGS
+- HKEY_LOCAL_MACHINE
+- HKEY_PERFORMANCE_DATA
+- HKEY_PERFORMANCE_NLSTEXT
+- HKEY_PERFORMANCE_TEXT
+- HKEY_USERS
+@path must not end with '\\'.
</description>
<parameters>
+<parameter name="path">
+<parameter_description> absolute full name of a key to open (in UTF-8)
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a pointer to a %NULL #GError, or %NULL
+</parameter_description>
+</parameter>
</parameters>
-<return> bitmask with same meaning as returned by GetLogicalDrives()
+<return> a #GWin32RegistryKey or %NULL if can't
+be opened. Free with g_object_unref().
</return>
</function>
-<function name="gvdb_table_get_raw_value">
+<function name="g_win32_registry_key_new_w">
<description>
-Looks up a value named @key in @file.
-
-This call is equivalent to gvdb_table_get_value() except that it
-never byteswaps the value.
+Creates an object that represents a registry key specified by @path.
+@path must start with one of the following pre-defined names:
+- HKEY_CLASSES_ROOT
+- HKEY_CURRENT_CONFIG
+- HKEY_CURRENT_USER
+- HKEY_CURRENT_USER_LOCAL_SETTINGS
+- HKEY_LOCAL_MACHINE
+- HKEY_PERFORMANCE_DATA
+- HKEY_PERFORMANCE_NLSTEXT
+- HKEY_PERFORMANCE_TEXT
+- HKEY_USERS
+@path must not end with L'\\'.
</description>
<parameters>
-<parameter name="table">
-<parameter_description> a #GvdbTable
+<parameter name="path">
+<parameter_description> absolute full name of a key to open (in UTF-16)
</parameter_description>
</parameter>
-<parameter name="key">
-<parameter_description> a string
+<parameter name="error">
+<parameter_description> a pointer to a %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return> a #GVariant, or %NULL
+<return> a #GWin32RegistryKey or %NULL if can't
+be opened. Free with g_object_unref().
</return>
</function>
-<function name="gvdb_table_get_table">
+<function name="g_win32_registry_key_watch">
<description>
-Looks up the hash table named @key in @file.
+Puts @key under a watch.
-The toplevel hash table in a #GvdbTable can contain reference to
-child hash tables (and those can contain further references...).
+When the key changes, an APC will be queued in the current thread. The APC
+will run when the current thread enters alertable state (GLib main loop
+should do that; if you are not using it, see MSDN documentation for W32API
+calls that put thread into alertable state). When it runs, it will
+atomically switch an indicator in the @key. If a callback was specified,
+it is invoked at that point. Subsequent calls to
+g_win32_registry_key_has_changed() will return %TRUE, and the callback (if
+it was specified) will not be invoked anymore.
+Calling g_win32_registry_key_erase_change_indicator() will reset the indicator,
+and g_win32_registry_key_has_changed() will start returning %FALSE.
+To resume the watch, call g_win32_registry_key_watch_for_changes() again.
-If @key is not found in @file then %NULL is returned. Otherwise, a
-new #GvdbTable is returned, referring to the child hashtable as
-contained in the file. This newly-created #GvdbTable does not depend
-on the continued existence of @file.
+Calling g_win32_registry_key_watch_for_changes() for a key that is already
+being watched is allowed and affects nothing.
-You should call gvdb_table_unref() on the return result when you no
-longer require it.
+The fact that the key is being watched will be used internally to update
+key path (if it changes).
+Since: 2.46
</description>
<parameters>
-<parameter name="file">
-<parameter_description> a #GvdbTable
+<parameter name="key">
+<parameter_description> a #GWin32RegistryKey
</parameter_description>
</parameter>
-<parameter name="key">
-<parameter_description> a string
+<parameter name="watch_children">
+<parameter_description> (in) %TRUE also watch the children of the @key, %FALSE
+to watch the key only.
+</parameter_description>
+</parameter>
+<parameter name="change_flags">
+<parameter_description> specifies the types of changes to watch for.
+</parameter_description>
+</parameter>
+<parameter name="callback">
+<parameter_description> a function to invoke when a change occurs.
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> a pointer to pass to @callback on invocation.
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return> a new #GvdbTable, or %NULL
+<return> %TRUE on success, %FALSE on failure.
+
</return>
</function>
-<function name="gvdb_table_get_value">
+<function name="g_win32_registry_subkey_iter_assign">
<description>
-Looks up a value named @key in @file.
-
-If the value is not found then %NULL is returned. Otherwise, a new
-#GVariant instance is returned. The #GVariant does not depend on the
-continued existence of @file.
-
-You should call g_variant_unref() on the return result when you no
-longer require it.
+Assigns the value of @other to @iter. This function
+is not useful in applications, because iterators can be assigned
+with `GWin32RegistrySubkeyIter i = j;`. The
+function is used by language bindings.
+Since: 2.46
</description>
<parameters>
-<parameter name="file">
-<parameter_description> a #GvdbTable
+<parameter name="iter">
+<parameter_description> a #GWin32RegistrySubkeyIter
</parameter_description>
</parameter>
-<parameter name="key">
-<parameter_description> a string
+<parameter name="other">
+<parameter_description> another #GWin32RegistrySubkeyIter
</parameter_description>
</parameter>
</parameters>
-<return> a #GVariant, or %NULL
-</return>
+<return></return>
</function>
-<function name="gvdb_table_has_value">
+<function name="g_win32_registry_subkey_iter_clear">
<description>
-Checks for a value named @key in @file.
-
-Note: this function does not consider non-value nodes (other hash
-tables, for example).
+Frees internal buffers of a #GWin32RegistrySubkeyIter.
+Since: 2.46
</description>
<parameters>
-<parameter name="file">
-<parameter_description> a #GvdbTable
-</parameter_description>
-</parameter>
-<parameter name="key">
-<parameter_description> a string
+<parameter name="iter">
+<parameter_description> a #GWin32RegistrySubkeyIter
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if @key is in the table
-</return>
+<return></return>
</function>
-<function name="gvdb_table_is_valid">
+<function name="g_win32_registry_subkey_iter_copy">
<description>
-Checks if the table is still valid.
-
-An on-disk GVDB can be marked as invalid. This happens when the file
-has been replaced. The appropriate action is typically to reopen the
-file.
+Creates a dynamically-allocated copy of an iterator. Dynamically-allocated
+state of the iterator is duplicated too.
+Since: 2.46
</description>
<parameters>
-<parameter name="table">
-<parameter_description> a #GvdbTable
+<parameter name="iter">
+<parameter_description> an iterator
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE if @table is still valid
+<return> a copy of the @iter,
+free with g_win32_registry_subkey_iter_free ()
+
</return>
</function>
-<function name="gvdb_table_list">
+<function name="g_win32_registry_subkey_iter_free">
<description>
-List all of the keys that appear below @key. The nesting of keys
-within the hash file is defined by the program that created the hash
-file. One thing is constant: each item in the returned array can be
-concatenated to @key to obtain the full name of that key.
-
-It is not possible to tell from this function if a given key is
-itself a path, a value, or another hash table; you are expected to
-know this for yourself.
-
-You should call g_strfreev() on the return result when you no longer
-require it.
+Free an iterator allocated on the heap. For iterators that are allocated
+on the stack use g_win32_registry_subkey_iter_clear () instead.
+Since: 2.46
</description>
<parameters>
-<parameter name="file">
-<parameter_description> a #GvdbTable
-</parameter_description>
-</parameter>
-<parameter name="key">
-<parameter_description> a string
+<parameter name="iter">
+<parameter_description> a dynamically-allocated iterator
</parameter_description>
</parameter>
</parameters>
-<return> a %NULL-terminated string array
-</return>
+<return></return>
</function>
-<function name="gvdb_table_new">
+<function name="g_win32_registry_subkey_iter_get_name">
<description>
-Creates a new #GvdbTable from the contents of the file found at
-@filename.
-
-The only time this function fails is if the file cannot be opened.
-In that case, the #GError that is returned will be an error from
-g_mapped_file_new().
-
-An empty or otherwise corrupted file is considered to be a valid
-#GvdbTable with no entries.
-
-You should call gvdb_table_unref() on the return result when you no
-longer require it.
+Gets the name of the subkey at the @iter potision.
+Since: 2.46
</description>
<parameters>
-<parameter name="filename">
-<parameter_description> the path to the hash file
+<parameter name="iter">
+<parameter_description> a #GWin32RegistrySubkeyIter
</parameter_description>
</parameter>
-<parameter name="trusted">
-<parameter_description> if the contents of @filename are trusted
+<parameter name="subkey_name">
+<parameter_description> Pointer to a location
+to store the name of a subkey (in UTF-8). Free with g_free().
+</parameter_description>
+</parameter>
+<parameter name="subkey_name_len">
+<parameter_description> Pointer to a location to store the
+length of @subkey_name, in gchars, excluding NUL-terminator.
+%NULL if length is not needed.
</parameter_description>
</parameter>
<parameter name="error">
-<parameter_description> %NULL, or a pointer to a %NULL #GError
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return> a new #GvdbTable
+<return> %TRUE if the name was retrieved, %FALSE otherwise.
+
</return>
</function>
-<function name="gvdb_table_new_from_data">
+<function name="g_win32_registry_subkey_iter_get_name_w">
<description>
-Creates a new #GvdbTable from the data in @data.
-
-An empty or otherwise corrupted data is considered to be a valid
-#GvdbTable with no entries.
-
-You should call gvdb_table_unref() on the return result when you no
-longer require it.
+Same as g_win32_registry_subkey_iter_get_next(), but outputs UTF-16-encoded
+data, without converting it to UTF-8 first.
+Since: 2.46
</description>
<parameters>
-<parameter name="data">
-<parameter_description> the data
-</parameter_description>
-</parameter>
-<parameter name="data_len">
-<parameter_description> the length of @data in bytes
+<parameter name="iter">
+<parameter_description> a #GWin32RegistrySubkeyIter
</parameter_description>
</parameter>
-<parameter name="trusted">
-<parameter_description> if the contents of @data are trusted
+<parameter name="subkey_name">
+<parameter_description> Pointer to a location
+to store the name of a subkey (in UTF-16).
</parameter_description>
</parameter>
-<parameter name="user_data">
-<parameter_description> User supplied data that owns @data
+<parameter name="subkey_name_len">
+<parameter_description> Pointer to a location
+to store the length of @subkey_name, in gunichar2s, excluding
+NUL-terminator.
+%NULL if length is not needed.
</parameter_description>
</parameter>
-<parameter name="ref">
-<parameter_description> Ref function for @user_data
-</parameter_description>
-</parameter>
-<parameter name="unref">
-<parameter_description> Unref function for @user_data
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return> a new #GvdbTable
+<return> %TRUE if the name was retrieved, %FALSE otherwise.
+
</return>
</function>
-<function name="gvdb_table_ref">
+<function name="g_win32_registry_subkey_iter_init">
<description>
-Increases the reference count on @file.
+Initialises (without allocating) a #GWin32RegistrySubkeyIter. @iter may be
+completely uninitialised prior to this call; its old value is
+ignored.
+
+The iterator remains valid for as long as @key exists.
+Clean up its internal buffers with a call to
+g_win32_registry_subkey_iter_clear() when done.
+Since: 2.46
</description>
<parameters>
-<parameter name="file">
-<parameter_description> a #GvdbTable
+<parameter name="iter">
+<parameter_description> a pointer to a #GWin32RegistrySubkeyIter
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> a #GWin32RegistryKey to iterate over
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return> a new reference on @file
+<return> %TRUE if iterator was initialized successfully, %FALSE on error.
+
</return>
</function>
-<function name="gvdb_table_unref">
+<function name="g_win32_registry_subkey_iter_n_subkeys">
<description>
-Decreases the reference count on @file, possibly freeing it.
+Queries the number of subkeys items in the key that we are
+iterating over. This is the total number of subkeys -- not the number
+of items remaining.
-Since: 2.26
+This information is accurate at the point of iterator initialization,
+and may go out of sync with reality even while subkeys are enumerated.
+
+Since: 2.46
</description>
<parameters>
-<parameter name="file">
-<parameter_description> a #GvdbTable
+<parameter name="iter">
+<parameter_description> a #GWin32RegistrySubkeyIter
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> the number of subkeys in the key
+
+</return>
</function>
-<function name="gvdb_table_walk">
+<function name="g_win32_registry_subkey_iter_next">
<description>
-Looks up the list at @key and iterate over the items in it.
+Moves iterator to the next subkey.
+Enumeration errors can be ignored if @skip_errors is %TRUE
+
+Here is an example for iterating with g_win32_registry_subkey_iter_next():
+|[&lt;!-- language=&quot;C&quot; --&gt;
+// recursively iterate a key
+void
+iterate_key_recursive (GWin32RegistryKey *key)
+{
+GWin32RegistrySubkeyIter iter;
+gchar *name;
+GWin32RegistryKey *child;
-First, @open_func is called to signal that we are starting to iterate over
-the list. Then the list is iterated. When all items in the list have been
-iterated over, the @close_func is called.
+if (!g_win32_registry_subkey_iter_init (&amp;iter, key, NULL))
+return;
-When iterating, if a given item in the list is a value then @value_func is
-called.
+while (g_win32_registry_subkey_iter_next (&amp;iter, TRUE, NULL))
+{
+if (!g_win32_registry_subkey_iter_get_name (&amp;iter, &amp;name, NULL, NULL))
+continue;
-If a given item in the list is itself a list then @open_func is called. If
-that function returns %TRUE then the walk begins iterating the items in the
-sublist, until there are no more items, at which point a matching
-@close_func call is made. If @open_func returns %FALSE then no iteration of
-the sublist occurs and no corresponding @close_func call is made.
+g_print (&quot;subkey '%s'\n&quot;, name);
+child = g_win32_registry_key_get_child (key, name, NULL);
+
+if (child)
+iterate_key_recursive (child);
+}
+
+g_win32_registry_subkey_iter_clear (&amp;iter);
+}
+]|
+
+Since: 2.46
</description>
<parameters>
-<parameter name="table">
-<parameter_description> a #GvdbTable
-</parameter_description>
-</parameter>
-<parameter name="key">
-<parameter_description> a key corresponding to a list
+<parameter name="iter">
+<parameter_description> a #GWin32RegistrySubkeyIter
</parameter_description>
</parameter>
-<parameter name="open_func">
-<parameter_description> the #GvdbWalkOpenFunc
+<parameter name="skip_errors">
+<parameter_description> %TRUE if iterator should silently ignore errors (such as
+the actual number of subkeys being less than expected) and
+proceed forward
</parameter_description>
</parameter>
-<parameter name="value_func">
-<parameter_description> the #GvdbWalkValueFunc
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
-<parameter name="close_func">
-<parameter_description> the #GvdbWalkCloseFunc
+</parameters>
+<return> %TRUE if next subkey info was retrieved, %FALSE otherwise.
+
+</return>
+</function>
+
+<function name="g_win32_registry_value_iter_assign">
+<description>
+Assigns the value of @other to @iter. This function
+is not useful in applications, because iterators can be assigned
+with `GWin32RegistryValueIter i = j;`. The
+function is used by language bindings.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="iter">
+<parameter_description> a #GWin32RegistryValueIter
</parameter_description>
</parameter>
-<parameter name="user_data">
-<parameter_description> data to pass to the callbacks
+<parameter name="other">
+<parameter_description> another #GWin32RegistryValueIter
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>
-<function name="handle_created">
+<function name="g_win32_registry_value_iter_clear">
<description>
-A callback function for the directory diff calculation routine,
-produces G_FILE_MONITOR_EVENT_CREATED event for a created file.
+Frees internal buffers of a #GWin32RegistryValueIter.
+
+Since: 2.46
</description>
<parameters>
-<parameter name="udata">
-<parameter_description> a pointer to user data (#handle_context).
-</parameter_description>
-</parameter>
-<parameter name="path">
-<parameter_description> file name of a new file.
-</parameter_description>
-</parameter>
-<parameter name="inode">
-<parameter_description> inode number of a new file.
+<parameter name="iter">
+<parameter_description> a #GWin32RegistryValueIter
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>
-<function name="handle_deleted">
+<function name="g_win32_registry_value_iter_copy">
<description>
-A callback function for the directory diff calculation routine,
-produces G_FILE_MONITOR_EVENT_DELETED event for a deleted file.
+Creates a dynamically-allocated copy of an iterator. Dynamically-allocated
+state of the iterator is duplicated too.
+
+Since: 2.46
</description>
<parameters>
-<parameter name="udata">
-<parameter_description> a pointer to user data (#handle_context).
-</parameter_description>
-</parameter>
-<parameter name="path">
-<parameter_description> file name of the removed file.
+<parameter name="iter">
+<parameter_description> an iterator
</parameter_description>
</parameter>
-<parameter name="inode">
-<parameter_description> inode number of the removed file.
+</parameters>
+<return> a copy of the @iter,
+free with g_win32_registry_value_iter_free ().
+
+</return>
+</function>
+
+<function name="g_win32_registry_value_iter_free">
+<description>
+Free an iterator allocated on the heap. For iterators that are allocated
+on the stack use g_win32_registry_value_iter_clear () instead.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="iter">
+<parameter_description> a dynamically-allocated iterator
</parameter_description>
</parameter>
</parameters>
<return></return>
</function>
-<function name="handle_moved">
+<function name="g_win32_registry_value_iter_get_data">
<description>
-A callback function for the directory diff calculation routine,
-produces G_FILE_MONITOR_EVENT_MOVED event on a move.
+Stores the data of the value currently being iterated over in @value_data,
+and its length - in @value_data_len (if not %NULL).
+
+Since: 2.46
</description>
<parameters>
-<parameter name="udata">
-<parameter_description> a pointer to user data (#handle_context).
-</parameter_description>
-</parameter>
-<parameter name="from_path">
-<parameter_description> file name of the source file.
+<parameter name="iter">
+<parameter_description> a #GWin32RegistryValueIter
</parameter_description>
</parameter>
-<parameter name="from_inode">
-<parameter_description> inode number of the source file.
+<parameter name="value_data">
+<parameter_description> Pointer to a
+location to store the data of the value (in UTF-8, if it's a string).
</parameter_description>
</parameter>
-<parameter name="to_path">
-<parameter_description> file name of the replaced file.
+<parameter name="value_data_size">
+<parameter_description> Pointer to a location to store the length
+of @value_data, in bytes (including any NUL-terminators, if it's a
+string).
+%NULL if length is not needed.
</parameter_description>
</parameter>
-<parameter name="to_inode">
-<parameter_description> inode number of the replaced file.
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if value data was retrieved, %FALSE otherwise.
+
+</return>
</function>
-<function name="handle_overwritten">
+<function name="g_win32_registry_value_iter_get_data_w">
<description>
-A callback function for the directory diff calculation routine,
-produces G_FILE_MONITOR_EVENT_DELETED/CREATED event pair when
-an overwrite occurs in the directory (see dep-list for details).
+Stores the data of the value currently being iterated over in @value_data,
+and its length - in @value_data_len (if not %NULL).
+
+Since: 2.46
</description>
<parameters>
-<parameter name="data">
-<parameter_description> a pointer to user data (#handle_context).
+<parameter name="iter">
+<parameter_description> a #GWin32RegistryValueIter
</parameter_description>
</parameter>
-<parameter name="path">
-<parameter_description> file name of the overwritten file.
+<parameter name="auto_expand">
+<parameter_description> %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR to
+G_WIN32_REGISTRY_VALUE_STR.
+</parameter_description>
+</parameter>
+<parameter name="value_data">
+<parameter_description> Pointer to a
+location to store the data of the value (in UTF-16, if it's a string).
</parameter_description>
</parameter>
-<parameter name="node">
-<parameter_description> inode number of the overwritten file.
+<parameter name="value_data_len">
+<parameter_description> Pointer to a location to store the size
+of @value_data, in bytes (including any NUL-terminators, if it's a
+string).
+%NULL if length is not needed.
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if value data was retrieved, %FALSE otherwise.
+
+</return>
</function>
-<function name="kevents_extend_sz">
+<function name="g_win32_registry_value_iter_get_name">
<description>
-Extends the allocated memory, if needed.
+Stores the name of the value currently being iterated over in @value_name,
+and its length - in @value_name_len (if not %NULL).
+
+Since: 2.46
</description>
<parameters>
-<parameter name="kv">
-<parameter_description> a #kevents
+<parameter name="iter">
+<parameter_description> a #GWin32RegistryValueIter
+</parameter_description>
+</parameter>
+<parameter name="value_name">
+<parameter_description> Pointer to a location
+to store the name of a value (in UTF-8).
+</parameter_description>
+</parameter>
+<parameter name="value_name_len">
+<parameter_description> Pointer to a location to store the length
+of @value_name, in gchars, excluding NUL-terminator.
+%NULL if length is not needed.
</parameter_description>
</parameter>
-<parameter name="n_new">
-<parameter_description> the number of new objects to be added
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if value name was retrieved, %FALSE otherwise.
+
+</return>
</function>
-<function name="kevents_free">
+<function name="g_win32_registry_value_iter_get_name_w">
<description>
-Resets the kevents object and frees all the associated memory.
+Stores the name of the value currently being iterated over in @value_name,
+and its length - in @value_name (if not %NULL).
+
+Since: 2.46
</description>
<parameters>
-<parameter name="kv">
-<parameter_description> a #kevents
+<parameter name="iter">
+<parameter_description> a #GWin32RegistryValueIter
+</parameter_description>
+</parameter>
+<parameter name="value_name">
+<parameter_description> Pointer to a location
+to store the name of a value (in UTF-16).
+</parameter_description>
+</parameter>
+<parameter name="value_name_len">
+<parameter_description> Pointer to a location to store the length
+of @value_name, in gunichar2s, excluding NUL-terminator.
+%NULL if length is not needed.
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if value name was retrieved, %FALSE otherwise.
+
+</return>
</function>
-<function name="kevents_init_sz">
+<function name="g_win32_registry_value_iter_get_value_type">
<description>
-Initializes a #kevents object.
+Stores the type of the value currently being iterated over in @value_type.
+
+Since: 2.46
</description>
<parameters>
-<parameter name="kv">
-<parameter_description> a #kevents
+<parameter name="iter">
+<parameter_description> a #GWin32RegistryValueIter
</parameter_description>
</parameter>
-<parameter name="n_initial">
-<parameter_description> the initial preallocated memory size. If it is less than
-%KEVENTS_EXTEND_COUNT, this value will be used instead.
+<parameter name="value_type">
+<parameter_description> Pointer to a location to store the type of
+the value.
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if value type was retrieved, %FALSE otherwise.
+
+</return>
</function>
-<function name="kevents_reduce">
+<function name="g_win32_registry_value_iter_init">
<description>
-Reduces the allocated heap size, if needed.
+Initialises (without allocating) a #GWin32RegistryValueIter. @iter may be
+completely uninitialised prior to this call; its old value is
+ignored.
+
+The iterator remains valid for as long as @key exists.
+Clean up its internal buffers with a call to
+g_win32_registry_value_iter_clear() when done.
-If the allocated heap size is &gt;= 3*used
-and 2*used &gt;= %KEVENTS_EXTEND_COUNT, reduce it to 2*used.
+Since: 2.46
</description>
<parameters>
-<parameter name="kv">
-<parameter_description> a #kevents
+<parameter name="iter">
+<parameter_description> a pointer to a #GWin32RegistryValueIter
+</parameter_description>
+</parameter>
+<parameter name="key">
+<parameter_description> a #GWin32RegistryKey to iterate over
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if iterator was initialized successfully, %FALSE on error.
+
+</return>
</function>
-<function name="km_scan_missing">
+<function name="g_win32_registry_value_iter_n_values">
<description>
-The core missing files watching routine.
+Queries the number of values items in the key that we are
+iterating over. This is the total number of values -- not the number
+of items remaining.
-Traverses through a list of missing files, tries to start watching each with
-kqueue, removes the appropriate entry and invokes a user callback if the file
-has appeared.
+This information is accurate at the point of iterator initialization,
+and may go out of sync with reality even while values are enumerated.
+Since: 2.46
</description>
<parameters>
-<parameter name="user_data">
-<parameter_description> unused
+<parameter name="iter">
+<parameter_description> a #GWin32RegistryValueIter
</parameter_description>
</parameter>
</parameters>
-<return> %FALSE if no missing files left, %TRUE otherwise.
+<return> the number of values in the key
+
</return>
</function>
-<function name="kqueue_notification">
+<function name="g_win32_registry_value_iter_next">
<description>
-Represents a pool of (struct kevent) objects.
+Advances iterator to the next value in the key. If no more values remain then
+FALSE is returned.
+Enumeration errors can be ignored if @skip_errors is %TRUE
+
+Here is an example for iterating with g_win32_registry_value_iter_next():
+|[&lt;!-- language=&quot;C&quot; --&gt;
+// iterate values of a key
+void
+iterate_values_recursive (GWin32RegistryKey *key)
+{
+GWin32RegistryValueIter iter;
+gchar *name;
+GWin32RegistryValueType val_type;
+gchar *val_data;
+
+if (!g_win32_registry_value_iter_init (&amp;iter, key, NULL))
+return;
+
+while (g_win32_registry_value_iter_next (&amp;iter, TRUE, NULL))
+{
+if ((!g_win32_registry_value_iter_get_value_type (&amp;iter, &amp;value)) ||
+((val_type != G_WIN32_REGISTRY_VALUE_STR) &amp;&amp;
+(val_type != G_WIN32_REGISTRY_VALUE_EXPAND_STR)))
+continue;
+
+if (g_win32_registry_value_iter_get_value (&amp;iter, TRUE, &amp;name, NULL,
+&amp;val_data, NULL, NULL))
+g_print (&quot;value '%s' = '%s'\n&quot;, name, val_data);
+}
+
+g_win32_registry_value_iter_clear (&amp;iter);
+}
+]|
+
+Since: 2.46
</description>
<parameters>
-<parameter name="memory">
-<parameter_description> a pointer to the allocated memory
+<parameter name="iter">
+<parameter_description> a #GWin32RegistryValueIter
</parameter_description>
</parameter>
-<parameter name="kq_size">
-<parameter_description> the number of used items
+<parameter name="skip_errors">
+<parameter_description> %TRUE if iterator should silently ignore errors (such as
+the actual number of values being less than expected) and
+proceed forward
</parameter_description>
</parameter>
-<parameter name="kq_allocated">
-<parameter_description> the number of allocated items
+<parameter name="error">
+<parameter_description> a pointer to %NULL #GError, or %NULL
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if next value info was retrieved, %FALSE otherwise.
+
+</return>
</function>
-<function name="kqueue_sub">
+<function name="g_zlib_compressor_get_file_info">
<description>
-Represents a subscription on a file or directory.
+Returns the #GZlibCompressor:file-info property.
+
+Since: 2.26
</description>
<parameters>
-<parameter name="filename">
-<parameter_description> a name of the file to monitor
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> the pointer to user data
-</parameter_description>
-</parameter>
-<parameter name="pair_moves">
-<parameter_description> unused (currently not implemented)
-</parameter_description>
-</parameter>
-<parameter name="fd">
-<parameter_description> the associated file descriptor (used by kqueue)
+<parameter name="compressor">
+<parameter_description> a #GZlibCompressor
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> a #GFileInfo, or %NULL
+
+</return>
</function>
-<function name="port_add">
+<function name="g_zlib_compressor_new">
<description>
-Unsafe, need lock fen_lock.
-port_add will associate a GSource to @f-&gt;source
+Creates a new #GZlibCompressor.
+
+Since: 2.24
</description>
<parameters>
-<parameter name="f">
-<parameter_description>
+<parameter name="format">
+<parameter_description> The format to use for the compressed data
+</parameter_description>
+</parameter>
+<parameter name="level">
+<parameter_description> compression level (0-9), -1 for default
</parameter_description>
</parameter>
</parameters>
-<return></return>
-</function>
-
-<function name="port_remove">
-<description>
-&lt; private &gt;
-Unsafe, need lock fen_lock.
+<return> a new #GZlibCompressor
-</description>
-<parameters>
-</parameters>
-<return></return>
+</return>
</function>
-<function name="process_kqueue_notifications">
+<function name="g_zlib_compressor_set_file_info">
<description>
-Processes notifications, coming from the kqueue thread.
-
-Reads notifications from the command file descriptor, emits the
-&quot;changed&quot; event on the appropriate monitor.
+Sets @file_info in @compressor. If non-%NULL, and @compressor's
+#GZlibCompressor:format property is %G_ZLIB_COMPRESSOR_FORMAT_GZIP,
+it will be used to set the file name and modification time in
+the GZIP header of the compressed data.
-A typical GIO Channel callback function.
+Note: it is an error to call this function while a compression is in
+progress; it may only be called immediately after creation of @compressor,
+or after resetting it with g_converter_reset().
+Since: 2.26
</description>
<parameters>
-<parameter name="gioc">
-<parameter_description> unused.
-</parameter_description>
-</parameter>
-<parameter name="cond">
-<parameter_description> unused.
+<parameter name="compressor">
+<parameter_description> a #GZlibCompressor
</parameter_description>
</parameter>
-<parameter name="data">
-<parameter_description> unused.
+<parameter name="file_info">
+<parameter_description> a #GFileInfo
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE
-</return>
+<return></return>
</function>
-<function name="test_bidi_pipe">
+<function name="g_zlib_decompressor_get_file_info">
<description>
-Return two #GIOStream&lt;!----&gt;s connected to each other with pipes.
-The &quot;left&quot; input stream is connected by a unidirectional pipe
-to the &quot;right&quot; output stream, and vice versa. This can be used
-as a bidirectional pipe to a child process, for instance.
-
-See test_pipe() if you only need a one-way pipe.
+Retrieves the #GFileInfo constructed from the GZIP header data
+of compressed data processed by @compressor, or %NULL if @decompressor's
+#GZlibDecompressor:format property is not %G_ZLIB_COMPRESSOR_FORMAT_GZIP,
+or the header data was not fully processed yet, or it not present in the
+data stream at all.
+Since: 2.26
</description>
<parameters>
-<parameter name="left">
-<parameter_description> used to return one #GIOStream
-</parameter_description>
-</parameter>
-<parameter name="right">
-<parameter_description> used to return the other #GIOStream
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> used to raise an error
+<parameter name="decompressor">
+<parameter_description> a #GZlibDecompressor
</parameter_description>
</parameter>
</parameters>
-<return> %TRUE on success
+<return> a #GFileInfo, or %NULL
+
</return>
</function>
-<function name="test_io_stream_new">
+<function name="g_zlib_decompressor_new">
<description>
-Return a simple #GIOStream binding together @input_stream and
-@output_stream. They have no additional semantics as a result of being
-part of this I/O stream: in particular, closing one does not close
-the other (although closing the #GIOStream will close both sub-streams).
+Creates a new #GZlibDecompressor.
+Since: 2.24
</description>
<parameters>
-<parameter name="input_stream">
-<parameter_description> an input stream
-</parameter_description>
-</parameter>
-<parameter name="output_stream">
-<parameter_description> an output stream
+<parameter name="format">
+<parameter_description> The format to use for the compressed data
</parameter_description>
</parameter>
</parameters>
-<return> a new #GIOStream
+<return> a new #GZlibDecompressor
+
</return>
</function>
-<function name="test_pipe">
+<function name="get_viewable_logical_drives">
<description>
-Return a &quot;pipe to self&quot; connecting @is to @os. This can be used
-as a unidirectional pipe to or from a child process, for instance.
-
-See test_bidi_pipe() if you want to emulate a bidirectional pipe
-via a pair of unidirectional pipes.
+Returns the list of logical and viewable drives as defined by
+GetLogicalDrives() and the registry keys
+Software\Microsoft\Windows\CurrentVersion\Policies\Explorer under
+HKLM or HKCU. If neither key exists the result of
+GetLogicalDrives() is returned.
</description>
<parameters>
-<parameter name="is">
-<parameter_description> used to return a #GInputStream
-</parameter_description>
-</parameter>
-<parameter name="os">
-<parameter_description> used to return a #GOutputStream
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> used to raise an error
-</parameter_description>
-</parameter>
</parameters>
-<return> %TRUE on success
+<return> bitmask with same meaning as returned by GetLogicalDrives()
</return>
</function>
diff --git a/gio/src/gio_enums.defs b/gio/src/gio_enums.defs
index 8fc0fd27..96380eca 100644
--- a/gio/src/gio_enums.defs
+++ b/gio/src/gio_enums.defs
@@ -258,16 +258,24 @@
)
)
-(define-flags-extended DBusProxyFlags
+;; Original typedef:
+;; typedef enum {
+;; G_FILE_MONITOR_NONE = 0,
+;; G_FILE_MONITOR_WATCH_MOUNTS = (1 << 0),
+;; G_FILE_MONITOR_SEND_MOVED = (1 << 1),
+;; G_FILE_MONITOR_WATCH_HARD_LINKS = (1 << 2),
+;; G_FILE_MONITOR_WATCH_MOVES = (1 << 3)
+;; } GFileMonitorFlags;
+
+(define-flags-extended FileMonitorFlags
(in-module "G")
(c-name "GDBusProxyFlags")
(values
- '("none" "G_DBUS_PROXY_FLAGS_NONE" "0")
- '("do_not_load_properties" "G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES" "1")
- '("do_not_connect_signals" "G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS" "2")
- '("do_not_auto_start" "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START" "4")
- '("get_invalidated_properties" "G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES" "8")
- '("do_not_auto_start_at_construction" "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION" "16")
+ '("none" "G_FILE_MONITOR_NONE" "0x0")
+ '("watch-mounts" "G_FILE_MONITOR_WATCH_MOUNTS" "(1 << 0)")
+ '("send-moved" "G_FILE_MONITOR_SEND_MOVED" "(1 << 1)")
+ '("watch-hard-links" "G_FILE_MONITOR_WATCH_HARD_LINKS" "(1 << 2)")
+ '("watch-moves" "G_FILE_MONITOR_WATCH_MOVES" "(1 << 3)")
)
)
@@ -290,18 +298,155 @@
)
)
-(define-flags-extended DBusSignalFlags
+;; Original typedef:
+;; typedef enum {
+;; G_FILE_MONITOR_EVENT_CHANGED,
+;; G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT,
+;; G_FILE_MONITOR_EVENT_DELETED,
+;; G_FILE_MONITOR_EVENT_CREATED,
+;; G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED,
+;; G_FILE_MONITOR_EVENT_PRE_UNMOUNT,
+;; G_FILE_MONITOR_EVENT_UNMOUNTED,
+;; G_FILE_MONITOR_EVENT_MOVED,
+;; G_FILE_MONITOR_EVENT_RENAMED,
+;; G_FILE_MONITOR_EVENT_MOVED_IN,
+;; G_FILE_MONITOR_EVENT_MOVED_OUT
+;; } GFileMonitorEvent;
+
+(define-enum-extended FileMonitorEvent
(in-module "G")
(c-name "GDBusSignalFlags")
(values
- '("none" "G_DBUS_SIGNAL_FLAGS_NONE" "0")
- '("no_match_rule" "G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE" "1")
- '("match_arg0_namespace" "G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE" "2")
- '("match_arg0_path" "G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH" "4")
- )
-)
+ '("changed" "G_FILE_MONITOR_EVENT_CHANGED" "0")
+ '("changes-done-hint" "G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT" "1")
+ '("deleted" "G_FILE_MONITOR_EVENT_DELETED" "2")
+ '("created" "G_FILE_MONITOR_EVENT_CREATED" "3")
+ '("attribute-changed" "G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED" "4")
+ '("pre-unmount" "G_FILE_MONITOR_EVENT_PRE_UNMOUNT" "5")
+ '("unmounted" "G_FILE_MONITOR_EVENT_UNMOUNTED" "6")
+ '("moved" "G_FILE_MONITOR_EVENT_MOVED" "7")
+ '("renamed" "G_FILE_MONITOR_EVENT_RENAMED" "8")
+ '("moved-in" "G_FILE_MONITOR_EVENT_MOVED_IN" "9")
+ '("moved-out" "G_FILE_MONITOR_EVENT_MOVED_OUT" "10")
+ )
+)
+
+;; Original typedef:
+;; typedef enum {
+;; G_IO_ERROR_FAILED,
+;; G_IO_ERROR_NOT_FOUND,
+;; G_IO_ERROR_EXISTS,
+;; G_IO_ERROR_IS_DIRECTORY,
+;; G_IO_ERROR_NOT_DIRECTORY,
+;; G_IO_ERROR_NOT_EMPTY,
+;; G_IO_ERROR_NOT_REGULAR_FILE,
+;; G_IO_ERROR_NOT_SYMBOLIC_LINK,
+;; G_IO_ERROR_NOT_MOUNTABLE_FILE,
+;; G_IO_ERROR_FILENAME_TOO_LONG,
+;; G_IO_ERROR_INVALID_FILENAME,
+;; G_IO_ERROR_TOO_MANY_LINKS,
+;; G_IO_ERROR_NO_SPACE,
+;; G_IO_ERROR_INVALID_ARGUMENT,
+;; G_IO_ERROR_PERMISSION_DENIED,
+;; G_IO_ERROR_NOT_SUPPORTED,
+;; G_IO_ERROR_NOT_MOUNTED,
+;; G_IO_ERROR_ALREADY_MOUNTED,
+;; G_IO_ERROR_CLOSED,
+;; G_IO_ERROR_CANCELLED,
+;; G_IO_ERROR_PENDING,
+;; G_IO_ERROR_READ_ONLY,
+;; G_IO_ERROR_CANT_CREATE_BACKUP,
+;; G_IO_ERROR_WRONG_ETAG,
+;; G_IO_ERROR_TIMED_OUT,
+;; G_IO_ERROR_WOULD_RECURSE,
+;; G_IO_ERROR_BUSY,
+;; G_IO_ERROR_WOULD_BLOCK,
+;; G_IO_ERROR_HOST_NOT_FOUND,
+;; G_IO_ERROR_WOULD_MERGE,
+;; G_IO_ERROR_FAILED_HANDLED,
+;; G_IO_ERROR_TOO_MANY_OPEN_FILES,
+;; G_IO_ERROR_NOT_INITIALIZED,
+;; G_IO_ERROR_ADDRESS_IN_USE,
+;; G_IO_ERROR_PARTIAL_INPUT,
+;; G_IO_ERROR_INVALID_DATA,
+;; G_IO_ERROR_DBUS_ERROR,
+;; G_IO_ERROR_HOST_UNREACHABLE,
+;; G_IO_ERROR_NETWORK_UNREACHABLE,
+;; G_IO_ERROR_CONNECTION_REFUSED,
+;; G_IO_ERROR_PROXY_FAILED,
+;; G_IO_ERROR_PROXY_AUTH_FAILED,
+;; G_IO_ERROR_PROXY_NEED_AUTH,
+;; G_IO_ERROR_PROXY_NOT_ALLOWED,
+;; G_IO_ERROR_BROKEN_PIPE,
+;; G_IO_ERROR_CONNECTION_CLOSED = G_IO_ERROR_BROKEN_PIPE,
+;; G_IO_ERROR_NOT_CONNECTED
+;; } GIOErrorEnum;
-(define-flags-extended DBusSubtreeFlags
+(define-enum-extended IOErrorEnum
+ (in-module "G")
+ (c-name "GIOErrorEnum")
+ (values
+ '("failed" "G_IO_ERROR_FAILED" "0")
+ '("not-found" "G_IO_ERROR_NOT_FOUND" "1")
+ '("exists" "G_IO_ERROR_EXISTS" "2")
+ '("is-directory" "G_IO_ERROR_IS_DIRECTORY" "3")
+ '("not-directory" "G_IO_ERROR_NOT_DIRECTORY" "4")
+ '("not-empty" "G_IO_ERROR_NOT_EMPTY" "5")
+ '("not-regular-file" "G_IO_ERROR_NOT_REGULAR_FILE" "6")
+ '("not-symbolic-link" "G_IO_ERROR_NOT_SYMBOLIC_LINK" "7")
+ '("not-mountable-file" "G_IO_ERROR_NOT_MOUNTABLE_FILE" "8")
+ '("filename-too-long" "G_IO_ERROR_FILENAME_TOO_LONG" "9")
+ '("invalid-filename" "G_IO_ERROR_INVALID_FILENAME" "10")
+ '("too-many-links" "G_IO_ERROR_TOO_MANY_LINKS" "11")
+ '("no-space" "G_IO_ERROR_NO_SPACE" "12")
+ '("invalid-argument" "G_IO_ERROR_INVALID_ARGUMENT" "13")
+ '("permission-denied" "G_IO_ERROR_PERMISSION_DENIED" "14")
+ '("not-supported" "G_IO_ERROR_NOT_SUPPORTED" "15")
+ '("not-mounted" "G_IO_ERROR_NOT_MOUNTED" "16")
+ '("already-mounted" "G_IO_ERROR_ALREADY_MOUNTED" "17")
+ '("closed" "G_IO_ERROR_CLOSED" "18")
+ '("cancelled" "G_IO_ERROR_CANCELLED" "19")
+ '("pending" "G_IO_ERROR_PENDING" "20")
+ '("read-only" "G_IO_ERROR_READ_ONLY" "21")
+ '("cant-create-backup" "G_IO_ERROR_CANT_CREATE_BACKUP" "22")
+ '("wrong-etag" "G_IO_ERROR_WRONG_ETAG" "23")
+ '("timed-out" "G_IO_ERROR_TIMED_OUT" "24")
+ '("would-recurse" "G_IO_ERROR_WOULD_RECURSE" "25")
+ '("busy" "G_IO_ERROR_BUSY" "26")
+ '("would-block" "G_IO_ERROR_WOULD_BLOCK" "27")
+ '("host-not-found" "G_IO_ERROR_HOST_NOT_FOUND" "28")
+ '("host-not-found" "G_IO_ERROR_HOST_WAS_NOT_FOUND" "28")
+ '("would-merge" "G_IO_ERROR_WOULD_MERGE" "29")
+ '("failed-handled" "G_IO_ERROR_FAILED_HANDLED" "30")
+ '("too-many-open-files" "G_IO_ERROR_TOO_MANY_OPEN_FILES" "31")
+ '("not-initialized" "G_IO_ERROR_NOT_INITIALIZED" "32")
+ '("address-in-use" "G_IO_ERROR_ADDRESS_IN_USE" "33")
+ '("partial-input" "G_IO_ERROR_PARTIAL_INPUT" "34")
+ '("invalid-data" "G_IO_ERROR_INVALID_DATA" "35")
+ '("dbus-error" "G_IO_ERROR_DBUS_ERROR" "36")
+ '("host-unreachable" "G_IO_ERROR_HOST_UNREACHABLE" "37")
+ '("network-unreachable" "G_IO_ERROR_NETWORK_UNREACHABLE" "38")
+ '("connection-refused" "G_IO_ERROR_CONNECTION_REFUSED" "39")
+ '("proxy-failed" "G_IO_ERROR_PROXY_FAILED" "40")
+ '("proxy-auth-failed" "G_IO_ERROR_PROXY_AUTH_FAILED" "41")
+ '("proxy-need-auth" "G_IO_ERROR_PROXY_NEED_AUTH" "42")
+ '("proxy-not-allowed" "G_IO_ERROR_PROXY_NOT_ALLOWED" "43")
+ '("broken-pipe" "G_IO_ERROR_BROKEN_PIPE" "44")
+ '("connection-closed" "G_IO_ERROR_CONNECTION_CLOSED" "44")
+ '("not-connected" "G_IO_ERROR_NOT_CONNECTED" "45")
+ )
+)
+
+;; Original typedef:
+;; typedef enum {
+;; G_ASK_PASSWORD_NEED_PASSWORD = (1 << 0),
+;; G_ASK_PASSWORD_NEED_USERNAME = (1 << 1),
+;; G_ASK_PASSWORD_NEED_DOMAIN = (1 << 2),
+;; G_ASK_PASSWORD_SAVING_SUPPORTED = (1 << 3),
+;; G_ASK_PASSWORD_ANONYMOUS_SUPPORTED = (1 << 4)
+;; } GAskPasswordFlags;
+
+(define-flags-extended AskPasswordFlags
(in-module "G")
(c-name "GDBusSubtreeFlags")
(values
@@ -573,13 +718,20 @@
)
)
-(define-enum-extended MountOperationResult
+;; Original typedef:
+;; typedef enum {
+;; G_DBUS_CALL_FLAGS_NONE = 0,
+;; G_DBUS_CALL_FLAGS_NO_AUTO_START = (1<<0),
+;; G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION = (1<<1)
+;; } GDBusCallFlags;
+
+(define-flags-extended DBusCallFlags
(in-module "G")
(c-name "GMountOperationResult")
(values
- '("handled" "G_MOUNT_OPERATION_HANDLED" "0")
- '("aborted" "G_MOUNT_OPERATION_ABORTED" "1")
- '("unhandled" "G_MOUNT_OPERATION_UNHANDLED" "2")
+ '("none" "G_DBUS_CALL_FLAGS_NONE" "0x0")
+ '("no-auto-start" "G_DBUS_CALL_FLAGS_NO_AUTO_START" "(1<<0)")
+ '("allow-interactive-authorization" "G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION" "(1<<1)")
)
)
@@ -592,14 +744,22 @@
)
)
-(define-enum-extended NotificationPriority
+;; Original typedef:
+;; typedef enum {
+;; G_DBUS_MESSAGE_FLAGS_NONE = 0,
+;; G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED = (1<<0),
+;; G_DBUS_MESSAGE_FLAGS_NO_AUTO_START = (1<<1),
+;; G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION = (1<<2)
+;; } GDBusMessageFlags;
+
+(define-flags-extended DBusMessageFlags
(in-module "G")
(c-name "GNotificationPriority")
(values
- '("normal" "G_NOTIFICATION_PRIORITY_NORMAL" "0")
- '("low" "G_NOTIFICATION_PRIORITY_LOW" "1")
- '("high" "G_NOTIFICATION_PRIORITY_HIGH" "2")
- '("urgent" "G_NOTIFICATION_PRIORITY_URGENT" "3")
+ '("none" "G_DBUS_MESSAGE_FLAGS_NONE" "0x0")
+ '("no-reply-expected" "G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED" "(1<<0)")
+ '("no-auto-start" "G_DBUS_MESSAGE_FLAGS_NO_AUTO_START" "(1<<1)")
+ '("allow-interactive-authorization" "G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION" "(1<<2)")
)
)
@@ -663,11 +823,27 @@
)
)
-(define-flags-extended ResourceLookupFlags
+;; Original typedef:
+;; typedef enum
+;; {
+;; G_CREDENTIALS_TYPE_INVALID,
+;; G_CREDENTIALS_TYPE_LINUX_UCRED,
+;; G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED,
+;; G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED,
+;; G_CREDENTIALS_TYPE_SOLARIS_UCRED,
+;; G_CREDENTIALS_TYPE_NETBSD_UNPCBID
+;; } GCredentialsType;
+
+(define-enum-extended CredentialsType
(in-module "G")
(c-name "GResourceLookupFlags")
(values
- '("none" "G_RESOURCE_LOOKUP_FLAGS_NONE" "0")
+ '("invalid" "G_CREDENTIALS_TYPE_INVALID" "0")
+ '("linux-ucred" "G_CREDENTIALS_TYPE_LINUX_UCRED" "1")
+ '("freebsd-cmsgcred" "G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED" "2")
+ '("openbsd-sockpeercred" "G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED" "3")
+ '("solaris-ucred" "G_CREDENTIALS_TYPE_SOLARIS_UCRED" "4")
+ '("netbsd-unpcbid" "G_CREDENTIALS_TYPE_NETBSD_UNPCBID" "5")
)
)
@@ -843,7 +1019,31 @@
)
)
-(define-flags-extended TlsPasswordFlags
+;; Original typedef:
+;; typedef enum {
+;; G_SOCKET_LISTENER_BINDING,
+;; G_SOCKET_LISTENER_BOUND,
+;; G_SOCKET_LISTENER_LISTENING,
+;; G_SOCKET_LISTENER_LISTENED
+;; } GSocketListenerEvent;
+
+(define-enum-extended SocketListenerEvent
+ (in-module "G")
+ (c-name "GSocketListenerEvent")
+ (values
+ '("binding" "G_SOCKET_LISTENER_BINDING" "0")
+ '("bound" "G_SOCKET_LISTENER_BOUND" "1")
+ '("listening" "G_SOCKET_LISTENER_LISTENING" "2")
+ '("listened" "G_SOCKET_LISTENER_LISTENED" "3")
+ )
+)
+
+;; Original typedef:
+;; typedef enum /*< flags >*/ {
+;; G_TEST_DBUS_NONE = 0
+;; } GTestDBusFlags;
+
+(define-flags-extended TestDBusFlags
(in-module "G")
(c-name "GTlsPasswordFlags")
(values
@@ -876,7 +1076,39 @@
)
)
-(define-enum-extended ZlibCompressorFormat
+;; Original typedef:
+;; typedef enum {
+;; G_NETWORK_CONNECTIVITY_LOCAL = 1,
+;; G_NETWORK_CONNECTIVITY_LIMITED = 2,
+;; G_NETWORK_CONNECTIVITY_PORTAL = 3,
+;; G_NETWORK_CONNECTIVITY_FULL = 4
+;; } GNetworkConnectivity;
+
+(define-enum-extended NetworkConnectivity
+ (in-module "G")
+ (c-name "GNetworkConnectivity")
+ (values
+ '("local" "G_NETWORK_CONNECTIVITY_LOCAL" "1")
+ '("limited" "G_NETWORK_CONNECTIVITY_LIMITED" "2")
+ '("portal" "G_NETWORK_CONNECTIVITY_PORTAL" "3")
+ '("full" "G_NETWORK_CONNECTIVITY_FULL" "4")
+ )
+)
+
+;; From gsettings.h
+
+;; Original typedef:
+;; typedef enum
+;; {
+;; G_SETTINGS_BIND_DEFAULT,
+;; G_SETTINGS_BIND_GET = (1<<0),
+;; G_SETTINGS_BIND_SET = (1<<1),
+;; G_SETTINGS_BIND_NO_SENSITIVITY = (1<<2),
+;; G_SETTINGS_BIND_GET_NO_CHANGES = (1<<3),
+;; G_SETTINGS_BIND_INVERT_BOOLEAN = (1<<4)
+;; } GSettingsBindFlags;
+
+(define-flags-extended SettingsBindFlags
(in-module "G")
(c-name "GZlibCompressorFormat")
(values
@@ -886,3 +1118,64 @@
)
)
+;; From gwin32registrykey.h
+
+;; Original typedef:
+;; typedef enum {
+;; G_WIN32_REGISTRY_VALUE_NONE = 0,
+;; G_WIN32_REGISTRY_VALUE_BINARY = 1,
+;; G_WIN32_REGISTRY_VALUE_UINT32LE = 2,
+;; G_WIN32_REGISTRY_VALUE_UINT32BE = 3,
+;; #if G_BYTE_ORDER == G_BIG_ENDIAN
+;; G_WIN32_REGISTRY_VALUE_UINT32 = G_WIN32_REGISTRY_VALUE_UINT32BE,
+;; #else
+;; G_WIN32_REGISTRY_VALUE_UINT32 = G_WIN32_REGISTRY_VALUE_UINT32LE,
+;; #endif
+;; G_WIN32_REGISTRY_VALUE_EXPAND_STR = 4,
+;; G_WIN32_REGISTRY_VALUE_LINK = 5,
+;; G_WIN32_REGISTRY_VALUE_MULTI_STR = 6,
+;; G_WIN32_REGISTRY_VALUE_UINT64LE = 7,
+;; #if G_BYTE_ORDER == G_LITTLE_ENDIAN
+;; G_WIN32_REGISTRY_VALUE_UINT64 = G_WIN32_REGISTRY_VALUE_UINT64LE,
+;; #endif
+;; G_WIN32_REGISTRY_VALUE_STR = 8
+;; } GWin32RegistryValueType;
+
+(define-enum-extended Win32RegistryValueType
+ (in-module "G")
+ (c-name "GWin32RegistryValueType")
+ (values
+ '("none" "G_WIN32_REGISTRY_VALUE_NONE" "0")
+ '("binary" "G_WIN32_REGISTRY_VALUE_BINARY" "1")
+ '("uint32le" "G_WIN32_REGISTRY_VALUE_UINT32LE" "2")
+ '("uint32be" "G_WIN32_REGISTRY_VALUE_UINT32BE" "3")
+ '("uint32" "G_WIN32_REGISTRY_VALUE_UINT32" "3")
+ '("uint32" "G_WIN32_REGISTRY_VALUE_UINT32" "2")
+ '("expand-str" "G_WIN32_REGISTRY_VALUE_EXPAND_STR" "4")
+ '("link" "G_WIN32_REGISTRY_VALUE_LINK" "5")
+ '("multi-str" "G_WIN32_REGISTRY_VALUE_MULTI_STR" "6")
+ '("uint64le" "G_WIN32_REGISTRY_VALUE_UINT64LE" "7")
+ '("uint64" "G_WIN32_REGISTRY_VALUE_UINT64" "7")
+ '("str" "G_WIN32_REGISTRY_VALUE_STR" "8")
+ )
+)
+
+;; Original typedef:
+;; typedef enum {
+;; G_WIN32_REGISTRY_WATCH_NAME = 1 << 0,
+;; G_WIN32_REGISTRY_WATCH_ATTRIBUTES = 1 << 1,
+;; G_WIN32_REGISTRY_WATCH_VALUES = 1 << 2,
+;; G_WIN32_REGISTRY_WATCH_SECURITY = 1 << 3,
+;; } GWin32RegistryKeyWatcherFlags;
+
+(define-flags-extended Win32RegistryKeyWatcherFlags
+ (in-module "G")
+ (c-name "GWin32RegistryKeyWatcherFlags")
+ (values
+ '("name" "G_WIN32_REGISTRY_WATCH_NAME" "1 << 0")
+ '("attributes" "G_WIN32_REGISTRY_WATCH_ATTRIBUTES" "1 << 1")
+ '("values" "G_WIN32_REGISTRY_WATCH_VALUES" "1 << 2")
+ '("security" "G_WIN32_REGISTRY_WATCH_SECURITY" "1 << 3")
+ )
+)
+
diff --git a/gio/src/gio_enums.defs.patch b/gio/src/gio_enums.defs.patch
new file mode 100644
index 00000000..4d64a586
--- /dev/null
+++ b/gio/src/gio_enums.defs.patch
@@ -0,0 +1,14 @@
+--- ./../../gio/src/gio_enums.defs.orig 2015-07-24 16:57:40.866238234 +0200
++++ ./../../gio/src/gio_enums.defs 2015-07-24 16:57:40.870238424 +0200
+@@ -495,10 +495,11 @@
+ '("timed-out" "G_IO_ERROR_TIMED_OUT" "24")
+ '("would-recurse" "G_IO_ERROR_WOULD_RECURSE" "25")
+ '("busy" "G_IO_ERROR_BUSY" "26")
+ '("would-block" "G_IO_ERROR_WOULD_BLOCK" "27")
+ '("host-not-found" "G_IO_ERROR_HOST_NOT_FOUND" "28")
++ '("host-not-found" "G_IO_ERROR_HOST_WAS_NOT_FOUND" "28")
+ '("would-merge" "G_IO_ERROR_WOULD_MERGE" "29")
+ '("failed-handled" "G_IO_ERROR_FAILED_HANDLED" "30")
+ '("too-many-open-files" "G_IO_ERROR_TOO_MANY_OPEN_FILES" "31")
+ '("not-initialized" "G_IO_ERROR_NOT_INITIALIZED" "32")
+ '("address-in-use" "G_IO_ERROR_ADDRESS_IN_USE" "33")
diff --git a/gio/src/gio_extra_objects.defs b/gio/src/gio_extra_objects.defs
index acfab9a3..c1ed447a 100644
--- a/gio/src/gio_extra_objects.defs
+++ b/gio/src/gio_extra_objects.defs
@@ -151,6 +151,18 @@
(gtype-id "G_TYPE_MENU_ITEM")
)
+(define-object NetworkMonitor
+ (in-module "Gio")
+ (c-name "GNetworkMonitor")
+ (gtype-id "G_TYPE_NETWORK_MONITOR")
+)
+
+(define-object Notification
+ (in-module "Gio")
+ (c-name "GNotification")
+ (gtype-id "G_TYPE_NOTIFICATION")
+)
+
(define-object PollableInputStream
(in-module "Gio")
(c-name "GPollableInputStream")
@@ -175,6 +187,24 @@
(gtype-id "G_TYPE_PROXY_RESOLVER")
)
+(define-object Resource
+ (in-module "Gio")
+ (c-name "GResource")
+ (gtype-id "G_TYPE_RESOURCE")
+)
+
+(define-object SettingsSchema
+ (in-module "Gio")
+ (c-name "GSettingsSchema")
+ (gtype-id "G_TYPE_SETTINGS_SCHEMA")
+)
+
+(define-object SettingsSchemaKey
+ (in-module "Gio")
+ (c-name "GSettingsSchemaKey")
+ (gtype-id "G_TYPE_SETTINGS_SCHEMA_KEY")
+)
+
(define-object SimpleAction
(in-module "Gio")
(c-name "GSimpleAction")
diff --git a/gio/src/gio_methods.defs b/gio/src/gio_methods.defs
index d8b3729b..b2a248de 100644
--- a/gio/src/gio_methods.defs
+++ b/gio/src/gio_methods.defs
@@ -280,13 +280,6 @@
(gtype-id "G_TYPE_LOADABLE_ICON")
)
-(define-object DirectoryMonitor
- (in-module "GLocal")
- (parent "GFileMonitor")
- (c-name "GLocalDirectoryMonitor")
- (gtype-id "G_TYPE_LOCAL_DIRECTORY_MONITOR")
-)
-
(define-object FileIOStream
(in-module "GLocal")
(parent "GFileIOStream")
@@ -370,6 +363,13 @@
(gtype-id "G_TYPE_NETWORK_MONITOR_NETLINK")
)
+(define-object MonitorNM
+ (in-module "GNetwork")
+ (parent "GNetworkMonitorNetlink")
+ (c-name "GNetworkMonitorNM")
+ (gtype-id "G_TYPE_NETWORK_MONITOR_NM")
+)
+
(define-object Service
(in-module "GNetwork")
(parent "GObject")
@@ -510,6 +510,13 @@
)
(define-object SocketAddress
+ (in-module "GNative")
+ (parent "GSocketAddress")
+ (c-name "GNativeSocketAddress")
+ (gtype-id "G_TYPE_NATIVE_SOCKET_ADDRESS")
+)
+
+(define-object SocketAddress
(in-module "GInet")
(parent "GSocketAddress")
(c-name "GInetSocketAddress")
@@ -752,6 +759,13 @@
(gtype-id "G_TYPE_WIN32_OUTPUT_STREAM")
)
+(define-object 32RegistryKey
+ (in-module "GWin")
+ (parent "GObject")
+ (c-name "GWin32RegistryKey")
+ (gtype-id "G_TYPE_WIN32_REGISTRY_KEY")
+)
+
;; Enumerations and flags ...
(define-enum AuthMechanismState
@@ -963,6 +977,7 @@
'("watch-mounts" "G_FILE_MONITOR_WATCH_MOUNTS")
'("send-moved" "G_FILE_MONITOR_SEND_MOVED")
'("watch-hard-links" "G_FILE_MONITOR_WATCH_HARD_LINKS")
+ '("watch-moves" "G_FILE_MONITOR_WATCH_MOVES")
)
)
@@ -1005,6 +1020,9 @@
'("pre-unmount" "G_FILE_MONITOR_EVENT_PRE_UNMOUNT")
'("unmounted" "G_FILE_MONITOR_EVENT_UNMOUNTED")
'("moved" "G_FILE_MONITOR_EVENT_MOVED")
+ '("renamed" "G_FILE_MONITOR_EVENT_RENAMED")
+ '("moved-in" "G_FILE_MONITOR_EVENT_MOVED_IN")
+ '("moved-out" "G_FILE_MONITOR_EVENT_MOVED_OUT")
)
)
@@ -1058,6 +1076,8 @@
'("proxy-need-auth" "G_IO_ERROR_PROXY_NEED_AUTH")
'("proxy-not-allowed" "G_IO_ERROR_PROXY_NOT_ALLOWED")
'("broken-pipe" "G_IO_ERROR_BROKEN_PIPE")
+ '("connection-closed" "G_IO_ERROR_CONNECTION_CLOSED")
+ '("not-connected" "G_IO_ERROR_NOT_CONNECTED")
)
)
@@ -1388,6 +1408,7 @@
(values
'("none" "G_DBUS_CALL_FLAGS_NONE")
'("no-auto-start" "G_DBUS_CALL_FLAGS_NO_AUTO_START")
+ '("allow-interactive-authorization" "G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION")
)
)
@@ -1412,6 +1433,7 @@
'("none" "G_DBUS_MESSAGE_FLAGS_NONE")
'("no-reply-expected" "G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED")
'("no-auto-start" "G_DBUS_MESSAGE_FLAGS_NO_AUTO_START")
+ '("allow-interactive-authorization" "G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION")
)
)
@@ -1495,9 +1517,9 @@
'("invalid" "G_CREDENTIALS_TYPE_INVALID")
'("linux-ucred" "G_CREDENTIALS_TYPE_LINUX_UCRED")
'("freebsd-cmsgcred" "G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED")
- '("netbsd-unpcbid" "G_CREDENTIALS_TYPE_NETBSD_UNPCBID")
'("openbsd-sockpeercred" "G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED")
'("solaris-ucred" "G_CREDENTIALS_TYPE_SOLARIS_UCRED")
+ '("netbsd-unpcbid" "G_CREDENTIALS_TYPE_NETBSD_UNPCBID")
)
)
@@ -1665,6 +1687,18 @@
)
)
+(define-enum ListenerEvent
+ (in-module "GSocket")
+ (c-name "GSocketListenerEvent")
+ (gtype-id "G_TYPE_SOCKET_LISTENER_EVENT")
+ (values
+ '("binding" "G_SOCKET_LISTENER_BINDING")
+ '("bound" "G_SOCKET_LISTENER_BOUND")
+ '("listening" "G_SOCKET_LISTENER_LISTENING")
+ '("listened" "G_SOCKET_LISTENER_LISTENED")
+ )
+)
+
(define-enum DBusFlags
(in-module "GTest")
(c-name "GTestDBusFlags")
@@ -1703,6 +1737,18 @@
)
)
+(define-enum Connectivity
+ (in-module "GNetwork")
+ (c-name "GNetworkConnectivity")
+ (gtype-id "G_TYPE_NETWORK_CONNECTIVITY")
+ (values
+ '("local" "G_NETWORK_CONNECTIVITY_LOCAL")
+ '("limited" "G_NETWORK_CONNECTIVITY_LIMITED")
+ '("portal" "G_NETWORK_CONNECTIVITY_PORTAL")
+ '("full" "G_NETWORK_CONNECTIVITY_FULL")
+ )
+)
+
(define-flags BindFlags
(in-module "GSettings")
(c-name "GSettingsBindFlags")
@@ -2351,15 +2397,6 @@
-;; From gappinfoprivate.h
-
-(define-function g_app_info_monitor_fire
- (c-name "g_app_info_monitor_fire")
- (return-type "none")
-)
-
-
-
;; From gapplicationcommandline.h
(define-function g_application_command_line_get_type
@@ -2695,6 +2732,12 @@
(return-type "none")
)
+(define-method get_is_busy
+ (of-object "GApplication")
+ (c-name "g_application_get_is_busy")
+ (return-type "gboolean")
+)
+
(define-method send_notification
(of-object "GApplication")
(c-name "g_application_send_notification")
@@ -2714,6 +2757,26 @@
)
)
+(define-method bind_busy_property
+ (of-object "GApplication")
+ (c-name "g_application_bind_busy_property")
+ (return-type "none")
+ (parameters
+ '("gpointer" "object")
+ '("const-gchar*" "property")
+ )
+)
+
+(define-method unbind_busy_property
+ (of-object "GApplication")
+ (c-name "g_application_unbind_busy_property")
+ (return-type "none")
+ (parameters
+ '("gpointer" "object")
+ '("const-gchar*" "property")
+ )
+)
+
;; From gapplicationimpl.h
@@ -3374,7 +3437,38 @@
-;; From gcontenttypeprivate.h
+;; From gcontextspecificgroup.h
+
+(define-method get
+ (of-object "GContextSpecificGroup")
+ (c-name "g_context_specific_group_get")
+ (return-type "gpointer")
+ (parameters
+ '("GType" "type")
+ '("goffset" "context_offset")
+ '("GCallback" "start_func")
+ )
+)
+
+(define-method remove
+ (of-object "GContextSpecificGroup")
+ (c-name "g_context_specific_group_remove")
+ (return-type "none")
+ (parameters
+ '("GMainContext*" "context")
+ '("gpointer" "instance")
+ '("GCallback" "stop_func")
+ )
+)
+
+(define-method emit
+ (of-object "GContextSpecificGroup")
+ (c-name "g_context_specific_group_emit")
+ (return-type "none")
+ (parameters
+ '("guint" "signal_id")
+ )
+)
@@ -3537,10 +3631,6 @@
-;; From gcredentialsprivate.h
-
-
-
;; From gdatainputstream.h
(define-function g_data_input_stream_get_type
@@ -3929,20 +4019,6 @@
-;; From gdbusactiongroup-private.h
-
-(define-method sync
- (of-object "GDBusActionGroup")
- (c-name "g_dbus_action_group_sync")
- (return-type "gboolean")
- (parameters
- '("GCancellable*" "cancellable")
- '("GError**" "error")
- )
-)
-
-
-
;; From gdbusaddress.h
(define-function g_dbus_address_escape_value
@@ -6058,10 +6134,6 @@
-;; From gdbusprivate.h
-
-
-
;; From gdbusproxy.h
(define-function g_dbus_proxy_get_type
@@ -7181,6 +7253,18 @@
)
)
+(define-method iterate
+ (of-object "GFileEnumerator")
+ (c-name "g_file_enumerator_iterate")
+ (return-type "gboolean")
+ (parameters
+ '("GFileInfo**" "out_info")
+ '("GFile**" "out_child")
+ '("GCancellable*" "cancellable")
+ '("GError**" "error")
+ )
+)
+
;; From gfile.h
@@ -9470,6 +9554,10 @@
+;; From ghttpproxy.h
+
+
+
;; From gicon.h
(define-function g_icon_get_type
@@ -9925,6 +10013,31 @@
)
)
+(define-method read_all_async
+ (of-object "GInputStream")
+ (c-name "g_input_stream_read_all_async")
+ (return-type "none")
+ (parameters
+ '("void*" "buffer")
+ '("gsize" "count")
+ '("int" "io_priority")
+ '("GCancellable*" "cancellable")
+ '("GAsyncReadyCallback" "callback")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method read_all_finish
+ (of-object "GInputStream")
+ (c-name "g_input_stream_read_all_finish")
+ (return-type "gboolean")
+ (parameters
+ '("GAsyncResult*" "result")
+ '("gsize*" "bytes_read")
+ '("GError**" "error")
+ )
+)
+
(define-method read_bytes_async
(of-object "GInputStream")
(c-name "g_input_stream_read_bytes_async")
@@ -10022,6 +10135,10 @@
+;; From gio-autocleanups.h
+
+
+
;; From gioenums.h
@@ -10378,6 +10495,11 @@
(return-type "GType")
)
+(define-function g_socket_listener_event_get_type
+ (c-name "g_socket_listener_event_get_type")
+ (return-type "GType")
+)
+
(define-function g_test_dbus_flags_get_type
(c-name "g_test_dbus_flags_get_type")
(return-type "GType")
@@ -10393,6 +10515,11 @@
(return-type "GType")
)
+(define-function g_network_connectivity_get_type
+ (c-name "g_network_connectivity_get_type")
+ (return-type "GType")
+)
+
(define-function g_settings_bind_flags_get_type
(c-name "g_settings_bind_flags_get_type")
(return-type "GType")
@@ -10607,33 +10734,20 @@
-;; From gioprivate.h
-
-(define-method async_read_is_via_threads
- (of-object "GInputStream")
- (c-name "g_input_stream_async_read_is_via_threads")
- (return-type "gboolean")
-)
-
-(define-method async_write_is_via_threads
- (of-object "GOutputStream")
- (c-name "g_output_stream_async_write_is_via_threads")
- (return-type "gboolean")
-)
+;; From gioscheduler.h
-(define-method set_cached_remote_address
- (of-object "GSocketConnection")
- (c-name "g_socket_connection_set_cached_remote_address")
+(define-function g_io_scheduler_push_job
+ (c-name "g_io_scheduler_push_job")
(return-type "none")
(parameters
- '("GSocketAddress*" "address")
+ '("GIOSchedulerJobFunc" "job_func")
+ '("gpointer" "user_data")
+ '("GDestroyNotify" "notify")
+ '("gint" "io_priority")
+ '("GCancellable*" "cancellable")
)
)
-
-
-;; From gioscheduler.h
-
(define-function g_io_scheduler_cancel_all_jobs
(c-name "g_io_scheduler_cancel_all_jobs")
(return-type "none")
@@ -10783,6 +10897,112 @@
+;; From glistmodel.h
+
+(define-method get_item_type
+ (of-object "GListModel")
+ (c-name "g_list_model_get_item_type")
+ (return-type "GType")
+)
+
+(define-method get_n_items
+ (of-object "GListModel")
+ (c-name "g_list_model_get_n_items")
+ (return-type "guint")
+)
+
+(define-method get_item
+ (of-object "GListModel")
+ (c-name "g_list_model_get_item")
+ (return-type "gpointer")
+ (parameters
+ '("guint" "position")
+ )
+)
+
+(define-method get_object
+ (of-object "GListModel")
+ (c-name "g_list_model_get_object")
+ (return-type "GObject*")
+ (parameters
+ '("guint" "position")
+ )
+)
+
+(define-method items_changed
+ (of-object "GListModel")
+ (c-name "g_list_model_items_changed")
+ (return-type "none")
+ (parameters
+ '("guint" "position")
+ '("guint" "removed")
+ '("guint" "added")
+ )
+)
+
+
+
+;; From gliststore.h
+
+(define-method insert
+ (of-object "GListStore")
+ (c-name "g_list_store_insert")
+ (return-type "none")
+ (parameters
+ '("guint" "position")
+ '("gpointer" "item")
+ )
+)
+
+(define-method insert_sorted
+ (of-object "GListStore")
+ (c-name "g_list_store_insert_sorted")
+ (return-type "guint")
+ (parameters
+ '("gpointer" "item")
+ '("GCompareDataFunc" "compare_func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method append
+ (of-object "GListStore")
+ (c-name "g_list_store_append")
+ (return-type "none")
+ (parameters
+ '("gpointer" "item")
+ )
+)
+
+(define-method remove
+ (of-object "GListStore")
+ (c-name "g_list_store_remove")
+ (return-type "none")
+ (parameters
+ '("guint" "position")
+ )
+)
+
+(define-method remove_all
+ (of-object "GListStore")
+ (c-name "g_list_store_remove_all")
+ (return-type "none")
+)
+
+(define-method splice
+ (of-object "GListStore")
+ (c-name "g_list_store_splice")
+ (return-type "none")
+ (parameters
+ '("guint" "position")
+ '("guint" "n_removals")
+ '("gpointer*" "additions")
+ '("guint" "n_additions")
+ )
+)
+
+
+
;; From gloadableicon.h
(define-function g_loadable_icon_get_type
@@ -10827,36 +11047,28 @@
-;; From glocaldirectorymonitor.h
+;; From glocalfileenumerator.h
-(define-function g_local_directory_monitor_get_type
- (c-name "g_local_directory_monitor_get_type")
- (return-type "GType")
-)
-(define-method start
- (of-object "GLocalDirectoryMonitor")
- (c-name "g_local_directory_monitor_start")
- (return-type "none")
-)
-(define-function g_local_directory_monitor_new_in_worker
- (c-name "g_local_directory_monitor_new_in_worker")
- (return-type "GLocalDirectoryMonitor*")
+;; From glocalfile.h
+
+(define-function g_local_file_is_remote
+ (c-name "g_local_file_is_remote")
+ (return-type "gboolean")
(parameters
- '("const-char*" "pathname")
- '("GFileMonitorFlags" "flags")
- '("GError**" "error")
+ '("const-gchar*" "filename")
)
)
-
-
-;; From glocalfileenumerator.h
-
-
-
-;; From glocalfile.h
+(define-function g_local_file_new_from_dirname_and_basename
+ (c-name "g_local_file_new_from_dirname_and_basename")
+ (return-type "GFile*")
+ (parameters
+ '("const-char*" "dirname")
+ '("const-char*" "basename")
+ )
+)
@@ -10879,22 +11091,43 @@
(return-type "GType")
)
-(define-method start
- (of-object "GLocalFileMonitor")
- (c-name "g_local_file_monitor_start")
- (return-type "none")
+(define-function g_local_file_monitor_new_for_path
+ (c-name "g_local_file_monitor_new_for_path")
+ (return-type "GFileMonitor*")
+ (parameters
+ '("const-gchar*" "pathname")
+ '("gboolean" "is_directory")
+ '("GFileMonitorFlags" "flags")
+ '("GError**" "error")
+ )
)
(define-function g_local_file_monitor_new_in_worker
(c-name "g_local_file_monitor_new_in_worker")
- (return-type "GLocalFileMonitor*")
+ (return-type "GFileMonitor*")
(parameters
- '("const-char*" "pathname")
+ '("const-gchar*" "pathname")
+ '("gboolean" "is_directory")
'("GFileMonitorFlags" "flags")
+ '("GFileMonitorCallback" "callback")
+ '("gpointer" "user_data")
'("GError**" "error")
)
)
+(define-method handle_event
+ (of-object "GFileMonitorSource")
+ (c-name "g_file_monitor_source_handle_event")
+ (return-type "gboolean")
+ (parameters
+ '("GFileMonitorEvent" "event_type")
+ '("const-gchar*" "child")
+ '("const-gchar*" "rename_to")
+ '("GFile*" "other")
+ '("gint64" "event_time")
+ )
+)
+
;; From glocalfileoutputstream.h
@@ -11866,7 +12099,22 @@
-;; From gmountprivate.h
+;; From gnativesocketaddress.h
+
+(define-function g_native_socket_address_get_type
+ (c-name "g_native_socket_address_get_type")
+ (return-type "GType")
+)
+
+(define-function g_native_socket_address_new
+ (c-name "g_native_socket_address_new")
+ (is-constructor-of "GNativeSocketAddress")
+ (return-type "GSocketAddress*")
+ (parameters
+ '("gpointer" "native")
+ '("gsize" "len")
+ )
+)
@@ -11896,6 +12144,14 @@
)
)
+(define-function g_network_address_new_loopback
+ (c-name "g_network_address_new_loopback")
+ (return-type "GSocketConnectable*")
+ (parameters
+ '("guint16" "port")
+ )
+)
+
(define-function g_network_address_parse
(c-name "g_network_address_parse")
(return-type "GSocketConnectable*")
@@ -11945,27 +12201,6 @@
-;; From gnetworkingprivate.h
-
-(define-method get_serial
- (of-object "GResolver")
- (c-name "g_resolver_get_serial")
- (return-type "guint64")
-)
-
-(define-function g_socket
- (c-name "g_socket")
- (return-type "gint")
- (parameters
- '("gint" "domain")
- '("gint" "type")
- '("gint" "protocol")
- '("GError**" "error")
- )
-)
-
-
-
;; From gnetworkmonitorbase.h
(define-function g_network_monitor_base_get_type
@@ -12021,6 +12256,18 @@
(return-type "gboolean")
)
+(define-method get_network_metered
+ (of-object "GNetworkMonitor")
+ (c-name "g_network_monitor_get_network_metered")
+ (return-type "gboolean")
+)
+
+(define-method get_connectivity
+ (of-object "GNetworkMonitor")
+ (c-name "g_network_monitor_get_connectivity")
+ (return-type "GNetworkConnectivity")
+)
+
(define-method can_reach
(of-object "GNetworkMonitor")
(c-name "g_network_monitor_can_reach")
@@ -12060,6 +12307,10 @@
+;; From gnetworkmonitornm.h
+
+
+
;; From gnetworkservice.h
(define-function g_network_service_get_type
@@ -12275,83 +12526,6 @@
-;; From gnotification-private.h
-
-(define-method get_id
- (of-object "GNotification")
- (c-name "g_notification_get_id")
- (return-type "const-gchar*")
-)
-
-(define-method get_title
- (of-object "GNotification")
- (c-name "g_notification_get_title")
- (return-type "const-gchar*")
-)
-
-(define-method get_body
- (of-object "GNotification")
- (c-name "g_notification_get_body")
- (return-type "const-gchar*")
-)
-
-(define-method get_icon
- (of-object "GNotification")
- (c-name "g_notification_get_icon")
- (return-type "GIcon*")
-)
-
-(define-method get_priority
- (of-object "GNotification")
- (c-name "g_notification_get_priority")
- (return-type "GNotificationPriority")
-)
-
-(define-method get_n_buttons
- (of-object "GNotification")
- (c-name "g_notification_get_n_buttons")
- (return-type "guint")
-)
-
-(define-method get_button
- (of-object "GNotification")
- (c-name "g_notification_get_button")
- (return-type "none")
- (parameters
- '("gint" "index")
- '("gchar**" "label")
- '("gchar**" "action")
- '("GVariant**" "target")
- )
-)
-
-(define-method get_button_with_action
- (of-object "GNotification")
- (c-name "g_notification_get_button_with_action")
- (return-type "gint")
- (parameters
- '("const-gchar*" "action")
- )
-)
-
-(define-method get_default_action
- (of-object "GNotification")
- (c-name "g_notification_get_default_action")
- (return-type "gboolean")
- (parameters
- '("gchar**" "action")
- '("GVariant**" "target")
- )
-)
-
-(define-method serialize
- (of-object "GNotification")
- (c-name "g_notification_serialize")
- (return-type "GVariant*")
-)
-
-
-
;; From goutputstream.h
(define-function g_output_stream_get_type
@@ -12477,6 +12651,31 @@
)
)
+(define-method write_all_async
+ (of-object "GOutputStream")
+ (c-name "g_output_stream_write_all_async")
+ (return-type "none")
+ (parameters
+ '("const-void*" "buffer")
+ '("gsize" "count")
+ '("int" "io_priority")
+ '("GCancellable*" "cancellable")
+ '("GAsyncReadyCallback" "callback")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method write_all_finish
+ (of-object "GOutputStream")
+ (c-name "g_output_stream_write_all_finish")
+ (return-type "gboolean")
+ (parameters
+ '("GAsyncResult*" "result")
+ '("gsize*" "bytes_written")
+ '("GError**" "error")
+ )
+)
+
(define-method write_bytes_async
(of-object "GOutputStream")
(c-name "g_output_stream_write_bytes_async")
@@ -14308,6 +14507,18 @@
)
)
+(define-method list_keys
+ (of-object "GSettingsSchema")
+ (c-name "g_settings_schema_list_keys")
+ (return-type "gchar**")
+)
+
+(define-method list_children
+ (of-object "GSettingsSchema")
+ (c-name "g_settings_schema_list_children")
+ (return-type "gchar**")
+)
+
(define-function g_settings_schema_key_get_type
(c-name "g_settings_schema_key_get_type")
(return-type "GType")
@@ -14352,6 +14563,12 @@
)
)
+(define-method get_name
+ (of-object "GSettingsSchemaKey")
+ (c-name "g_settings_schema_key_get_name")
+ (return-type "const-gchar*")
+)
+
(define-method get_summary
(of-object "GSettingsSchemaKey")
(c-name "g_settings_schema_key_get_summary")
@@ -14577,6 +14794,15 @@
)
)
+(define-method set_state_hint
+ (of-object "GSimpleAction")
+ (c-name "g_simple_action_set_state_hint")
+ (return-type "none")
+ (parameters
+ '("GVariant*" "state_hint")
+ )
+)
+
;; From gsimpleasyncresult.h
@@ -14826,6 +15052,25 @@
+;; From gsimpleiostream.h
+
+(define-function g_simple_io_stream_get_type
+ (c-name "g_simple_io_stream_get_type")
+ (return-type "GType")
+)
+
+(define-function g_simple_io_stream_new
+ (c-name "g_simple_io_stream_new")
+ (is-constructor-of "GSimpleIoStream")
+ (return-type "GIOStream*")
+ (parameters
+ '("GInputStream*" "input_stream")
+ '("GOutputStream*" "output_stream")
+ )
+)
+
+
+
;; From gsimplepermission.h
(define-function g_simple_permission_get_type
@@ -15826,6 +16071,19 @@
)
)
+(define-method send_messages
+ (of-object "GSocket")
+ (c-name "g_socket_send_messages")
+ (return-type "gint")
+ (parameters
+ '("GOutputMessage*" "messages")
+ '("guint" "num_messages")
+ '("gint" "flags")
+ '("GCancellable*" "cancellable")
+ '("GError**" "error")
+ )
+)
+
(define-method close
(of-object "GSocket")
(c-name "g_socket_close")
@@ -16601,19 +16859,6 @@
-;; From gsubprocesslauncher-private.h
-
-(define-method set_launcher
- (of-object "GSubprocess")
- (c-name "g_subprocess_set_launcher")
- (return-type "none")
- (parameters
- '("GSubprocessLauncher*" "launcher")
- )
-)
-
-
-
;; From gtask.h
(define-function g_task_get_type
@@ -16879,6 +17124,12 @@
(return-type "gboolean")
)
+(define-method get_completed
+ (of-object "GTask")
+ (c-name "g_task_get_completed")
+ (return-type "gboolean")
+)
+
;; From gtcpconnection.h
@@ -17269,6 +17520,15 @@
(return-type "GList*")
)
+(define-method copy_session_state
+ (of-object "GTlsClientConnection")
+ (c-name "g_tls_client_connection_copy_session_state")
+ (return-type "none")
+ (parameters
+ '("GTlsClientConnection*" "source")
+ )
+)
+
;; From gtlsconnection.h
@@ -18124,14 +18384,6 @@
;; From gunixmounts.h
-(define-function g_unix_mount_free
- (c-name "g_unix_mount_free")
- (return-type "none")
- (parameters
- '("GUnixMountEntry*" "mount_entry")
- )
-)
-
(define-method free
(of-object "GUnixMountPoint")
(c-name "g_unix_mount_point_free")
@@ -18348,6 +18600,11 @@
(return-type "GType")
)
+(define-function g_unix_mount_monitor_get
+ (c-name "g_unix_mount_monitor_get")
+ (return-type "GUnixMountMonitor*")
+)
+
(define-function g_unix_mount_monitor_new
(c-name "g_unix_mount_monitor_new")
(is-constructor-of "GUnixMountMonitor")
@@ -18814,6 +19071,10 @@
+;; From gwin32networking.h
+
+
+
;; From gwin32outputstream.h
(define-function g_win32_output_stream_get_type
@@ -18854,6 +19115,313 @@
+;; From gwin32registrykey.h
+
+(define-method copy
+ (of-object "GWin32RegistrySubkeyIter")
+ (c-name "g_win32_registry_subkey_iter_copy")
+ (return-type "GWin32RegistrySubkeyIter*")
+)
+
+(define-method free
+ (of-object "GWin32RegistrySubkeyIter")
+ (c-name "g_win32_registry_subkey_iter_free")
+ (return-type "none")
+)
+
+(define-method assign
+ (of-object "GWin32RegistrySubkeyIter")
+ (c-name "g_win32_registry_subkey_iter_assign")
+ (return-type "none")
+ (parameters
+ '("const-GWin32RegistrySubkeyIter*" "other")
+ )
+)
+
+(define-function g_win32_registry_subkey_iter_get_type
+ (c-name "g_win32_registry_subkey_iter_get_type")
+ (return-type "GType")
+)
+
+(define-method copy
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_copy")
+ (return-type "GWin32RegistryValueIter*")
+)
+
+(define-method free
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_free")
+ (return-type "none")
+)
+
+(define-method assign
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_assign")
+ (return-type "none")
+ (parameters
+ '("const-GWin32RegistryValueIter*" "other")
+ )
+)
+
+(define-function g_win32_registry_value_iter_get_type
+ (c-name "g_win32_registry_value_iter_get_type")
+ (return-type "GType")
+)
+
+(define-function g_win32_registry_key_get_type
+ (c-name "g_win32_registry_key_get_type")
+ (return-type "GType")
+)
+
+(define-function g_win32_registry_key_new
+ (c-name "g_win32_registry_key_new")
+ (is-constructor-of "GWin32RegistryKey")
+ (return-type "GWin32RegistryKey*")
+ (parameters
+ '("const-gchar*" "path")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_win32_registry_key_new_w
+ (c-name "g_win32_registry_key_new_w")
+ (return-type "GWin32RegistryKey*")
+ (parameters
+ '("const-gunichar2*" "path")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_child
+ (of-object "GWin32RegistryKey")
+ (c-name "g_win32_registry_key_get_child")
+ (return-type "GWin32RegistryKey*")
+ (parameters
+ '("const-gchar*" "subkey")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_child_w
+ (of-object "GWin32RegistryKey")
+ (c-name "g_win32_registry_key_get_child_w")
+ (return-type "GWin32RegistryKey*")
+ (parameters
+ '("const-gunichar2*" "subkey")
+ '("GError**" "error")
+ )
+)
+
+(define-method init
+ (of-object "GWin32RegistrySubkeyIter")
+ (c-name "g_win32_registry_subkey_iter_init")
+ (return-type "gboolean")
+ (parameters
+ '("GWin32RegistryKey*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method clear
+ (of-object "GWin32RegistrySubkeyIter")
+ (c-name "g_win32_registry_subkey_iter_clear")
+ (return-type "none")
+)
+
+(define-method n_subkeys
+ (of-object "GWin32RegistrySubkeyIter")
+ (c-name "g_win32_registry_subkey_iter_n_subkeys")
+ (return-type "gsize")
+)
+
+(define-method next
+ (of-object "GWin32RegistrySubkeyIter")
+ (c-name "g_win32_registry_subkey_iter_next")
+ (return-type "gboolean")
+ (parameters
+ '("gboolean" "skip_errors")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_name
+ (of-object "GWin32RegistrySubkeyIter")
+ (c-name "g_win32_registry_subkey_iter_get_name")
+ (return-type "gboolean")
+ (parameters
+ '("gchar**" "subkey_name")
+ '("gsize*" "subkey_name_len")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_name_w
+ (of-object "GWin32RegistrySubkeyIter")
+ (c-name "g_win32_registry_subkey_iter_get_name_w")
+ (return-type "gboolean")
+ (parameters
+ '("gunichar2**" "subkey_name")
+ '("gsize*" "subkey_name_len")
+ '("GError**" "error")
+ )
+)
+
+(define-method init
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_init")
+ (return-type "gboolean")
+ (parameters
+ '("GWin32RegistryKey*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method clear
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_clear")
+ (return-type "none")
+)
+
+(define-method n_values
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_n_values")
+ (return-type "gsize")
+)
+
+(define-method next
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_next")
+ (return-type "gboolean")
+ (parameters
+ '("gboolean" "skip_errors")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_value_type
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_get_value_type")
+ (return-type "gboolean")
+ (parameters
+ '("GWin32RegistryValueType*" "value_type")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_name
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_get_name")
+ (return-type "gboolean")
+ (parameters
+ '("gchar**" "value_name")
+ '("gsize*" "value_name_len")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_name_w
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_get_name_w")
+ (return-type "gboolean")
+ (parameters
+ '("gunichar2**" "value_name")
+ '("gsize*" "value_name_len")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_data
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_get_data")
+ (return-type "gboolean")
+ (parameters
+ '("gboolean" "auto_expand")
+ '("gpointer*" "value_data")
+ '("gsize*" "value_data_size")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_data_w
+ (of-object "GWin32RegistryValueIter")
+ (c-name "g_win32_registry_value_iter_get_data_w")
+ (return-type "gboolean")
+ (parameters
+ '("gboolean" "auto_expand")
+ '("gpointer*" "value_data")
+ '("gsize*" "value_data_size")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_value
+ (of-object "GWin32RegistryKey")
+ (c-name "g_win32_registry_key_get_value")
+ (return-type "gboolean")
+ (parameters
+ '("gboolean" "auto_expand")
+ '("const-gchar*" "value_name")
+ '("GWin32RegistryValueType*" "value_type")
+ '("gpointer*" "value_data")
+ '("gsize*" "value_data_size")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_value_w
+ (of-object "GWin32RegistryKey")
+ (c-name "g_win32_registry_key_get_value_w")
+ (return-type "gboolean")
+ (parameters
+ '("gboolean" "auto_expand")
+ '("const-gunichar2*" "value_name")
+ '("GWin32RegistryValueType*" "value_type")
+ '("gpointer*" "value_data")
+ '("gsize*" "value_data_size")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_path
+ (of-object "GWin32RegistryKey")
+ (c-name "g_win32_registry_key_get_path")
+ (return-type "const-gchar*")
+)
+
+(define-method get_path_w
+ (of-object "GWin32RegistryKey")
+ (c-name "g_win32_registry_key_get_path_w")
+ (return-type "const-gunichar2*")
+)
+
+(define-method watch
+ (of-object "GWin32RegistryKey")
+ (c-name "g_win32_registry_key_watch")
+ (return-type "gboolean")
+ (parameters
+ '("gboolean" "watch_children")
+ '("GWin32RegistryKeyWatcherFlags" "watch_flags")
+ '("GWin32RegistryKeyWatchCallbackFunc" "callback")
+ '("gpointer" "user_data")
+ '("GError**" "error")
+ )
+)
+
+(define-method has_changed
+ (of-object "GWin32RegistryKey")
+ (c-name "g_win32_registry_key_has_changed")
+ (return-type "gboolean")
+)
+
+(define-method erase_change_indicator
+ (of-object "GWin32RegistryKey")
+ (c-name "g_win32_registry_key_erase_change_indicator")
+ (return-type "none")
+)
+
+
+
;; From gwin32volumemonitor.h
diff --git a/gio/src/gio_methods.defs.patch b/gio/src/gio_methods.defs.patch
deleted file mode 100644
index 4c6711fd..00000000
--- a/gio/src/gio_methods.defs.patch
+++ /dev/null
@@ -1,66 +0,0 @@
---- gio_methods.defs 2011-06-19 18:23:06.000000000 -0400
-+++ gio_methods_new.defs 2011-06-19 18:21:21.000000000 -0400
-@@ -867,8 +867,8 @@
- (c-name "GFileQueryInfoFlags")
- (gtype-id "G_TYPE_FILE_QUERY_INFO_FLAGS")
- (values
-- '("ne" "G_FILE_QUERY_INFO_NONE")
-- '("follow-symlinks" "G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS")
-+ '("none" "G_FILE_QUERY_INFO_NONE")
-+ '("nofollow-symlinks" "G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS")
- )
- )
-
-@@ -888,7 +888,7 @@
- (c-name "GMountMountFlags")
- (gtype-id "G_TYPE_MOUNT_MOUNT_FLAGS")
- (values
-- '("e" "G_MOUNT_MOUNT_NONE")
-+ '("none" "G_MOUNT_MOUNT_NONE")
- )
- )
-
-@@ -907,7 +907,7 @@
- (c-name "GDriveStartFlags")
- (gtype-id "G_TYPE_DRIVE_START_FLAGS")
- (values
-- '("e" "G_DRIVE_START_NONE")
-+ '("none" "G_DRIVE_START_NONE")
- )
- )
-
-@@ -1321,8 +1321,8 @@
- (c-name "GDBusCallFlags")
- (gtype-id "G_TYPE_D_BUS_CALL_FLAGS")
- (values
-- '("ne" "G_DBUS_CALL_FLAGS_NONE")
-- '("-auto-start" "G_DBUS_CALL_FLAGS_NO_AUTO_START")
-+ '("none" "G_DBUS_CALL_FLAGS_NONE")
-+ '("no-auto-start" "G_DBUS_CALL_FLAGS_NO_AUTO_START")
- )
- )
-
-@@ -1344,9 +1344,9 @@
- (c-name "GDBusMessageFlags")
- (gtype-id "G_TYPE_D_BUS_MESSAGE_FLAGS")
- (values
-- '("ne" "G_DBUS_MESSAGE_FLAGS_NONE")
-- '("-reply-expected" "G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED")
-- '("-auto-start" "G_DBUS_MESSAGE_FLAGS_NO_AUTO_START")
-+ '("none" "G_DBUS_MESSAGE_FLAGS_NONE")
-+ '("no-reply-expected" "G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED")
-+ '("no-auto-start" "G_DBUS_MESSAGE_FLAGS_NO_AUTO_START")
- )
- )
-
-@@ -1405,8 +1405,8 @@
- (c-name "GDBusSignalFlags")
- (gtype-id "G_TYPE_D_BUS_SIGNAL_FLAGS")
- (values
-- '("ne" "G_DBUS_SIGNAL_FLAGS_NONE")
-- '("-match-rule" "G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE")
-+ '("none" "G_DBUS_SIGNAL_FLAGS_NONE")
-+ '("no-match-rule" "G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE")
- )
- )
-
diff --git a/gio/src/gio_others.defs b/gio/src/gio_others.defs
deleted file mode 100644
index 43e27c83..00000000
--- a/gio/src/gio_others.defs
+++ /dev/null
@@ -1,44 +0,0 @@
-; h2defs.py does not generate this. murrayc.
-(define-function g_themed_icon_get_names
- (c-name "g_themed_icon_get_names")
- (return-type "const-char*const*")
-)
-
-; h2defs failed to generate this murrayc:
-(define-method get_environ
- (of-object "GApplicationCommandLine")
- (c-name "g_application_command_line_get_environ")
- (return-type "const-gchar*const*")
-)
-
-(define-method list_schemas
- (of-object "GSettingsBackend")
- (c-name "g_settings_list_schemas")
- (return-type "const-gchar*const*")
-)
-
-; extra_defs does not generate these, for some reason. murrayc:
-(define-signal changed
- (of-object "GMount")
- (return-type "void")
- (when "last")
-)
-
-(define-signal unmounted
- (of-object "GMount")
- (return-type "void")
- (when "last")
-)
-
-; extra_defs does not generate these, for some reason. murrayc:
-(define-signal changed
- (of-object "GVolume")
- (return-type "void")
- (when "last")
-)
-
-(define-signal removed
- (of-object "GVolume")
- (return-type "void")
- (when "last")
-)
diff --git a/gio/src/gio_signals.defs b/gio/src/gio_signals.defs
index 6209d022..92d6701d 100644
--- a/gio/src/gio_signals.defs
+++ b/gio/src/gio_signals.defs
@@ -199,6 +199,15 @@
(construct-only #f)
)
+(define-property is-busy
+ (of-object "GApplication")
+ (prop-type "GParamBoolean")
+ (docs "If this application is currently marked busy")
+ (readable #t)
+ (writable #f)
+ (construct-only #f)
+)
+
;; From GAppInfoMonitor
(define-signal changed
@@ -411,15 +420,6 @@
(construct-only #f)
)
-(define-property context
- (of-object "GFileMonitor")
- (prop-type "GParamBoxed")
- (docs "The main context to dispatch from")
- (readable #f)
- (writable #t)
- (construct-only #t)
-)
-
;; From GFilenameCompleter
(define-signal got-completion-data
@@ -871,6 +871,15 @@
(construct-only #t)
)
+(define-property invert-boolean
+ (of-object "GPropertyAction")
+ (prop-type "GParamBoolean")
+ (docs "Whether to invert the value of a boolean property")
+ (readable #t)
+ (writable #t)
+ (construct-only #t)
+)
+
;; From GProxy
;; From GProxyAddress
@@ -1151,6 +1160,26 @@
(construct-only #f)
)
+;; From GSimpleIOStream
+
+(define-property input-stream
+ (of-object "GSimpleIOStream")
+ (prop-type "GParamObject")
+ (docs "The GInputStream to read from")
+ (readable #t)
+ (writable #t)
+ (construct-only #t)
+)
+
+(define-property output-stream
+ (of-object "GSimpleIOStream")
+ (prop-type "GParamObject")
+ (docs "The GOutputStream to write to")
+ (readable #t)
+ (writable #t)
+ (construct-only #t)
+)
+
;; From GSubprocess
(define-property flags
@@ -1586,6 +1615,35 @@
(construct-only #t)
)
+;; From GNetworkMonitor
+
+(define-signal network-changed
+ (of-object "GNetworkMonitor")
+ (return-type "void")
+ (when "last")
+ (parameters
+ '("gboolean" "p0")
+ )
+)
+
+(define-property connectivity
+ (of-object "GNetworkMonitor")
+ (prop-type "GParamEnum")
+ (docs "Level of network connectivity")
+ (readable #t)
+ (writable #f)
+ (construct-only #f)
+)
+
+(define-property network-available
+ (of-object "GNetworkMonitor")
+ (prop-type "GParamBoolean")
+ (docs "Whether the network is available")
+ (readable #t)
+ (writable #f)
+ (construct-only #f)
+)
+
;; From GNetworkService
(define-property service
@@ -1726,6 +1784,12 @@
(construct-only #f)
)
+;; GSettingsSchema is neither a GObject nor a GInterface. Not checked for signals and properties.
+
+;; GSettingsSchemaKey is neither a GObject nor a GInterface. Not checked for signals and properties.
+
+;; GSettingsSchemaSource is neither a GObject nor a GInterface. Not checked for signals and properties.
+
;; From GSimplePermission
;; From GSocket
@@ -1972,6 +2036,17 @@
(construct-only #f)
)
+;; From GTcpWrapperConnection
+
+(define-property base-io-stream
+ (of-object "GTcpWrapperConnection")
+ (prop-type "GParamObject")
+ (docs "The wrapped GIOStream")
+ (readable #t)
+ (writable #t)
+ (construct-only #t)
+)
+
;; From GTlsBackend
;; From GTlsCertificate
@@ -2044,7 +2119,7 @@
(define-property use-ssl3
(of-object "GTlsClientConnection")
(prop-type "GParamBoolean")
- (docs "Use SSL 3.0 rather than trying to use TLS 1.x")
+ (docs "Use fallback version of SSL/TLS rather than most recent version")
(readable #t)
(writable #t)
(construct-only #f)
@@ -2211,6 +2286,16 @@
;; From GSocketListener
+(define-signal event
+ (of-object "GSocketListener")
+ (return-type "void")
+ (when "last")
+ (parameters
+ '("GSocketListenerEvent" "p0")
+ '("GSocket*" "p1")
+ )
+)
+
(define-property listen-backlog
(of-object "GSocketListener")
(prop-type "GParamInt")
diff --git a/gio/src/gio_unix_functions.defs b/gio/src/gio_unix_functions.defs
deleted file mode 100644
index 73bed339..00000000
--- a/gio/src/gio_unix_functions.defs
+++ /dev/null
@@ -1,725 +0,0 @@
-;; -*- scheme -*-
-; object definitions ...
-(define-object AppInfoLookup
- (in-module "GDesktop")
- (c-name "GDesktopAppInfoLookup")
- (gtype-id "G_TYPE_DESKTOP_APP_INFO_LOOKUP")
-)
-
-(define-object DescriptorBased
- (in-module "GFile")
- (c-name "GFileDescriptorBased")
- (gtype-id "G_TYPE_FILE_DESCRIPTOR_BASED")
-)
-
-(define-object Connection
- (in-module "GUnix")
- (parent "GSocketConnection")
- (c-name "GUnixConnection")
- (gtype-id "G_TYPE_UNIX_CONNECTION")
-)
-
-(define-object CredentialsMessage
- (in-module "GUnix")
- (parent "GSocketControlMessage")
- (c-name "GUnixCredentialsMessage")
- (gtype-id "G_TYPE_UNIX_CREDENTIALS_MESSAGE")
-)
-
-(define-object FDList
- (in-module "GUnix")
- (parent "GObject")
- (c-name "GUnixFDList")
- (gtype-id "G_TYPE_UNIX_FD_LIST")
-)
-
-(define-object FDMessage
- (in-module "GUnix")
- (parent "GSocketControlMessage")
- (c-name "GUnixFDMessage")
- (gtype-id "G_TYPE_UNIX_FD_MESSAGE")
-)
-
-(define-object InputStream
- (in-module "GUnix")
- (parent "GInputStream")
- (c-name "GUnixInputStream")
- (gtype-id "G_TYPE_UNIX_INPUT_STREAM")
-)
-
-(define-object OutputStream
- (in-module "GUnix")
- (parent "GOutputStream")
- (c-name "GUnixOutputStream")
- (gtype-id "G_TYPE_UNIX_OUTPUT_STREAM")
-)
-
-(define-object SocketAddress
- (in-module "GUnix")
- (parent "GSocketAddress")
- (c-name "GUnixSocketAddress")
- (gtype-id "G_TYPE_UNIX_SOCKET_ADDRESS")
-)
-
-;; Enumerations and flags ...
-
-
-;; From gdesktopappinfo.h
-
-(define-function g_desktop_app_info_get_type
- (c-name "g_desktop_app_info_get_type")
- (return-type "GType")
-)
-
-(define-function g_desktop_app_info_new_from_filename
- (c-name "g_desktop_app_info_new_from_filename")
- (return-type "GDesktopAppInfo*")
- (parameters
- '("const-char*" "filename")
- )
-)
-
-(define-function g_desktop_app_info_new_from_keyfile
- (c-name "g_desktop_app_info_new_from_keyfile")
- (return-type "GDesktopAppInfo*")
- (parameters
- '("GKeyFile*" "key_file")
- )
-)
-
-(define-method get_filename
- (of-object "GDesktopAppInfo")
- (c-name "g_desktop_app_info_get_filename")
- (return-type "const-char*")
-)
-
-(define-function g_desktop_app_info_new
- (c-name "g_desktop_app_info_new")
- (is-constructor-of "GDesktopAppInfo")
- (return-type "GDesktopAppInfo*")
- (parameters
- '("const-char*" "desktop_id")
- )
-)
-
-(define-method get_is_hidden
- (of-object "GDesktopAppInfo")
- (c-name "g_desktop_app_info_get_is_hidden")
- (return-type "gboolean")
-)
-
-(define-function g_desktop_app_info_set_desktop_env
- (c-name "g_desktop_app_info_set_desktop_env")
- (return-type "none")
- (parameters
- '("const-char*" "desktop_env")
- )
-)
-
-(define-function g_desktop_app_info_lookup_get_type
- (c-name "g_desktop_app_info_lookup_get_type")
- (return-type "GType")
-)
-
-(define-method get_default_for_uri_scheme
- (of-object "GDesktopAppInfoLookup")
- (c-name "g_desktop_app_info_lookup_get_default_for_uri_scheme")
- (return-type "GAppInfo*")
- (parameters
- '("const-char*" "uri_scheme")
- )
-)
-
-
-
-;; From gfiledescriptorbased.h
-
-(define-function g_file_descriptor_based_get_type
- (c-name "g_file_descriptor_based_get_type")
- (return-type "GType")
-)
-
-(define-method get_fd
- (of-object "GFileDescriptorBased")
- (c-name "g_file_descriptor_based_get_fd")
- (return-type "int")
-)
-
-
-
-;; From gunixconnection.h
-
-(define-function g_unix_connection_get_type
- (c-name "g_unix_connection_get_type")
- (return-type "GType")
-)
-
-(define-method send_fd
- (of-object "GUnixConnection")
- (c-name "g_unix_connection_send_fd")
- (return-type "gboolean")
- (parameters
- '("gint" "fd")
- '("GCancellable*" "cancellable")
- '("GError**" "error")
- )
-)
-
-(define-method receive_fd
- (of-object "GUnixConnection")
- (c-name "g_unix_connection_receive_fd")
- (return-type "gint")
- (parameters
- '("GCancellable*" "cancellable")
- '("GError**" "error")
- )
-)
-
-(define-method send_credentials
- (of-object "GUnixConnection")
- (c-name "g_unix_connection_send_credentials")
- (return-type "gboolean")
- (parameters
- '("GCancellable*" "cancellable")
- '("GError**" "error")
- )
-)
-
-(define-method receive_credentials
- (of-object "GUnixConnection")
- (c-name "g_unix_connection_receive_credentials")
- (return-type "GCredentials*")
- (parameters
- '("GCancellable*" "cancellable")
- '("GError**" "error")
- )
-)
-
-
-
-;; From gunixcredentialsmessage.h
-
-(define-function g_unix_credentials_message_get_type
- (c-name "g_unix_credentials_message_get_type")
- (return-type "GType")
-)
-
-(define-function g_unix_credentials_message_new
- (c-name "g_unix_credentials_message_new")
- (is-constructor-of "GUnixCredentialsMessage")
- (return-type "GSocketControlMessage*")
-)
-
-(define-function g_unix_credentials_message_new_with_credentials
- (c-name "g_unix_credentials_message_new_with_credentials")
- (return-type "GSocketControlMessage*")
- (parameters
- '("GCredentials*" "credentials")
- )
-)
-
-(define-method get_credentials
- (of-object "GUnixCredentialsMessage")
- (c-name "g_unix_credentials_message_get_credentials")
- (return-type "GCredentials*")
-)
-
-(define-function g_unix_credentials_message_is_supported
- (c-name "g_unix_credentials_message_is_supported")
- (return-type "gboolean")
-)
-
-
-
-;; From gunixfdlist.h
-
-(define-function g_unix_fd_list_get_type
- (c-name "g_unix_fd_list_get_type")
- (return-type "GType")
-)
-
-(define-function g_unix_fd_list_new
- (c-name "g_unix_fd_list_new")
- (is-constructor-of "GUnixFdList")
- (return-type "GUnixFDList*")
-)
-
-(define-function g_unix_fd_list_new_from_array
- (c-name "g_unix_fd_list_new_from_array")
- (return-type "GUnixFDList*")
- (parameters
- '("const-gint*" "fds")
- '("gint" "n_fds")
- )
-)
-
-(define-method append
- (of-object "GUnixFDList")
- (c-name "g_unix_fd_list_append")
- (return-type "gint")
- (parameters
- '("gint" "fd")
- '("GError**" "error")
- )
-)
-
-(define-method get_length
- (of-object "GUnixFDList")
- (c-name "g_unix_fd_list_get_length")
- (return-type "gint")
-)
-
-(define-method get
- (of-object "GUnixFDList")
- (c-name "g_unix_fd_list_get")
- (return-type "gint")
- (parameters
- '("gint" "index_")
- '("GError**" "error")
- )
-)
-
-(define-method peek_fds
- (of-object "GUnixFDList")
- (c-name "g_unix_fd_list_peek_fds")
- (return-type "const-gint*")
- (parameters
- '("gint*" "length")
- )
-)
-
-(define-method steal_fds
- (of-object "GUnixFDList")
- (c-name "g_unix_fd_list_steal_fds")
- (return-type "gint*")
- (parameters
- '("gint*" "length")
- )
-)
-
-
-
-;; From gunixfdmessage.h
-
-(define-function g_unix_fd_message_get_type
- (c-name "g_unix_fd_message_get_type")
- (return-type "GType")
-)
-
-(define-function g_unix_fd_message_new_with_fd_list
- (c-name "g_unix_fd_message_new_with_fd_list")
- (return-type "GSocketControlMessage*")
- (parameters
- '("GUnixFDList*" "fd_list")
- )
-)
-
-(define-function g_unix_fd_message_new
- (c-name "g_unix_fd_message_new")
- (is-constructor-of "GUnixFdMessage")
- (return-type "GSocketControlMessage*")
-)
-
-(define-method get_fd_list
- (of-object "GUnixFDMessage")
- (c-name "g_unix_fd_message_get_fd_list")
- (return-type "GUnixFDList*")
-)
-
-(define-method steal_fds
- (of-object "GUnixFDMessage")
- (c-name "g_unix_fd_message_steal_fds")
- (return-type "gint*")
- (parameters
- '("gint*" "length")
- )
-)
-
-(define-method append_fd
- (of-object "GUnixFDMessage")
- (c-name "g_unix_fd_message_append_fd")
- (return-type "gboolean")
- (parameters
- '("gint" "fd")
- '("GError**" "error")
- )
-)
-
-
-
-;; From gunixinputstream.h
-
-(define-function g_unix_input_stream_get_type
- (c-name "g_unix_input_stream_get_type")
- (return-type "GType")
-)
-
-(define-function g_unix_input_stream_new
- (c-name "g_unix_input_stream_new")
- (is-constructor-of "GUnixInputStream")
- (return-type "GInputStream*")
- (parameters
- '("gint" "fd")
- '("gboolean" "close_fd")
- )
-)
-
-(define-method set_close_fd
- (of-object "GUnixInputStream")
- (c-name "g_unix_input_stream_set_close_fd")
- (return-type "none")
- (parameters
- '("gboolean" "close_fd")
- )
-)
-
-(define-method get_close_fd
- (of-object "GUnixInputStream")
- (c-name "g_unix_input_stream_get_close_fd")
- (return-type "gboolean")
-)
-
-(define-method get_fd
- (of-object "GUnixInputStream")
- (c-name "g_unix_input_stream_get_fd")
- (return-type "gint")
-)
-
-
-
-;; From gunixmounts.h
-
-(define-function g_unix_mount_free
- (c-name "g_unix_mount_free")
- (return-type "none")
- (parameters
- '("GUnixMountEntry*" "mount_entry")
- )
-)
-
-(define-method free
- (of-object "GUnixMountPoint")
- (c-name "g_unix_mount_point_free")
- (return-type "none")
-)
-
-(define-function g_unix_mount_compare
- (c-name "g_unix_mount_compare")
- (return-type "gint")
- (parameters
- '("GUnixMountEntry*" "mount1")
- '("GUnixMountEntry*" "mount2")
- )
-)
-
-(define-function g_unix_mount_get_mount_path
- (c-name "g_unix_mount_get_mount_path")
- (return-type "const-char*")
- (parameters
- '("GUnixMountEntry*" "mount_entry")
- )
-)
-
-(define-function g_unix_mount_get_device_path
- (c-name "g_unix_mount_get_device_path")
- (return-type "const-char*")
- (parameters
- '("GUnixMountEntry*" "mount_entry")
- )
-)
-
-(define-function g_unix_mount_get_fs_type
- (c-name "g_unix_mount_get_fs_type")
- (return-type "const-char*")
- (parameters
- '("GUnixMountEntry*" "mount_entry")
- )
-)
-
-(define-function g_unix_mount_is_readonly
- (c-name "g_unix_mount_is_readonly")
- (return-type "gboolean")
- (parameters
- '("GUnixMountEntry*" "mount_entry")
- )
-)
-
-(define-function g_unix_mount_is_system_internal
- (c-name "g_unix_mount_is_system_internal")
- (return-type "gboolean")
- (parameters
- '("GUnixMountEntry*" "mount_entry")
- )
-)
-
-(define-function g_unix_mount_guess_can_eject
- (c-name "g_unix_mount_guess_can_eject")
- (return-type "gboolean")
- (parameters
- '("GUnixMountEntry*" "mount_entry")
- )
-)
-
-(define-function g_unix_mount_guess_should_display
- (c-name "g_unix_mount_guess_should_display")
- (return-type "gboolean")
- (parameters
- '("GUnixMountEntry*" "mount_entry")
- )
-)
-
-(define-function g_unix_mount_guess_name
- (c-name "g_unix_mount_guess_name")
- (return-type "char*")
- (parameters
- '("GUnixMountEntry*" "mount_entry")
- )
-)
-
-(define-function g_unix_mount_guess_icon
- (c-name "g_unix_mount_guess_icon")
- (return-type "GIcon*")
- (parameters
- '("GUnixMountEntry*" "mount_entry")
- )
-)
-
-(define-method compare
- (of-object "GUnixMountPoint")
- (c-name "g_unix_mount_point_compare")
- (return-type "gint")
- (parameters
- '("GUnixMountPoint*" "mount2")
- )
-)
-
-(define-method get_mount_path
- (of-object "GUnixMountPoint")
- (c-name "g_unix_mount_point_get_mount_path")
- (return-type "const-char*")
-)
-
-(define-method get_device_path
- (of-object "GUnixMountPoint")
- (c-name "g_unix_mount_point_get_device_path")
- (return-type "const-char*")
-)
-
-(define-method get_fs_type
- (of-object "GUnixMountPoint")
- (c-name "g_unix_mount_point_get_fs_type")
- (return-type "const-char*")
-)
-
-(define-method is_readonly
- (of-object "GUnixMountPoint")
- (c-name "g_unix_mount_point_is_readonly")
- (return-type "gboolean")
-)
-
-(define-method is_user_mountable
- (of-object "GUnixMountPoint")
- (c-name "g_unix_mount_point_is_user_mountable")
- (return-type "gboolean")
-)
-
-(define-method is_loopback
- (of-object "GUnixMountPoint")
- (c-name "g_unix_mount_point_is_loopback")
- (return-type "gboolean")
-)
-
-(define-method guess_can_eject
- (of-object "GUnixMountPoint")
- (c-name "g_unix_mount_point_guess_can_eject")
- (return-type "gboolean")
-)
-
-(define-method guess_name
- (of-object "GUnixMountPoint")
- (c-name "g_unix_mount_point_guess_name")
- (return-type "char*")
-)
-
-(define-method guess_icon
- (of-object "GUnixMountPoint")
- (c-name "g_unix_mount_point_guess_icon")
- (return-type "GIcon*")
-)
-
-(define-function g_unix_mount_points_get
- (c-name "g_unix_mount_points_get")
- (return-type "GList*")
- (parameters
- '("guint64*" "time_read")
- )
-)
-
-(define-function g_unix_mounts_get
- (c-name "g_unix_mounts_get")
- (return-type "GList*")
- (parameters
- '("guint64*" "time_read")
- )
-)
-
-(define-function g_unix_mount_at
- (c-name "g_unix_mount_at")
- (return-type "GUnixMountEntry*")
- (parameters
- '("const-char*" "mount_path")
- '("guint64*" "time_read")
- )
-)
-
-(define-function g_unix_mounts_changed_since
- (c-name "g_unix_mounts_changed_since")
- (return-type "gboolean")
- (parameters
- '("guint64" "time")
- )
-)
-
-(define-function g_unix_mount_points_changed_since
- (c-name "g_unix_mount_points_changed_since")
- (return-type "gboolean")
- (parameters
- '("guint64" "time")
- )
-)
-
-(define-function g_unix_mount_monitor_get_type
- (c-name "g_unix_mount_monitor_get_type")
- (return-type "GType")
-)
-
-(define-function g_unix_mount_monitor_new
- (c-name "g_unix_mount_monitor_new")
- (is-constructor-of "GUnixMountMonitor")
- (return-type "GUnixMountMonitor*")
-)
-
-(define-method set_rate_limit
- (of-object "GUnixMountMonitor")
- (c-name "g_unix_mount_monitor_set_rate_limit")
- (return-type "none")
- (parameters
- '("int" "limit_msec")
- )
-)
-
-(define-function g_unix_is_mount_path_system_internal
- (c-name "g_unix_is_mount_path_system_internal")
- (return-type "gboolean")
- (parameters
- '("const-char*" "mount_path")
- )
-)
-
-
-
-;; From gunixoutputstream.h
-
-(define-function g_unix_output_stream_get_type
- (c-name "g_unix_output_stream_get_type")
- (return-type "GType")
-)
-
-(define-function g_unix_output_stream_new
- (c-name "g_unix_output_stream_new")
- (is-constructor-of "GUnixOutputStream")
- (return-type "GOutputStream*")
- (parameters
- '("gint" "fd")
- '("gboolean" "close_fd")
- )
-)
-
-(define-method set_close_fd
- (of-object "GUnixOutputStream")
- (c-name "g_unix_output_stream_set_close_fd")
- (return-type "none")
- (parameters
- '("gboolean" "close_fd")
- )
-)
-
-(define-method get_close_fd
- (of-object "GUnixOutputStream")
- (c-name "g_unix_output_stream_get_close_fd")
- (return-type "gboolean")
-)
-
-(define-method get_fd
- (of-object "GUnixOutputStream")
- (c-name "g_unix_output_stream_get_fd")
- (return-type "gint")
-)
-
-
-
-;; From gunixsocketaddress.h
-
-(define-function g_unix_socket_address_get_type
- (c-name "g_unix_socket_address_get_type")
- (return-type "GType")
-)
-
-(define-function g_unix_socket_address_new
- (c-name "g_unix_socket_address_new")
- (is-constructor-of "GUnixSocketAddress")
- (return-type "GSocketAddress*")
- (parameters
- '("const-gchar*" "path")
- )
-)
-
-(define-function g_unix_socket_address_new_abstract
- (c-name "g_unix_socket_address_new_abstract")
- (return-type "GSocketAddress*")
- (parameters
- '("const-gchar*" "path")
- '("gint" "path_len")
- )
-)
-
-(define-function g_unix_socket_address_new_with_type
- (c-name "g_unix_socket_address_new_with_type")
- (return-type "GSocketAddress*")
- (parameters
- '("const-gchar*" "path")
- '("gint" "path_len")
- '("GUnixSocketAddressType" "type")
- )
-)
-
-(define-method get_path
- (of-object "GUnixSocketAddress")
- (c-name "g_unix_socket_address_get_path")
- (return-type "const-char*")
-)
-
-(define-method get_path_len
- (of-object "GUnixSocketAddress")
- (c-name "g_unix_socket_address_get_path_len")
- (return-type "gsize")
-)
-
-(define-method get_address_type
- (of-object "GUnixSocketAddress")
- (c-name "g_unix_socket_address_get_address_type")
- (return-type "GUnixSocketAddressType")
-)
-
-(define-method get_is_abstract
- (of-object "GUnixSocketAddress")
- (c-name "g_unix_socket_address_get_is_abstract")
- (return-type "gboolean")
-)
-
-(define-function g_unix_socket_address_abstract_names_supported
- (c-name "g_unix_socket_address_abstract_names_supported")
- (return-type "gboolean")
-)
-
-
diff --git a/gio/src/icon.ccg b/gio/src/icon.ccg
index 7b77fa4c..583897a2 100644
--- a/gio/src/icon.ccg
+++ b/gio/src/icon.ccg
@@ -32,8 +32,8 @@ Icon::equal(const Glib::RefPtr<Icon>& other) const
Glib::RefPtr<Icon> Icon::create(const std::string& str)
{
- GError* gerror = 0;
- GIcon* icon = g_icon_new_for_string(str.c_str(), &gerror);
+ GError* gerror = nullptr;
+ auto icon = g_icon_new_for_string(str.c_str(), &gerror);
if(gerror)
::Glib::Error::throw_exception(gerror);
diff --git a/gio/src/inetaddress.hg b/gio/src/inetaddress.hg
index 10a66e7a..6dd44671 100644
--- a/gio/src/inetaddress.hg
+++ b/gio/src/inetaddress.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2009 jonathon jongsma
*
* This library is free software; you can redistribute it and/or
@@ -47,6 +45,7 @@ class InetAddress
protected:
_WRAP_CTOR(InetAddress(const guint8 *bytes, SocketFamily family), g_inet_address_new_from_bytes)
+ _IGNORE(g_inet_address_mask_new)dnl// Belongs to GInetAddressMask.
public:
static Glib::RefPtr<InetAddress> create(const Glib::ustring& string);
diff --git a/gio/src/inputstream.ccg b/gio/src/inputstream.ccg
index d82ca182..54a82620 100644
--- a/gio/src/inputstream.ccg
+++ b/gio/src/inputstream.ccg
@@ -31,7 +31,7 @@ InputStream::read_async(void* buffer, gsize count, const SlotAsyncReady& slot, c
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_input_stream_read_async(gobj(),
buffer,
@@ -48,7 +48,7 @@ InputStream::read_async(void* buffer, gsize count, const SlotAsyncReady& slot, i
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_input_stream_read_async(gobj(),
buffer,
@@ -59,13 +59,49 @@ InputStream::read_async(void* buffer, gsize count, const SlotAsyncReady& slot, i
slot_copy);
}
+
+void
+InputStream::read_all_async(void* buffer, gsize count, const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable, int io_priority)
+{
+ // Create a copy of the slot.
+ // A pointer to it will be passed through the callback's data parameter
+ // and deleted in the callback.
+ auto slot_copy = new SlotAsyncReady(slot);
+
+ g_input_stream_read_all_async(gobj(),
+ buffer,
+ count,
+ io_priority,
+ Glib::unwrap(cancellable),
+ &SignalProxy_async_callback,
+ slot_copy);
+}
+
+void
+InputStream::read_all_async(void* buffer, gsize count, const SlotAsyncReady& slot, int io_priority)
+{
+ // Create a copy of the slot.
+ // A pointer to it will be passed through the callback's data parameter
+ // and deleted in the callback.
+ auto slot_copy = new SlotAsyncReady(slot);
+
+ g_input_stream_read_all_async(gobj(),
+ buffer,
+ count,
+ io_priority,
+ 0,
+ &SignalProxy_async_callback,
+ slot_copy);
+}
+
+
void
InputStream::read_bytes_async(gsize count, const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable, int io_priority)
{
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_input_stream_read_bytes_async(gobj(),
count,
@@ -81,7 +117,7 @@ InputStream::read_bytes_async(gsize count, const SlotAsyncReady& slot, int io_pr
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_input_stream_read_bytes_async(gobj(),
count,
@@ -98,7 +134,7 @@ InputStream::skip_async(gsize count, const SlotAsyncReady& slot, const Glib::Ref
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_input_stream_skip_async(gobj(),
count,
@@ -114,7 +150,7 @@ InputStream::skip_async(gsize count, const SlotAsyncReady& slot, int io_priority
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_input_stream_skip_async(gobj(),
count,
@@ -130,7 +166,7 @@ InputStream::close_async(const SlotAsyncReady& slot, const Glib::RefPtr<Cancella
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_input_stream_close_async(gobj(),
io_priority,
@@ -145,7 +181,7 @@ InputStream::close_async(const SlotAsyncReady& slot, int io_priority)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_input_stream_close_async(gobj(),
io_priority,
diff --git a/gio/src/inputstream.hg b/gio/src/inputstream.hg
index 64c53c4e..745c11d8 100644
--- a/gio/src/inputstream.hg
+++ b/gio/src/inputstream.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The giomm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -41,7 +39,6 @@ namespace Gio
class InputStream : public Glib::Object
{
_CLASS_GOBJECT(InputStream, GInputStream, G_INPUT_STREAM, Glib::Object, GObject)
- _IGNORE(g_input_stream_async_read_is_via_threads) dnl// private method
public:
_WRAP_METHOD(gssize read(void* buffer, gsize count, const Glib::RefPtr<Cancellable>& cancellable{?}),
@@ -205,6 +202,80 @@ public:
g_input_stream_read_finish,
errthrow)
+
+ /** Request an asynchronous read of @a count bytes from the stream into the buffer
+ * starting at @a buffer. This is the asynchronous equivalent of read_all().
+ *
+ * When the operation is finished @a slot will be called.
+ * You can then call read_all_finish() to get the result of the
+ * operation.
+ *
+ * During an async request no other sync and async calls are allowed, and will
+ * result in Gio::Error with PENDING being thrown.
+ *
+ * A value of @a count larger than MAXSSIZE will cause a Gio::Error with INVALID_ARGUMENT to be thrown.
+ *
+ * On success, the number of bytes read into the buffer will be passed to the
+ * @a slot callback. It is not an error if this is not the same as the requested size, as it
+ * can happen e.g. near the end of a file, but generally we try to read
+ * as many bytes as requested. Zero is returned on end of file
+ * (or if @a count is zero), but never otherwise.
+ *
+ * Any outstanding i/o request with higher priority (lower numerical value) will
+ * be executed before an outstanding request with lower priority. Default
+ * priority is PRIORITY_DEFAULT.
+ *
+ * The asyncronous methods have a default fallback that uses threads to implement
+ * asynchronicity, so they are optional for inheriting classes. However, if you
+ * override one you must override all.
+ *
+ * @param buffer A buffer to read data into (which should be at least count bytes long).
+ * @param count The number of bytes that will be read from the stream.
+ * @param slot Callback to call when the request is satisfied.
+ * @param cancellable A Cancellable object.
+ * @param io_priority The I/O priority of the request.
+ */
+ void read_all_async(void* buffer, gsize count, const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable, int io_priority = Glib::PRIORITY_DEFAULT);
+
+ /** Request an asynchronous read of @a count bytes from the stream into the buffer
+ * starting at @a buffer. This is the asynchronous equivalent of read_all().
+ *
+ * When the operation is finished @a slot will be called.
+ * You can then call read_all_finish() to get the result of the
+ * operation.
+ *
+ * During an async request no other sync and async calls are allowed, and will
+ * result in a Gio::Error with PENDING being thrown.
+ *
+ * A value of @a count larger than MAXSSIZE will cause a Gio::Error with INVALID_ARGUMENT to be thrown.
+ *
+ * On success, the number of bytes read into the buffer will be passed to the
+ * @a slot callback. It is not an error if this is not the same as the requested size, as it
+ * can happen e.g. near the end of a file, but generally we try to read
+ * as many bytes as requested. Zero is returned on end of file
+ * (or if @a count is zero), but never otherwise.
+ *
+ * Any outstanding i/o request with higher priority (lower numerical value) will
+ * be executed before an outstanding request with lower priority. Default
+ * priority is PRIORITY_DEFAULT.
+ *
+ * The asyncronous methods have a default fallback that uses threads to implement
+ * asynchronicity, so they are optional for inheriting classes. However, if you
+ * override one you must override all.
+ *
+ * @param buffer A buffer to read data into (which should be at least count bytes long).
+ * @param count The number of bytes that will be read from the stream.
+ * @param slot Callback to call when the request is satisfied.
+ * @param io_priority The I/O priority of the request.
+ */
+ void read_all_async(void* buffer, gsize count, const SlotAsyncReady& slot, int io_priority = Glib::PRIORITY_DEFAULT);
+ _IGNORE(g_input_stream_read_all_async)
+
+ _WRAP_METHOD(bool read_all_finish(const Glib::RefPtr<AsyncResult>& result, gsize& bytes_read),
+ g_input_stream_read_all_finish,
+ errthrow)
+
+
//TODO: Use std::size_type instead of gsize?
/** Request an asynchronous skip of @a count bytes from the stream into the buffer
diff --git a/gio/src/iostream.ccg b/gio/src/iostream.ccg
index c1aae465..49b8280c 100644
--- a/gio/src/iostream.ccg
+++ b/gio/src/iostream.ccg
@@ -31,7 +31,7 @@ IOStream::close_async(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_io_stream_close_async(gobj(),
io_priority,
@@ -46,7 +46,7 @@ IOStream::close_async(const SlotAsyncReady& slot, int io_priority)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_io_stream_close_async(gobj(),
io_priority,
@@ -63,7 +63,7 @@ IOStream::splice_async(const Glib::RefPtr<IOStream>& stream2,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_io_stream_splice_async(gobj(), Glib::unwrap(stream2),
static_cast<GIOStreamSpliceFlags>(flags), io_priority,
@@ -77,7 +77,7 @@ IOStream::splice_async(const Glib::RefPtr<IOStream>& stream2,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_io_stream_splice_async(gobj(), Glib::unwrap(stream2),
static_cast<GIOStreamSpliceFlags>(flags), io_priority, 0,
diff --git a/gio/src/loadableicon.ccg b/gio/src/loadableicon.ccg
index 2ff4d601..9ae383d9 100644
--- a/gio/src/loadableicon.ccg
+++ b/gio/src/loadableicon.ccg
@@ -29,8 +29,8 @@ Glib::RefPtr<InputStream>
LoadableIcon::load(int size, Glib::ustring& type, const Glib::RefPtr<Cancellable>& cancellable)
{
char* c_type;
- GError* gerror = 0;
- Glib::RefPtr<InputStream> retval =
+ GError* gerror = nullptr;
+ auto retval =
Glib::wrap(g_loadable_icon_load(gobj(),
size,
&c_type,
@@ -50,8 +50,8 @@ Glib::RefPtr<InputStream>
LoadableIcon::load(int size, Glib::ustring& type)
{
char* c_type;
- GError* gerror = 0;
- Glib::RefPtr<InputStream> retval =
+ GError* gerror = nullptr;
+ auto retval =
Glib::wrap(g_loadable_icon_load(gobj(),
size,
&c_type,
@@ -74,7 +74,7 @@ LoadableIcon::load_async(int size, const SlotAsyncReady& slot, const
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_loadable_icon_load_async(gobj(),
size,
@@ -89,7 +89,7 @@ LoadableIcon::load_async(int size, const SlotAsyncReady& slot)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_loadable_icon_load_async(gobj(),
size,
diff --git a/gio/src/memoryinputstream.ccg b/gio/src/memoryinputstream.ccg
index 0dfd768d..cf30294c 100644
--- a/gio/src/memoryinputstream.ccg
+++ b/gio/src/memoryinputstream.ccg
@@ -41,7 +41,7 @@ private:
void destroy_data_callback(void* user_data)
{
- SlotWithData* slot_with_data = static_cast<SlotWithData*>(user_data);
+ auto slot_with_data = static_cast<SlotWithData*>(user_data);
g_return_if_fail(slot_with_data != 0);
try
@@ -70,7 +70,7 @@ void MemoryInputStream::add_data(const std::string& data)
void MemoryInputStream::add_data(const void* data, gssize len)
{
- char *data_copy = 0;
+ char *data_copy = nullptr;
// copy the data so that the caller doesn't need to keep the data alive
if (len < 0)
@@ -84,8 +84,8 @@ _DEPRECATE_IFDEF_END
void MemoryInputStream::add_data(const void* data, gssize len, const SlotDestroyData& destroy_slot)
{
- SlotWithData* slot_with_data = new SlotWithData(destroy_slot, const_cast<void*>(data));
- GBytes* bytes = g_bytes_new_with_free_func(data, len, &destroy_data_callback, slot_with_data);
+ auto slot_with_data = new SlotWithData(destroy_slot, const_cast<void*>(data));
+ auto bytes = g_bytes_new_with_free_func(data, len, &destroy_data_callback, slot_with_data);
g_memory_input_stream_add_bytes(gobj(), bytes);
g_bytes_unref(bytes); // g_memory_input_stream_add_bytes() takes a reference
}
diff --git a/gio/src/memoryinputstream.hg b/gio/src/memoryinputstream.hg
index eee71616..0d519599 100644
--- a/gio/src/memoryinputstream.hg
+++ b/gio/src/memoryinputstream.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -87,6 +85,8 @@ _DEPRECATE_IFDEF_END
* @newin{2,40}
*/
void add_data(const void* data, gssize len, const SlotDestroyData& destroy_slot);
+
+ _WRAP_METHOD(void add_bytes(const Glib::RefPtr<const Glib::Bytes>& bytes), g_memory_input_stream_add_bytes, newin "2,44")
};
} // namespace Gio
diff --git a/gio/src/memoryoutputstream.hg b/gio/src/memoryoutputstream.hg
index bb6cccbb..8f08c030 100644
--- a/gio/src/memoryoutputstream.hg
+++ b/gio/src/memoryoutputstream.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2008 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -70,10 +68,9 @@ public:
_WRAP_PROPERTY("data", void*)
_WRAP_PROPERTY("data-size", gulong)
- //Too C-like: _WRAP_PROPERTY("destroy-function", void*)
- //Too C-like: _WRAP_PROPERTY("realloc-function" gpointer : Read / Write / Construct Only
_WRAP_PROPERTY("size", gulong)
+ _IGNORE_PROPERTY(destroy-function, realloc-function)dnl// Too C-like
};
} // namespace Gio
diff --git a/gio/src/menuattributeiter.ccg b/gio/src/menuattributeiter.ccg
index a6f9f68b..08e8d4e8 100644
--- a/gio/src/menuattributeiter.ccg
+++ b/gio/src/menuattributeiter.ccg
@@ -23,8 +23,8 @@ namespace Gio
bool MenuAttributeIter::get_next(Glib::ustring& out_name,
Glib::VariantBase& value)
{
- const char* g_out_name = 0;
- GVariant* g_value = 0;
+ const char* g_out_name = nullptr;
+ GVariant* g_value = nullptr;
bool const result = g_menu_attribute_iter_get_next(gobj(), &g_out_name,
&g_value);
diff --git a/gio/src/menuitem.ccg b/gio/src/menuitem.ccg
index de96ad38..4c011abe 100644
--- a/gio/src/menuitem.ccg
+++ b/gio/src/menuitem.ccg
@@ -57,7 +57,7 @@ void MenuItem::set_action(const Glib::ustring& action)
void MenuItem::unset_target()
{
- const gchar *action_name = 0;
+ const gchar *action_name = nullptr;
g_menu_item_get_attribute (gobj(), G_MENU_ATTRIBUTE_ACTION, "&s", &action_name);
g_menu_item_set_action_and_target_value(gobj(), action_name, 0);
diff --git a/gio/src/menulinkiter.ccg b/gio/src/menulinkiter.ccg
index 9fb93b55..b41fbb11 100644
--- a/gio/src/menulinkiter.ccg
+++ b/gio/src/menulinkiter.ccg
@@ -24,8 +24,8 @@ namespace Gio
bool MenuLinkIter::get_next(Glib::ustring& out_link,
Glib::RefPtr<MenuModel>& value)
{
- const char* g_out_link = 0;
- GMenuModel* g_value = 0;
+ const char* g_out_link = nullptr;
+ GMenuModel* g_value = nullptr;
bool const result = g_menu_link_iter_get_next(gobj(), &g_out_link, &g_value);
out_link = g_out_link;
diff --git a/gio/src/mount.ccg b/gio/src/mount.ccg
index 6d1ac668..d5c36446 100644
--- a/gio/src/mount.ccg
+++ b/gio/src/mount.ccg
@@ -32,7 +32,7 @@ void Mount::unmount(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>&
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_unmount_with_operation(gobj(),
GMountUnmountFlags(flags),
@@ -47,7 +47,7 @@ void Mount::unmount(const SlotAsyncReady& slot, MountUnmountFlags flags)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_unmount_with_operation(gobj(),
GMountUnmountFlags(flags),
@@ -73,7 +73,7 @@ void Mount::unmount(const Glib::RefPtr<MountOperation>& mount_operation,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_unmount_with_operation(gobj(),
GMountUnmountFlags(flags),
@@ -89,7 +89,7 @@ void Mount::unmount(const Glib::RefPtr<MountOperation>& mount_operation,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_unmount_with_operation(gobj(),
GMountUnmountFlags(flags),
@@ -116,7 +116,7 @@ void Mount::remount(const Glib::RefPtr<MountOperation>& operation, const SlotAsy
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_remount(gobj(),
static_cast<GMountMountFlags>(flags),
@@ -131,7 +131,7 @@ void Mount::remount(const Glib::RefPtr<MountOperation>& operation, const SlotAsy
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_remount(gobj(),
static_cast<GMountMountFlags>(flags),
@@ -166,7 +166,7 @@ void Mount::eject(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& c
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_eject_with_operation(gobj(),
GMountUnmountFlags(flags),
@@ -181,7 +181,7 @@ void Mount::eject(const SlotAsyncReady& slot, MountUnmountFlags flags)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_eject_with_operation(gobj(),
GMountUnmountFlags(flags),
@@ -206,7 +206,7 @@ void Mount::eject(const Glib::RefPtr<MountOperation>& mount_operation, const Slo
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_eject_with_operation(gobj(),
GMountUnmountFlags(flags),
@@ -221,7 +221,7 @@ void Mount::eject(const Glib::RefPtr<MountOperation>& mount_operation, const Slo
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_eject_with_operation(gobj(),
GMountUnmountFlags(flags),
@@ -247,7 +247,7 @@ void Mount::guess_content_type(const SlotAsyncReady& slot, const Glib::RefPtr<Ca
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_guess_content_type(gobj(),
force_rescan,
@@ -261,7 +261,7 @@ void Mount::guess_content_type(const SlotAsyncReady& slot, bool force_rescan)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_mount_guess_content_type(gobj(),
force_rescan,
@@ -281,7 +281,7 @@ void Mount::guess_content_type(bool force_rescan)
void Mount::guess_content_type_sync(const Glib::RefPtr<Cancellable>& cancellable, bool force_rescan)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
g_mount_guess_content_type_sync(gobj(), force_rescan, Glib::unwrap(cancellable),
&gerror);
if(gerror)
@@ -290,7 +290,7 @@ void Mount::guess_content_type_sync(const Glib::RefPtr<Cancellable>& cancellable
void Mount::guess_content_type_sync(bool force_rescan)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
g_mount_guess_content_type_sync(gobj(), force_rescan, 0, &gerror);
if(gerror)
::Glib::Error::throw_exception(gerror);
diff --git a/gio/src/mount.hg b/gio/src/mount.hg
index 18c03b00..7ca17318 100644
--- a/gio/src/mount.hg
+++ b/gio/src/mount.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -217,6 +215,7 @@ public:
* does not support content guessing.
*
* @newin{2,18}
+ *
* @param result An AsyncResult.
* @return An array of content types.
* @throw Glib::Error
diff --git a/gio/src/networkaddress.ccg b/gio/src/networkaddress.ccg
index 182b5075..dad0dcf1 100644
--- a/gio/src/networkaddress.ccg
+++ b/gio/src/networkaddress.ccg
@@ -28,8 +28,8 @@ namespace Gio
Glib::RefPtr<NetworkAddress>
NetworkAddress::parse(const std::string& host_and_port, guint16 default_port)
{
- GError *error = 0;
- GNetworkAddress *address = G_NETWORK_ADDRESS
+ GError *error = nullptr;
+ auto *address = G_NETWORK_ADDRESS
(g_network_address_parse (host_and_port.c_str (), default_port,
&error));
if (error)
diff --git a/gio/src/networkmonitor.ccg b/gio/src/networkmonitor.ccg
new file mode 100644
index 00000000..550a6ac3
--- /dev/null
+++ b/gio/src/networkmonitor.ccg
@@ -0,0 +1,38 @@
+/* Copyright (C) 2014 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/exceptionhandler.h>
+#include <gio/gio.h>
+#include "slot_async.h"
+
+namespace Gio {
+
+void NetworkMonitor::can_reach_async(const Glib::RefPtr<SocketConnectable>& connectable, const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable)
+{
+ // Create a copy of the slot.
+ // A pointer to it will be passed through the callback's data parameter
+ // and deleted in the callback.
+ auto slot_copy = new SlotAsyncReady(slot);
+
+ g_network_monitor_can_reach_async(gobj(),
+ Glib::unwrap(connectable),
+ Glib::unwrap(cancellable),
+ &SignalProxy_async_callback,
+ slot_copy);
+}
+
+} // namespace Gio
diff --git a/gio/src/networkmonitor.hg b/gio/src/networkmonitor.hg
new file mode 100644
index 00000000..562c3d9a
--- /dev/null
+++ b/gio/src/networkmonitor.hg
@@ -0,0 +1,69 @@
+/* Copyright (C) 2014 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/interface.h>
+#include <giomm/asyncresult.h>
+#include <giomm/cancellable.h>
+#include <giomm/socketconnectable.h>
+#include <gio/gio.h>
+
+_DEFS(giomm,gio)
+_PINCLUDE(glibmm/private/interface_p.h)
+_PINCLUDE(gio/gio.h)
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GNetworkMonitorInterface GNetworkMonitorInterface;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+namespace Gio
+{
+
+_WRAP_ENUM(NetworkConnectivity, GNetworkConnectivity, NO_GTYPE)
+
+
+/** TODO
+ *
+ * @newin{2,44}
+ */
+class NetworkMonitor : public Glib::Interface
+{
+ _CLASS_INTERFACE(NetworkMonitor, GNetworkMonitor, G_NETWORK_MONITOR, GNetworkMonitorInterface)
+
+public:
+ _WRAP_METHOD(static Glib::RefPtr<NetworkMonitor> get_default(), g_network_monitor_get_default, newin "2,44")
+
+ _WRAP_METHOD(bool get_network_available() const, g_network_monitor_get_network_available, newin "2,44")
+
+ _WRAP_METHOD(NetworkConnectivity get_connectivity() const, g_network_monitor_get_connectivity)
+
+ _WRAP_METHOD(bool can_reach(const Glib::RefPtr<SocketConnectable>& connectable, const Glib::RefPtr<Cancellable>& cancellable{?}), g_network_monitor_can_reach, errthrow, newin "2,44")
+
+ //TODO:
+ void can_reach_async(const Glib::RefPtr<SocketConnectable>& connectable, const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable);
+ _IGNORE(g_network_monitor_can_reach_async)
+
+ _WRAP_METHOD(bool can_reach_finish(const Glib::RefPtr<AsyncResult>& result), g_network_monitor_can_reach_finish, errthrow, newin "2,44")
+
+ _WRAP_SIGNAL(void network_changed(bool available), "network-changed", newin "2,44")
+
+ //TODO: Wrap vfuncs?
+
+ _WRAP_PROPERTY("network-available", bool, newin "2,44")
+ _WRAP_PROPERTY("connectivity", NetworkConnectivity)
+};
+
+} // namespace Gio
diff --git a/gio/src/notification.hg b/gio/src/notification.hg
index b2a891fa..83c38ba4 100644
--- a/gio/src/notification.hg
+++ b/gio/src/notification.hg
@@ -25,6 +25,8 @@ namespace Gio
{
class Icon;
+_WRAP_ENUM(NotificationPriority, GNotificationPriority, newin "2,44")
+
/** User Notifications (pop up messages).
*
* Gio::Notification is a mechanism for creating a notification to be shown
@@ -67,7 +69,8 @@ public:
_WRAP_METHOD(void set_title(const Glib::ustring& title), g_notification_set_title)
_WRAP_METHOD(void set_body(const Glib::ustring& body), g_notification_set_body)
_WRAP_METHOD(void set_icon(const Glib::RefPtr<Icon>& icon), g_notification_set_icon)
- _WRAP_METHOD(void set_urgent(bool urgent = true), g_notification_set_urgent, deprecated "This should not be used in newly-written code.")
+ _WRAP_METHOD(void set_urgent(bool urgent = true), g_notification_set_urgent, deprecated "Use set_priority() instead.")
+ _WRAP_METHOD(void set_priority(NotificationPriority priority = NOTIFICATION_PRIORITY_NORMAL), g_notification_set_priority, newin "2,44")
_WRAP_METHOD(void add_button(const Glib::ustring& label, const Glib::ustring& detailed_action), g_notification_add_button)
@@ -76,6 +79,7 @@ public:
* @a action will be activated with @a target as its parameter.
*
* @newin{2,40}
+ *
* @param label Label of the button.
* @param action An action name.
* @param target @a action's parameter.
@@ -96,6 +100,7 @@ public:
* was sent on is activated.
*
* @newin{2,40}
+ *
* @param action An action name.
* @param target @a action's parameter.
*/
@@ -106,10 +111,6 @@ public:
// Ignore functions with variable-length parameter lists.
_IGNORE(g_notification_add_button_with_target, g_notification_set_default_action_and_target)
- // Ignore private methods
- _IGNORE(g_notification_get_urgent, g_notification_get_button, g_notification_get_default_action)
- _IGNORE(g_notification_get_n_buttons, g_notification_get_button_with_action, g_notification_serialize)
- _IGNORE(g_notification_get_icon, g_notification_get_id, g_notification_get_body, g_notification_get_title)
// There are no properties, signals, vfuncs.
};
diff --git a/gio/src/outputstream.ccg b/gio/src/outputstream.ccg
index d991bf7f..df1c53ba 100644
--- a/gio/src/outputstream.ccg
+++ b/gio/src/outputstream.ccg
@@ -30,7 +30,7 @@ OutputStream::write_async(const void* buffer, gsize count, const SlotAsyncReady&
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_output_stream_write_async(gobj(),
buffer,
@@ -47,7 +47,7 @@ OutputStream::write_async(const void* buffer, gsize count, const SlotAsyncReady&
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_output_stream_write_async(gobj(),
buffer,
@@ -58,13 +58,50 @@ OutputStream::write_async(const void* buffer, gsize count, const SlotAsyncReady&
slot_copy);
}
+
+
+void
+OutputStream::write_all_async(const void* buffer, gsize count, const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable, int io_priority)
+{
+ // Create a copy of the slot.
+ // A pointer to it will be passed through the callback's data parameter
+ // and deleted in the callback.
+ auto slot_copy = new SlotAsyncReady(slot);
+
+ g_output_stream_write_all_async(gobj(),
+ buffer,
+ count,
+ io_priority,
+ Glib::unwrap(cancellable),
+ &SignalProxy_async_callback,
+ slot_copy);
+}
+
+void
+OutputStream::write_all_async(const void* buffer, gsize count, const SlotAsyncReady& slot, int io_priority)
+{
+ // Create a copy of the slot.
+ // A pointer to it will be passed through the callback's data parameter
+ // and deleted in the callback.
+ auto slot_copy = new SlotAsyncReady(slot);
+
+ g_output_stream_write_all_async(gobj(),
+ buffer,
+ count,
+ io_priority,
+ 0,
+ &SignalProxy_async_callback,
+ slot_copy);
+}
+
+
void
OutputStream::splice_async(const Glib::RefPtr<InputStream>& source, const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable, OutputStreamSpliceFlags flags, int io_priority)
{
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_output_stream_splice_async(gobj(),
Glib::unwrap(source),
@@ -81,7 +118,7 @@ OutputStream::splice_async(const Glib::RefPtr<InputStream>& source, const SlotAs
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_output_stream_splice_async(gobj(),
Glib::unwrap(source),
@@ -98,7 +135,7 @@ OutputStream::flush_async(const SlotAsyncReady& slot, const Glib::RefPtr<Cancell
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_output_stream_flush_async(gobj(),
io_priority,
@@ -113,7 +150,7 @@ OutputStream::flush_async(const SlotAsyncReady& slot, int io_priority)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_output_stream_flush_async(gobj(),
io_priority,
@@ -128,7 +165,7 @@ OutputStream::close_async(const SlotAsyncReady& slot, const Glib::RefPtr<Cancell
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_output_stream_close_async(gobj(),
io_priority,
@@ -143,7 +180,7 @@ OutputStream::close_async(const SlotAsyncReady& slot, int io_priority)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_output_stream_close_async(gobj(),
io_priority,
@@ -154,7 +191,7 @@ OutputStream::close_async(const SlotAsyncReady& slot, int io_priority)
gssize OutputStream::write(const std::string& buffer, const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
gssize retvalue = g_output_stream_write(gobj(), buffer.data(), buffer.size(), Glib::unwrap(cancellable), &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -164,7 +201,7 @@ gssize OutputStream::write(const std::string& buffer, const Glib::RefPtr<Cancell
gssize OutputStream::write(const std::string& buffer)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
gssize retvalue = g_output_stream_write(gobj(), buffer.data(), buffer.size(), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -174,7 +211,7 @@ gssize OutputStream::write(const std::string& buffer)
bool OutputStream::write_all(const std::string& buffer, gsize& bytes_written, const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_output_stream_write_all(gobj(), buffer.data(), buffer.size(), &(bytes_written), Glib::unwrap(cancellable), &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -184,7 +221,7 @@ bool OutputStream::write_all(const std::string& buffer, gsize& bytes_written, co
bool OutputStream::write_all(const std::string& buffer, gsize& bytes_written)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_output_stream_write_all(gobj(), buffer.data(), buffer.size(), &(bytes_written), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -227,7 +264,7 @@ OutputStream::write_bytes_async(const Glib::RefPtr<const Glib::Bytes>& bytes, co
gssize OutputStream::splice(const Glib::RefPtr<InputStream>& source, const Glib::RefPtr<Cancellable>& cancellable, OutputStreamSpliceFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
gssize retvalue = g_output_stream_splice(gobj(), Glib::unwrap(source), ((GOutputStreamSpliceFlags)(flags)), Glib::unwrap(cancellable), &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -237,7 +274,7 @@ gssize OutputStream::splice(const Glib::RefPtr<InputStream>& source, const Glib:
gssize OutputStream::splice(const Glib::RefPtr<InputStream>& source, OutputStreamSpliceFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
gssize retvalue = g_output_stream_splice(gobj(), Glib::unwrap(source), ((GOutputStreamSpliceFlags)(flags)), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
diff --git a/gio/src/outputstream.hg b/gio/src/outputstream.hg
index d13992f6..afbf1e8b 100644
--- a/gio/src/outputstream.hg
+++ b/gio/src/outputstream.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -39,7 +37,6 @@ _WRAP_ENUM(OutputStreamSpliceFlags, GOutputStreamSpliceFlags, NO_GTYPE)
class OutputStream : public Glib::Object
{
_CLASS_GOBJECT(OutputStream, GOutputStream, G_OUTPUT_STREAM, Glib::Object, GObject)
- _IGNORE(g_output_stream_async_write_is_via_threads) dnl// private method
public:
@@ -256,6 +253,11 @@ public:
* For the synchronous, blocking version of this function, see
* write().
*
+ * Note that no copy of @a buffer will be made, so it must stay valid
+ * until @a slot is called. See write_bytes_async()
+ * for a Glib::Bytes version that will automatically hold a reference to
+ * the contents (without copying) for the duration of the call.
+ *
* @param buffer The buffer containing the data to write.
* @param count The number of bytes to write
* @param slot Callback slot to call when the request is satisfied.
@@ -290,6 +292,11 @@ public:
*
* For the synchronous, blocking version of this function, see
* write().
+
+ * Note that no copy of @a buffer will be made, so it must stay valid
+ * until @a slot is called. See write_bytes_async()
+ * for a Glib::Bytes version that will automatically hold a reference to
+ * the contents (without copying) for the duration of the call.
*
* @param buffer The buffer containing the data to write.
* @param count The number of bytes to write
@@ -303,6 +310,92 @@ public:
g_output_stream_write_finish,
errthrow)
+
+ /** Request an asynchronous write of @a count bytes from @a buffer into
+ * the stream. When the operation is finished @a slot will be called.
+ * You can then call write_all_finish() to get the result of the
+ * operation.
+ *
+ * This is the asynchronous version of write_all().
+ *
+ * During an async request no other sync and async calls are allowed,
+ * and will result in Gio::Error with PENDING being thrown.
+ *
+ * A value of @a count larger than MAXSSIZE will cause a Gio::Error with
+ * INVALID_ARGUMENT to be thrown.
+ *
+ * On success, the number of bytes written will be passed to the
+ * callback @a slot. It is not an error if this is not the same as the
+ * requested size, as it can happen e.g. on a partial I/O error,
+ * but generally we try to write as many bytes as requested.
+ *
+ * Any outstanding I/O request with higher priority (lower numerical
+ * value) will be executed before an outstanding request with lower
+ * priority. Default priority is Glib::PRIORITY_DEFAULT.
+ *
+ * The asyncronous methods have a default fallback that uses threads
+ * to implement asynchronicity, so they are optional for inheriting
+ * classes. However, if you override one you must override all.
+ *
+ * For the synchronous, blocking version of this function, see
+ * write().
+ *
+ * Note that no copy of @a buffer will be made, so it must stay valid
+ * until @a slot is called.
+ *
+ * @param buffer The buffer containing the data to write.
+ * @param count The number of bytes to write
+ * @param slot Callback slot to call when the request is satisfied.
+ * @param cancellable Cancellable object.
+ * @param io_priority The io priority of the request.
+ */
+ void write_all_async(const void* buffer, gsize count, const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable, int io_priority = Glib::PRIORITY_DEFAULT);
+
+ /** Request an asynchronous write of @a count bytes from @a buffer into
+ * the stream. When the operation is finished @a slot will be called.
+ * You can then call write_finish() to get the result of the
+ * operation.
+ *
+ * This is the asynchronous version of write_all().
+ *
+ * During an async request no other sync and async calls are allowed,
+ * and will result in Gio::Error with PENDING being thrown.
+ *
+ * A value of @a count larger than MAXSSIZE will cause a Gio::Error with
+ * INVALID_ARGUMENT to be thrown.
+ *
+ * On success, the number of bytes written will be passed to the
+ * callback @a slot. It is not an error if this is not the same as the
+ * requested size, as it can happen e.g. on a partial I/O error,
+ * but generally we try to write as many bytes as requested.
+ *
+ * Any outstanding I/O request with higher priority (lower numerical
+ * value) will be executed before an outstanding request with lower
+ * priority. Default priority is Glib::PRIORITY_DEFAULT.
+ *
+ * The asyncronous methods have a default fallback that uses threads
+ * to implement asynchronicity, so they are optional for inheriting
+ * classes. However, if you override one you must override all.
+ *
+ * For the synchronous, blocking version of this function, see
+ * write().
+ *
+ * Note that no copy of @a buffer will be made, so it must stay valid
+ * until @a slot is called.
+ *
+ * @param buffer The buffer containing the data to write.
+ * @param count The number of bytes to write
+ * @param slot Callback slot to call when the request is satisfied.
+ * @param io_priority The io priority of the request.
+ */
+ void write_all_async(const void* buffer, gsize count, const SlotAsyncReady& slot, int io_priority = Glib::PRIORITY_DEFAULT);
+ _IGNORE(g_output_stream_write_all_async)
+
+ _WRAP_METHOD(bool write_all_finish(const Glib::RefPtr<AsyncResult>& result, gsize& bytes_written),
+ g_output_stream_write_all_finish,
+ errthrow)
+
+
/** Splices a stream asynchronously.
* When the operation is finished @a slot will be called.
* You can then call splice_finish() to get the result of the
diff --git a/gio/src/proxy.ccg b/gio/src/proxy.ccg
index 232333e0..f5248362 100644
--- a/gio/src/proxy.ccg
+++ b/gio/src/proxy.ccg
@@ -31,7 +31,7 @@ void Proxy::connect_async(const Glib::RefPtr<IOStream>& connection, const Glib::
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_proxy_connect_async(gobj(),
Glib::unwrap(connection),
@@ -46,7 +46,7 @@ void Proxy::connect_async(const Glib::RefPtr<IOStream>& connection, const Glib::
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_proxy_connect_async(gobj(),
Glib::unwrap(connection),
diff --git a/gio/src/proxyresolver.ccg b/gio/src/proxyresolver.ccg
index 3fd2d6a8..b5a05845 100644
--- a/gio/src/proxyresolver.ccg
+++ b/gio/src/proxyresolver.ccg
@@ -29,8 +29,8 @@ namespace Gio
std::vector<Glib::ustring> ProxyResolver::lookup(const Glib::ustring& uri)
{
- GError* gerror = 0;
- std::vector<Glib::ustring> retvalue =
+ GError* gerror = nullptr;
+ auto retvalue =
Glib::ArrayHandler<Glib::ustring>::array_to_vector(g_proxy_resolver_lookup(gobj(), uri.c_str(), 0, &(gerror)), Glib::OWNERSHIP_DEEP);
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -43,7 +43,7 @@ void ProxyResolver::lookup_async(const Glib::ustring& uri, const SlotAsyncReady&
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_proxy_resolver_lookup_async(gobj(),
uri.c_str(),
@@ -57,7 +57,7 @@ void ProxyResolver::lookup_async(const Glib::ustring& uri, const SlotAsyncReady&
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_proxy_resolver_lookup_async(gobj(),
uri.c_str(),
diff --git a/gio/src/resolver.ccg b/gio/src/resolver.ccg
index 2f5f6948..0c5f9592 100644
--- a/gio/src/resolver.ccg
+++ b/gio/src/resolver.ccg
@@ -39,7 +39,7 @@ Resolver::lookup_by_name_async(const Glib::ustring& hostname,
const SlotAsyncReady& slot,
const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_resolver_lookup_by_name_async (gobj(),
hostname.c_str(),
@@ -52,7 +52,7 @@ void
Resolver::lookup_by_name_async(const Glib::ustring& hostname,
const SlotAsyncReady& slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_resolver_lookup_by_name_async (gobj(),
hostname.c_str(),
@@ -66,7 +66,7 @@ Resolver::lookup_by_address_async(const Glib::RefPtr<InetAddress>& address,
const SlotAsyncReady& slot,
const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_resolver_lookup_by_address_async (gobj(),
Glib::unwrap(address),
@@ -79,7 +79,7 @@ void
Resolver::lookup_by_address_async(const Glib::RefPtr<InetAddress>& address,
const SlotAsyncReady& slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_resolver_lookup_by_address_async (gobj(),
Glib::unwrap(address),
@@ -95,7 +95,7 @@ Resolver::lookup_service_async(const Glib::ustring& service,
const SlotAsyncReady& slot,
const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_resolver_lookup_service_async (gobj(),
service.c_str(),
@@ -112,7 +112,7 @@ Resolver::lookup_service_async(const Glib::ustring& service,
const Glib::ustring& domain,
const SlotAsyncReady& slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_resolver_lookup_service_async (gobj(),
service.c_str(),
@@ -129,7 +129,7 @@ Resolver::lookup_records_async(const Glib::ustring& rrname,
const SlotAsyncReady& slot,
const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_resolver_lookup_records_async(gobj(),
(rrname.empty() ? 0 : rrname.c_str()),
@@ -144,7 +144,7 @@ Resolver::lookup_records_async(const Glib::ustring& rrname,
ResolverRecordType record_type,
const SlotAsyncReady& slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_resolver_lookup_records_async(gobj(),
(rrname.empty() ? 0 : rrname.c_str()),
diff --git a/gio/src/resolver.hg b/gio/src/resolver.hg
index 9fa83abe..a958b07f 100644
--- a/gio/src/resolver.hg
+++ b/gio/src/resolver.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2009 jonathon jongsma
*
* This library is free software; you can redistribute it and/or
@@ -69,9 +67,6 @@ public:
// g_resolver_free_addresses is just a C convenience function
_IGNORE(g_resolver_free_addresses)
- // g_resolver_get_serial() is private API.
- _IGNORE(g_resolver_get_serial)
-
#m4 _CONVERSION(`GList*',`Glib::ListHandle< Glib::RefPtr<InetAddress> >',`$2($3, Glib::OWNERSHIP_DEEP)')
_WRAP_METHOD(Glib::ListHandle< Glib::RefPtr<InetAddress> > lookup_by_name(const Glib::ustring& hostname, const Glib::RefPtr<Cancellable>& cancellable{?}), g_resolver_lookup_by_name, errthrow)
diff --git a/gio/src/resource.ccg b/gio/src/resource.ccg
index 4a4b7162..89d776a7 100644
--- a/gio/src/resource.ccg
+++ b/gio/src/resource.ccg
@@ -24,7 +24,7 @@ void Resource::get_info(const std::string& path, gsize& size,
ResourceFlags& flags, ResourceLookupFlags lookup_flags) const
{
guint32 file_flags = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
// Ignore the gboolean return value from g_resource_get_info().
// gerror is set if and only if the return value is FALSE.
g_resource_get_info(const_cast<GResource*>(gobj()), path.c_str(),
@@ -36,7 +36,7 @@ void Resource::get_info(const std::string& path, gsize& size,
void Resource::get_file_exists(const std::string& path, ResourceLookupFlags lookup_flags) const
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
g_resource_get_info(const_cast<GResource*>(gobj()), path.c_str(),
(GResourceLookupFlags)lookup_flags, 0, 0, &gerror);
if (gerror)
@@ -55,7 +55,7 @@ void Resource::get_info_global(const std::string& path, gsize& size,
ResourceFlags& flags, ResourceLookupFlags lookup_flags)
{
guint32 file_flags = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
// Ignore the gboolean return value from g_resources_get_info().
// gerror is set if and only if the return value is FALSE.
g_resources_get_info(path.c_str(),
diff --git a/gio/src/resource.hg b/gio/src/resource.hg
index a74c4698..ccc041a3 100644
--- a/gio/src/resource.hg
+++ b/gio/src/resource.hg
@@ -33,7 +33,208 @@ namespace Gio
/** Exception class for resource file handling errors.
*/
-_WRAP_GERROR(ResourceError, GResourceError, G_RESOURCE_ERROR, NO_GTYPE)
+_WRAP_GERROR(ResourceError, GResourceError, G_RESOURCE_ERROR, NO_GTYPE, newin "2,34")
+
+_WRAP_ENUM(ResourceFlags, GResourceFlags, newin "2,44")
+_WRAP_ENUM(ResourceLookupFlags, GResourceLookupFlags, newin "2,44")
+
+/** %Resource framework.
+ *
+ * Applications and libraries often contain binary or textual data that is
+ * really part of the application, rather than user data. For instance
+ * Gtk::Builder .ui files, splashscreen images, Gio::Menu markup xml, CSS files,
+ * icons, etc. These are often shipped as files in `$datadir/appname`, or
+ * manually included as literal strings in the code.
+ *
+ * The Gio::Resource API and the <tt>glib-compile-resources</tt> program
+ * provide a convenient and efficient alternative to this which has some nice properties. You
+ * maintain the files as normal files, so it's easy to edit them, but during the build the files
+ * are combined into a binary bundle that is linked into the executable. This means that loading
+ * the resource files is efficient (as they are already in memory, shared with other instances) and
+ * simple (no need to check for things like I/O errors or locate the files in the filesystem). It
+ * also makes it easier to create relocatable applications.
+ *
+ * %Resource files can also be marked as compressed. Such files will be included in the resource bundle
+ * in a compressed form, but will be automatically uncompressed when the resource is used. This
+ * is very useful e.g. for larger text files that are parsed once (or rarely) and then thrown away.
+ *
+ * %Resource files can also be marked to be preprocessed, by setting the value of the
+ * `preprocess` attribute to a comma-separated list of preprocessing options.
+ * The only options currently supported are:
+ *
+ * <dl>
+ * <dt>xml-stripblanks</dt>
+ * <dd>which will use the <tt>xmllint</tt> command
+ * to strip ignorable whitespace from the xml file. For this to work,
+ * the `XMLLINT` environment variable must be set to the full path to
+ * the <tt>xmllint</tt> executable, or <tt>xmllint</tt> must be in the `PATH`; otherwise
+ * the preprocessing step is skipped.</dd>
+ *
+ * <dt>to-pixdata</dt>
+ * <dd>which will use the <tt>gdk-pixbuf-pixdata</tt> command to convert
+ * images to the GdkPixdata format, which allows you to create pixbufs directly using the data inside
+ * the resource file, rather than an (uncompressed) copy of it. For this, the <tt>gdk-pixbuf-pixdata</tt>
+ * program must be in the PATH, or the `GDK_PIXBUF_PIXDATA` environment variable must be
+ * set to the full path to the <tt>gdk-pixbuf-pixdata</tt> executable; otherwise the resource compiler will
+ * abort.</dd>
+ * </dl>
+ *
+ * %Resource bundles are created by the <tt>glib-compile-resources</tt> program
+ * which takes an xml file that describes the bundle, and a set of files that the xml references. These
+ * are combined into a binary resource bundle.
+ *
+ * An example resource description:
+ * @code
+ * <?xml version="1.0" encoding="UTF-8"?>
+ * <gresources>
+ * <gresource prefix="/org/gtk/Example">
+ * <file>data/splashscreen.png</file>
+ * <file compressed="true">dialog.ui</file>
+ * <file preprocess="xml-stripblanks">menumarkup.xml</file>
+ * </gresource>
+ * </gresources>
+ * @endcode
+ *
+ * This will create a resource bundle with the following files:
+ * @code
+ * /org/gtk/Example/data/splashscreen.png
+ * /org/gtk/Example/dialog.ui
+ * /org/gtk/Example/menumarkup.xml
+ * @endcode
+ *
+ * Note that all resources in the process share the same namespace, so use java-style
+ * path prefixes (like in the above example) to avoid conflicts.
+ *
+ * You can then use <tt>glib-compile-resources</tt> to compile the xml to a binary bundle
+ * that you can load with Gio::Resource::create_from_file(). However, it's more common to use the --generate-source and
+ * --generate-header arguments to create a source file and header to link directly into your application.
+ *
+ * Once a Gio::Resource has been created and registered all the data in it can be accessed globally in the process by
+ * using API calls like Gio::Resource::open_stream_from_global_resources() to stream the data
+ * or Gio::Resource::lookup_data_in_global_resources() to get a direct pointer
+ * to the data. You can also use uris like "resource:///org/gtk/Example/data/splashscreen.png" with Gio::File to access
+ * the resource data.
+ *
+ * There are two forms of the generated source, the default version uses the compiler support for constructor
+ * and destructor functions (where available) to automatically create and register the Gio::Resource on startup
+ * or library load time. If you pass --manual-register, two functions to register/unregister the resource is instead
+ * created. This requires an explicit initialization call in your application/library, but it works on all platforms,
+ * even on the minor ones where this is not available. (Constructor support is available for at least Win32, MacOS and Linux.)
+ *
+ * Note that resource data can point directly into the data segment of e.g. a library, so if you are unloading libraries
+ * during runtime you need to be very careful with keeping around pointers to data from a resource, as this goes away
+ * when the library is unloaded. However, in practice this is not generally a problem, since most resource accesses
+ * is for your own resources, and resource data is often used once, during parsing, and then released.
+ *
+ * @newin{2,44}
+ */
+class Resource
+{
+ _CLASS_OPAQUE_REFCOUNTED(Resource, GResource, NONE, g_resource_ref, g_resource_unref)
+ _IGNORE(g_resource_ref, g_resource_unref)
+
+public:
+ _WRAP_METHOD(static Glib::RefPtr<Resource> create_from_data(const Glib::RefPtr<const Glib::Bytes>& data), g_resource_new_from_data, errthrow, newin "2,44")
+ _WRAP_METHOD(static Glib::RefPtr<Resource> create_from_file(const std::string& filename), g_resource_load, errthrow, newin "2,44")
+ _WRAP_METHOD(Glib::RefPtr<InputStream> open_stream(const std::string& path, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE) const, g_resource_open_stream, errthrow, newin "2,44")
+ _WRAP_METHOD(Glib::RefPtr<const Glib::Bytes> lookup_data(const std::string& path, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE) const, g_resource_lookup_data, errthrow, newin "2,44")
+
+#m4 _CONVERSION(`char**',`std::vector<std::string>',`Glib::ArrayHandler<std::string>::array_to_vector($3, Glib::OWNERSHIP_DEEP)')
+ _WRAP_METHOD(std::vector<std::string> enumerate_children(const std::string& path, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE) const, g_resource_enumerate_children, errthrow, newin "2,44")
+
+ /** Looks for a file at the specified @a path in the resource and
+ * if found returns information about it.
+ *
+ * @a lookup_flags controls the behaviour of the lookup.
+ *
+ * @newin{2,44}
+ *
+ * @param path A pathname inside the resource.
+ * @param[out] size A location to place the length of the contents of the file.
+ * @param[out] flags A location to place the flags about the file.
+ * @param lookup_flags A ResourceLookupFlags.
+ * @throw Gio::ResourceError if the file was not found.
+ */
+ void get_info(const std::string& path, gsize& size, ResourceFlags& flags, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE) const;
+ _IGNORE(g_resource_get_info)
+
+ /** Looks for a file at the specified @a path in the resource.
+ *
+ * @a lookup_flags controls the behaviour of the lookup.
+ *
+ * @newin{2,44}
+ *
+ * @param path A pathname inside the resource.
+ * @param lookup_flags A ResourceLookupFlags.
+ * @throw Gio::ResourceError if the file was not found.
+ */
+ void get_file_exists(const std::string& path, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE) const;
+
+ /** Looks for a file at the specified @a path in the resource.
+ *
+ * @a lookup_flags controls the behaviour of the lookup.
+ * This method returns a <tt>bool</tt> instead of throwing in exception in case of errors.
+ *
+ * @newin{2,44}
+ *
+ * @param path A pathname inside the resource.
+ * @param lookup_flags A ResourceLookupFlags.
+ * @return <tt>true</tt> if the file was found, <tt>false</tt> if there were errors.
+ */
+ bool get_file_exists_nothrow(const std::string& path, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE) const;
+
+ // 'register' is a keyword. Can't be the name of a method.
+ _WRAP_METHOD(void register_global(), g_resources_register, newin "2,44")
+ _WRAP_METHOD(void unregister_global(), g_resources_unregister, newin "2,44")
+ _WRAP_METHOD(static Glib::RefPtr<InputStream> open_stream_global(const std::string& path, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE), g_resources_open_stream, errthrow, newin "2,44")
+ _WRAP_METHOD(static Glib::RefPtr<const Glib::Bytes> lookup_data_global(const std::string& path, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE), g_resources_lookup_data, errthrow, newin "2,44")
+ _WRAP_METHOD(static std::vector<std::string> enumerate_children_global(const std::string& path, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE), g_resources_enumerate_children, errthrow, newin "2,44")
+
+ /** Looks for a file at the specified @a path in the set of
+ * globally registered resources and if found returns information about it.
+ *
+ * @a lookup_flags controls the behaviour of the lookup.
+ *
+ * @newin{2,44}
+ *
+ * @param path A pathname inside the resource.
+ * @param[out] size A location to place the length of the contents of the file.
+ * @param[out] flags A location to place the flags about the file.
+ * @param lookup_flags A ResourceLookupFlags.
+ * @throw Gio::ResourceError if the file was not found.
+ */
+ static void get_info_global(const std::string& path, gsize& size, ResourceFlags& flags, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE);
+ _IGNORE(g_resources_get_info)
+
+ /** Looks for a file at the specified @a path in the set of
+ * globally registered resources.
+ *
+ * @a lookup_flags controls the behaviour of the lookup.
+ *
+ * @newin{2,44}
+ *
+ * @param path A pathname inside the resource.
+ * @param lookup_flags A ResourceLookupFlags.
+ * @throw Gio::ResourceError if the file was not found.
+ */
+ static void get_file_exists_global(const std::string& path, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE);
+
+ /** Looks for a file at the specified @a path in the set of
+ * globally registered resources.
+ *
+ * @a lookup_flags controls the behaviour of the lookup.
+ * This method returns a <tt>bool</tt> instead of throwing in exception in case of errors.
+ *
+ * @newin{2,44}
+ *
+ * @param path A pathname inside the resource.
+ * @param lookup_flags A ResourceLookupFlags.
+ * @return <tt>true</tt> if the file was found, <tt>false</tt> if there were errors.
+ */
+ static bool get_file_exists_global_nothrow(const std::string& path, ResourceLookupFlags lookup_flags = RESOURCE_LOOKUP_FLAGS_NONE);
+
+ _IGNORE(g_static_resource_init, g_static_resource_fini, g_static_resource_get_resource)dnl//Used only by the glib-compile-resources command
+};
_WRAP_ENUM(ResourceFlags, GResourceFlags)
_WRAP_ENUM(ResourceLookupFlags, GResourceLookupFlags)
diff --git a/gio/src/settings.ccg b/gio/src/settings.ccg
index d800aa90..98b6ccd4 100644
--- a/gio/src/settings.ccg
+++ b/gio/src/settings.ccg
@@ -24,7 +24,7 @@ namespace Gio
void Settings::get_value(const Glib::ustring& key, Glib::VariantBase& value) const
{
- GVariant* const g_value = g_settings_get_value(const_cast<GSettings*>(gobj()), key.c_str());
+ const auto g_value = g_settings_get_value(const_cast<GSettings*>(gobj()), key.c_str());
if(!g_value)
return;
@@ -33,7 +33,7 @@ void Settings::get_value(const Glib::ustring& key, Glib::VariantBase& value) con
bool Settings::get_user_value(const Glib::ustring& key, Glib::VariantBase& value) const
{
- GVariant* const g_value = g_settings_get_user_value(const_cast<GSettings*>(gobj()), key.c_str());
+ const auto g_value = g_settings_get_user_value(const_cast<GSettings*>(gobj()), key.c_str());
if(!g_value)
return false;
@@ -43,7 +43,7 @@ bool Settings::get_user_value(const Glib::ustring& key, Glib::VariantBase& value
void Settings::get_default_value(const Glib::ustring& key, Glib::VariantBase& value) const
{
- GVariant* const g_value = g_settings_get_default_value(const_cast<GSettings*>(gobj()), key.c_str());
+ const auto g_value = g_settings_get_default_value(const_cast<GSettings*>(gobj()), key.c_str());
if(!g_value)
return;
@@ -64,10 +64,12 @@ void Settings::bind_writable(const Glib::ustring& key,
}
_DEPRECATE_IFDEF_START
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
std::vector<Glib::ustring> Settings::list_schemas()
{
return Glib::ArrayHandler<Glib::ustring>::array_to_vector(g_settings_list_schemas(), Glib::OWNERSHIP_NONE);
}
+G_GNUC_END_IGNORE_DEPRECATIONS
_DEPRECATE_IFDEF_END
}
diff --git a/gio/src/settings.hg b/gio/src/settings.hg
index 75407d57..7d48e729 100644
--- a/gio/src/settings.hg
+++ b/gio/src/settings.hg
@@ -25,11 +25,6 @@ _CONFIGINCLUDE(giommconfig.h)
_DEFS(giomm,gio)
_PINCLUDE(glibmm/private/object_p.h)
-#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
-#undef G_DISABLE_DEPRECATED
-#define GLIB_DISABLE_DEPRECATION_WARNINGS 1
-#m4 _POP()
-
namespace Gio
{
@@ -47,16 +42,16 @@ class Settings : public Glib::Object
_CLASS_GOBJECT(Settings, GSettings, G_SETTINGS, Glib::Object, GObject)
protected:
- _WRAP_CTOR(Settings(const Glib::ustring& schema), g_settings_new)
- _WRAP_CTOR(Settings(const Glib::ustring& schema, const Glib::ustring& path), g_settings_new_with_path)
- //TODO: Requires SettingsBackend: _WRAP_CTOR(Settings(const Glib::ustring& schema, const Glib::RefPtr<SettingsBackend>& backend), g_settings_new_with_backend)
- //TODO: Requires SettingsBackend: _WRAP_CTOR(Settings(const Glib::ustring& schema, const Glib::RefPtr<SettingsBackend>& backend, const Glib::ustring& path), g_settings_new_with_backend_and_path)
+ _WRAP_CTOR(Settings(const Glib::ustring& schema_id), g_settings_new)
+ _WRAP_CTOR(Settings(const Glib::ustring& schema_id, const Glib::ustring& path), g_settings_new_with_path)
+ //TODO: Requires SettingsBackend: _WRAP_CTOR(Settings(const Glib::ustring& schema_id, const Glib::RefPtr<SettingsBackend>& backend), g_settings_new_with_backend)
+ //TODO: Requires SettingsBackend: _WRAP_CTOR(Settings(const Glib::ustring& schema_id, const Glib::RefPtr<SettingsBackend>& backend, const Glib::ustring& path), g_settings_new_with_backend_and_path)
public:
- _WRAP_CREATE(const Glib::ustring& schema)
- _WRAP_CREATE(const Glib::ustring& schema, const Glib::ustring& path)
- //TODO: Requires SettingsBackend: _WRAP_CREATE(const Glib::ustring& schema, const Glib::RefPtr<SettingsBackend>& backend)
- //TODO: Requires SettingsBackend: _WRAP_CREATE(const Glib::ustring& schema, const Glib::RefPtr<SettingsBackend>& backend, const Glib::ustring& path)
+ _WRAP_CREATE(const Glib::ustring& schema_id)
+ _WRAP_CREATE(const Glib::ustring& schema_id, const Glib::ustring& path)
+ //TODO: Requires SettingsBackend: _WRAP_CREATE(const Glib::ustring& schema_id, const Glib::RefPtr<SettingsBackend>& backend)
+ //TODO: Requires SettingsBackend: _WRAP_CREATE(const Glib::ustring& schema_id, const Glib::RefPtr<SettingsBackend>& backend, const Glib::ustring& path)
//TODO: Rename these to get/set_*_value_variant() and add templated get/set_*_value() methods as elsewhere?
_WRAP_METHOD(bool set_value(const Glib::ustring& key, const Glib::VariantBase& value), g_settings_set_value)
@@ -181,7 +176,7 @@ _DEPRECATE_IFDEF_END
#m4 _CONVERSION(`gchar**',`std::vector<Glib::ustring>',`Glib::ArrayHandler<Glib::ustring>::array_to_vector($3, Glib::OWNERSHIP_DEEP)')
_WRAP_METHOD(std::vector<Glib::ustring> list_children() const, g_settings_list_children)
- _WRAP_METHOD(std::vector<Glib::ustring> list_keys() const, g_settings_list_keys)
+ _WRAP_METHOD(std::vector<Glib::ustring> list_keys() const, g_settings_list_keys, deprecated "Use SettingsSchema::list_kes().")
_IGNORE(g_settings_get_range, g_settings_list_relocatable_schemas) // deprecated
@@ -211,8 +206,9 @@ _DEPRECATE_IFDEF_END
//TODO?: _WRAP_SIGNAL(bool change_event(const Glib::ArrayHandle<Glib::QueryQuark>& keys, int n_keys), "change-event")
+ //TODO: Remove two_signal_methods when we can break ABI.
#m4 _CONVERSION(`const char*',`const Glib::ustring&',__GCHARP_TO_USTRING)
- _WRAP_SIGNAL(void changed(const Glib::ustring& key), "changed")
+ _WRAP_SIGNAL(void changed(const Glib::ustring& key), "changed", detail_name key, two_signal_methods)
_WRAP_SIGNAL(bool writable_change_event(guint key), "writable-change-event")
_WRAP_SIGNAL(void writable_changed(const Glib::ustring& key), writable_changed)
diff --git a/gio/src/settingsschema.ccg b/gio/src/settingsschema.ccg
new file mode 100644
index 00000000..a8ef5d43
--- /dev/null
+++ b/gio/src/settingsschema.ccg
@@ -0,0 +1,23 @@
+/* Copyright (C) 2015 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gio/gio.h>
+
+namespace Gio
+{
+
+} //namespace Gio
diff --git a/gio/src/settingsschema.hg b/gio/src/settingsschema.hg
new file mode 100644
index 00000000..4ff7e833
--- /dev/null
+++ b/gio/src/settingsschema.hg
@@ -0,0 +1,82 @@
+/* Copyright (C) 2015 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+_CONFIGINCLUDE(giommconfig.h)
+
+#include <giomm/settingsschemakey.h>
+#include <glibmm/arrayhandle.h>
+
+_DEFS(giomm,gio)
+_PINCLUDE(glibmm/private/object_p.h)
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GSettingsSchema GSettingsSchema;
+#endif
+
+namespace Gio
+{
+
+//TODO: Translate more of the class documentation from the C docs.
+
+/** Introspecting and controlling the loading of GSettings schemas.
+ *
+ * The SettingsSchemaSource and SettingsSchema APIs provide a
+ * mechanism for advanced control over the loading of schemas and a
+ * mechanism for introspecting their content.
+ *
+ * Plugin loading systems that wish to provide plugins a way to access
+ * settings face the problem of how to make the schemas for these
+ * settings visible to GSettings. Typically, a plugin will want to ship
+ * the schema along with itself and it won't be installed into the
+ * standard system directories for schemas.
+ *
+ * SettingsSchemaSource provides a mechanism for dealing with this by
+ * allowing the creation of a new 'schema source' from which schemas can
+ * be acquired. This schema source can then become part of the metadata
+ * associated with the plugin and queried whenever the plugin requires
+ * access to some settings.
+ *
+ * @newin{2,32}
+ */
+class SettingsSchema
+{
+ _CLASS_OPAQUE_REFCOUNTED(SettingsSchema, GSettingsSchema, NONE, g_settings_schema_ref, g_settings_schema_unref)
+
+protected:
+ _IGNORE(g_settings_schema_ref, g_settings_schema_unref)
+
+ //Ignore internal GSettingsSchema functions.
+ _IGNORE(g_settings_schema_get_value, g_settings_schema_list, g_settings_schema_get_string, g_settings_schema_get_gettext_domain)
+
+public:
+ _WRAP_METHOD(Glib::ustring get_id() const, g_settings_schema_get_id)
+ _WRAP_METHOD(Glib::ustring get_path() const, g_settings_schema_get_path)
+
+ //Note that these don't need refreturn because they seem to return a reference
+ //(they are documented as transfer:full)
+ _WRAP_METHOD(Glib::RefPtr<SettingsSchemaKey> get_key(const Glib::ustring& name), g_settings_schema_get_key)
+ _WRAP_METHOD(Glib::RefPtr<const SettingsSchemaKey> get_key(const Glib::ustring& name) const, g_settings_schema_get_key)
+
+ _WRAP_METHOD(bool has_key(const Glib::ustring& name) const, g_settings_schema_has_key)
+
+#m4 _CONVERSION(`gchar**',`std::vector<Glib::ustring>',`Glib::ArrayHandler<Glib::ustring>::array_to_vector($3, Glib::OWNERSHIP_DEEP)')
+ _WRAP_METHOD(std::vector<Glib::ustring> list_keys() const, g_settings_schema_list_keys)
+
+ _WRAP_METHOD(std::vector<Glib::ustring> list_children() const, g_settings_schema_list_children)
+};
+
+} // namespace Gio
diff --git a/gio/src/settingsschemakey.ccg b/gio/src/settingsschemakey.ccg
new file mode 100644
index 00000000..a8ef5d43
--- /dev/null
+++ b/gio/src/settingsschemakey.ccg
@@ -0,0 +1,23 @@
+/* Copyright (C) 2015 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gio/gio.h>
+
+namespace Gio
+{
+
+} //namespace Gio
diff --git a/gio/src/settingsschemakey.hg b/gio/src/settingsschemakey.hg
new file mode 100644
index 00000000..cca21c76
--- /dev/null
+++ b/gio/src/settingsschemakey.hg
@@ -0,0 +1,63 @@
+/* Copyright (C) 2015 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+_CONFIGINCLUDE(giommconfig.h)
+
+#include <glibmm/variant.h>
+
+_DEFS(giomm,gio)
+_PINCLUDE(glibmm/private/object_p.h)
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GSettingsSchemaKey GSettingsSchemaKey;
+#endif
+
+namespace Gio
+{
+
+//TODO: Add some class documentation, though there is none in the C docs.
+
+/** See SettingsSchema.
+ *
+ * @newin{2,32}
+ */
+class SettingsSchemaKey
+{
+ _CLASS_OPAQUE_REFCOUNTED(SettingsSchemaKey, GSettingsSchemaKey, NONE, g_settings_schema_key_ref, g_settings_schema_key_unref)
+
+protected:
+ _IGNORE(g_settings_schema_key_ref, g_settings_schema_key_unref)
+
+ //Ignore internal GSettingsSchemaKey functions.
+ _IGNORE(g_settings_schema_key_init, g_settings_schema_key_clear,
+ g_settings_schema_key_type_check, g_settings_schema_key_range_fixup,
+ g_settings_schema_key_get_translated_default, g_settings_schema_key_to_enum,
+ g_settings_schema_key_from_enum, g_settings_schema_key_to_flags,
+ g_settings_schema_key_from_flags)
+
+public:
+ //TODO: _WRAP_METHOD(const GVariantType * g_settings_schema_key_get_value_type (), g_settings_schema_key_get_value_type)
+ //_WRAP_METHOD(GVariant * g_settings_schema_key_get_default_value (), g_settings_schema_key_get_default_value)
+ //_WRAP_METHOD(GVariant * g_settings_schema_key_get_range (), g_settings_schema_key_get_range)
+ //TODO: _WRAP_METHOD(bool range_check(GVariant *value), g_settings_schema_key_range_check)
+
+ _WRAP_METHOD(Glib::ustring get_name() const, g_settings_schema_key_get_name)
+ _WRAP_METHOD(Glib::ustring get_summary() const, g_settings_schema_key_get_summary)
+ _WRAP_METHOD(Glib::ustring get_description() const, g_settings_schema_key_get_description)
+};
+
+} // namespace Gio
diff --git a/gio/src/settingsschemasource.ccg b/gio/src/settingsschemasource.ccg
new file mode 100644
index 00000000..a8ef5d43
--- /dev/null
+++ b/gio/src/settingsschemasource.ccg
@@ -0,0 +1,23 @@
+/* Copyright (C) 2015 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gio/gio.h>
+
+namespace Gio
+{
+
+} //namespace Gio
diff --git a/gio/src/settingsschemasource.hg b/gio/src/settingsschemasource.hg
new file mode 100644
index 00000000..2731f2b3
--- /dev/null
+++ b/gio/src/settingsschemasource.hg
@@ -0,0 +1,65 @@
+/* Copyright (C) 2015 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+_CONFIGINCLUDE(giommconfig.h)
+
+#include <giomm/settingsschema.h>
+
+_DEFS(giomm,gio)
+_PINCLUDE(glibmm/private/object_p.h)
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GSettingsSchemaSource GSettingsSchemaSource;
+#endif
+
+namespace Gio
+{
+
+//TODO: Add some class documentation, though there is none in the C docs.
+
+/** See SettingsSchema.
+ *
+ * @newin{2,32}
+ */
+class SettingsSchemaSource
+{
+ _CLASS_OPAQUE_REFCOUNTED(SettingsSchemaSource, GSettingsSchemaSource, NONE, g_settings_schema_source_ref, g_settings_schema_source_unref)
+
+protected:
+ _IGNORE(g_settings_schema_source_ref, g_settings_schema_source_unref)
+
+public:
+
+ _WRAP_METHOD(static Glib::RefPtr<SettingsSchemaSource> get_default(), g_settings_schema_source_get_default)
+
+/* TODO:
+GLIB_AVAILABLE_IN_2_32
+GSettingsSchemaSource * g_settings_schema_source_new_from_directory (const gchar *directory,
+ GSettingsSchemaSource *parent,
+ gboolean trusted,
+ GError **error);
+*/
+
+ //Note this doesn't need refreturn because the C function returns a reference.
+ //- it is documented as transfer:full
+ _WRAP_METHOD(Glib::RefPtr<SettingsSchema> lookup(const Glib::ustring& schema_id, bool recursive), g_settings_schema_source_lookup)
+ _WRAP_METHOD(Glib::RefPtr<const SettingsSchema> lookup(const Glib::ustring& schema_id, bool recursive) const, g_settings_schema_source_lookup)
+
+ //TODO:_WRAP_METHOD(void list_schemas(bool recursive, gchar*** non_relocatable, gchar*** relocatable), g_settings_schema_source_list_schemas)
+};
+
+} // namespace Gio
diff --git a/gio/src/simpleaction.hg b/gio/src/simpleaction.hg
index 4765674d..4b5b91e0 100644
--- a/gio/src/simpleaction.hg
+++ b/gio/src/simpleaction.hg
@@ -88,6 +88,7 @@ public:
* must have the same VariantType as the initial state.
*
* @newin{2,38}
+ *
* @param name The name of the action.
* @param state The initial state of the action.
* @return A new SimpleAction.
@@ -103,6 +104,7 @@ public:
* must also be bool.
*
* @newin{2,38}
+ *
* @param name The name of the action.
* @param state The initial state of the action.
* @return A new SimpleAction.
@@ -118,6 +120,7 @@ public:
/** Creates a new radio action with a string-based target value.
*
* @newin{2,38}
+ *
* @param name The name of the action.
* @param initial_state The initial state of the action.
* @return A new SimpleAction.
@@ -134,6 +137,7 @@ public:
/** Creates a new radio action with an integer-based target value.
*
* @newin{2,38}
+ *
* @param name The name of the action.
* @param initial_state The initial state of the action.
* @return A new SimpleAction.
diff --git a/gio/src/simpleactiongroup.hg b/gio/src/simpleactiongroup.hg
index 138e4fe0..0c3fc8c6 100644
--- a/gio/src/simpleactiongroup.hg
+++ b/gio/src/simpleactiongroup.hg
@@ -23,11 +23,6 @@ _CONFIGINCLUDE(giommconfig.h)
_DEFS(giomm,gio)
_PINCLUDE(glibmm/private/object_p.h)
-#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
-#undef G_DISABLE_DEPRECATED
-#define GLIB_DISABLE_DEPRECATION_WARNINGS 1
-#m4 _POP()
-
namespace Gio
{
diff --git a/gio/src/simpleiostream.ccg b/gio/src/simpleiostream.ccg
new file mode 100644
index 00000000..528d468d
--- /dev/null
+++ b/gio/src/simpleiostream.ccg
@@ -0,0 +1,17 @@
+/* Copyright (C) 2015 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <gio/gio.h>
diff --git a/gio/src/simpleiostream.hg b/gio/src/simpleiostream.hg
new file mode 100644
index 00000000..e510649d
--- /dev/null
+++ b/gio/src/simpleiostream.hg
@@ -0,0 +1,75 @@
+/* Copyright (C) 2015 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <giomm/iostream.h>
+
+_DEFS(giomm,gio)
+_PINCLUDE(giomm/private/iostream_p.h)
+
+namespace Gio
+{
+/** A wrapper around an input and an output stream.
+ *
+ * SimpleIOStream creates an IOStream from an arbitrary InputStream and
+ * OutputStream. This allows any pair of input and output streams to be used
+ * with IOStream methods.
+ *
+ * This is useful when you obtained an InputStream and an OutputStream
+ * by other means, for instance creating them with platform specific methods
+ * such as Gio::UnixInputStream::create(), and you want
+ * to take advantage of the methods provided by IOStream.
+ *
+ * @ingroup Streams
+ *
+ * @newin{2,46}
+ */
+class SimpleIOStream : public Gio::IOStream
+{
+ _CLASS_GOBJECT(SimpleIOStream, GSimpleIOStream, G_SIMPLE_IO_STREAM, Gio::IOStream, GIOStream)
+
+protected:
+ /** Creates a new SimpleIOStream wrapping @a input_stream and @a output_stream.
+ *
+ * @see IOStream
+ *
+ * @newin{2,46}
+ *
+ * @param input_stream An InputStream.
+ * @param output_stream An OutputStream.
+ * @returns A new SimpleIOStream instance.
+ */
+ _WRAP_CTOR(SimpleIOStream(const Glib::RefPtr<InputStream>& input_stream, const Glib::RefPtr<OutputStream>& output_stream), g_simple_io_stream_new)
+
+public:
+ /** Creates a new SimpleIOStream wrapping @a input_stream and @a output_stream.
+ *
+ * @see IOStream
+ *
+ * @newin{2,46}
+ *
+ * @param input_stream An InputStream.
+ * @param output_stream An OutputStream.
+ * @returns A new SimpleIOStream instance.
+ */
+ _WRAP_CREATE(const Glib::RefPtr<InputStream>& input_stream, const Glib::RefPtr<OutputStream>& output_stream)
+
+ _WRAP_PROPERTY("input-stream", Glib::RefPtr<InputStream>, newin "2,46")
+ _WRAP_PROPERTY("output-stream", Glib::RefPtr<OutputStream>, newin "2,46")
+
+ // SimpleIOStream has no methods other than create(), signals nor vfuncs.
+};
+
+} // namespace Gio
diff --git a/gio/src/socket.ccg b/gio/src/socket.ccg
index 7a4a211d..571bc00c 100644
--- a/gio/src/socket.ccg
+++ b/gio/src/socket.ccg
@@ -56,9 +56,9 @@ Glib::RefPtr<Socket> Socket::create_from_fd(int fd, const Glib::RefPtr<Cancellab
gssize Socket::receive_from(Glib::RefPtr<SocketAddress>& address, char* buffer, gsize size, const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
- GSocketAddress* caddr = 0;
- gssize retvalue = g_socket_receive_from(gobj(), &caddr, buffer, size, const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror));
+ GError* gerror = nullptr;
+ GSocketAddress* caddr = nullptr;
+ auto retvalue = g_socket_receive_from(gobj(), &caddr, buffer, size, const_cast<GCancellable*>(Glib::unwrap(cancellable)), &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -70,9 +70,9 @@ gssize Socket::receive_from(Glib::RefPtr<SocketAddress>& address, char* buffer,
gssize Socket::receive_from(Glib::RefPtr<SocketAddress>& address, char* buffer, gsize size)
{
- GError* gerror = 0;
- GSocketAddress* caddr = 0;
- gssize retvalue = g_socket_receive_from(gobj(), &caddr, buffer, size, 0, &(gerror));
+ GError* gerror = nullptr;
+ GSocketAddress* caddr = nullptr;
+ auto retvalue = g_socket_receive_from(gobj(), &caddr, buffer, size, 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -85,8 +85,8 @@ gssize Socket::receive_from(Glib::RefPtr<SocketAddress>& address, char* buffer,
gssize Socket::receive_with_blocking(gchar* buffer, gsize size, bool blocking,
const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
- gssize const retvalue = g_socket_receive_with_blocking(gobj(), buffer, size,
+ GError* gerror = nullptr;
+ const auto retvalue = g_socket_receive_with_blocking(gobj(), buffer, size,
blocking, Glib::unwrap(cancellable), &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -97,8 +97,8 @@ gssize Socket::receive_with_blocking(gchar* buffer, gsize size, bool blocking,
gssize Socket::send_with_blocking(gchar* buffer, gsize size, bool blocking,
const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
- gssize const retvalue = g_socket_send_with_blocking(gobj(), buffer, size,
+ GError* gerror = nullptr;
+ const auto retvalue = g_socket_send_with_blocking(gobj(), buffer, size,
blocking, Glib::unwrap(cancellable), &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
diff --git a/gio/src/socket.hg b/gio/src/socket.hg
index 55236a40..530a1ab0 100644
--- a/gio/src/socket.hg
+++ b/gio/src/socket.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2009 Jonathon Jongsma
*
* This library is free software; you can redistribute it and/or
@@ -251,6 +249,7 @@ public:
* Gio::signal_socket().connect() is a simpler interface to the same functionality.
*
* @newin{2,42}
+ *
* @param condition A Glib::IOCondition mask to monitor.
* @param cancellable A Cancellable. The default value means the source is not cancellable.
* @return A newly allocated SocketSource.
diff --git a/gio/src/socketaddressenumerator.ccg b/gio/src/socketaddressenumerator.ccg
index b783ec8a..d7aca9b6 100644
--- a/gio/src/socketaddressenumerator.ccg
+++ b/gio/src/socketaddressenumerator.ccg
@@ -31,7 +31,7 @@ namespace Gio {
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_address_enumerator_next_async(gobj(),
Glib::unwrap(cancellable),
diff --git a/gio/src/socketclient.ccg b/gio/src/socketclient.ccg
index ec970358..6448c219 100644
--- a/gio/src/socketclient.ccg
+++ b/gio/src/socketclient.ccg
@@ -32,7 +32,7 @@ SocketClient::connect_async(const Glib::RefPtr<SocketConnectable>& connectable,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_client_connect_async (gobj(),
connectable->gobj (),
@@ -48,7 +48,7 @@ SocketClient::connect_async(const Glib::RefPtr<SocketConnectable>& connectable,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_client_connect_async (gobj(),
connectable->gobj (),
@@ -66,7 +66,7 @@ SocketClient::connect_to_host_async(const Glib::ustring& host_and_port,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_client_connect_to_host_async (gobj(),
host_and_port.c_str (),
@@ -84,7 +84,7 @@ SocketClient::connect_to_host_async(const Glib::ustring& host_and_port,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_client_connect_to_host_async (gobj(),
host_and_port.c_str (),
@@ -103,7 +103,7 @@ SocketClient::connect_to_service_async(const Glib::ustring& domain,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_client_connect_to_service_async (gobj(),
domain.c_str (),
@@ -121,7 +121,7 @@ SocketClient::connect_to_service_async(const Glib::ustring& domain,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_client_connect_to_service_async (gobj(),
domain.c_str (),
@@ -139,7 +139,7 @@ SocketClient::connect_to_uri_async(const Glib::ustring& uri, guint16 default_por
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_client_connect_to_uri_async (gobj(),
uri.c_str(), default_port,
@@ -155,7 +155,7 @@ SocketClient::connect_to_uri_async(const Glib::ustring& uri, guint16 default_por
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_client_connect_to_uri_async (gobj(),
uri.c_str(), default_port,
diff --git a/gio/src/socketconnection.ccg b/gio/src/socketconnection.ccg
index 8bd85788..79094c16 100644
--- a/gio/src/socketconnection.ccg
+++ b/gio/src/socketconnection.ccg
@@ -28,7 +28,7 @@ SocketConnection::connect_async(const Glib::RefPtr<SocketAddress>& address,
const SlotAsyncReady& slot,
const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_connection_connect_async(gobj(),
Glib::unwrap(address),
@@ -41,7 +41,7 @@ void
SocketConnection::connect_async(const Glib::RefPtr<SocketAddress>& address,
const SlotAsyncReady& slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_connection_connect_async(gobj(),
Glib::unwrap(address),
diff --git a/gio/src/socketconnection.hg b/gio/src/socketconnection.hg
index f1543869..5ac0b2d6 100644
--- a/gio/src/socketconnection.hg
+++ b/gio/src/socketconnection.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2010 Jonathon Jongsma
*
* This library is free software; you can redistribute it and/or
@@ -52,7 +50,6 @@ namespace Gio
class SocketConnection : public Gio::IOStream
{
_CLASS_GOBJECT(SocketConnection, GSocketConnection, G_SOCKET_CONNECTION, Gio::IOStream, GIOStream)
- _IGNORE(g_socket_connection_set_cached_remote_address) dnl// private method
public:
_WRAP_METHOD(bool connect(const Glib::RefPtr<SocketAddress>& address, const Glib::RefPtr<Cancellable>& cancellable{?}), g_socket_connection_connect, errthrow)
diff --git a/gio/src/socketlistener.ccg b/gio/src/socketlistener.ccg
index b55c6055..1697ced1 100644
--- a/gio/src/socketlistener.ccg
+++ b/gio/src/socketlistener.ccg
@@ -25,7 +25,7 @@ namespace Gio
bool SocketListener::add_socket(const Glib::RefPtr<Socket>& socket)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
const bool retval = g_socket_listener_add_socket(gobj(),
Glib::unwrap(socket),
0,
@@ -40,8 +40,8 @@ bool SocketListener::add_socket(const Glib::RefPtr<Socket>& socket)
bool SocketListener::add_address(const Glib::RefPtr<SocketAddress>& address, SocketType type, SocketProtocol protocol, const Glib::RefPtr<Glib::Object>& source_object, Glib::RefPtr<SocketAddress>& effective_address)
{
- GError* gerror = 0;
- GSocketAddress *retaddr = 0;
+ GError* gerror = nullptr;
+ GSocketAddress *retaddr = nullptr;
const bool retval = g_socket_listener_add_address (gobj(),
Glib::unwrap(address),
static_cast<GSocketType>(type),
@@ -60,8 +60,8 @@ bool SocketListener::add_address(const Glib::RefPtr<SocketAddress>& address, Soc
bool SocketListener::add_address(const Glib::RefPtr<SocketAddress>& address, SocketType type, SocketProtocol protocol, Glib::RefPtr<SocketAddress>& effective_address)
{
- GError* gerror = 0;
- GSocketAddress *retaddr = 0;
+ GError* gerror = nullptr;
+ GSocketAddress *retaddr = nullptr;
const bool retval = g_socket_listener_add_address (gobj(),
Glib::unwrap(address),
static_cast<GSocketType>(type),
@@ -81,7 +81,7 @@ bool SocketListener::add_address(const Glib::RefPtr<SocketAddress>& address, Soc
bool SocketListener::add_inet_port(guint16 port)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
const bool retvalue = g_socket_listener_add_inet_port(gobj(), port, 0, &gerror);
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -92,8 +92,8 @@ bool SocketListener::add_inet_port(guint16 port)
guint16 SocketListener::add_any_inet_port()
{
- GError* gerror = 0;
- const guint16 retvalue = g_socket_listener_add_any_inet_port(gobj(), 0, &gerror);
+ GError* gerror = nullptr;
+ const auto retvalue = g_socket_listener_add_any_inet_port(gobj(), 0, &gerror);
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -103,9 +103,9 @@ guint16 SocketListener::add_any_inet_port()
Glib::RefPtr<Socket> SocketListener::accept_socket(Glib::RefPtr<Glib::Object>& source_object, const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
- GObject *retobj = 0;
- GSocket* retvalue = g_socket_listener_accept_socket(gobj(),
+ GError* gerror = nullptr;
+ GObject *retobj = nullptr;
+ auto retvalue = g_socket_listener_accept_socket(gobj(),
&retobj,
Glib::unwrap(cancellable),
&gerror);
@@ -120,9 +120,9 @@ Glib::RefPtr<Socket> SocketListener::accept_socket(Glib::RefPtr<Glib::Object>& s
Glib::RefPtr<Socket> SocketListener::accept_socket(Glib::RefPtr<Glib::Object>& source_object)
{
- GError* gerror = 0;
- GObject *retobj = 0;
- GSocket* retvalue = g_socket_listener_accept_socket(gobj(),
+ GError* gerror = nullptr;
+ GObject *retobj = nullptr;
+ auto retvalue = g_socket_listener_accept_socket(gobj(),
&retobj,
0,
&gerror);
@@ -137,8 +137,8 @@ Glib::RefPtr<Socket> SocketListener::accept_socket(Glib::RefPtr<Glib::Object>& s
Glib::RefPtr<Socket> SocketListener::accept_socket(const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
- GSocket* retvalue = g_socket_listener_accept_socket(gobj(),
+ GError* gerror = nullptr;
+ auto retvalue = g_socket_listener_accept_socket(gobj(),
0,
Glib::unwrap(cancellable),
&gerror);
@@ -150,8 +150,8 @@ Glib::RefPtr<Socket> SocketListener::accept_socket(const Glib::RefPtr<Cancellabl
Glib::RefPtr<Socket> SocketListener::accept_socket()
{
- GError* gerror = 0;
- GSocket* retvalue = g_socket_listener_accept_socket(gobj(),
+ GError* gerror = nullptr;
+ auto retvalue = g_socket_listener_accept_socket(gobj(),
0,
0,
&gerror);
@@ -167,7 +167,7 @@ void SocketListener::accept_socket_async(const Glib::RefPtr<Cancellable>& cancel
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_listener_accept_socket_async(gobj(),
Glib::unwrap(cancellable),
@@ -180,7 +180,7 @@ void SocketListener::accept_socket_async(const SlotAsyncReady& slot)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_listener_accept_socket_async(gobj(),
0,
@@ -190,9 +190,9 @@ void SocketListener::accept_socket_async(const SlotAsyncReady& slot)
Glib::RefPtr<Socket> SocketListener::accept_socket_finish(const Glib::RefPtr<AsyncResult>& result, Glib::RefPtr<Glib::Object>& source_object)
{
- GError* gerror = 0;
- GObject *retobj = 0;
- GSocket* retvalue = g_socket_listener_accept_socket_finish(gobj(),
+ GError* gerror = nullptr;
+ GObject *retobj = nullptr;
+ auto retvalue = g_socket_listener_accept_socket_finish(gobj(),
Glib::unwrap(result),
&retobj,
&gerror);
@@ -206,8 +206,8 @@ Glib::RefPtr<Socket> SocketListener::accept_socket_finish(const Glib::RefPtr<Asy
Glib::RefPtr<Socket> SocketListener::accept_socket_finish(const Glib::RefPtr<AsyncResult>& result)
{
- GError* gerror = 0;
- GSocket* retvalue = g_socket_listener_accept_socket_finish(gobj(),
+ GError* gerror = nullptr;
+ auto retvalue = g_socket_listener_accept_socket_finish(gobj(),
Glib::unwrap(result),
0,
&gerror);
@@ -220,9 +220,9 @@ Glib::RefPtr<Socket> SocketListener::accept_socket_finish(const Glib::RefPtr<Asy
Glib::RefPtr<SocketConnection> SocketListener::accept(Glib::RefPtr<Object>& source_object, const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
- GObject *retobj = 0;
- GSocketConnection* retvalue = g_socket_listener_accept(gobj(),
+ GError* gerror = nullptr;
+ GObject *retobj = nullptr;
+ auto retvalue = g_socket_listener_accept(gobj(),
&retobj,
Glib::unwrap(cancellable),
&gerror);
@@ -237,9 +237,9 @@ Glib::RefPtr<SocketConnection> SocketListener::accept(Glib::RefPtr<Object>& sour
Glib::RefPtr<SocketConnection> SocketListener::accept(Glib::RefPtr<Object>& source_object)
{
- GError* gerror = 0;
- GObject *retobj = 0;
- GSocketConnection* retvalue = g_socket_listener_accept(gobj(),
+ GError* gerror = nullptr;
+ GObject *retobj = nullptr;
+ auto retvalue = g_socket_listener_accept(gobj(),
&retobj,
0,
&gerror);
@@ -254,8 +254,8 @@ Glib::RefPtr<SocketConnection> SocketListener::accept(Glib::RefPtr<Object>& sour
Glib::RefPtr<SocketConnection> SocketListener::accept(const Glib::RefPtr<Cancellable>& cancellable)
{
- GError* gerror = 0;
- GSocketConnection* retvalue = g_socket_listener_accept(gobj(),
+ GError* gerror = nullptr;
+ auto retvalue = g_socket_listener_accept(gobj(),
0,
Glib::unwrap(cancellable),
&gerror);
@@ -267,8 +267,8 @@ Glib::RefPtr<SocketConnection> SocketListener::accept(const Glib::RefPtr<Cancell
Glib::RefPtr<SocketConnection> SocketListener::accept()
{
- GError* gerror = 0;
- GSocketConnection* retvalue = g_socket_listener_accept(gobj(),
+ GError* gerror = nullptr;
+ auto retvalue = g_socket_listener_accept(gobj(),
0,
0,
&gerror);
@@ -284,7 +284,7 @@ void SocketListener::accept_async(const SlotAsyncReady& slot)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_listener_accept_async(gobj(),
0,
@@ -297,7 +297,7 @@ void SocketListener::accept_async(const Glib::RefPtr<Cancellable>& cancellable,
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_socket_listener_accept_async(gobj(),
Glib::unwrap(cancellable),
@@ -307,9 +307,9 @@ void SocketListener::accept_async(const Glib::RefPtr<Cancellable>& cancellable,
Glib::RefPtr<SocketConnection> SocketListener::accept_finish(const Glib::RefPtr<AsyncResult>& result, Glib::RefPtr<Glib::Object>& source_object)
{
- GError* gerror = 0;
- GObject *retobj = 0;
- GSocketConnection* retvalue = g_socket_listener_accept_finish(gobj(),
+ GError* gerror = nullptr;
+ GObject *retobj = nullptr;
+ auto retvalue = g_socket_listener_accept_finish(gobj(),
Glib::unwrap(result),
&retobj,
&gerror);
@@ -323,8 +323,8 @@ Glib::RefPtr<SocketConnection> SocketListener::accept_finish(const Glib::RefPtr<
Glib::RefPtr<SocketConnection> SocketListener::accept_finish(const Glib::RefPtr<AsyncResult>& result)
{
- GError* gerror = 0;
- GSocketConnection* retvalue = g_socket_listener_accept_finish(gobj(),
+ GError* gerror = nullptr;
+ auto retvalue = g_socket_listener_accept_finish(gobj(),
Glib::unwrap(result),
0,
&gerror);
diff --git a/gio/src/tcpwrapperconnection.ccg b/gio/src/tcpwrapperconnection.ccg
new file mode 100644
index 00000000..58b9f179
--- /dev/null
+++ b/gio/src/tcpwrapperconnection.ccg
@@ -0,0 +1,22 @@
+/* Copyright (C) 2015 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gio/gio.h>
+
+namespace Gio
+{
+} // namespace Gio
diff --git a/gio/src/tcpwrapperconnection.hg b/gio/src/tcpwrapperconnection.hg
new file mode 100644
index 00000000..a4690077
--- /dev/null
+++ b/gio/src/tcpwrapperconnection.hg
@@ -0,0 +1,51 @@
+/* Copyright (C) 2015 The giomm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <giomm/tcpconnection.h>
+
+_DEFS(giomm,gio)
+_PINCLUDE(giomm/private/tcpconnection_p.h)
+
+namespace Gio
+{
+
+/** Wrapper for non-Gio::SocketConnection-based, Gio::Socket-based Gio::IOStreams.
+ *
+ * This can be used to wrap a Gio::Stream that is
+ * based on a Gio::Socket, but which is not actually a
+ * Gio::SocketConnection. This is used by Gio::SocketClient so that it can
+ * always return a Gio::SocketConnection, even when the connection it has
+ * actually created is not directly a Gio::SocketConnection.
+ *
+ * @newin{2,44}
+ * @ingroup NetworkIO
+ */
+class TcpWrapperConnection : public Gio::TcpConnection
+{
+ _CLASS_GOBJECT(TcpWrapperConnection, GTcpWrapperConnection, G_TCP_WRAPPER_CONNECTION, Gio::TcpConnection, GTcpConnection)
+
+public:
+
+ _WRAP_CTOR(TcpWrapperConnection(const Glib::RefPtr<IOStream>& base_io_stream, const Glib::RefPtr<Socket>& socket), g_tcp_wrapper_connection_new)
+
+ _WRAP_METHOD(Glib::RefPtr<IOStream> get_base_io_stream(), g_tcp_wrapper_connection_get_base_io_stream, refreturn)
+ _WRAP_METHOD(Glib::RefPtr<const IOStream> get_base_io_stream() const, g_tcp_wrapper_connection_get_base_io_stream, constversion, refreturn)
+
+ _WRAP_PROPERTY("base-io-stream", Glib::RefPtr<IOStream>, newin "2,44")
+};
+
+} // namespace Gio
diff --git a/gio/src/themedicon.ccg b/gio/src/themedicon.ccg
index 3a6d5402..af938ee9 100644
--- a/gio/src/themedicon.ccg
+++ b/gio/src/themedicon.ccg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -22,9 +20,9 @@
namespace Gio
{
-ThemedIcon::ThemedIcon(const std::string& iconname, bool use_default_callbacks)
+ThemedIcon::ThemedIcon(const std::string& iconname, bool use_default_fallbacks)
:
- _CONSTRUCT("name", iconname.c_str(), "use-default-fallbacks", gboolean(use_default_callbacks))
+ _CONSTRUCT("name", iconname.c_str(), "use-default-fallbacks", gboolean(use_default_fallbacks))
{}
} //namespace Gio
diff --git a/gio/src/themedicon.hg b/gio/src/themedicon.hg
index d5a0ea2a..c906b22c 100644
--- a/gio/src/themedicon.hg
+++ b/gio/src/themedicon.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -28,7 +26,7 @@ _PINCLUDE(glibmm/private/object_p.h)
namespace Gio
{
-/** Icon theming support
+/** Icon theming support.
* ThemedIcon is an implementation of Gio::Icon that supports icon themes.
* ThemedIcon contains a list of all of the icons present in an icon
* theme, so that icons can be looked up quickly. ThemedIcon does
@@ -47,21 +45,33 @@ class ThemedIcon
_IMPLEMENTS_INTERFACE(Icon)
protected:
- /** Creates a new themed icon for @ iconname, and optionally all the names that can be created by shortening @a iconname at '-' characters.
+ /** Creates a new themed icon for @a iconname, and optionally all the names that can be created by shortening @a iconname at '-' characters.
*
* @param iconname A string containing an icon name.
- * @param use_default_callbacks Whether to use all the names that can be created by shortening @a iconname at '-' characters.
+ * @param use_default_fallbacks Whether to use all the names that can be created by shortening @a iconname at '-' characters.
*/
- explicit ThemedIcon(const std::string& iconname, bool use_default_callbacks = false);
+ explicit ThemedIcon(const std::string& iconname, bool use_default_fallbacks = false);
_IGNORE(g_themed_icon_new, g_themed_icon_new_with_default_fallbacks)
public:
- /** Creates a new themed icon for @ iconname, and optionally all the names that can be created by shortening @a iconname at '-' characters.
+ /** Creates a new themed icon for @a iconname, and optionally all the names that can be created by shortening @a iconname at '-' characters.
+ *
+ * For example
+ * @code
+ * Glib::RefPtr<Gio::ThemedIcon> icon = Gio::ThemedIcon::create("gnome-dev-cdrom-audio", true);
+ * @endcode
+ * is equivalent to
+ * @code
+ * Glib::RefPtr<Gio::ThemedIcon> icon = Gio::ThemedIcon::create("gnome-dev-cdrom-audio", false);
+ * icon->append_name("gnome-dev-cdrom");
+ * icon->append_name("gnome-dev");
+ * icon->append_name("gnome");
+ * @endcode
*
* @param iconname A string containing an icon name.
- * @param use_default_callbacks Whether to use all the names that can be created by shortening @a iconname at '-' characters.
+ * @param use_default_fallbacks Whether to use all the names that can be created by shortening @a iconname at '-' characters.
*/
- _WRAP_CREATE(const std::string& iconname, bool use_default_callbacks = false)
+ _WRAP_CREATE(const std::string& iconname, bool use_default_fallbacks = false)
//TODO: GIcon *g_themed_icon_new_from_names (char **iconnames, int len);
diff --git a/gio/src/tlsconnection.hg b/gio/src/tlsconnection.hg
index bc753d3a..7a4a044e 100644
--- a/gio/src/tlsconnection.hg
+++ b/gio/src/tlsconnection.hg
@@ -24,11 +24,6 @@ _CONFIGINCLUDE(giommconfig.h)
_DEFS(giomm,gio)
_PINCLUDE(giomm/private/iostream_p.h)
-#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
-#undef G_DISABLE_DEPRECATED
-#define GLIB_DISABLE_DEPRECATION_WARNINGS 1
-#m4 _POP()
-
namespace Gio
{
diff --git a/gio/src/tlspassword.hg b/gio/src/tlspassword.hg
index 9dbd8f8e..841d11a3 100644
--- a/gio/src/tlspassword.hg
+++ b/gio/src/tlspassword.hg
@@ -66,8 +66,8 @@ public:
//TODO? (See g_tls_password_set_value_full() comment above): _WRAP_VFUNC(void set_value(guchar* value, gssize length, GDestroyNotify destroy), "set_value")
-#m4 _CONVERSION(`Glib::ustring', `const gchar*', `g_strdup($3.c_str())')
- _WRAP_VFUNC(Glib::ustring get_default_warning() const, "get_default_warning")
+#m4 _CONVERSION(`Glib::ustring', `const gchar*', `$3.c_str()')
+ _WRAP_VFUNC(Glib::ustring get_default_warning() const, "get_default_warning", keep_return)
};
} // namespace Gio
diff --git a/gio/src/unixconnection.ccg b/gio/src/unixconnection.ccg
index 2341973a..bddc9696 100644
--- a/gio/src/unixconnection.ccg
+++ b/gio/src/unixconnection.ccg
@@ -27,7 +27,7 @@ namespace Gio
void UnixConnection::receive_credentials_async(const SlotAsyncReady& slot,
const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_unix_connection_receive_credentials_async(gobj(),
Glib::unwrap(cancellable),
@@ -37,7 +37,7 @@ void UnixConnection::receive_credentials_async(const SlotAsyncReady& slot,
void UnixConnection::receive_credentials_async(const SlotAsyncReady& slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_unix_connection_receive_credentials_async(gobj(),
0,
@@ -49,7 +49,7 @@ void
UnixConnection::send_credentials_async(const SlotAsyncReady& slot,
const Glib::RefPtr<Cancellable>& cancellable)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_unix_connection_send_credentials_async(gobj(),
Glib::unwrap(cancellable),
@@ -61,7 +61,7 @@ void
UnixConnection::send_credentials_async(const SlotAsyncReady& slot)
{
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_unix_connection_send_credentials_async(gobj(),
0,
diff --git a/gio/src/unixfdlist.ccg b/gio/src/unixfdlist.ccg
index 4fbed4dd..b17b0f6d 100644
--- a/gio/src/unixfdlist.ccg
+++ b/gio/src/unixfdlist.ccg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2010 The giomm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -24,24 +22,47 @@ namespace Gio
{
UnixFDList::UnixFDList(const Glib::ArrayHandle<int>& fds)
-: _CONSTRUCT("fds", fds.data(), "n_fds", fds.size())
-{}
+:
+ // Mark this class as non-derived to allow C++ vfuncs to be skipped.
+ Glib::ObjectBase(0),
+ // g_unix_fd_list_new_from_array() must be called.
+ // Its parameters don't correspond to properties.
+ // _CONSTRUCT() + g_unit_fd_list_append() is not an alternative.
+ // g_unit_fd_list_append() duplicates the file descriptor,
+ // but g_unix_fd_list_new_from_array() does not.
+ Glib::Object((GObject*)g_unix_fd_list_new_from_array(fds.data(), fds.size()))
+{
+}
+
+UnixFDList::UnixFDList(const Glib::ArrayHandle<int>& fds, int n_fds)
+:
+ // Mark this class as non-derived to allow C++ vfuncs to be skipped.
+ Glib::ObjectBase(0),
+ // g_unix_fd_list_new_from_array() must be called.
+ // Its parameters don't correspond to properties.
+ // _CONSTRUCT() + g_unit_fd_list_append() is not an alternative.
+ // g_unit_fd_list_append() duplicates the file descriptor,
+ // but g_unix_fd_list_new_from_array() does not.
+ Glib::Object((GObject*)g_unix_fd_list_new_from_array(fds.data(), n_fds))
+{
+}
const Glib::ArrayHandle<int> UnixFDList::peek_fds() const
{
int length = 0;
- const int* fds = g_unix_fd_list_peek_fds(const_cast<GUnixFDList*>(gobj()),
- &length);
- // (length - 1) is used because the array is terminated with a -1.
- return Glib::ArrayHandle<int>(fds, length - 1, Glib::OWNERSHIP_NONE);
+ const auto fds = g_unix_fd_list_peek_fds(const_cast<GUnixFDList*>(gobj()), &length);
+ // The array is terminated with a -1, but that terminating element is
+ // not included in the length that g_unix_fd_list_peek_fds() returns.
+ return Glib::ArrayHandle<int>(fds, length, Glib::OWNERSHIP_NONE);
}
Glib::ArrayHandle<int> UnixFDList::steal_fds()
{
int length = 0;
- const int* fds = g_unix_fd_list_steal_fds(gobj(), &length);
- // (length - 1) is used because the array is terminated with a -1.
- return Glib::ArrayHandle<int>(fds, length - 1, Glib::OWNERSHIP_DEEP);
+ const auto fds = g_unix_fd_list_steal_fds(gobj(), &length);
+ // The array is terminated with a -1, but that terminating element is
+ // not included in the length that g_unix_fd_list_steal_fds() returns.
+ return Glib::ArrayHandle<int>(fds, length, Glib::OWNERSHIP_DEEP);
}
} // namespace Gio
diff --git a/gio/src/unixfdlist.hg b/gio/src/unixfdlist.hg
index 4ff3ec4d..6525f325 100644
--- a/gio/src/unixfdlist.hg
+++ b/gio/src/unixfdlist.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2010 The giomm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -26,7 +24,6 @@ _PINCLUDE(glibmm/private/object_p.h)
namespace Gio
{
-
/** UnixFDList - An object containing a set of UNIX file descriptors.
* A UnixFDList contains a list of file descriptors. It owns the file
* descriptors that it contains, closing them when finalized.
@@ -49,8 +46,8 @@ protected:
explicit UnixFDList(const Glib::ArrayHandle<int>& fds);
-#m4 _CONVERSION(`const Glib::ArrayHandle<int>&', `const gint*', `$3.data()')
- _WRAP_CTOR(UnixFDList(const Glib::ArrayHandle<int>& fds, int n_fds), g_unix_fd_list_new_from_array)
+ explicit UnixFDList(const Glib::ArrayHandle<int>& fds, int n_fds);
+ _IGNORE(g_unix_fd_list_new_from_array)
public:
_WRAP_METHOD_DOCS_ONLY(g_unix_fd_list_new)
diff --git a/gio/src/unixfdmessage.ccg b/gio/src/unixfdmessage.ccg
index ec38df44..7849a208 100644
--- a/gio/src/unixfdmessage.ccg
+++ b/gio/src/unixfdmessage.ccg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2010 The giomm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -27,9 +25,10 @@ namespace Gio
Glib::ArrayHandle<int> UnixFDMessage::steal_fds()
{
int length = 0;
- const int* fds = g_unix_fd_message_steal_fds(gobj(), &length);
- // (length - 1) is used because the array is terminated with a -1.
- return Glib::ArrayHandle<int>(fds, length - 1, Glib::OWNERSHIP_DEEP);
+ const auto fds = g_unix_fd_message_steal_fds(gobj(), &length);
+ // The array is terminated with a -1, but that terminating element is
+ // not included in the length that g_unix_fd_message_steal_fds() returns.
+ return Glib::ArrayHandle<int>(fds, length, Glib::OWNERSHIP_DEEP);
}
} // namespace Gio
diff --git a/gio/src/unixfdmessage.hg b/gio/src/unixfdmessage.hg
index 05a1e103..d54c8e64 100644
--- a/gio/src/unixfdmessage.hg
+++ b/gio/src/unixfdmessage.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2010 The giomm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -57,12 +55,11 @@ public:
_WRAP_METHOD_DOCS_ONLY(g_unix_fd_message_new_with_fd_list)
_WRAP_CREATE(const Glib::RefPtr<UnixFDList>& fd_list)
- _WRAP_METHOD(Glib::RefPtr<UnixFDList> get_fd_list(), g_unix_fd_message_get_fd_list)
- _WRAP_METHOD(Glib::RefPtr<const UnixFDList> get_fd_list() const, g_unix_fd_message_get_fd_list, constversion)
+ _WRAP_METHOD(Glib::RefPtr<UnixFDList> get_fd_list(), g_unix_fd_message_get_fd_list, refreturn)
+ _WRAP_METHOD(Glib::RefPtr<const UnixFDList> get_fd_list() const, g_unix_fd_message_get_fd_list, refreturn, constversion)
_WRAP_METHOD(bool append_fd(int fd), g_unix_fd_message_append_fd, errthrow)
-
/** Returns the array of file descriptors that is contained in this object.
*
* After this call, the descriptors are no longer contained in message.
diff --git a/gio/src/unixsocketaddress.hg b/gio/src/unixsocketaddress.hg
index 0f009a7e..5fe8010d 100644
--- a/gio/src/unixsocketaddress.hg
+++ b/gio/src/unixsocketaddress.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2010 The giomm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -82,7 +80,7 @@ public:
_WRAP_METHOD(static bool abstract_names_supported(), g_unix_socket_address_abstract_names_supported)
- _WRAP_PROPERTY("abstract", bool)
+ _WRAP_PROPERTY("abstract", bool, deprecated "Use property_address_type() instead, which distinguishes between zero-padded and non-zero-padded abstract addresses.")
_WRAP_PROPERTY("address-type", UnixSocketAddressType)
_WRAP_PROPERTY("path", std::string)
_WRAP_PROPERTY("path-as-array", Glib::RefPtr<ByteArray>)
diff --git a/gio/src/volume.ccg b/gio/src/volume.ccg
index d06790a8..0bffbcb6 100644
--- a/gio/src/volume.ccg
+++ b/gio/src/volume.ccg
@@ -33,7 +33,7 @@ Volume::mount(const Glib::RefPtr<MountOperation>& mount_operation, const SlotAsy
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_volume_mount(gobj(),
static_cast<GMountMountFlags>(flags),
@@ -50,7 +50,7 @@ Volume::mount(const Glib::RefPtr<MountOperation>& mount_operation, const SlotAsy
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_volume_mount(gobj(),
static_cast<GMountMountFlags>(flags),
@@ -88,7 +88,7 @@ void Volume::eject(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>&
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_volume_eject_with_operation(gobj(),
static_cast<GMountUnmountFlags>(flags),
@@ -103,7 +103,7 @@ void Volume::eject(const SlotAsyncReady& slot, MountUnmountFlags flags)
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_volume_eject_with_operation(gobj(),
static_cast<GMountUnmountFlags>(flags),
@@ -128,7 +128,7 @@ void Volume::eject(const Glib::RefPtr<MountOperation>& mount_operation, const Sl
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_volume_eject_with_operation(gobj(),
static_cast<GMountUnmountFlags>(flags),
@@ -143,7 +143,7 @@ void Volume::eject(const Glib::RefPtr<MountOperation>& mount_operation, const Sl
// Create a copy of the slot.
// A pointer to it will be passed through the callback's data parameter
// and deleted in the callback.
- SlotAsyncReady* slot_copy = new SlotAsyncReady(slot);
+ auto slot_copy = new SlotAsyncReady(slot);
g_volume_eject_with_operation(gobj(),
static_cast<GMountUnmountFlags>(flags),
diff --git a/gio/src/volumemonitor.hg b/gio/src/volumemonitor.hg
index 5a5fcf92..df326460 100644
--- a/gio/src/volumemonitor.hg
+++ b/gio/src/volumemonitor.hg
@@ -1,5 +1,3 @@
-// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
/* Copyright (C) 2007 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -19,11 +17,6 @@
_CONFIGINCLUDE(giommconfig.h)
-#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
-#undef G_DISABLE_DEPRECATED
-#define GLIB_DISABLE_DEPRECATION_WARNINGS 1
-#m4 _POP()
-
#include <giomm/drive.h>
#include <giomm/volume.h>
#include <giomm/mount.h>
diff --git a/glib/glibmm/arrayhandle.h b/glib/glibmm/arrayhandle.h
index 6938c641..87127ebd 100644
--- a/glib/glibmm/arrayhandle.h
+++ b/glib/glibmm/arrayhandle.h
@@ -210,6 +210,10 @@ private:
} // namespace Container_Helpers
+//TODO: When we can break ABI, remove this and replace uses of it with std::vector.
+//We cannot deprecate it yet, because we cannot easily deprecate methods that use it
+//- for instance, we cannot just override methods that use it as a return type.
+
/** This is an intermediate type. When a method takes this, or returns this, you
* should use a standard C++ container of your choice, such as std::list or
* std::vector.
diff --git a/glib/glibmm/dispatcher.cc b/glib/glibmm/dispatcher.cc
index f6257f36..d6117312 100644
--- a/glib/glibmm/dispatcher.cc
+++ b/glib/glibmm/dispatcher.cc
@@ -127,6 +127,10 @@ class DispatchNotifier : public sigc::trackable
public:
~DispatchNotifier();
+ // noncopyable
+ DispatchNotifier(const DispatchNotifier&) = delete;
+ DispatchNotifier& operator=(const DispatchNotifier&) = delete;
+
static DispatchNotifier* reference_instance(
const Glib::RefPtr<MainContext>& context, const Dispatcher* dispatcher);
static void unreference_instance(
@@ -158,10 +162,6 @@ private:
void create_pipe();
bool pipe_io_handler(Glib::IOCondition condition);
bool pipe_is_empty();
-
- // noncopyable
- DispatchNotifier(const DispatchNotifier&);
- DispatchNotifier& operator=(const DispatchNotifier&);
};
/**** Glib::DispatchNotifier ***********************************************/
@@ -197,7 +197,7 @@ DispatchNotifier::DispatchNotifier(const Glib::RefPtr<MainContext>& context)
// sigc::mem_fun(*this, &DispatchNotifier::pipe_io_handler), fd, Glib::IO_IN);
// except for source->set_can_recurse(true).
- const Glib::RefPtr<IOSource> source = IOSource::create(fd, Glib::IO_IN);
+ const auto source = IOSource::create(fd, Glib::IO_IN);
// If the signal emission in pipe_io_handler() starts a new main loop,
// the event source shall not be blocked while that loop runs. (E.g. while
diff --git a/glib/glibmm/dispatcher.h b/glib/glibmm/dispatcher.h
index 96721651..5de499d1 100644
--- a/glib/glibmm/dispatcher.h
+++ b/glib/glibmm/dispatcher.h
@@ -78,6 +78,10 @@ public:
*/
Dispatcher();
+ // noncopyable
+ Dispatcher(const Dispatcher&) = delete;
+ Dispatcher& operator=(const Dispatcher&) = delete;
+
/** Create new Dispatcher instance using an arbitrary main context.
* @throw Glib::FileError
*/
@@ -93,10 +97,6 @@ private:
sigc::signal<void> signal_;
DispatchNotifier* notifier_;
- // noncopyable
- Dispatcher(const Dispatcher&);
- Dispatcher& operator=(const Dispatcher&);
-
#ifndef DOXYGEN_SHOULD_SKIP_THIS
friend class Glib::DispatchNotifier;
#endif
diff --git a/glib/glibmm/error.cc b/glib/glibmm/error.cc
index fe01cc6f..315ea71d 100644
--- a/glib/glibmm/error.cc
+++ b/glib/glibmm/error.cc
@@ -1,5 +1,3 @@
-// -*- c++ -*-
-
/* error.cc
*
* Copyright 2002 The gtkmm Development Team
@@ -21,6 +19,7 @@
#include <glibmmconfig.h>
#include <glibmm/error.h>
+#include <glibmm/wrap.h>
#include <glibmm/wrap_init.h>
#include <glib.h>
#include <map>
@@ -30,7 +29,7 @@ namespace
typedef std::map<GQuark,Glib::Error::ThrowFunc> ThrowFuncTable;
-static ThrowFuncTable* throw_func_table = 0;
+static ThrowFuncTable* throw_func_table = nullptr;
} // anonymous namespace
@@ -43,9 +42,9 @@ Error::Error()
gobject_ (0)
{}
-Error::Error(GQuark domain, int code, const Glib::ustring& message)
+Error::Error(GQuark error_domain, int error_code, const Glib::ustring& message)
:
- gobject_ (g_error_new_literal(domain, code, message.c_str()))
+ gobject_ (g_error_new_literal(error_domain, error_code, message.c_str()))
{}
Error::Error(GError* gobject, bool take_copy)
@@ -66,7 +65,7 @@ Error& Error::operator=(const Error& other)
if(gobject_)
{
g_error_free(gobject_);
- gobject_ = 0;
+ gobject_ = nullptr;
}
if(other.gobject_)
{
@@ -76,7 +75,7 @@ Error& Error::operator=(const Error& other)
return *this;
}
-Error::~Error() throw()
+Error::~Error() noexcept
{
if(gobject_)
g_error_free(gobject_);
@@ -84,29 +83,29 @@ Error::~Error() throw()
GQuark Error::domain() const
{
- g_return_val_if_fail(gobject_ != 0, 0);
+ g_return_val_if_fail(gobject_ != nullptr, 0);
return gobject_->domain;
}
int Error::code() const
{
- g_return_val_if_fail(gobject_ != 0, -1);
+ g_return_val_if_fail(gobject_ != nullptr, -1);
return gobject_->code;
}
Glib::ustring Error::what() const
{
- g_return_val_if_fail(gobject_ != 0, "");
- g_return_val_if_fail(gobject_->message != 0, "");
+ g_return_val_if_fail(gobject_ != nullptr, "");
+ g_return_val_if_fail(gobject_->message != nullptr, "");
return gobject_->message;
}
-bool Error::matches(GQuark domain, int code) const
+bool Error::matches(GQuark error_domain, int error_code) const
{
- return g_error_matches(gobject_, domain, code);
+ return g_error_matches(gobject_, error_domain, error_code);
}
GError* Error::gobj()
@@ -122,7 +121,7 @@ const GError* Error::gobj() const
void Error::propagate(GError** dest)
{
g_propagate_error(dest, gobject_);
- gobject_ = 0;
+ gobject_ = nullptr;
}
// static
@@ -131,6 +130,7 @@ void Error::register_init()
if(!throw_func_table)
{
throw_func_table = new ThrowFuncTable();
+ Glib::wrap_register_init();
Glib::wrap_init(); // make sure that at least the Glib exceptions are registered
}
}
@@ -141,22 +141,22 @@ void Error::register_cleanup()
if(throw_func_table)
{
delete throw_func_table;
- throw_func_table = 0;
+ throw_func_table = nullptr;
}
}
// static
-void Error::register_domain(GQuark domain, Error::ThrowFunc throw_func)
+void Error::register_domain(GQuark error_domain, Error::ThrowFunc throw_func)
{
- g_assert(throw_func_table != 0);
+ g_assert(throw_func_table != nullptr);
- (*throw_func_table)[domain] = throw_func;
+ (*throw_func_table)[error_domain] = throw_func;
}
// static, noreturn
void Error::throw_exception(GError* gobject)
{
- g_assert(gobject != 0);
+ g_assert(gobject != nullptr);
// Just in case Gtk::Main hasn't been instantiated yet.
if(!throw_func_table)
@@ -176,6 +176,4 @@ void Error::throw_exception(GError* gobject)
throw Glib::Error(gobject);
}
-
} // namespace Glib
-
diff --git a/glib/glibmm/error.h b/glib/glibmm/error.h
index b68df859..1886d9a7 100644
--- a/glib/glibmm/error.h
+++ b/glib/glibmm/error.h
@@ -32,19 +32,19 @@ class Error : public Glib::Exception
{
public:
Error();
- Error(GQuark domain, int code, const Glib::ustring& message);
+ Error(GQuark error_domain, int error_code, const Glib::ustring& message);
explicit Error(GError* gobject, bool take_copy = false);
Error(const Error& other);
Error& operator=(const Error& other);
- virtual ~Error() throw();
+ virtual ~Error() noexcept;
GQuark domain() const;
int code() const;
virtual Glib::ustring what() const;
- bool matches(GQuark domain, int code) const;
+ bool matches(GQuark error_domain, int error_code) const;
GError* gobj();
const GError* gobj() const;
@@ -57,7 +57,7 @@ public:
static void register_init();
static void register_cleanup();
- static void register_domain(GQuark domain, ThrowFunc throw_func);
+ static void register_domain(GQuark error_domain, ThrowFunc throw_func);
static void throw_exception(GError* gobject) G_GNUC_NORETURN;
diff --git a/glib/glibmm/exception.cc b/glib/glibmm/exception.cc
index cc3d8efd..bf81ee00 100644
--- a/glib/glibmm/exception.cc
+++ b/glib/glibmm/exception.cc
@@ -30,7 +30,7 @@
namespace Glib
{
-Exception::~Exception() throw()
+Exception::~Exception() noexcept
{}
Glib::ustring Exception::what() const
diff --git a/glib/glibmm/exception.h b/glib/glibmm/exception.h
index 56d58b6b..c0e12700 100644
--- a/glib/glibmm/exception.h
+++ b/glib/glibmm/exception.h
@@ -31,7 +31,7 @@ namespace Glib
class Exception
{
public:
- virtual ~Exception() throw() = 0;
+ virtual ~Exception() noexcept = 0;
virtual Glib::ustring what() const = 0;
};
diff --git a/glib/glibmm/exceptionhandler.cc b/glib/glibmm/exceptionhandler.cc
index 734da3ef..df0b53e1 100644
--- a/glib/glibmm/exceptionhandler.cc
+++ b/glib/glibmm/exceptionhandler.cc
@@ -40,7 +40,7 @@ static Glib::Threads::Private<HandlerList> thread_specific_handler_list;
static void glibmm_exception_warning(const GError* error)
{
- g_assert(error != 0);
+ g_assert(error != nullptr);
g_critical("\n"
"unhandled exception (type Glib::Error) in signal handler:\n"
@@ -99,7 +99,7 @@ sigc::connection add_exception_handler(const sigc::slot<void>& slot)
}
// internal
-void exception_handlers_invoke() throw()
+void exception_handlers_invoke() noexcept
{
// This function will be called from our GLib signal handler proxies
// if an exception has been caught. It's not possible to throw C++
diff --git a/glib/glibmm/exceptionhandler.h b/glib/glibmm/exceptionhandler.h
index 534ca064..350cd023 100644
--- a/glib/glibmm/exceptionhandler.h
+++ b/glib/glibmm/exceptionhandler.h
@@ -34,7 +34,7 @@ sigc::connection add_exception_handler(const sigc::slot<void>& slot);
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// internal
-void exception_handlers_invoke() throw();
+void exception_handlers_invoke() noexcept;
#endif //DOXYGEN_SHOULD_SKIP_THIS
} // namespace Glib
diff --git a/glib/glibmm/filelist.am b/glib/glibmm/filelist.am
index 97170ce0..909ef6d5 100644
--- a/glib/glibmm/filelist.am
+++ b/glib/glibmm/filelist.am
@@ -17,7 +17,6 @@ glibmm_files_extra_cc = \
init.cc \
interface.cc \
main.cc \
- miscutils.cc \
object.cc \
objectbase.cc \
pattern.cc \
@@ -59,7 +58,6 @@ glibmm_files_extra_h = \
interface.h \
listhandle.h \
main.h \
- miscutils.h \
object.h \
objectbase.h \
pattern.h \
diff --git a/glib/glibmm/helperlist.h b/glib/glibmm/helperlist.h
index dfdc0706..1c9b9ba5 100644
--- a/glib/glibmm/helperlist.h
+++ b/glib/glibmm/helperlist.h
@@ -22,12 +22,23 @@
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+//This is not hidden by GLIBMM_DISABLE_DEPRECATED
+//because gtkmm-2.24 still uses this type in its public API.
+//Note that gtkmm-2.24 itself is completely deprecated, so we really
+//can remove this whole class some time soon.
+//#ifndef GLIBMM_DISABLE_DEPRECATED
+
#include <glibmm/containers.h>
namespace Glib
{
// This class has some pure virtual methods which need to be implemented by derived classes.
+
+/**
+ * @deprecated This class should no longer be necessary. It has not been used
+ * by glibmm or gtkmm since gtkmm-2.4.
+ */
template< typename T_Child, typename T_CppElement, typename T_Iterator >
class HelperList
{
@@ -74,7 +85,7 @@ public:
}
inline size_type max_size() { return size_type(-1); }
- inline bool empty() { return glist() == 0; }
+ inline bool empty() { return glist() == nullptr; }
inline iterator begin()
{return begin_();}
@@ -110,7 +121,7 @@ public:
{
size_type j = 0;
iterator i;
- for(i = begin(), j = 0; i != end(), j < l; ++i, ++j)
+ for(i = begin(), j = 0; i != end() && j < l; ++i, ++j)
;
return (*i);
}
@@ -162,5 +173,7 @@ protected:
} /* namespace Glib */
+//#endif //GLIBMM_DISABLE_DEPRECATED
+
#endif /* _GLIBMM_HELPERLIST_H */
diff --git a/glib/glibmm/init.cc b/glib/glibmm/init.cc
index 0710f3f4..92555607 100644
--- a/glib/glibmm/init.cc
+++ b/glib/glibmm/init.cc
@@ -1,6 +1,3 @@
-// -*- c++ -*-
-/* $Id$ */
-
/* Copyright (C) 2003 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -18,7 +15,7 @@
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <glibmm/wrap.h>
+#include <glibmm/init.h>
#include <glibmm/error.h>
namespace Glib
@@ -26,9 +23,8 @@ namespace Glib
void init()
{
- Glib::wrap_register_init();
- Glib::Error::register_init(); //also calls Glib::wrap_init();
+ // Also calls Glib::wrap_register_init() and Glib::wrap_init().
+ Glib::Error::register_init();
}
} // namespace Glib
-
diff --git a/glib/glibmm/interface.cc b/glib/glibmm/interface.cc
index c8495653..8ed14d39 100644
--- a/glib/glibmm/interface.cc
+++ b/glib/glibmm/interface.cc
@@ -98,7 +98,7 @@ Interface::Interface(const Interface_Class& interface_class)
g_free(iface_props);
}
}
- else // gobject_ == 0
+ else // gobject_ == nullptr
{
// The GObject is not instantiated yet. Add to the custom_interface_classes
// and add the interface in the Glib::Object constructor.
diff --git a/glib/glibmm/interface.h b/glib/glibmm/interface.h
index 06390441..0fc9ba62 100644
--- a/glib/glibmm/interface.h
+++ b/glib/glibmm/interface.h
@@ -32,7 +32,7 @@ class Interface_Class;
#endif
// There is no base GInterface struct in Glib, though there is G_TYPE_INTERFACE enum value.
-class Interface : virtual public Glib::ObjectBase
+class GLIBMM_API Interface : virtual public Glib::ObjectBase
{
public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -62,6 +62,10 @@ public:
explicit Interface(GObject* castitem);
virtual ~Interface();
+ // noncopyable
+ Interface(const Interface&) = delete;
+ Interface& operator=(const Interface&) = delete;
+
//void add_interface(GType gtype_implementer);
// Hook for translating API
@@ -74,11 +78,6 @@ public:
inline GObject* gobj() { return gobject_; }
inline const GObject* gobj() const { return gobject_; }
-
-private:
- // noncopyable
- Interface(const Interface&);
- Interface& operator=(const Interface&);
};
RefPtr<ObjectBase> wrap_interface(GObject* object, bool take_copy = false);
diff --git a/glib/glibmm/listhandle.h b/glib/glibmm/listhandle.h
index e63bb0b0..76bb7a8f 100644
--- a/glib/glibmm/listhandle.h
+++ b/glib/glibmm/listhandle.h
@@ -37,7 +37,7 @@ namespace Container_Helpers
template <class Bi, class Tr>
GList* create_list(Bi pbegin, Bi pend, Tr)
{
- GList* head = 0;
+ GList* head = nullptr;
while(pend != pbegin)
{
@@ -56,7 +56,7 @@ GList* create_list(Bi pbegin, Bi pend, Tr)
template <class For, class Tr>
GList* create_list(For pbegin, Tr)
{
- GList* head = 0;
+ GList* head = nullptr;
while(*pbegin)
{
@@ -297,7 +297,7 @@ ListHandle<T,Tr>::~ListHandle()
if(ownership_ != Glib::OWNERSHIP_SHALLOW)
{
// Deep ownership: release each container element.
- for(GList* node = plist_; node != 0; node = node->next)
+ for(GList* node = plist_; node != nullptr; node = node->next)
Tr::release_c_type(static_cast<typename Tr::CTypeNonConst>(node->data));
}
g_list_free(plist_);
@@ -396,7 +396,7 @@ std::size_t ListHandle<T,Tr>::size() const
template <class T, class Tr> inline
bool ListHandle<T,Tr>::empty() const
{
- return (plist_ == 0);
+ return (plist_ == nullptr);
}
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
diff --git a/glib/glibmm/main.cc b/glib/glibmm/main.cc
index 1d9d9152..9dfe09f7 100644
--- a/glib/glibmm/main.cc
+++ b/glib/glibmm/main.cc
@@ -102,7 +102,7 @@ void* SourceConnectionNode::notify(void* data)
if (self->source_)
{
GSource* s = self->source_;
- self->source_ = 0;
+ self->source_ = nullptr;
g_source_destroy(s);
// Destroying the object triggers execution of destroy_notify_handler(),
@@ -120,7 +120,7 @@ void SourceConnectionNode::destroy_notify_callback(void* data)
if (self)
{
// The GLib side is disconnected now, thus the GSource* is no longer valid.
- self->source_ = 0;
+ self->source_ = nullptr;
delete self;
}
@@ -200,10 +200,10 @@ void SourceCallbackData::destroy_notify_callback(void* data)
*/
static SourceCallbackData* glibmm_source_get_callback_data(GSource* source)
{
- g_return_val_if_fail(source->callback_funcs != 0, 0);
+ g_return_val_if_fail(source->callback_funcs != nullptr, 0);
GSourceFunc func;
- void* user_data = 0;
+ void* user_data = nullptr;
// Retrieve the callback function and data.
(*source->callback_funcs->get)(source->callback_data, source, &func, &user_data);
@@ -268,7 +268,7 @@ static gboolean glibmm_source_callback_once(void* data)
static gboolean glibmm_iosource_callback(GIOChannel*, GIOCondition condition, void* data)
{
SourceCallbackData *const callback_data = static_cast<SourceCallbackData*>(data);
- g_return_val_if_fail(callback_data->node != 0, 0);
+ g_return_val_if_fail(callback_data->node != nullptr, 0);
try
{
@@ -497,7 +497,7 @@ SignalIO::SignalIO(GMainContext* context)
sigc::connection SignalIO::connect(const sigc::slot<bool,IOCondition>& slot,
int fd, IOCondition condition, int priority)
{
- const Glib::RefPtr<IOSource> source = IOSource::create(fd, condition);
+ const auto source = IOSource::create(fd, condition);
if(priority != G_PRIORITY_DEFAULT)
source->set_priority(priority);
@@ -513,7 +513,7 @@ sigc::connection SignalIO::connect(const sigc::slot<bool,IOCondition>& slot,
const Glib::RefPtr<IOChannel>& channel,
IOCondition condition, int priority)
{
- const Glib::RefPtr<IOSource> source = IOSource::create(channel, condition);
+ const auto source = IOSource::create(channel, condition);
if(priority != G_PRIORITY_DEFAULT)
source->set_priority(priority);
@@ -943,10 +943,10 @@ Source::~Source()
if(gobject_)
{
SourceCallbackData *const data = glibmm_source_get_callback_data(gobject_);
- data->wrapper = 0;
+ data->wrapper = nullptr;
GSource *const tmp_gobject = gobject_;
- gobject_ = 0;
+ gobject_ = nullptr;
g_source_unref(tmp_gobject);
@@ -1035,7 +1035,7 @@ gboolean Source::dispatch_vfunc(GSource*, GSourceFunc callback, void* user_data)
SourceCallbackData *const callback_data = static_cast<SourceCallbackData*>(user_data);
g_return_val_if_fail(callback == &glibmm_dummy_source_callback, 0);
- g_return_val_if_fail(callback_data != 0 && callback_data->node != 0, 0);
+ g_return_val_if_fail(callback_data != nullptr && callback_data->node != nullptr, 0);
try
{
@@ -1057,7 +1057,7 @@ void Source::destroy_notify_callback(void* data)
Source *const self = static_cast<Source*>(data);
// gobject_ is already invalid at this point.
- self->gobject_ = 0;
+ self->gobject_ = nullptr;
// No exception checking: if the dtor throws, you're out of luck anyway.
delete self;
@@ -1094,7 +1094,7 @@ sigc::slot_base* Source::get_slot_from_connection_node(void* data)
sigc::slot_base* Source::get_slot_from_callback_data(void* data)
{
SourceCallbackData* const callback_data = static_cast<SourceCallbackData*>(data);
- g_return_val_if_fail(callback_data->node != 0, 0);
+ g_return_val_if_fail(callback_data->node != nullptr, 0);
return callback_data->node->get_slot();
}
diff --git a/glib/glibmm/main.h b/glib/glibmm/main.h
index 94d495c1..53a23705 100644
--- a/glib/glibmm/main.h
+++ b/glib/glibmm/main.h
@@ -107,7 +107,7 @@ public:
* is equivalent to:
* @code
* bool timeout_handler() { ... }
- * const Glib::RefPtr<Glib::TimeoutSource> timeout_source = Glib::TimeoutSource::create(1000);
+ * const auto timeout_source = Glib::TimeoutSource::create(1000);
* timeout_source->connect(sigc::ptr_fun(&timeout_handler));
* timeout_source->attach(Glib::MainContext::get_default());
* @endcode
@@ -165,7 +165,7 @@ public:
* is equivalent to:
* @code
* bool timeout_handler() { ... }
- * const Glib::RefPtr<Glib::TimeoutSource> timeout_source = Glib::TimeoutSource::create(5000);
+ * const auto timeout_source = Glib::TimeoutSource::create(5000);
* timeout_source->connect(sigc::ptr_fun(&timeout_handler));
* timeout_source->attach(Glib::MainContext::get_default());
* @endcode
@@ -232,7 +232,7 @@ public:
* is equivalent to:
* @code
* bool idle_handler() { ... }
- * const Glib::RefPtr<Glib::IdleSource> idle_source = Glib::IdleSource::create();
+ * const auto idle_source = Glib::IdleSource::create();
* idle_source->connect(sigc::ptr_fun(&idle_handler));
* idle_source->attach(Glib::MainContext::get_default());
* @endcode
@@ -291,7 +291,7 @@ public:
* is equivalent to:
* @code
* bool io_handler(Glib::IOCondition io_condition) { ... }
- * const Glib::RefPtr<Glib::IOSource> io_source = Glib::IOSource::create(fd, Glib::IO_IN | Glib::IO_HUP);
+ * const auto io_source = Glib::IOSource::create(fd, Glib::IO_IN | Glib::IO_HUP);
* io_source->connect(sigc::ptr_fun(&io_handler));
* io_source->attach(Glib::MainContext::get_default());
* @endcode
@@ -319,7 +319,7 @@ public:
* is equivalent to:
* @code
* bool io_handler(Glib::IOCondition io_condition) { ... }
- * const Glib::RefPtr<Glib::IOSource> io_source = Glib::IOSource::create(channel, Glib::IO_IN | Glib::IO_HUP);
+ * const auto io_source = Glib::IOSource::create(channel, Glib::IO_IN | Glib::IO_HUP);
* io_source->connect(sigc::ptr_fun(&io_handler));
* io_source->attach(Glib::MainContext::get_default());
* @endcode
@@ -405,6 +405,10 @@ public:
typedef Glib::MainContext CppObjectType;
typedef GMainContext BaseObjectType;
+ // noncopyable
+ MainContext(const MainContext& other) = delete;
+ MainContext& operator=(const MainContext& other) = delete;
+
/** Creates a new MainContext.
* @return The new MainContext.
*/
@@ -587,11 +591,6 @@ private:
// Glib::MainContext can neither be constructed nor deleted.
MainContext();
void operator delete(void*, std::size_t);
-
- // noncopyable
- MainContext(const MainContext& other);
- MainContext& operator=(const MainContext& other);
-
};
/** @relates Glib::MainContext */
@@ -662,6 +661,10 @@ public:
typedef Glib::Source CppObjectType;
typedef GSource BaseObjectType;
+ // noncopyable
+ Source(const Source&) = delete;
+ Source& operator=(const Source&) = delete;
+
static Glib::RefPtr<Source> create() /* = 0 */;
/** Adds a Source to a context so that it will be executed within that context.
@@ -802,13 +805,7 @@ public:
static sigc::slot_base* get_slot_from_connection_node(void* data);
// Used by derived Source classes in other files.
static sigc::slot_base* get_slot_from_callback_data(void* data);
-
-private:
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
- // noncopyable
- Source(const Source&);
- Source& operator=(const Source&);
};
diff --git a/glib/glibmm/object.cc b/glib/glibmm/object.cc
index 1658d81c..ddaa47b1 100644
--- a/glib/glibmm/object.cc
+++ b/glib/glibmm/object.cc
@@ -84,10 +84,10 @@ ConstructParams::ConstructParams(const Glib::Class& glibmm_class_,
static_cast<GObjectClass*>(g_type_class_ref(glibmm_class.get_type()));
unsigned int n_alloced_params = 0;
- char* collect_error = 0; // output argument of G_VALUE_COLLECT()
+ char* collect_error = nullptr; // output argument of G_VALUE_COLLECT()
for(const char* name = first_property_name;
- name != 0;
+ name != nullptr;
name = va_arg(var_args, char*))
{
GParamSpec *const pspec = g_object_class_find_property(g_class, name);
diff --git a/glib/glibmm/object.h b/glib/glibmm/object.h
index 4ac56a11..202b28e5 100644
--- a/glib/glibmm/object.h
+++ b/glib/glibmm/object.h
@@ -103,6 +103,10 @@ public:
typedef GObjectClass BaseClassType;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+ // noncopyable
+ Object(const Object&) = delete;
+ Object& operator=(const Object&) = delete;
+
protected:
Object(); //For use by C++-only sub-types.
explicit Object(const Glib::ConstructParams& construct_params);
@@ -145,10 +149,6 @@ private:
friend class Glib::Object_Class;
static CppClassType object_class_;
- // noncopyable
- Object(const Object&);
- Object& operator=(const Object&);
-
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
// Glib::Object can not be dynamic because it lacks a float state.
diff --git a/glib/glibmm/objectbase.cc b/glib/glibmm/objectbase.cc
index 140816a4..c1efb135 100644
--- a/glib/glibmm/objectbase.cc
+++ b/glib/glibmm/objectbase.cc
@@ -1,6 +1,3 @@
-// -*- c++ -*-
-/* $Id$ */
-
/* Copyright 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -46,7 +43,7 @@ namespace Glib
// static data members
ObjectBase::extra_object_base_data_type ObjectBase::extra_object_base_data;
-std::auto_ptr<Threads::Mutex> ObjectBase::extra_object_base_data_mutex(new Threads::Mutex());
+Threads::Mutex* ObjectBase::extra_object_base_data_mutex = new Threads::Mutex();
ObjectBase::ObjectBase()
:
@@ -122,7 +119,7 @@ ObjectBase::~ObjectBase()
g_warning("(Glib::ObjectBase::~ObjectBase): gobject_ = %p", (void*) gobject_);
#endif
- gobject_ = 0;
+ gobject_ = nullptr;
#ifdef GLIBMM_DEBUG_REFCOUNTING
g_warning("(Glib::ObjectBase::~ObjectBase): before g_object_steal_qdata()");
@@ -225,7 +222,7 @@ void ObjectBase::destroy_notify_()
g_warning("Glib::ObjectBase::destroy_notify_: gobject_ = %p", (void*) gobject_);
#endif
- gobject_ = 0; // Make sure we don't unref it again in the dtor.
+ gobject_ = nullptr; // Make sure we don't unref it again in the dtor.
delete this;
}
@@ -239,7 +236,7 @@ bool ObjectBase::is_anonymous_custom_() const
bool ObjectBase::is_derived_() const
{
// gtkmmproc-generated classes initialize this to 0 by default.
- return (custom_type_name_ != 0);
+ return (custom_type_name_ != nullptr);
}
void ObjectBase::set_manage()
diff --git a/glib/glibmm/objectbase.h b/glib/glibmm/objectbase.h
index a3afd834..44fb7adb 100644
--- a/glib/glibmm/objectbase.h
+++ b/glib/glibmm/objectbase.h
@@ -29,7 +29,7 @@
#include <sigc++/trackable.h>
#include <typeinfo>
#include <map> // Needed until the next ABI break.
-#include <memory> // auto_ptr, needed until the next ABI break.
+#include <memory> // Not used by ObjectBase any more, but user code may rely on it being here.
#ifndef DOXYGEN_SHOULD_SKIP_THIS
extern "C" { typedef struct _GObject GObject; }
@@ -57,6 +57,12 @@ class Mutex;
*/
class GLIBMM_API ObjectBase : virtual public sigc::trackable
{
+public:
+
+ // noncopyable
+ ObjectBase(const ObjectBase&) = delete;
+ ObjectBase& operator=(const ObjectBase&) = delete;
+
protected:
/** This default constructor is called implicitly from the constructor of user-derived
* classes, even if, for instance, Gtk::Button calls a different ObjectBase constructor.
@@ -70,7 +76,7 @@ protected:
* The C++ language itself ensures that the constructor
* is only invoked once.
*
- * All classes generated by gtkmmproc use this constructor, with custom_type_name = 0,
+ * All classes generated by gtkmmproc use this constructor, with custom_type_name = nullptr,
* which essentially means it's not a custom type. This is used to optimize
* vfunc and signal handler callbacks -- since the C++ virtual methods are
* not overridden, invocation can be skipped.
@@ -209,10 +215,10 @@ typedef std::map<const ObjectBase*, ExtraObjectBaseData> extra_object_base_data_
static extra_object_base_data_type extra_object_base_data;
// ObjectBase instances may be used in different threads.
// Accesses to extra_object_base_data must be thread-safe.
-// auto_ptr, because we don't want to include glibmm/threads.h in objectbase.h.
+// Threads::Mutex*, because we don't want to include glibmm/threads.h in objectbase.h.
// threads.h must be the first included file that includes glib.h. That could cause
// problems in files that directly or indirectly include objectbase.h.
-static std::auto_ptr<Threads::Mutex> extra_object_base_data_mutex;
+static Threads::Mutex* extra_object_base_data_mutex;
public: // is_derived_() must be public, so that overridden vfuncs and signal handlers can call it via ObjectBase.
@@ -224,7 +230,7 @@ public: // is_derived_() must be public, so that overridden vfuncs and signal h
/// This is for use by gtkmm wrappers only, and not by applications.
//inline bool is_derived_inline_() const
//{
- // return (custom_type_name_ != 0);
+ // return (custom_type_name_ != nullptr);
//}
protected:
@@ -235,9 +241,6 @@ protected:
#endif //DOXYGEN_SHOULD_SKIP_THIS
private:
- // noncopyable
- ObjectBase(const ObjectBase&);
- ObjectBase& operator=(const ObjectBase&);
#ifndef DOXYGEN_SHOULD_SKIP_THIS
virtual void set_manage(); // calls g_error()
diff --git a/glib/glibmm/pattern.h b/glib/glibmm/pattern.h
index 6f527ccc..dff0a97c 100644
--- a/glib/glibmm/pattern.h
+++ b/glib/glibmm/pattern.h
@@ -43,6 +43,10 @@ public:
explicit PatternSpec(GPatternSpec* gobject);
~PatternSpec();
+ // noncopyable
+ PatternSpec(const PatternSpec&) = delete;
+ PatternSpec& operator=(const PatternSpec&) = delete;
+
bool match(const Glib::ustring& str) const;
bool match(const Glib::ustring& str, const Glib::ustring& str_reversed) const;
@@ -54,10 +58,6 @@ public:
private:
GPatternSpec* gobject_;
-
- // noncopyable
- PatternSpec(const PatternSpec&);
- PatternSpec& operator=(const PatternSpec&);
};
/** @} group PatternMatching */
diff --git a/glib/glibmm/property.cc b/glib/glibmm/property.cc
index 4cf054f9..346c3e1f 100644
--- a/glib/glibmm/property.cc
+++ b/glib/glibmm/property.cc
@@ -239,7 +239,7 @@ PropertyBase::~PropertyBase()
bool PropertyBase::lookup_property(const Glib::ustring& name)
{
- g_assert(param_spec_ == 0);
+ g_assert(param_spec_ == nullptr);
param_spec_ = g_object_class_find_property(G_OBJECT_GET_CLASS(object_->gobj()), name.c_str());
@@ -249,12 +249,12 @@ bool PropertyBase::lookup_property(const Glib::ustring& name)
g_param_spec_ref(param_spec_);
}
- return (param_spec_ != 0);
+ return (param_spec_ != nullptr);
}
void PropertyBase::install_property(GParamSpec* param_spec)
{
- g_return_if_fail(param_spec != 0);
+ g_return_if_fail(param_spec != nullptr);
// Ensure that there would not be id clashes with possible existing
// properties overridden from implemented interfaces if dealing with a custom
@@ -280,7 +280,7 @@ void PropertyBase::install_property(GParamSpec* param_spec)
const char* PropertyBase::get_name_internal() const
{
const char *const name = g_param_spec_get_name(param_spec_);
- g_return_val_if_fail(name != 0, "");
+ g_return_val_if_fail(name != nullptr, "");
return name;
}
diff --git a/glib/glibmm/property.h b/glib/glibmm/property.h
index 716d8599..dadc0f29 100644
--- a/glib/glibmm/property.h
+++ b/glib/glibmm/property.h
@@ -57,6 +57,10 @@ class PropertyBase
{
public:
+ // noncopyable
+ PropertyBase(const PropertyBase&) = delete;
+ PropertyBase& operator=(const PropertyBase&) = delete;
+
/** Returns the name of the property.
*/
Glib::ustring get_name() const;
@@ -98,9 +102,6 @@ protected:
const char* get_name_internal() const;
private:
- // noncopyable
- PropertyBase(const PropertyBase&);
- PropertyBase& operator=(const PropertyBase&);
#ifndef DOXYGEN_SHOULD_SKIP_THIS
diff --git a/glib/glibmm/propertyproxy_base.cc b/glib/glibmm/propertyproxy_base.cc
index 0f1fac8e..4d449390 100644
--- a/glib/glibmm/propertyproxy_base.cc
+++ b/glib/glibmm/propertyproxy_base.cc
@@ -112,7 +112,7 @@ void PropertyProxy_Base::reset_property_()
const GParamSpec *const pParamSpec =
g_object_class_find_property(G_OBJECT_GET_CLASS(obj_->gobj()), property_name_);
- g_return_if_fail(pParamSpec != 0);
+ g_return_if_fail(pParamSpec != nullptr);
Glib::ValueBase value;
value.init(G_PARAM_SPEC_VALUE_TYPE(pParamSpec));
diff --git a/glib/glibmm/random.h b/glib/glibmm/random.h
index 864a4a32..aeda3a6a 100644
--- a/glib/glibmm/random.h
+++ b/glib/glibmm/random.h
@@ -43,6 +43,10 @@ public:
explicit Rand(guint32 seed);
~Rand();
+ // noncopyable
+ Rand(const Rand&) = delete;
+ Rand& operator=(const Rand&) = delete;
+
void set_seed(guint32 seed);
bool get_bool();
@@ -58,10 +62,6 @@ public:
private:
GRand* gobject_;
-
- // noncopyable
- Rand(const Rand&);
- Rand& operator=(const Rand&);
};
/** @} group Random */
diff --git a/glib/glibmm/refptr.h b/glib/glibmm/refptr.h
index 7b11a756..30dbf185 100644
--- a/glib/glibmm/refptr.h
+++ b/glib/glibmm/refptr.h
@@ -20,6 +20,8 @@
*/
#include <glibmmconfig.h>
+#include <glib.h>
+#include <utility>
namespace Glib
{
@@ -66,7 +68,16 @@ public:
*
* This increments the shared reference count.
*/
- inline RefPtr(const RefPtr<T_CppObject>& src);
+ inline RefPtr(const RefPtr& src);
+
+ /** Move constructor
+ */
+ inline RefPtr(RefPtr&& src);
+
+ /** Move constructor (from different, but castable type).
+ */
+ template <class T_CastFrom>
+ inline RefPtr(RefPtr<T_CastFrom>&& src);
/** Copy constructor (from different, but castable type).
*
@@ -80,23 +91,30 @@ public:
* done safely without involving a reference/unreference cycle and is
* therefore highly efficient.
*/
- inline void swap(RefPtr<T_CppObject>& other);
+ inline void swap(RefPtr& other);
/// Copy from another RefPtr:
- inline RefPtr<T_CppObject>& operator=(const RefPtr<T_CppObject>& src);
+ inline RefPtr& operator=(const RefPtr& src);
+
+ /// Move assignment operator:
+ inline RefPtr& operator=(RefPtr&& src);
+
+ /// Move assignment operator (from different, but castable type):
+ template <class T_CastFrom>
+ inline RefPtr& operator=(RefPtr<T_CastFrom>&& src);
/** Copy from different, but castable type).
*
* Increments the reference count.
*/
template <class T_CastFrom>
- inline RefPtr<T_CppObject>& operator=(const RefPtr<T_CastFrom>& src);
+ inline RefPtr& operator=(const RefPtr<T_CastFrom>& src);
/// Tests whether the RefPtr<> point to the same underlying instance.
- inline bool operator==(const RefPtr<T_CppObject>& src) const;
+ inline bool operator==(const RefPtr& src) const;
/// See operator==().
- inline bool operator!=(const RefPtr<T_CppObject>& src) const;
+ inline bool operator!=(const RefPtr& src) const;
/** Dereferencing.
*
@@ -125,6 +143,17 @@ public:
*/
inline void reset();
+ /** Release the ownership of underlying instance.
+ *
+ * RefPtr's underlying instance is set to nullptr, therefore underlying object can't be accessed through this RefPtr anymore.
+ * @return an underlying instance.
+ *
+ * Most users should not use release(). It can spoil the automatic destruction
+ * of the managed object. A legitimate use is if you immediately give RefPtr's
+ * reference to another object.
+ */
+ inline T_CppObject* release() G_GNUC_WARN_UNUSED_RESULT;
+
/** Dynamic cast to derived class.
*
* The RefPtr can't be cast with the usual notation so instead you can use
@@ -133,7 +162,7 @@ public:
* @endcode
*/
template <class T_CastFrom>
- static inline RefPtr<T_CppObject> cast_dynamic(const RefPtr<T_CastFrom>& src);
+ static inline RefPtr cast_dynamic(const RefPtr<T_CastFrom>& src);
/** Static cast to derived class.
*
@@ -143,7 +172,7 @@ public:
* @endcode
*/
template <class T_CastFrom>
- static inline RefPtr<T_CppObject> cast_static(const RefPtr<T_CastFrom>& src);
+ static inline RefPtr cast_static(const RefPtr<T_CastFrom>& src);
/** Cast to non-const.
*
@@ -153,7 +182,7 @@ public:
* @endcode
*/
template <class T_CastFrom>
- static inline RefPtr<T_CppObject> cast_const(const RefPtr<T_CastFrom>& src);
+ static inline RefPtr cast_const(const RefPtr<T_CastFrom>& src);
//TODO: Maybe remove these if we replace operator bool() with operator const void* after
//an API/ABI break, as suggested by Daniel Elstner? murrayc.
@@ -168,16 +197,16 @@ public:
* is still syntactically possible, but the result is semantically
* wrong, as p1 REL_OP p2 is interpreted as (bool)p1 REL_OP (bool)p2.
*/
- inline bool operator<(const RefPtr<T_CppObject>& src) const;
+ inline bool operator<(const RefPtr& src) const;
/// See operator<().
- inline bool operator<=(const RefPtr<T_CppObject>& src) const;
+ inline bool operator<=(const RefPtr& src) const;
/// See operator<().
- inline bool operator>(const RefPtr<T_CppObject>& src) const;
+ inline bool operator>(const RefPtr& src) const;
/// See operator<().
- inline bool operator>=(const RefPtr<T_CppObject>& src) const;
+ inline bool operator>=(const RefPtr& src) const;
private:
T_CppObject* pCppObject_;
@@ -215,7 +244,7 @@ RefPtr<T_CppObject>::RefPtr(T_CppObject* pCppObject)
{}
template <class T_CppObject> inline
-RefPtr<T_CppObject>::RefPtr(const RefPtr<T_CppObject>& src)
+RefPtr<T_CppObject>::RefPtr(const RefPtr& src)
:
pCppObject_ (src.pCppObject_)
{
@@ -223,6 +252,23 @@ RefPtr<T_CppObject>::RefPtr(const RefPtr<T_CppObject>& src)
pCppObject_->reference();
}
+template <class T_CppObject> inline
+RefPtr<T_CppObject>::RefPtr(RefPtr&& src)
+:
+ pCppObject_ (src.pCppObject_)
+{
+ src.pCppObject_ = nullptr;
+}
+
+template <class T_CppObject>
+ template <class T_CastFrom>
+inline
+RefPtr<T_CppObject>::RefPtr(RefPtr<T_CastFrom>&& src)
+:
+ pCppObject_ (src.release())
+{
+}
+
// The templated ctor allows copy construction from any object that's
// castable. Thus, it does downcasts:
// base_ref = derived_ref
@@ -241,7 +287,7 @@ RefPtr<T_CppObject>::RefPtr(const RefPtr<T_CastFrom>& src)
}
template <class T_CppObject> inline
-void RefPtr<T_CppObject>::swap(RefPtr<T_CppObject>& other)
+void RefPtr<T_CppObject>::swap(RefPtr& other)
{
T_CppObject *const temp = pCppObject_;
pCppObject_ = other.pCppObject_;
@@ -249,7 +295,7 @@ void RefPtr<T_CppObject>::swap(RefPtr<T_CppObject>& other)
}
template <class T_CppObject> inline
-RefPtr<T_CppObject>& RefPtr<T_CppObject>::operator=(const RefPtr<T_CppObject>& src)
+RefPtr<T_CppObject>& RefPtr<T_CppObject>::operator=(const RefPtr& src)
{
// In case you haven't seen the swap() technique to implement copy
// assignment before, here's what it does:
@@ -280,6 +326,28 @@ RefPtr<T_CppObject>& RefPtr<T_CppObject>::operator=(const RefPtr<T_CppObject>& s
return *this;
}
+template <class T_CppObject> inline
+RefPtr<T_CppObject>& RefPtr<T_CppObject>::operator=(RefPtr&& src)
+{
+ RefPtr<T_CppObject> temp (std::move(src));
+ this->swap(temp);
+ src.pCppObject_ = nullptr;
+
+ return *this;
+}
+
+template <class T_CppObject>
+ template <class T_CastFrom>
+inline
+RefPtr<T_CppObject>& RefPtr<T_CppObject>::operator=(RefPtr<T_CastFrom>&& src)
+{
+ if (pCppObject_)
+ pCppObject_->unreference();
+ pCppObject_ = src.release();
+
+ return *this;
+}
+
template <class T_CppObject>
template <class T_CastFrom>
inline
@@ -291,13 +359,13 @@ RefPtr<T_CppObject>& RefPtr<T_CppObject>::operator=(const RefPtr<T_CastFrom>& sr
}
template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator==(const RefPtr<T_CppObject>& src) const
+bool RefPtr<T_CppObject>::operator==(const RefPtr& src) const
{
return (pCppObject_ == src.pCppObject_);
}
template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator!=(const RefPtr<T_CppObject>& src) const
+bool RefPtr<T_CppObject>::operator!=(const RefPtr& src) const
{
return (pCppObject_ != src.pCppObject_);
}
@@ -305,7 +373,7 @@ bool RefPtr<T_CppObject>::operator!=(const RefPtr<T_CppObject>& src) const
template <class T_CppObject> inline
RefPtr<T_CppObject>::operator bool() const
{
- return (pCppObject_ != 0);
+ return (pCppObject_ != nullptr);
}
#ifndef GLIBMM_DISABLE_DEPRECATED
@@ -323,6 +391,14 @@ void RefPtr<T_CppObject>::reset()
this->swap(temp);
}
+template <class T_CppObject> inline
+T_CppObject* RefPtr<T_CppObject>::release()
+{
+ T_CppObject *tmp = pCppObject_;
+ pCppObject_ = nullptr;
+ return tmp;
+}
+
template <class T_CppObject>
template <class T_CastFrom>
inline
@@ -363,25 +439,25 @@ RefPtr<T_CppObject> RefPtr<T_CppObject>::cast_const(const RefPtr<T_CastFrom>& sr
}
template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator<(const RefPtr<T_CppObject>& src) const
+bool RefPtr<T_CppObject>::operator<(const RefPtr& src) const
{
return (pCppObject_ < src.pCppObject_);
}
template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator<=(const RefPtr<T_CppObject>& src) const
+bool RefPtr<T_CppObject>::operator<=(const RefPtr& src) const
{
return (pCppObject_ <= src.pCppObject_);
}
template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator>(const RefPtr<T_CppObject>& src) const
+bool RefPtr<T_CppObject>::operator>(const RefPtr& src) const
{
return (pCppObject_ > src.pCppObject_);
}
template <class T_CppObject> inline
-bool RefPtr<T_CppObject>::operator>=(const RefPtr<T_CppObject>& src) const
+bool RefPtr<T_CppObject>::operator>=(const RefPtr& src) const
{
return (pCppObject_ >= src.pCppObject_);
}
diff --git a/glib/glibmm/sarray.cc b/glib/glibmm/sarray.cc
index 2d7c6828..a7d6e315 100644
--- a/glib/glibmm/sarray.cc
+++ b/glib/glibmm/sarray.cc
@@ -21,65 +21,4 @@
*/
#include <glibmm/sarray.h>
-/*
-namespace Glib
-{
-SArray::SArray(const SArray& src)
-: type_base(src)
-{
-}
-
-SArray::SArray(const T_c* pValues, size_type size)
-: type_base(pValues, size)
-{
-}
-
-SArray::operator std::vector<nstring>() const
-{
- return std::vector<nstring>(begin(), end());
-}
-
-SArray::operator std::vector<ustring>() const
-{
- return std::vector<ustring>(begin(), end());
-}
-
-SArray::operator std::vector<std::string>() const
-{
- return std::vector<std::string>(begin(), end());
-}
-
-
-SArray::operator std::deque<nstring>() const
-{
- return std::deque<nstring>(begin(), end());
-}
-
-SArray::operator std::deque<ustring>() const
-{
- return std::deque<ustring>(begin(), end());
-}
-
-SArray::operator std::deque<std::string>() const
-{
- return std::deque<std::string>(begin(), end());
-}
-
-SArray::operator std::list<nstring>() const
-{
- return std::list<nstring>(begin(), end());
-}
-
-SArray::operator std::list<ustring>() const
-{
- return std::list<ustring>(begin(), end());
-}
-
-SArray::operator std::list<std::string>() const
-{
- return std::list<std::string>(begin(), end());
-}
-
-}; // namespace Glib
-*/
diff --git a/glib/glibmm/sarray.h b/glib/glibmm/sarray.h
index 4f7e4740..6226f50e 100644
--- a/glib/glibmm/sarray.h
+++ b/glib/glibmm/sarray.h
@@ -23,86 +23,20 @@
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-
+#ifndef GLIBMM_DISABLE_DEPRECATED
#include <glibmm/arrayhandle.h>
#include <glibmm/ustring.h>
-namespace Glib { typedef Glib::ArrayHandle<Glib::ustring> SArray; }
-
-#if 0
-
-namespace Glib
-{
-
-template <>
-inline void cpp_type_to_c_type(const ustring& cpp_value, type_constpch& ref_c_value)
-{
- ref_c_value = cpp_value.c_str();
-}
-
-template <>
-inline void cpp_type_to_c_type(const std::string& cpp_value, type_constpch& ref_c_value)
-{
- ref_c_value = cpp_value.c_str();
-}
-
-typedef Array<Glib::ustring, const char*> SArray;
-
-/*
-class SArray: public Array<nstring, const char*>
-{
-public:
- typedef const char* T_c;
- typedef Array<nstring, const char*> type_base;
-
- SArray(const SArray& src);
-
- // copy other containers
- template <typename T_container>
- SArray(const T_container& t)
- {
- owned_ = Array_Helpers::Traits<T_container, pointer>::get_owned();
- size_ = Array_Helpers::Traits<T_container, pointer>::get_size(t);
- pData_ = Array_Helpers::Traits<T_container, pointer>::get_data(t);
- }
-
- SArray(const T_c* pValues, size_type size);
-
- // copy a sequence
- template <typename Iterator>
- SArray(Iterator b, Iterator e);
-
- operator std::vector<nstring>() const;
- operator std::vector<ustring>() const;
- operator std::vector<std::string>() const;
-
- operator std::deque<nstring>() const;
- operator std::deque<ustring>() const;
- operator std::deque<std::string>() const;
-
- operator std::list<nstring>() const;
- operator std::list<ustring>() const;
- operator std::list<std::string>() const;
-};
-
-
-//template <typename T_container>
-//SArray::SArray(const T_container& t)
-//: type_base(t)
-//{
-//}
+namespace Glib {
+/**
+ * @deprecated Use a std::vector instead.
+ */
+typedef Glib::ArrayHandle<Glib::ustring> SArray;
-template <typename Iterator>
-SArray::SArray(Iterator b, Iterator e)
-: type_base(b, e)
-{
}
-*/
-
-} // namespace Glib
-#endif /* #if 0 */
+#endif //GLIBMM_DISABLE_DEPRECATED
#endif // _GLIBMM_SARRAY_H
diff --git a/glib/glibmm/signalproxy.cc b/glib/glibmm/signalproxy.cc
index e218ba9a..41ee5f70 100644
--- a/glib/glibmm/signalproxy.cc
+++ b/glib/glibmm/signalproxy.cc
@@ -1,7 +1,3 @@
-// -*- c++ -*-
-
-/* $Id$ */
-
/* signalproxy.cc
*
* Copyright (C) 2002 The gtkmm Development Team
@@ -101,5 +97,42 @@ void SignalProxyNormal::slot0_void_callback(GObject* self, void* data)
}
}
-} // namespace Glib
+// SignalProxyDetailed implementation:
+
+SignalProxyDetailed::SignalProxyDetailed(Glib::ObjectBase* obj,
+ const SignalProxyInfo* info, const Glib::ustring& detail_name)
+:
+ SignalProxyBase (obj),
+ info_ (info),
+ detailed_name_ (Glib::ustring(info->signal_name) +
+ (detail_name.empty() ? Glib::ustring() : ("::" + detail_name)))
+{}
+
+SignalProxyDetailed::~SignalProxyDetailed()
+{}
+
+sigc::slot_base&
+SignalProxyDetailed::connect_impl_(bool notify, const sigc::slot_base& slot, bool after)
+{
+ // create a proxy to hold our connection info
+ SignalProxyConnectionNode *const pConnectionNode =
+ new SignalProxyConnectionNode(slot, obj_->gobj());
+
+ // connect it to glib
+ // pConnectionNode will be passed in the data argument to the callback.
+ pConnectionNode->connection_id_ = g_signal_connect_data(
+ obj_->gobj(), detailed_name_.c_str(),
+ notify ? info_->notify_callback : info_->callback,
+ pConnectionNode, &SignalProxyConnectionNode::destroy_notify_handler,
+ static_cast<GConnectFlags>(after ? G_CONNECT_AFTER : 0));
+
+ return pConnectionNode->slot_;
+}
+
+void SignalProxyDetailed::emission_stop()
+{
+ g_signal_stop_emission_by_name(obj_->gobj(), detailed_name_.c_str());
+}
+
+} // namespace Glib
diff --git a/glib/glibmm/signalproxy_connectionnode.cc b/glib/glibmm/signalproxy_connectionnode.cc
index cc6f7079..6784d6eb 100644
--- a/glib/glibmm/signalproxy_connectionnode.cc
+++ b/glib/glibmm/signalproxy_connectionnode.cc
@@ -51,7 +51,7 @@ void* SignalProxyConnectionNode::notify(void* data)
if(conn && conn->object_)
{
GObject* o = conn->object_;
- conn->object_ = 0;
+ conn->object_ = nullptr;
if(g_signal_handler_is_connected(o, conn->connection_id_)) //We check first, because during destruction, GTK+ sometimes seems to disconnect them for us, before we expect it to. See bug #87912
{
@@ -84,7 +84,7 @@ void SignalProxyConnectionNode::destroy_notify_handler(gpointer data, GClosure*)
if(conn)
{
// the object has already lost track of this object.
- conn->object_ = 0;
+ conn->object_ = nullptr;
delete conn; // if there are connection objects referring to slot_ they are notified during destruction of slot_
}
diff --git a/glib/glibmm/slisthandle.h b/glib/glibmm/slisthandle.h
index a83cc85e..231d675c 100644
--- a/glib/glibmm/slisthandle.h
+++ b/glib/glibmm/slisthandle.h
@@ -37,7 +37,7 @@ namespace Container_Helpers
template <class Bi, class Tr>
GSList* create_slist(Bi pbegin, Bi pend, Tr)
{
- GSList* head = 0;
+ GSList* head = nullptr;
while(pend != pbegin)
{
@@ -56,7 +56,7 @@ GSList* create_slist(Bi pbegin, Bi pend, Tr)
template <class For, class Tr>
GSList* create_slist(For pbegin, Tr)
{
- GSList* head = 0;
+ GSList* head = nullptr;
while(*pbegin)
{
@@ -296,7 +296,7 @@ SListHandle<T,Tr>::~SListHandle()
if(ownership_ != Glib::OWNERSHIP_SHALLOW)
{
// Deep ownership: release each container element.
- for(GSList* node = pslist_; node != 0; node = node->next)
+ for(GSList* node = pslist_; node != nullptr; node = node->next)
Tr::release_c_type(static_cast<typename Tr::CTypeNonConst>(node->data));
}
g_slist_free(pslist_);
@@ -395,7 +395,7 @@ std::size_t SListHandle<T,Tr>::size() const
template <class T, class Tr> inline
bool SListHandle<T,Tr>::empty() const
{
- return (pslist_ == 0);
+ return (pslist_ == nullptr);
}
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
diff --git a/glib/glibmm/streamiochannel.cc b/glib/glibmm/streamiochannel.cc
index e5201db7..674960dc 100644
--- a/glib/glibmm/streamiochannel.cc
+++ b/glib/glibmm/streamiochannel.cc
@@ -59,7 +59,7 @@ StreamIOChannel::~StreamIOChannel()
IOStatus StreamIOChannel::read_vfunc(char* buf, gsize count, gsize& bytes_read)
{
- g_return_val_if_fail(stream_in_ != 0, IO_STATUS_ERROR);
+ g_return_val_if_fail(stream_in_ != nullptr, IO_STATUS_ERROR);
stream_in_->clear();
stream_in_->read(buf, count);
@@ -78,7 +78,7 @@ IOStatus StreamIOChannel::read_vfunc(char* buf, gsize count, gsize& bytes_read)
IOStatus StreamIOChannel::write_vfunc(const char* buf, gsize count, gsize& bytes_written)
{
- g_return_val_if_fail(stream_out_ != 0, IO_STATUS_ERROR);
+ g_return_val_if_fail(stream_out_ != nullptr, IO_STATUS_ERROR);
bytes_written = 0;
@@ -133,23 +133,23 @@ IOStatus StreamIOChannel::close_vfunc()
{
bool failed = false;
- if(std::fstream *const stream = dynamic_cast<std::fstream*>(stream_in_))
+ if(std::fstream *const fstream = dynamic_cast<std::fstream*>(stream_in_))
{
- stream->clear();
- stream->close();
- failed = stream->fail();
+ fstream->clear();
+ fstream->close();
+ failed = fstream->fail();
}
- else if(std::ifstream *const stream = dynamic_cast<std::ifstream*>(stream_in_))
+ else if(std::ifstream *const ifstream = dynamic_cast<std::ifstream*>(stream_in_))
{
- stream->clear();
- stream->close();
- failed = stream->fail();
+ ifstream->clear();
+ ifstream->close();
+ failed = ifstream->fail();
}
- else if(std::ofstream *const stream = dynamic_cast<std::ofstream*>(stream_out_))
+ else if(std::ofstream *const ofstream = dynamic_cast<std::ofstream*>(stream_out_))
{
- stream->clear();
- stream->close();
- failed = stream->fail();
+ ofstream->clear();
+ ofstream->close();
+ failed = ofstream->fail();
}
else
{
@@ -173,8 +173,8 @@ IOStatus StreamIOChannel::set_flags_vfunc(IOFlags)
IOFlags StreamIOChannel::get_flags_vfunc()
{
gobj()->is_seekable = 1;
- gobj()->is_readable = (stream_in_ != 0);
- gobj()->is_writeable = (stream_out_ != 0);
+ gobj()->is_readable = (stream_in_ != nullptr);
+ gobj()->is_writeable = (stream_out_ != nullptr);
IOFlags flags = IO_FLAG_IS_SEEKABLE;
diff --git a/glib/glibmm/stringutils.cc b/glib/glibmm/stringutils.cc
index 5b61dd1c..e72f029d 100644
--- a/glib/glibmm/stringutils.cc
+++ b/glib/glibmm/stringutils.cc
@@ -51,7 +51,7 @@ double Glib::Ascii::strtod(const std::string& str,
}
const char *const bufptr = str.c_str();
- char* endptr = 0;
+ char* endptr = nullptr;
const double result = g_ascii_strtod(bufptr + start_index, &endptr);
const int err_no = errno;
diff --git a/glib/glibmm/threadpool.cc b/glib/glibmm/threadpool.cc
index 9a9af184..a007a435 100644
--- a/glib/glibmm/threadpool.cc
+++ b/glib/glibmm/threadpool.cc
@@ -34,6 +34,10 @@ public:
SlotList();
~SlotList();
+ // noncopyable
+ SlotList(const ThreadPool::SlotList&) = delete;
+ ThreadPool::SlotList& operator=(const ThreadPool::SlotList&) = delete;
+
sigc::slot<void>* push(const sigc::slot<void>& slot);
sigc::slot<void> pop(sigc::slot<void>* slot_ptr);
@@ -42,10 +46,6 @@ public:
private:
Glib::Threads::Mutex mutex_;
std::list< sigc::slot<void> > list_;
-
- // noncopyable
- SlotList(const ThreadPool::SlotList&);
- ThreadPool::SlotList& operator=(const ThreadPool::SlotList&);
};
ThreadPool::SlotList::SlotList()
@@ -128,7 +128,7 @@ ThreadPool::ThreadPool(int max_threads, bool exclusive)
gobject_ (0),
slot_list_ (new SlotList())
{
- GError* error = 0;
+ GError* error = nullptr;
gobject_ = g_thread_pool_new(
&call_thread_entry_slot, slot_list_, max_threads, exclusive, &error);
@@ -136,7 +136,7 @@ ThreadPool::ThreadPool(int max_threads, bool exclusive)
if(error)
{
delete slot_list_;
- slot_list_ = 0;
+ slot_list_ = nullptr;
Glib::Error::throw_exception(error);
}
}
@@ -157,7 +157,7 @@ void ThreadPool::push(const sigc::slot<void>& slot)
{
sigc::slot<void> *const slot_ptr = slot_list_->push(slot);
- GError* error = 0;
+ GError* error = nullptr;
g_thread_pool_push(gobject_, slot_ptr, &error);
if(error)
@@ -169,7 +169,7 @@ void ThreadPool::push(const sigc::slot<void>& slot)
void ThreadPool::set_max_threads(int max_threads)
{
- GError* error = 0;
+ GError* error = nullptr;
g_thread_pool_set_max_threads(gobject_, max_threads, &error);
if(error)
@@ -193,7 +193,7 @@ unsigned int ThreadPool::unprocessed() const
bool ThreadPool::get_exclusive() const
{
- g_return_val_if_fail(gobject_ != 0, false);
+ g_return_val_if_fail(gobject_ != nullptr, false);
return gobject_->exclusive;
}
@@ -203,14 +203,14 @@ void ThreadPool::shutdown(bool immediately)
if(gobject_)
{
g_thread_pool_free(gobject_, immediately, 1);
- gobject_ = 0;
+ gobject_ = nullptr;
}
if(slot_list_)
{
slot_list_->lock_and_unlock();
delete slot_list_;
- slot_list_ = 0;
+ slot_list_ = nullptr;
}
}
diff --git a/glib/glibmm/timer.h b/glib/glibmm/timer.h
index 4864e68b..2c68d3a7 100644
--- a/glib/glibmm/timer.h
+++ b/glib/glibmm/timer.h
@@ -41,6 +41,10 @@ public:
Timer();
~Timer();
+ // not copyable
+ Timer(const Timer&) = delete;
+ Timer& operator=(const Timer&) = delete;
+
void start();
void stop();
void reset();
@@ -63,10 +67,6 @@ public:
private:
GTimer* gobject_;
-
- // not copyable
- Timer(const Timer&);
- Timer& operator=(const Timer&);
};
diff --git a/glib/glibmm/ustring.cc b/glib/glibmm/ustring.cc
index 6cb4b1f3..1d5e841d 100644
--- a/glib/glibmm/ustring.cc
+++ b/glib/glibmm/ustring.cc
@@ -1260,7 +1260,7 @@ ustring::FormatStream::~FormatStream()
ustring ustring::FormatStream::to_string() const
{
- GError* error = 0;
+ GError* error = nullptr;
#ifdef GLIBMM_HAVE_WIDE_STREAM
const std::wstring str = stream_.str();
@@ -1304,7 +1304,7 @@ std::istream& operator>>(std::istream& is, Glib::ustring& utf8_string)
std::string str;
is >> str;
- GError* error = 0;
+ GError* error = nullptr;
gsize n_bytes = 0;
const ScopedPtr<char> buf (g_locale_to_utf8(str.data(), str.size(), 0, &n_bytes, &error));
@@ -1320,7 +1320,7 @@ std::istream& operator>>(std::istream& is, Glib::ustring& utf8_string)
std::ostream& operator<<(std::ostream& os, const Glib::ustring& utf8_string)
{
- GError* error = 0;
+ GError* error = nullptr;
const ScopedPtr<char> buf (g_locale_from_utf8(utf8_string.raw().data(),
utf8_string.raw().size(), 0, 0, &error));
if (error)
@@ -1344,7 +1344,7 @@ std::ostream& operator<<(std::ostream& os, const Glib::ustring& utf8_string)
std::wistream& operator>>(std::wistream& is, ustring& utf8_string)
{
- GError* error = 0;
+ GError* error = nullptr;
std::wstring wstr;
is >> wstr;
@@ -1378,7 +1378,7 @@ std::wistream& operator>>(std::wistream& is, ustring& utf8_string)
std::wostream& operator<<(std::wostream& os, const ustring& utf8_string)
{
- GError* error = 0;
+ GError* error = nullptr;
#if defined(__STDC_ISO_10646__) && SIZEOF_WCHAR_T == 4
// Avoid going through iconv if wchar_t always contains UCS-4.
diff --git a/glib/glibmm/ustring.h b/glib/glibmm/ustring.h
index c93a7d7e..3f74be7d 100644
--- a/glib/glibmm/ustring.h
+++ b/glib/glibmm/ustring.h
@@ -875,6 +875,12 @@ struct ustring::SequenceToString<Glib::ustring::const_iterator, gunichar> : publ
class ustring::FormatStream
{
+public:
+
+ // noncopyable
+ FormatStream(const ustring::FormatStream&) = delete;
+ FormatStream& operator=(const ustring::FormatStream&) = delete;
+
private:
#ifdef GLIBMM_HAVE_WIDE_STREAM
typedef std::wostringstream StreamType;
@@ -883,10 +889,6 @@ private:
#endif
StreamType stream_;
- // noncopyable
- FormatStream(const ustring::FormatStream&);
- FormatStream& operator=(const ustring::FormatStream&);
-
public:
FormatStream();
~FormatStream();
@@ -1261,16 +1263,16 @@ class ustring::Stringify
private:
ustring string_;
- // noncopyable
- Stringify(const ustring::Stringify<T>&);
- Stringify<T>& operator=(const ustring::Stringify<T>&);
-
public:
explicit inline Stringify(const T& arg) : string_ (ustring::format(arg)) {}
//TODO: Why is this here? See the template specialization:
explicit inline Stringify(const char* arg) : string_(arg) {}
+ // noncopyable
+ Stringify(const ustring::Stringify<T>&) = delete;
+ Stringify<T>& operator=(const ustring::Stringify<T>&) = delete;
+
inline const ustring* ptr() const { return &string_; }
};
@@ -1281,12 +1283,13 @@ class ustring::Stringify<ustring>
private:
const ustring& string_;
- // noncopyable
- Stringify(const ustring::Stringify<ustring>&);
- Stringify<ustring>& operator=(const ustring::Stringify<ustring>&);
-
public:
explicit inline Stringify(const ustring& arg) : string_(arg) {}
+
+ // noncopyable
+ Stringify(const ustring::Stringify<ustring>&) = delete;
+ Stringify<ustring>& operator=(const ustring::Stringify<ustring>&) = delete;
+
inline const ustring* ptr() const { return &string_; }
};
@@ -1299,12 +1302,13 @@ class ustring::Stringify<const char*>
private:
const ustring string_;
- // noncopyable
- Stringify(const ustring::Stringify<const char*>&);
- Stringify<ustring>& operator=(const ustring::Stringify<const char*>&);
-
public:
explicit inline Stringify(const char* arg) : string_(arg) {}
+
+ // noncopyable
+ Stringify(const ustring::Stringify<const char*>&) = delete;
+ Stringify<ustring>& operator=(const ustring::Stringify<const char*>&) = delete;
+
inline const ustring* ptr() const { return &string_; }
};
@@ -1317,12 +1321,13 @@ class ustring::Stringify<char[N]>
private:
const ustring string_;
- // noncopyable
- Stringify(const ustring::Stringify<char[N]>&);
- Stringify<ustring>& operator=(const ustring::Stringify<char[N]>&);
-
public:
explicit inline Stringify(const char arg[N]) : string_(arg) {}
+
+ // noncopyable
+ Stringify(const ustring::Stringify<char[N]>&) = delete;
+ Stringify<ustring>& operator=(const ustring::Stringify<char[N]>&) = delete;
+
inline const ustring* ptr() const { return &string_; }
};
@@ -1336,12 +1341,13 @@ class ustring::Stringify<const char[N]>
private:
const ustring string_;
- // noncopyable
- Stringify(const ustring::Stringify<const char[N]>&);
- Stringify<ustring>& operator=(const ustring::Stringify<const char[N]>&);
-
public:
explicit inline Stringify(const char arg[N]) : string_(arg) {}
+
+ // noncopyable
+ Stringify(const ustring::Stringify<const char[N]>&) = delete;
+ Stringify<ustring>& operator=(const ustring::Stringify<const char[N]>&) = delete;
+
inline const ustring* ptr() const { return &string_; }
};
diff --git a/glib/glibmm/utility.h b/glib/glibmm/utility.h
index 6e5319b8..79fecb6b 100644
--- a/glib/glibmm/utility.h
+++ b/glib/glibmm/utility.h
@@ -1,4 +1,3 @@
-// -*- c++ -*-
#ifndef _GLIBMM_UTILITY_H
#define _GLIBMM_UTILITY_H
@@ -113,6 +112,16 @@ std::string convert_return_gchar_ptr_to_stdstring(char* str)
// Append type_name to dest, while replacing special characters with '+'.
void append_canonical_typename(std::string& dest, const char* type_name);
+// Delete data referred to by a void*.
+// Instantiations can be used as destroy callbacks in glib functions
+// that take a GDestroyNotify parameter, such as g_object_set_qdata_full()
+// and g_option_group_set_translate_func().
+template <typename T>
+void destroy_notify_delete(void* data)
+{
+ delete static_cast<T*>(data);
+}
+
} // namespace Glib
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
diff --git a/glib/glibmm/wrap.cc b/glib/glibmm/wrap.cc
index 4d9c71cf..4b801a46 100644
--- a/glib/glibmm/wrap.cc
+++ b/glib/glibmm/wrap.cc
@@ -38,7 +38,7 @@ namespace
typedef std::vector<Glib::WrapNewFunction> WrapFuncTable;
-static WrapFuncTable* wrap_func_table = 0;
+static WrapFuncTable* wrap_func_table = nullptr;
} // anonymous namespace
@@ -70,7 +70,7 @@ void wrap_register_cleanup()
if(wrap_func_table)
{
delete wrap_func_table;
- wrap_func_table = 0;
+ wrap_func_table = nullptr;
}
}
@@ -95,7 +95,7 @@ void wrap_register(GType type, WrapNewFunction func)
static Glib::ObjectBase* wrap_create_new_wrapper(GObject* object)
{
- g_return_val_if_fail(wrap_func_table != 0, 0);
+ g_return_val_if_fail(wrap_func_table != nullptr, 0);
const bool gtkmm_wrapper_already_deleted = (bool)g_object_get_qdata((GObject*)object, Glib::quark_cpp_wrapper_deleted_);
if(gtkmm_wrapper_already_deleted)
@@ -140,7 +140,7 @@ static gboolean gtype_wraps_interface(GType implementer_type, GType interface_ty
Glib::ObjectBase* wrap_create_new_wrapper_for_interface(GObject* object, GType interface_gtype)
{
- g_return_val_if_fail(wrap_func_table != 0, 0);
+ g_return_val_if_fail(wrap_func_table != nullptr, 0);
const bool gtkmm_wrapper_already_deleted = (bool)g_object_get_qdata((GObject*)object, Glib::quark_cpp_wrapper_deleted_);
if(gtkmm_wrapper_already_deleted)
diff --git a/glib/glibmm/wrap.h b/glib/glibmm/wrap.h
index 5b07395b..f898785a 100644
--- a/glib/glibmm/wrap.h
+++ b/glib/glibmm/wrap.h
@@ -1,9 +1,6 @@
-// -*- c++ -*-
#ifndef _GLIBMM_WRAP_H
#define _GLIBMM_WRAP_H
-/* $Id$ */
-
/* Copyright (C) 1998-2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -76,7 +73,7 @@ TInterface* wrap_auto_interface(GObject* object, bool take_copy = false)
//If no exact wrapper was created,
//create an instance of the interface,
//so we at least get the expected type:
- TInterface* result = 0;
+ TInterface* result = nullptr;
if(pCppObject)
{
result = dynamic_cast<TInterface*>(pCppObject);
@@ -143,6 +140,20 @@ const typename T::BaseObjectType* unwrap(const Glib::RefPtr<const T>& ptr)
return (ptr) ? ptr->gobj() : 0;
}
+// This unwrap_copy() overload is intended primarily for classes wrapped as
+// _CLASS_BOXEDTYPE, _CLASS_OPAQUE_COPYABLE or _CLASS_OPAQUE_REFCOUNTED,
+// where the C++ objects are not stored in Glib::RefPtr<>s. They have a const
+// gobj_copy() member that returns a non-const pointer to the underlying C instance.
+/** Get the underlying C instance from the C++ instance and acquire a
+ * reference or copy. This is just like calling gobj_copy(), but it does its own
+ * check for a NULL pointer to the underlying C instance.
+ */
+template <class T> inline
+typename T::BaseObjectType* unwrap_copy(const T& obj)
+{
+ return obj.gobj() ? obj.gobj_copy() : 0;
+}
+
/** Get the underlying C instance from the C++ instance and acquire a
* reference. This is just like calling gobj_copy(), but it does its own
* check for a NULL pointer.
diff --git a/glib/src/binding.ccg b/glib/src/binding.ccg
index c9e839b7..29d69ec7 100644
--- a/glib/src/binding.ccg
+++ b/glib/src/binding.ccg
@@ -22,25 +22,24 @@ namespace
struct BindingTransformSlots
{
BindingTransformSlots(
- const Glib::Binding::BindingTransformSlot& transform_to,
- const Glib::Binding::BindingTransformSlot& transform_from)
+ const Glib::Binding::SlotTransform& transform_to,
+ const Glib::Binding::SlotTransform& transform_from)
:
from_source_to_target(transform_to), from_target_to_source(transform_from)
{}
- Glib::Binding::BindingTransformSlot from_source_to_target;
- Glib::Binding::BindingTransformSlot from_target_to_source;
+ Glib::Binding::SlotTransform from_source_to_target;
+ Glib::Binding::SlotTransform from_target_to_source;
};
-gboolean Binding_transform_callback_common(GBinding* binding,
+gboolean Binding_transform_callback_common(
const GValue* from_value, GValue* to_value,
- Glib::Binding::BindingTransformSlot& the_slot)
+ Glib::Binding::SlotTransform& the_slot)
{
bool result = false;
try
{
- Glib::RefPtr<Glib::Binding> cpp_binding = Glib::wrap(binding, true);
- result = the_slot(cpp_binding, from_value, to_value);
+ result = the_slot(from_value, to_value);
}
catch (...)
{
@@ -49,22 +48,22 @@ gboolean Binding_transform_callback_common(GBinding* binding,
return result;
}
-gboolean Binding_transform_to_callback(GBinding* binding,
+gboolean Binding_transform_to_callback(GBinding*,
const GValue* from_value, GValue* to_value, gpointer user_data)
{
- Glib::Binding::BindingTransformSlot& the_slot =
+ Glib::Binding::SlotTransform& the_slot =
static_cast<BindingTransformSlots*>(user_data)->from_source_to_target;
- return Binding_transform_callback_common(binding, from_value, to_value, the_slot);
+ return Binding_transform_callback_common(from_value, to_value, the_slot);
}
-gboolean Binding_transform_from_callback(GBinding* binding,
+gboolean Binding_transform_from_callback(GBinding*,
const GValue* from_value, GValue* to_value, gpointer user_data)
{
- Glib::Binding::BindingTransformSlot& the_slot =
+ Glib::Binding::SlotTransform& the_slot =
static_cast<BindingTransformSlots*>(user_data)->from_target_to_source;
- return Binding_transform_callback_common(binding, from_value, to_value, the_slot);
+ return Binding_transform_callback_common(from_value, to_value, the_slot);
}
void Binding_transform_callback_destroy(gpointer user_data)
@@ -81,10 +80,10 @@ Glib::RefPtr<Binding> Binding::bind_property_value(
const PropertyProxy_Base& source_property,
const PropertyProxy_Base& target_property,
BindingFlags flags,
- const BindingTransformSlot& transform_to,
- const BindingTransformSlot& transform_from)
+ const SlotTransform& transform_to,
+ const SlotTransform& transform_from)
{
- GBinding* binding = 0;
+ GBinding* binding = nullptr;
if (transform_to.empty() && transform_from.empty())
{
// No user-supplied transformations.
diff --git a/glib/src/binding.hg b/glib/src/binding.hg
index f7760376..5b5dd4bc 100644
--- a/glib/src/binding.hg
+++ b/glib/src/binding.hg
@@ -24,7 +24,7 @@ _PINCLUDE(glibmm/private/object_p.h)
namespace Glib
{
-_WRAP_ENUM(BindingFlags, GBindingFlags)
+_WRAP_ENUM(BindingFlags, GBindingFlags, newin "2,44")
/** Bind two object properties.
*
@@ -57,10 +57,8 @@ _WRAP_ENUM(BindingFlags, GBindingFlags)
* applying it; for instance, the following binding:
*
* @code
- * bool celsius_to_fahrenheit(const Glib::RefPtr<Glib::Binding>& binding,
- * const double& celsius, double& fahrenheit);
- * bool fahrenheit_to_celsius(const Glib::RefPtr<Glib::Binding>& binding,
- * const double& fahrenheit, double& celsius);
+ * bool celsius_to_fahrenheit(const double& celsius, double& fahrenheit);
+ * bool fahrenheit_to_celsius(const double& fahrenheit, double& celsius);
* Glib::Binding::bind_property(adjustment1->property_value(),
* adjustment2->property_value(), Glib::BINDING_BIDIRECTIONAL,
* sigc::ptr_fun(celsius_to_fahrenheit), sigc::ptr_fun(fahrenheit_to_celsius));
@@ -104,11 +102,11 @@ class Binding : public Glib::Object
public:
/** For instance,<br>
- * bool on_transform_to(const Glib::RefPtr<Binding>& binding, const GValue* from_value, GValue* to_value);
+ * bool on_transform_to(const GValue* from_value, GValue* to_value);
*
* @return <tt>true</tt> if the transformation was successful, and <tt>false</tt> otherwise.
*/
- typedef sigc::slot<bool, const Glib::RefPtr<Binding>&, const GValue*, GValue*> BindingTransformSlot;
+ typedef sigc::slot<bool, const GValue*, GValue*> SlotTransform;
/** Creates a binding between @a source_property and @a target_property,
* allowing you to set the transformation functions to be used by the binding.
@@ -143,8 +141,8 @@ public:
const PropertyProxy_Base& source_property,
const PropertyProxy_Base& target_property,
BindingFlags flags = BINDING_DEFAULT,
- const BindingTransformSlot& transform_to = BindingTransformSlot(),
- const BindingTransformSlot& transform_from = BindingTransformSlot());
+ const SlotTransform& transform_to = SlotTransform(),
+ const SlotTransform& transform_from = SlotTransform());
_IGNORE(g_object_bind_property, g_object_bind_property_full, g_object_bind_property_with_closures)
@@ -185,7 +183,7 @@ public:
* stored in a Glib::Value<T_target> object.
* @tparam T_functor_to Type of functor that translates from the source to the target.
* Must be convertible to<br>
- * sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_source&, T_target&>.
+ * sigc::slot<bool, const T_source&, T_target&>.
*
* @see bind_property_value()
*
@@ -198,10 +196,10 @@ public:
BindingFlags flags,
const T_functor_to& transform_to)
{
- sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_source&, T_target&> slot_transform_to = transform_to;
+ sigc::slot<bool, const T_source&, T_target&> slot_transform_to = transform_to;
return bind_property_value(source_property, target_property, flags,
- slot_transform_to.empty() ? BindingTransformSlot() : TransformProp<T_source, T_target>(slot_transform_to));
+ slot_transform_to.empty() ? SlotTransform() : TransformProp<T_source, T_target>(slot_transform_to));
}
/** Creates a binding between @a source_property and @a target_property,
@@ -221,7 +219,7 @@ public:
* stored in a Glib::Value<T_target> object.
* @tparam T_functor_to Type of functor that translates from the source to the target.
* Must be convertible to<br>
- * sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_source&, T_target&>.
+ * sigc::slot<bool, const T_source&, T_target&>.
*
* @see bind_property_value()
*
@@ -234,10 +232,10 @@ public:
BindingFlags flags,
const T_functor_to& transform_to)
{
- sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_source&, T_target&> slot_transform_to = transform_to;
+ sigc::slot<bool, const T_source&, T_target&> slot_transform_to = transform_to;
return bind_property_value(source_property, target_property, flags,
- slot_transform_to.empty() ? BindingTransformSlot() : TransformProp<T_source, T_target>(slot_transform_to));
+ slot_transform_to.empty() ? SlotTransform() : TransformProp<T_source, T_target>(slot_transform_to));
}
/** Creates a binding between @a source_property and @a target_property,
@@ -257,7 +255,7 @@ public:
* stored in a Glib::Value<T_target> object.
* @tparam T_functor_to Type of functor that translates from the source to the target.
* Must be convertible to<br>
- * sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_source&, T_target&>.
+ * sigc::slot<bool, const T_source&, T_target&>.
*
* @see bind_property_value()
*
@@ -270,10 +268,10 @@ public:
BindingFlags flags,
const T_functor_to& transform_to)
{
- sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_source&, T_target&> slot_transform_to = transform_to;
+ sigc::slot<bool, const T_source&, T_target&> slot_transform_to = transform_to;
return bind_property_value(source_property, target_property, flags,
- slot_transform_to.empty() ? BindingTransformSlot() : TransformProp<T_source, T_target>(slot_transform_to));
+ slot_transform_to.empty() ? SlotTransform() : TransformProp<T_source, T_target>(slot_transform_to));
}
/** Creates a binding between @a source_property and @a target_property,
@@ -293,7 +291,7 @@ public:
* stored in a Glib::Value<T_target> object.
* @tparam T_functor_to Type of functor that translates from the source to the target.
* Must be convertible to<br>
- * sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_source&, T_target&>.
+ * sigc::slot<bool, const T_source&, T_target&>.
*
* @see bind_property_value()
*
@@ -306,10 +304,10 @@ public:
BindingFlags flags,
const T_functor_to& transform_to)
{
- sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_source&, T_target&> slot_transform_to = transform_to;
+ sigc::slot<bool, const T_source&, T_target&> slot_transform_to = transform_to;
return bind_property_value(source_property, target_property, flags,
- slot_transform_to.empty() ? BindingTransformSlot() : TransformProp<T_source, T_target>(slot_transform_to));
+ slot_transform_to.empty() ? SlotTransform() : TransformProp<T_source, T_target>(slot_transform_to));
}
/** Creates a binding between @a source_property and @a target_property,
@@ -331,10 +329,10 @@ public:
* stored in a Glib::Value<T_target> object.
* @tparam T_functor_to Type of functor that translates from the source to the target.
* Must be convertible to<br>
- * sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_source&, T_target&>.
+ * sigc::slot<bool, const T_source&, T_target&>.
* @tparam T_functor_from Type of functor that translates from the target to the source.
* Must be convertible to<br>
- * sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_target&, T_source&>.
+ * sigc::slot<bool, const T_target&, T_source&>.
*
* @see bind_property_value()
*
@@ -348,21 +346,21 @@ public:
const T_functor_to& transform_to,
const T_functor_from& transform_from)
{
- sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_source&, T_target&> slot_transform_to = transform_to;
- sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_target&, T_source&> slot_transform_from = transform_from;
+ sigc::slot<bool, const T_source&, T_target&> slot_transform_to = transform_to;
+ sigc::slot<bool, const T_target&, T_source&> slot_transform_from = transform_from;
return bind_property_value(source_property, target_property, flags,
- slot_transform_to.empty() ? BindingTransformSlot() : TransformProp<T_source, T_target>(slot_transform_to),
- slot_transform_from.empty() ? BindingTransformSlot() : TransformProp<T_target, T_source>(slot_transform_from));
+ slot_transform_to.empty() ? SlotTransform() : TransformProp<T_source, T_target>(slot_transform_to),
+ slot_transform_from.empty() ? SlotTransform() : TransformProp<T_target, T_source>(slot_transform_from));
}
- _WRAP_METHOD(Glib::RefPtr<Glib::ObjectBase> get_source(), g_binding_get_source, refreturn)
- _WRAP_METHOD(Glib::RefPtr<const Glib::ObjectBase> get_source() const, g_binding_get_source, refreturn, constversion)
- _WRAP_METHOD(Glib::ustring get_source_property() const, g_binding_get_source_property)
- _WRAP_METHOD(Glib::RefPtr<Glib::ObjectBase> get_target(), g_binding_get_target, refreturn)
- _WRAP_METHOD(Glib::RefPtr<const Glib::ObjectBase> get_target() const, g_binding_get_target, refreturn, constversion)
- _WRAP_METHOD(Glib::ustring get_target_property() const, g_binding_get_target_property)
- _WRAP_METHOD(BindingFlags get_flags() const, g_binding_get_flags)
+ _WRAP_METHOD(Glib::RefPtr<Glib::ObjectBase> get_source(), g_binding_get_source, refreturn, newin "2,44")
+ _WRAP_METHOD(Glib::RefPtr<const Glib::ObjectBase> get_source() const, g_binding_get_source, refreturn, constversion, newin "2,44")
+ _WRAP_METHOD(Glib::ustring get_source_property() const, g_binding_get_source_property, newin "2,44")
+ _WRAP_METHOD(Glib::RefPtr<Glib::ObjectBase> get_target(), g_binding_get_target, refreturn, newin "2,44")
+ _WRAP_METHOD(Glib::RefPtr<const Glib::ObjectBase> get_target() const, g_binding_get_target, refreturn, constversion, newin "2,44")
+ _WRAP_METHOD(Glib::ustring get_target_property() const, g_binding_get_target_property, newin "2,44")
+ _WRAP_METHOD(BindingFlags get_flags() const, g_binding_get_flags, newin "2,44")
/** Explicitly releases the binding between the source and the target
* property expressed by this Binding instance.
@@ -376,32 +374,32 @@ public:
void unbind();
_IGNORE(g_binding_unbind)
- _WRAP_PROPERTY("flags", Glib::BindingFlags)
- _WRAP_PROPERTY("source", Glib::RefPtr<Glib::ObjectBase>)
- _WRAP_PROPERTY("source-property", Glib::ustring)
- _WRAP_PROPERTY("target", Glib::RefPtr<Glib::ObjectBase>)
- _WRAP_PROPERTY("target-property", Glib::ustring)
+ _WRAP_PROPERTY("flags", Glib::BindingFlags, newin "2,44")
+ _WRAP_PROPERTY("source", Glib::RefPtr<Glib::ObjectBase>, newin "2,44")
+ _WRAP_PROPERTY("source-property", Glib::ustring, newin "2,44")
+ _WRAP_PROPERTY("target", Glib::RefPtr<Glib::ObjectBase>, newin "2,44")
+ _WRAP_PROPERTY("target-property", Glib::ustring, newin "2,44")
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/** Decrement the reference count for this object.
* You should never need to do this manually - use the object via a RefPtr instead.
*/
- virtual void unreference() const;
+ void unreference() const override;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
private:
- // The functor TransformProp can be implicitly converted to a BindingTransformSlot
+ // The functor TransformProp can be implicitly converted to a SlotTransform
// and used in a call to bind_property_value().
template <typename T_from, typename T_to>
class TransformProp : public sigc::functor_base
{
public:
typedef bool result_type;
- typedef sigc::slot<bool, const Glib::RefPtr<Binding>&, const T_from&, T_to&> TypedBindingTransformSlot;
+ typedef sigc::slot<bool, const T_from&, T_to&> SlotTypedTransform;
- TransformProp(const TypedBindingTransformSlot& slot) : typed_transform(slot) {}
+ TransformProp(const SlotTypedTransform& slot) : typed_transform(slot) {}
- bool operator()(const Glib::RefPtr<Binding>& binding, const GValue* from_value, GValue* to_value)
+ bool operator()(const GValue* from_value, GValue* to_value)
{
Glib::Value<T_from> from_glib_value;
from_glib_value.init(from_value);
@@ -409,14 +407,14 @@ private:
to_glib_value.init(to_value);
T_to to = to_glib_value.get();
- const bool result = typed_transform(binding, from_glib_value.get(), to);
+ const bool result = typed_transform(from_glib_value.get(), to);
to_glib_value.set(to);
g_value_copy(to_glib_value.gobj(), to_value);
return result;
}
private:
- TypedBindingTransformSlot typed_transform;
+ SlotTypedTransform typed_transform;
};
};
diff --git a/glib/src/checksum.ccg b/glib/src/checksum.ccg
index efa0d724..9a700501 100644
--- a/glib/src/checksum.ccg
+++ b/glib/src/checksum.ccg
@@ -28,7 +28,7 @@ Checksum::Checksum(ChecksumType type)
Checksum::operator bool() const
{
- return gobject_ != 0;
+ return gobject_ != nullptr;
}
gssize Checksum::get_length(ChecksumType checksum_type)
diff --git a/glib/src/convert.ccg b/glib/src/convert.ccg
index 295088b1..e7523139 100644
--- a/glib/src/convert.ccg
+++ b/glib/src/convert.ccg
@@ -35,7 +35,7 @@ IConv::IConv(const std::string& to_codeset, const std::string& from_codeset)
{
if(gobject_ == reinterpret_cast<GIConv>(-1))
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
// Abuse g_convert() to create a GError object. This may seem a weird
// thing to do, but it gives us consistently translated error messages
@@ -43,7 +43,7 @@ IConv::IConv(const std::string& to_codeset, const std::string& from_codeset)
g_convert("", 0, to_codeset.c_str(), from_codeset.c_str(), 0, 0, &gerror);
// If this should ever fail we're fucked.
- g_assert(gerror != 0);
+ g_assert(gerror != nullptr);
if(gerror) ::Glib::Error::throw_exception(gerror);
}
@@ -70,7 +70,7 @@ void IConv::reset()
// NULL for anything but inbuf; work around that. (NULL outbuf
// or NULL *outbuf is allowed by Unix98.)
- char* outbuf = 0;
+ char* outbuf = nullptr;
gsize inbytes_left = 0;
gsize outbytes_left = 0;
@@ -80,7 +80,7 @@ void IConv::reset()
std::string IConv::convert(const std::string& str)
{
gsize bytes_written = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const buf = g_convert_with_iconv(
str.data(), str.size(), gobject_, 0, &bytes_written, &gerror);
@@ -100,7 +100,7 @@ bool get_charset()
bool get_charset(std::string& charset)
{
- const char* charset_cstr = 0;
+ const char* charset_cstr = nullptr;
const bool is_utf8 = g_get_charset(&charset_cstr);
charset = charset_cstr;
@@ -113,7 +113,7 @@ std::string convert(const std::string& str,
const std::string& from_codeset)
{
gsize bytes_written = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const buf = g_convert(
str.data(), str.size(), to_codeset.c_str(), from_codeset.c_str(),
@@ -163,7 +163,7 @@ std::string convert_with_fallback(const std::string& str,
Glib::ustring locale_to_utf8(const std::string& opsys_string)
{
gsize bytes_written = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const buf = g_locale_to_utf8(
opsys_string.data(), opsys_string.size(), 0, &bytes_written, &gerror);
@@ -178,7 +178,7 @@ Glib::ustring locale_to_utf8(const std::string& opsys_string)
std::string locale_from_utf8(const Glib::ustring& utf8_string)
{
gsize bytes_written = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const buf = g_locale_from_utf8(
utf8_string.data(), utf8_string.bytes(), 0, &bytes_written, &gerror);
@@ -192,7 +192,7 @@ std::string locale_from_utf8(const Glib::ustring& utf8_string)
Glib::ustring filename_to_utf8(const std::string& opsys_string)
{
gsize bytes_written = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const buf = g_filename_to_utf8(
opsys_string.data(), opsys_string.size(), 0, &bytes_written, &gerror);
@@ -207,7 +207,7 @@ Glib::ustring filename_to_utf8(const std::string& opsys_string)
std::string filename_from_utf8(const Glib::ustring& utf8_string)
{
gsize bytes_written = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const buf = g_filename_from_utf8(
utf8_string.data(), utf8_string.bytes(), 0, &bytes_written, &gerror);
@@ -220,8 +220,8 @@ std::string filename_from_utf8(const Glib::ustring& utf8_string)
std::string filename_from_uri(const Glib::ustring& uri, Glib::ustring& hostname)
{
- char* hostname_buf = 0;
- GError* gerror = 0;
+ char* hostname_buf = nullptr;
+ GError* gerror = nullptr;
char *const buf = g_filename_from_uri(uri.c_str(), &hostname_buf, &gerror);
@@ -241,7 +241,7 @@ std::string filename_from_uri(const Glib::ustring& uri, Glib::ustring& hostname)
std::string filename_from_uri(const Glib::ustring& uri)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const buf = g_filename_from_uri(uri.c_str(), 0, &gerror);
if(gerror) ::Glib::Error::throw_exception(gerror);
@@ -252,7 +252,7 @@ std::string filename_from_uri(const Glib::ustring& uri)
Glib::ustring filename_to_uri(const std::string& filename, const Glib::ustring& hostname)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const buf = g_filename_to_uri(filename.c_str(), hostname.c_str(), &gerror);
if(gerror) ::Glib::Error::throw_exception(gerror);
@@ -263,7 +263,7 @@ Glib::ustring filename_to_uri(const std::string& filename, const Glib::ustring&
Glib::ustring filename_to_uri(const std::string& filename)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const buf = g_filename_to_uri(filename.c_str(), 0, &gerror);
if(gerror) ::Glib::Error::throw_exception(gerror);
diff --git a/glib/src/date.ccg b/glib/src/date.ccg
index bc7590c0..ad6b6ef0 100644
--- a/glib/src/date.ccg
+++ b/glib/src/date.ccg
@@ -305,7 +305,7 @@ Glib::ustring Date::format_string(const Glib::ustring& format) const
struct tm tm_data;
g_date_to_struct_tm(&gobject_, &tm_data);
- const std::string locale_format = locale_from_utf8(format);
+ const auto locale_format = locale_from_utf8(format);
gsize bufsize = std::max<gsize>(2 * locale_format.size(), 128);
@@ -316,7 +316,7 @@ Glib::ustring Date::format_string(const Glib::ustring& format) const
// Set the first byte to something other than '\0', to be able to
// recognize whether strftime actually failed or just returned "".
buf.get()[0] = '\1';
- const gsize len = strftime(buf.get(), bufsize, locale_format.c_str(), &tm_data);
+ const auto len = strftime(buf.get(), bufsize, locale_format.c_str(), &tm_data);
if(len != 0 || buf.get()[0] == '\0')
{
diff --git a/glib/src/date.hg b/glib/src/date.hg
index 472dc609..5a307e61 100644
--- a/glib/src/date.hg
+++ b/glib/src/date.hg
@@ -17,12 +17,6 @@
_DEFS(glibmm,glib)
-#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
-/* So we can use deprecated functions in our deprecated methods */
-#undef G_DISABLE_DEPRECATED
-#define GLIB_DISABLE_DEPRECATION_WARNINGS 1
-#m4 _POP()
-
#include <glibmmconfig.h>
#include <glibmm/ustring.h>
#include <glib.h>
diff --git a/glib/src/datetime.hg b/glib/src/datetime.hg
index 601d9770..82bcd56f 100644
--- a/glib/src/datetime.hg
+++ b/glib/src/datetime.hg
@@ -95,6 +95,7 @@ public:
* TimeSpan that is returned is effectively @a *this - @a other.
*
* @newin{2,26}
+ *
* @param other The other DateTime.
* @return The difference between the two DateTime, as a time
* span expressed in microseconds.
@@ -106,6 +107,7 @@ public:
* as a CompareFunc.
*
* @newin{2,26}
+ *
* @param other The DateTime to compare with.
* @return -1, 0 or 1 if @a *this is less than, equal to or greater
* than @a other.
@@ -120,6 +122,7 @@ public:
* them to the same time zone.
*
* @newin{2,26}
+ *
* @param other The DateTime to compare with.
* @return <tt>true</tt> if @a *this and @a other are equal.
*/
@@ -146,7 +149,7 @@ public:
_WRAP_METHOD(DateTime to_timezone(const TimeZone& tz) const, g_date_time_to_timezone)
_WRAP_METHOD(DateTime to_local() const, g_date_time_to_local)
_WRAP_METHOD(DateTime to_utc() const, g_date_time_to_utc)
- _WRAP_METHOD(Glib::ustring format(const Glib::ustring& format) const, g_date_time_format)
+ _WRAP_METHOD(Glib::ustring format(const Glib::ustring& format_str) const, g_date_time_format)
};
} // namespace Glib
diff --git a/glib/src/filelist.am b/glib/src/filelist.am
index c66e01b0..94341328 100644
--- a/glib/src/filelist.am
+++ b/glib/src/filelist.am
@@ -3,13 +3,11 @@
glibmm_files_defs = \
glib.defs \
glib_enums.defs \
- glib_deprecated_enums.defs \
glib_functions.defs \
glib_extra_objects.defs \
glib_signals.defs \
gmodule_enums.defs \
gmodule_functions.defs \
- gobject.defs \
gobject_enums.defs \
gobject_functions.defs \
glib_docs.xml \
@@ -28,6 +26,7 @@ glibmm_files_any_hg = \
iochannel.hg \
keyfile.hg \
markup.hg \
+ miscutils.hg \
module.hg \
nodetree.hg \
optioncontext.hg \
diff --git a/glib/src/fileutils.ccg b/glib/src/fileutils.ccg
index 59fe145c..43dc1857 100644
--- a/glib/src/fileutils.ccg
+++ b/glib/src/fileutils.ccg
@@ -26,7 +26,7 @@ namespace Glib
Dir::Dir(const std::string& path)
{
- GError* error = 0;
+ GError* error = nullptr;
gobject_ = g_dir_open(path.c_str(), 0, &error);
if(error)
@@ -60,7 +60,7 @@ void Dir::close()
if(gobject_)
{
g_dir_close(gobject_);
- gobject_ = 0;
+ gobject_ = nullptr;
}
}
@@ -125,7 +125,7 @@ bool file_test(const std::string& filename, FileTest test)
int mkstemp(std::string& filename_template)
{
const ScopedPtr<char> buf (g_strndup(filename_template.data(), filename_template.size()));
- const int fileno = g_mkstemp(buf.get());
+ const auto fileno = g_mkstemp(buf.get());
filename_template = buf.get();
return fileno;
@@ -136,10 +136,10 @@ int file_open_tmp(std::string& name_used, const std::string& prefix)
std::string basename_template (prefix);
basename_template += "XXXXXX"; // this sillyness shouldn't be in the interface
- GError* error = 0;
+ GError* error = nullptr;
ScopedPtr<char> buf_name_used;
- const int fileno = g_file_open_tmp(basename_template.c_str(), buf_name_used.addr(), &error);
+ const auto fileno = g_file_open_tmp(basename_template.c_str(), buf_name_used.addr(), &error);
if(error)
Glib::Error::throw_exception(error);
@@ -150,10 +150,10 @@ int file_open_tmp(std::string& name_used, const std::string& prefix)
int file_open_tmp(std::string& name_used)
{
- GError* error = 0;
+ GError* error = nullptr;
ScopedPtr<char> buf_name_used;
- const int fileno = g_file_open_tmp(0, buf_name_used.addr(), &error);
+ const auto fileno = g_file_open_tmp(0, buf_name_used.addr(), &error);
if(error)
Glib::Error::throw_exception(error);
@@ -166,7 +166,7 @@ std::string file_get_contents(const std::string& filename)
{
ScopedPtr<char> contents;
gsize length = 0;
- GError* error = 0;
+ GError* error = nullptr;
g_file_get_contents(filename.c_str(), contents.addr(), &length, &error);
@@ -181,7 +181,7 @@ file_set_contents(const std::string& filename,
const gchar *contents,
gssize length)
{
- GError* error = 0;
+ GError* error = nullptr;
g_file_set_contents(filename.c_str(), contents, length, &error);
diff --git a/glib/src/glib.defs b/glib/src/glib.defs
index e106d6b7..dd679a35 100644
--- a/glib/src/glib.defs
+++ b/glib/src/glib.defs
@@ -1,7 +1,5 @@
(include glib_functions.defs)
-(include glib_deprecated_functions.defs)
(include glib_enums.defs)
-(include glib_deprecated_enums.defs)
(include glib_extra_objects.defs)
(include glib_signals.defs)
(include gobject_enums.defs)
diff --git a/glib/src/glib_deprecated_enums.defs b/glib/src/glib_deprecated_enums.defs
deleted file mode 100644
index b80fc58c..00000000
--- a/glib/src/glib_deprecated_enums.defs
+++ /dev/null
@@ -1,22 +0,0 @@
-;; From gthread.h
-
-;; Original typedef:
-;; typedef enum
-;; {
-;; G_THREAD_PRIORITY_LOW,
-;; G_THREAD_PRIORITY_NORMAL,
-;; G_THREAD_PRIORITY_HIGH,
-;; G_THREAD_PRIORITY_URGENT
-;; } GThreadPriority;
-
-(define-enum-extended ThreadPriority
- (in-module "G")
- (c-name "GThreadPriority")
- (values
- '("low" "G_THREAD_PRIORITY_LOW" "0")
- '("normal" "G_THREAD_PRIORITY_NORMAL" "1")
- '("high" "G_THREAD_PRIORITY_HIGH" "2")
- '("urgent" "G_THREAD_PRIORITY_URGENT" "3")
- )
-)
-
diff --git a/glib/src/glib_deprecated_functions.defs b/glib/src/glib_deprecated_functions.defs
deleted file mode 100644
index eb230a6e..00000000
--- a/glib/src/glib_deprecated_functions.defs
+++ /dev/null
@@ -1,50 +0,0 @@
-;; -*- scheme -*-
-; object definitions ...
-;; Enumerations and flags ...
-
-(define-enum Priority
- (in-module "GThread")
- (c-name "GThreadPriority")
- (gtype-id "G_TYPE_THREAD_PRIORITY")
- (values
- '("low" "G_THREAD_PRIORITY_LOW")
- '("normal" "G_THREAD_PRIORITY_NORMAL")
- '("high" "G_THREAD_PRIORITY_HIGH")
- '("urgent" "G_THREAD_PRIORITY_URGENT")
- )
-)
-
-
-;; From gallocator.h
-
-
-
-;; From gcache.h
-
-
-
-;; From gcompletion.h
-
-
-
-;; From grel.h
-
-
-
-;; From gthread.h
-
-(define-function guint64
- (c-name "guint64")
- (return-type "GLIB_VAR")
- (parameters
- '("*" "g_thread_gettime")
- )
-)
-
-(define-method get_mutex_impl
- (of-object "GStaticMutex")
- (c-name "g_static_mutex_get_mutex_impl")
- (return-type "GMutex*")
-)
-
-
diff --git a/glib/src/glib_docs.xml b/glib/src/glib_docs.xml
index cba1b917..1708607a 100644
--- a/glib/src/glib_docs.xml
+++ b/glib/src/glib_docs.xml
@@ -1,4 +1,51 @@
<root>
+<property name="GBinding:flags">
+<description>
+Flags to be used to control the #GBinding
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GBinding:source">
+<description>
+The #GObject that should be used as the source of the binding
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GBinding:source-property">
+<description>
+The name of the property of #GBinding:source that should be used
+as the source of the binding
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GBinding:target">
+<description>
+The #GObject that should be used as the target of the binding
+
+Since: 2.26
+
+</description>
+</property>
+
+<property name="GBinding:target-property">
+<description>
+The name of the property of #GBinding:target that should be used
+as the target of the binding
+
+Since: 2.26
+
+</description>
+</property>
+
<enum name="GBindingFlags">
<description>
Flags to be passed to g_object_bind_property() or
@@ -1169,8 +1216,8 @@ option: `--name arg` or combined in a single argument: `--name=arg`.
</parameter_description>
</parameter>
<parameter name="G_OPTION_ARG_CALLBACK">
-<parameter_description> The option provides a callback to parse the
-extra argument.
+<parameter_description> The option provides a callback (of type
+#GOptionArgFunc) to parse the extra argument.
</parameter_description>
</parameter>
<parameter name="G_OPTION_ARG_FILENAME">
@@ -1284,7 +1331,7 @@ your direct control. Since 2.8.
<enum name="GParamFlags">
<description>
Through the #GParamFlags flag values, certain aspects of parameters
-can be configured. See also #G_PARAM_READWRITE and #G_PARAM_STATIC_STRINGS.
+can be configured. See also #G_PARAM_STATIC_STRINGS.
</description>
<parameters>
@@ -1305,7 +1352,7 @@ can be configured. See also #G_PARAM_READWRITE and #G_PARAM_STATIC_STRINGS.
</parameter_description>
</parameter>
<parameter name="G_PARAM_CONSTRUCT_ONLY">
-<parameter_description> the parameter will only be set upon object construction
+<parameter_description> the parameter can only be set upon object construction
</parameter_description>
</parameter>
<parameter name="G_PARAM_LAX_VALIDATION">
@@ -2558,6 +2605,10 @@ Deprecated: 2.36: g_type_init() is now done automatically
<parameter_description> Mask covering all debug flags
</parameter_description>
</parameter>
+<parameter name="G_TYPE_DEBUG_INSTANCE_COUNT">
+<parameter_description> Keep a count of instances of each type
+</parameter_description>
+</parameter>
</parameters>
</enum>
@@ -2807,7 +2858,7 @@ a value never returned from g_unichar_get_script()
</parameter>
<parameter name="G_UNICODE_SCRIPT_INHERITED">
<parameter_description> a mark glyph that takes its script from the
-i base glyph to which it is attached
+base glyph to which it is attached
</parameter_description>
</parameter>
<parameter name="G_UNICODE_SCRIPT_ARABIC">
@@ -3310,7 +3361,10 @@ Old South Arabian. Since 2.26
</parameter>
<parameter name="G_UNICODE_SCRIPT_TIRHUTA">
<parameter_description> Tirhuta. Since: 2.42
-@G_UNICODE_SCRIPT_WARANG_CITI Warang Citi. Since: 2.42
+</parameter_description>
+</parameter>
+<parameter name="G_UNICODE_SCRIPT_WARANG_CITI">
+<parameter_description> Warang Citi. Since: 2.42
</parameter_description>
</parameter>
</parameters>
@@ -3666,6 +3720,30 @@ Error codes returned by parsing text-format GVariants.
</parameters>
</enum>
+<enum name="GWin32OSType">
+<description>
+Type of Windows edition to check for at run-time.
+
+</description>
+<parameters>
+<parameter name="G_WIN32_OS_ANY">
+<parameter_description> The running system can be a workstation or a server edition of
+Windows. The type of the running system is therefore not checked.
+</parameter_description>
+</parameter>
+<parameter name="G_WIN32_OS_WORKSTATION">
+<parameter_description> The running system is a workstation edition of Windows,
+such as Windows 7 Professional.
+</parameter_description>
+</parameter>
+<parameter name="G_WIN32_OS_SERVER">
+<parameter_description> The running system is a server edition of Windows, such as
+Windows Server 2008 R2.
+</parameter_description>
+</parameter>
+</parameters>
+</enum>
+
<function name="g_access">
<description>
A wrapper for the POSIX access() function. This function is used to
@@ -4280,7 +4358,8 @@ This function generates enough precision that converting
the string back using g_ascii_strtod() gives the same machine-number
(on machines with IEEE compatible 64bit doubles). It is
guaranteed that the size of the resulting string will never
-be larger than @G_ASCII_DTOSTR_BUF_SIZE bytes.
+be larger than @G_ASCII_DTOSTR_BUF_SIZE bytes, including the terminating
+nul character, which is always added.
</description>
@@ -4309,6 +4388,8 @@ decimal point. To format the number you pass in
a printf()-style format string. Allowed conversion
specifiers are 'e', 'E', 'f', 'F', 'g' and 'G'.
+The returned buffer is guaranteed to be nul-terminated.
+
If you just want to want to serialize the value into a
string, use g_ascii_dtostr().
@@ -5387,6 +5468,54 @@ Pushes the @data into the @queue. @data must not be %NULL.
<return></return>
</function>
+<function name="g_async_queue_push_front">
+<description>
+Pushes the @data into the @queue. @data must not be %NULL.
+In contrast to g_async_queue_push(), this function
+pushes the new item ahead of the items already in the queue,
+so that it will be the next one to be popped off the queue.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="queue">
+<parameter_description> a #GAsyncQueue
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> @data to push into the @queue
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_async_queue_push_front_unlocked">
+<description>
+Pushes the @data into the @queue. @data must not be %NULL.
+In contrast to g_async_queue_push_unlocked(), this function
+pushes the new item ahead of the items already in the queue,
+so that it will be the next one to be popped off the queue.
+
+This function must be called while holding the @queue's lock.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="queue">
+<parameter_description> a #GAsyncQueue
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> @data to push into the @queue
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_async_queue_push_sorted">
<description>
Inserts @data into @queue using @func to determine the new
@@ -5521,6 +5650,52 @@ lock.
<return></return>
</function>
+<function name="g_async_queue_remove">
+<description>
+Remove an item from the queue. This function does not block.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="queue">
+<parameter_description> a #GAsyncQueue
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the @data to remove from the @queue
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the item was removed
+
+</return>
+</function>
+
+<function name="g_async_queue_remove_unlocked">
+<description>
+Remove an item from the queue. This function does not block.
+
+This function must be called while holding the @queue's lock.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="queue">
+<parameter_description> a #GAsyncQueue
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> the @data to remove from the @queue
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the item was removed
+
+</return>
+</function>
+
<function name="g_async_queue_sort">
<description>
Sorts @queue using @func.
@@ -6297,6 +6472,168 @@ Since: 2.30
</return>
</function>
+<function name="g_auto">
+<description>
+Helper to declare a variable with automatic cleanup.
+
+The variable is cleaned up in a way appropriate to its type when the
+variable goes out of scope. The type must support this.
+
+This feature is only supported on GCC and clang. This macro is not
+defined on other compilers and should not be used in programs that
+are intended to be portable to those compilers.
+
+This is meant to be used with stack-allocated structures and
+non-pointer types. For the (more commonly used) pointer version, see
+g_autoptr().
+
+This macro can be used to avoid having to do explicit cleanups of
+local variables when exiting functions. It often vastly simplifies
+handling of error conditions, removing the need for various tricks
+such as 'goto out' or repeating of cleanup code. It is also helpful
+for non-error cases.
+
+Consider the following example:
+
+|[
+GVariant *
+my_func(void)
+{
+g_auto(GQueue) queue = G_QUEUE_INIT;
+g_auto(GVariantBuilder) builder;
+
+g_variant_builder_init (&amp;builder, G_VARIANT_TYPE_VARDICT);
+
+...
+
+if (error_condition)
+return NULL;
+
+...
+
+return g_variant_builder_end (&amp;builder);
+}
+]|
+
+You must initialise the variable in some way -- either by use of an
+initialiser or by ensuring that an _init function will be called on
+it unconditionally before it goes out of scope.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="TypeName">
+<parameter_description> a supported variable type
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_autofree">
+<description>
+Macro to add an attribute to pointer variable to ensure automatic
+cleanup using g_free().
+
+This macro differs from g_autoptr() in that it is an attribute supplied
+before the type name, rather than wrapping the type definition. Instead
+of using a type-specific lookup, this macro always calls g_free() directly.
+
+This means it's useful for any type that is returned from
+g_malloc().
+
+Otherwise, this macro has similar constraints as g_autoptr() - only
+supported on GCC and clang, the variable must be initialized, etc.
+
+|[
+gboolean
+operate_on_malloc_buf (void)
+{
+g_autofree guint8* membuf = NULL;
+
+membuf = g_malloc (8192);
+
+/ * Some computation on membuf * /
+
+/ * membuf will be automatically freed here * /
+return TRUE;
+}
+]|
+
+Since: 2.44
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_autoptr">
+<description>
+Helper to declare a pointer variable with automatic cleanup.
+
+The variable is cleaned up in a way appropriate to its type when the
+variable goes out of scope. The type must support this.
+
+This feature is only supported on GCC and clang. This macro is not
+defined on other compilers and should not be used in programs that
+are intended to be portable to those compilers.
+
+This is meant to be used to declare pointers to types with cleanup
+functions. The type of the variable is a pointer to @TypeName. You
+must not add your own '*'.
+
+This macro can be used to avoid having to do explicit cleanups of
+local variables when exiting functions. It often vastly simplifies
+handling of error conditions, removing the need for various tricks
+such as 'goto out' or repeating of cleanup code. It is also helpful
+for non-error cases.
+
+Consider the following example:
+
+|[
+gboolean
+check_exists(GVariant *dict)
+{
+g_autoptr(GVariant) dirname;
+g_autoptr(GVariant) basename = NULL;
+g_autoptr(gchar) path = NULL;
+
+dirname = g_variant_lookup_value (dict, &quot;dirname&quot;, G_VARIANT_TYPE_STRING);
+
+if (dirname == NULL)
+return FALSE;
+
+basename = g_variant_lookup_value (dict, &quot;basename&quot;, G_VARIANT_TYPE_STRING);
+
+if (basename == NULL)
+return FALSE;
+
+path = g_build_filename (g_variant_get_string (dirname, NULL),
+g_variant_get_string (basename, NULL),
+NULL);
+
+return g_access (path, R_OK) == 0;
+}
+]|
+
+You must initialise the variable in some way -- either by use of an
+initialiser or by ensuring that it is assigned to unconditionally
+before it goes out of scope.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="TypeName">
+<parameter_description> a supported variable type
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_base64_decode">
<description>
Decode a sequence of Base-64 encoded text into binary data. Note
@@ -9094,6 +9431,91 @@ data structures to @func; use g_cache_key_foreach() instead
<return></return>
</function>
+<function name="g_cclosure_marshal_BOOLEAN__BOXED_BOXED">
+<description>
+A #GClosureMarshal function for use with signals with handlers that
+take two boxed pointers as arguments and return a boolean. If you
+have such a signal, you will probably also need to use an
+accumulator, such as g_signal_accumulator_true_handled().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> A #GClosure.
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> A #GValue to store the return value. May be %NULL
+if the callback of closure doesn't return a value.
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> The length of the @param_values array.
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> An array of #GValues holding the arguments
+on which to invoke the callback of closure.
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> The invocation hint given as the last argument to
+g_closure_invoke().
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> Additional data specified when registering the
+marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_BOOLEAN__BOXED_BOXED().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_BOOLEAN__FLAGS">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9131,6 +9553,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_BOOLEAN__FLAGSv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_BOOLEAN__FLAGS().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_BOOLEAN__OBJECT_BOXED_BOXED">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9169,6 +9634,45 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_BOOL__BOXED_BOXED">
+<description>
+An old alias for g_cclosure_marshal_BOOLEAN__BOXED_BOXED().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> A #GClosure.
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> A #GValue to store the return value. May be %NULL
+if the callback of closure doesn't return a value.
+</parameter_description>
+</parameter>
+<parameter name="n_param_values">
+<parameter_description> The length of the @param_values array.
+</parameter_description>
+</parameter>
+<parameter name="param_values">
+<parameter_description> An array of #GValues holding the arguments
+on which to invoke the callback of closure.
+</parameter_description>
+</parameter>
+<parameter name="invocation_hint">
+<parameter_description> The invocation hint given as the last argument to
+g_closure_invoke().
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> Additional data specified when registering the
+marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_BOOL__FLAGS">
<description>
Another name for g_cclosure_marshal_BOOLEAN__FLAGS().
@@ -9215,6 +9719,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_STRING__OBJECT_POINTERv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_STRING__OBJECT_POINTER().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__BOOLEAN">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9251,6 +9798,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__BOOLEANv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__BOOLEAN().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__BOXED">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9287,6 +9877,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__BOXEDv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__BOXED().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__CHAR">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9323,6 +9956,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__CHARv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__CHAR().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__DOUBLE">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9359,6 +10035,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__DOUBLEv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__DOUBLE().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__ENUM">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9395,6 +10114,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__ENUMv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__ENUM().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__FLAGS">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9431,6 +10193,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__FLAGSv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__FLAGS().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__FLOAT">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9467,6 +10272,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__FLOATv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__FLOAT().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__INT">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9503,6 +10351,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__INTv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__INT().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__LONG">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9539,6 +10430,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__LONGv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__LONG().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__OBJECT">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9575,6 +10509,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__OBJECTv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__OBJECT().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__PARAM">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9611,6 +10588,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__PARAMv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__PARAM().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__POINTER">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9647,6 +10667,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__POINTERv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__POINTER().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__STRING">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9683,6 +10746,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__STRINGv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__STRING().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__UCHAR">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9719,6 +10825,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__UCHARv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__UCHAR().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__UINT">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9791,6 +10940,92 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__UINT_POINTERv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__UINT_POINTER().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_cclosure_marshal_VOID__UINTv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__UINT().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__ULONG">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9827,6 +11062,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__ULONGv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__ULONG().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__VARIANT">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9865,6 +11143,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__VARIANTv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__VARIANT().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_VOID__VOID">
<description>
A marshaller for a #GCClosure with a callback of type
@@ -9901,6 +11222,49 @@ to g_closure_invoke()
<return></return>
</function>
+<function name="g_cclosure_marshal_VOID__VOIDv">
+<description>
+The #GVaClosureMarshal equivalent to g_cclosure_marshal_VOID__VOID().
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_marshal_generic">
<description>
A generic marshaller function implemented via
@@ -9946,6 +11310,52 @@ g_closure_set_meta_marshal()
<return></return>
</function>
+<function name="g_cclosure_marshal_generic_va">
+<description>
+A generic #GVaClosureMarshal function implemented via
+[libffi](http://sourceware.org/libffi/).
+
+Since: 2.30
+
+</description>
+<parameters>
+<parameter name="closure">
+<parameter_description> the #GClosure to which the marshaller belongs
+</parameter_description>
+</parameter>
+<parameter name="return_value">
+<parameter_description> a #GValue to store the return
+value. May be %NULL if the callback of @closure doesn't return a
+value.
+</parameter_description>
+</parameter>
+<parameter name="instance">
+<parameter_description> the instance on which the closure is invoked.
+</parameter_description>
+</parameter>
+<parameter name="args_list">
+<parameter_description> va_list of arguments to be passed to the closure.
+</parameter_description>
+</parameter>
+<parameter name="marshal_data">
+<parameter_description> additional data specified when
+registering the marshaller, see g_closure_set_marshal() and
+g_closure_set_meta_marshal()
+</parameter_description>
+</parameter>
+<parameter name="n_params">
+<parameter_description> the length of the @param_types array
+</parameter_description>
+</parameter>
+<parameter name="param_types">
+<parameter_description> the #GType of each argument from
+@args_list.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_cclosure_new">
<description>
Creates a new closure which invokes @callback_func with @user_data as
@@ -10513,7 +11923,9 @@ Since: 2.36
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE on success, %FALSE if there was an error.
+
+</return>
</function>
<function name="g_closure_add_finalize_notifier">
@@ -12800,8 +14212,8 @@ etc. The date must be valid.
<function name="g_date_get_monday_week_of_year">
<description>
Returns the week of the year, where weeks are understood to start on
-Monday. If the date is before the first Monday of the year, return
-0. The date must be valid.
+Monday. If the date is before the first Monday of the year, return 0.
+The date must be valid.
</description>
@@ -12855,9 +14267,9 @@ Returns the month of the year. The date must be valid.
<function name="g_date_get_sunday_week_of_year">
<description>
-Returns the week of the year during which this date falls, if weeks
-are understood to being on Sunday. The date must be valid. Can return
-0 if the day is before the first Sunday of the year.
+Returns the week of the year during which this date falls, if
+weeks are understood to being on Sunday. The date must be valid.
+Can return 0 if the day is before the first Sunday of the year.
</description>
@@ -13695,7 +15107,7 @@ The following format specifiers are supported:
- \%A: the full weekday name according to the current locale
- \%b: the abbreviated month name according to the current locale
- \%B: the full month name according to the current locale
-- \%c: the preferred date and time rpresentation for the current locale
+- \%c: the preferred date and time representation for the current locale
- \%C: the century number (year/100) as a 2-digit integer (00-99)
- \%d: the day of the month as a decimal number (range 01 to 31)
- \%e: the day of the month as a decimal number (range 1 to 31)
@@ -14024,7 +15436,7 @@ this may mean that the week-numbering year is one greater than the
calendar year (so that these days have the same week-numbering year
as the Thursday occurring early in the next year).
-For Friday, Saturaday and Sunday occurring near the start of the year,
+For Friday, Saturday and Sunday occurring near the start of the year,
this may mean that the week-numbering year is one less than the
calendar year (so that these days have the same week-numbering year
as the Thursday occurring late in the previous year).
@@ -15419,8 +16831,7 @@ for an empty environment list
</parameter_description>
</parameter>
<parameter name="variable">
-<parameter_description> the environment variable to get, in the GLib file name
-encoding
+<parameter_description> the environment variable to get
</parameter_description>
</parameter>
</parameters>
@@ -15558,7 +16969,7 @@ be returned.
If @domain contains a `FAILED` (or otherwise generic) error code,
you should generally not check for it explicitly, but should
instead treat any not-explicitly-recognized error code as being
-equilalent to the `FAILED` code. This way, if the domain is
+equivalent to the `FAILED` code. This way, if the domain is
extended in the future to provide a more specific error code for
a certain case, your code will still work.
@@ -16428,7 +17839,9 @@ Since: 2.2
<function name="g_free">
<description>
Frees the memory pointed to by @mem.
-If @mem is %NULL it simply returns.
+
+If @mem is %NULL it simply returns, so there is no need to check @mem
+against %NULL before calling this function.
</description>
<parameters>
@@ -16513,7 +17926,8 @@ freed.
</description>
<parameters>
<parameter name="charset">
-<parameter_description> return location for character set name
+<parameter_description> return location for character set
+name, or %NULL.
</parameter_description>
</parameter>
</parameters>
@@ -17087,9 +18501,9 @@ GLib and should not be modified or freed.
<description>
Returns the value of an environment variable.
-The name and value are in the GLib file name encoding. On UNIX,
-this means the actual bytes which might or might not be in some
-consistent character set and encoding. On Windows, it is in UTF-8.
+On UNIX, the name and value are byte strings which might or might not
+be in some consistent character set and encoding. On Windows, they are
+in UTF-8.
On Windows, in case the environment variable's value contains
references to other environment variables, they are expanded.
@@ -17097,8 +18511,7 @@ references to other environment variables, they are expanded.
</description>
<parameters>
<parameter name="variable">
-<parameter_description> the environment variable to get, in the GLib file name
-encoding
+<parameter_description> the environment variable to get
</parameter_description>
</parameter>
</parameters>
@@ -17154,7 +18567,9 @@ Since: 2.32
</parameter_description>
</parameter>
</parameters>
-<return></return>
+<return> %TRUE if @key is in @hash_table, %FALSE otherwise.
+
+</return>
</function>
<function name="g_hash_table_destroy">
@@ -17327,6 +18742,10 @@ release of GLib. It does nothing.
Retrieves every key inside @hash_table. The returned data is valid
until changes to the hash release those keys.
+This iterates over every entry in the hash table to build its return value.
+To iterate over the entries in a #GHashTable more efficiently, use a
+#GHashTableIter.
+
Since: 2.14
</description>
@@ -17353,7 +18772,11 @@ key. Use @length to determine the true length if it's possible that
%NULL was used as the value for a key.
Note: in the common case of a string-keyed #GHashTable, the return
-value of this function can be conveniently cast to (gchar **).
+value of this function can be conveniently cast to (const gchar **).
+
+This iterates over every entry in the hash table to build its return value.
+To iterate over the entries in a #GHashTable more efficiently, use a
+#GHashTableIter.
You should always free the return result with g_free(). In the
above-mentioned case of a string-keyed hash table, it may be
@@ -17384,6 +18807,10 @@ Since: 2.40
Retrieves every value inside @hash_table. The returned data
is valid until @hash_table is modified.
+This iterates over every entry in the hash table to build its return value.
+To iterate over the entries in a #GHashTable more efficiently, use a
+#GHashTableIter.
+
Since: 2.14
</description>
@@ -17686,6 +19113,13 @@ count of 1 and allows to specify functions to free the memory
allocated for the key and value that get called when removing the
entry from the #GHashTable.
+Since version 2.42 it is permissible for destroy notify functions to
+recursively remove further items from the hash table. This is only
+permissible if the application still holds a reference to the hash table.
+This means that you may need to ensure that the hash table is empty by
+calling g_hash_table_remove_all before releasing the last reference using
+g_hash_table_unref().
+
</description>
<parameters>
@@ -18857,8 +20291,10 @@ returns %FALSE it is automatically removed from the list of event
sources and will not be called again.
This internally creates a main loop source using g_idle_source_new()
-and attaches it to the main loop context using g_source_attach().
-You can do these steps manually if you need greater control.
+and attaches it to the global #GMainContext using g_source_attach(), so
+the callback will be invoked in whichever thread is running that main
+context. You can do these steps manually if you need greater control or to
+use a custom main context.
</description>
@@ -18883,8 +20319,10 @@ events pending. If the function returns %FALSE it is automatically
removed from the list of event sources and will not be called again.
This internally creates a main loop source using g_idle_source_new()
-and attaches it to the main loop context using g_source_attach().
-You can do these steps manually if you need greater control.
+and attaches it to the global #GMainContext using g_source_attach(), so
+the callback will be invoked in whichever thread is running that main
+context. You can do these steps manually if you need greater control or to
+use a custom main context.
</description>
@@ -20283,10 +21721,12 @@ should be freed with g_free() when no longer needed.
<function name="g_key_file_get_comment">
<description>
Retrieves a comment above @key from @group_name.
-If @key is %NULL then @comment will be read from above
-@group_name. If both @key and @group_name are %NULL, then
+If @key is %NULL then @comment will be read from above
+@group_name. If both @key and @group_name are %NULL, then
@comment will be read from above the first group in the file.
+Note that the returned string includes the '#' comment markers.
+
Since: 2.6
</description>
@@ -21254,10 +22694,14 @@ Since: 2.6
<function name="g_key_file_set_comment">
<description>
Places a comment above @key from @group_name.
-If @key is %NULL then @comment will be written above @group_name.
-If both @key and @group_name are %NULL, then @comment will be
+
+If @key is %NULL then @comment will be written above @group_name.
+If both @key and @group_name are %NULL, then @comment will be
written above the first group in the file.
+Note that this function prepends a '#' comment marker to
+each line of @comment.
+
Since: 2.6
</description>
@@ -22002,7 +23446,10 @@ Another name for g_list_free_1().
<function name="g_list_free_1">
<description>
-Frees one #GList element.
+Frees one #GList element, but does not update links from the next and
+previous elements in the list, so you should not call this function on an
+element that is currently part of a list.
+
It is usually used after g_list_remove_link().
</description>
@@ -22204,7 +23651,8 @@ Gets the number of elements in a #GList.
This function iterates over the whole list to count its elements.
Use a #GQueue instead of a GList if you regularly need the number
-of items.
+of items. To check whether the list is non-empty, it is faster to check
+@list against %NULL.
</description>
@@ -22240,6 +23688,10 @@ Note that it is considered perfectly acceptable to access
<description>
Gets the element at the given position in a #GList.
+This iterates over the list until it reaches the @n-th position. If you
+intend to iterate over every element, it is better to use a for-loop as
+described in the #GList introduction.
+
</description>
<parameters>
@@ -22261,6 +23713,10 @@ the end of the #GList
<description>
Gets the data of the element at the given position.
+This iterates over the list until it reaches the @n-th position. If you
+intend to iterate over every element, it is better to use a for-loop as
+described in the #GList introduction.
+
</description>
<parameters>
@@ -22864,6 +24320,44 @@ the log levels with the #G_LOG_FLAG_FATAL and
</return>
</function>
+<function name="g_log_set_handler_full">
+<description>
+Like g_log_sets_handler(), but takes a destroy notify for the @user_data.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="log_domain">
+<parameter_description> the log domain, or %NULL for the default &quot;&quot;
+application domain
+</parameter_description>
+</parameter>
+<parameter name="log_levels">
+<parameter_description> the log levels to apply the log handler for.
+To handle fatal and recursive messages as well, combine
+the log levels with the #G_LOG_FLAG_FATAL and
+#G_LOG_FLAG_RECURSION bit flags.
+</parameter_description>
+</parameter>
+<parameter name="log_func">
+<parameter_description> the log handler function
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> data passed to the log handler
+</parameter_description>
+</parameter>
+<parameter name="destroy">
+<parameter_description> destroy notify for @user_data, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> the id of the new handler
+
+</return>
+</function>
+
<function name="g_logv">
<description>
Logs an error or debugging message.
@@ -25910,6 +27404,70 @@ already been locked by the same thread results in undefined behaviour
<return></return>
</function>
+<function name="g_mutex_locker_free">
+<description>
+Unlock @locker's mutex. See g_mutex_locker_new() for details.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="locker">
+<parameter_description> a GMutexLocker
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_mutex_locker_new">
+<description>
+Lock @mutex and return a new #GMutexLocker. Unlock with
+g_mutex_locker_free(). Using g_mutex_unlock() on @mutex
+while a #GMutexLocker exists can lead to undefined behaviour.
+
+This is intended to be used with g_autoptr(). Note that g_autoptr()
+is only available when using GCC or clang, so the following example
+will only work with those compilers:
+|[
+typedef struct
+{
+...
+GMutex mutex;
+...
+} MyObject;
+
+static void
+my_object_do_stuff (MyObject *self)
+{
+g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&amp;self-&gt;mutex);
+
+// Code with mutex locked here
+
+if (cond)
+// No need to unlock
+return;
+
+// Optionally early unlock
+g_clear_pointer (&amp;locker, g_mutex_locker_free);
+
+// Code with mutex unlocked here
+}
+]|
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="mutex">
+<parameter_description> a mutex to lock
+</parameter_description>
+</parameter>
+</parameters>
+<return> a #GMutexLocker
+</return>
+</function>
+
<function name="g_mutex_new">
<description>
Allocates and initializes a new #GMutex.
@@ -28118,7 +29676,7 @@ by @newval, %FALSE otherwise.
Releases all references to other objects. This can be used to break
reference cycles.
-This functions should only be called from object system implementations.
+This function should only be called from object system implementations.
</description>
<parameters>
@@ -28420,6 +29978,11 @@ It is an error to call this function when the freeze count is zero.
Decreases the reference count of @object. When its reference count
drops to 0, the object is finalized (i.e. its memory is freed).
+If the pointer to the #GObject may be reused in future (for example, if it is
+an instance variable of another object), it is recommended to clear the
+pointer to %NULL rather than retain a dangling pointer to a potentially
+invalid #GObject instance. Use g_clear_object() for this.
+
</description>
<parameters>
<parameter name="object">
@@ -28749,10 +30312,8 @@ from open().
<function name="g_option_context_add_group">
<description>
Adds a #GOptionGroup to the @context, so that parsing with @context
-will recognize the options in the group. Note that the group will
-be freed together with the context when g_option_context_free() is
-called, so you must not free the group yourself after adding it
-to a context.
+will recognize the options in the group. Note that this will take
+ownership of the @group and thus the @group should not be freed.
Since: 2.6
@@ -28918,9 +30479,29 @@ Since: 2.6
</parameter_description>
</parameter>
</parameters>
-<return> the main group of @context, or %NULL if @context doesn't
-have a main group. Note that group belongs to @context and should
-not be modified or freed.
+<return> the main group of @context, or %NULL if
+@context doesn't have a main group. Note that group belongs to
+@context and should not be modified or freed.
+
+</return>
+</function>
+
+<function name="g_option_context_get_strict_posix">
+<description>
+Returns whether strict POSIX code is enabled.
+
+See g_option_context_set_strict_posix() for more information.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GoptionContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if strict POSIX is enabled, %FALSE otherwise.
</return>
</function>
@@ -29174,6 +30755,49 @@ Since: 2.6
<return></return>
</function>
+<function name="g_option_context_set_strict_posix">
+<description>
+Sets strict POSIX mode.
+
+By default, this mode is disabled.
+
+In strict POSIX mode, the first non-argument parameter encountered
+(eg: filename) terminates argument processing. Remaining arguments
+are treated as non-options and are not attempted to be parsed.
+
+If strict POSIX mode is disabled then parsing is done in the GNU way
+where option arguments can be freely mixed with non-options.
+
+As an example, consider &quot;ls foo -l&quot;. With GNU style parsing, this
+will list &quot;foo&quot; in long mode. In strict POSIX style, this will list
+the files named &quot;foo&quot; and &quot;-l&quot;.
+
+It may be useful to force strict POSIX mode when creating &quot;verb
+style&quot; command line tools. For example, the &quot;gsettings&quot; command line
+tool supports the global option &quot;--schemadir&quot; as well as many
+subcommands (&quot;get&quot;, &quot;set&quot;, etc.) which each have their own set of
+arguments. Using strict POSIX mode will allow parsing the global
+options up to the verb name while leaving the remaining options to be
+parsed by the relevant subcommand (which can be determined by
+examining the verb name, which should be present in argv[1] after
+parsing).
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GoptionContext
+</parameter_description>
+</parameter>
+<parameter name="strict_posix">
+<parameter_description> the new value
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_option_context_set_summary">
<description>
Adds a string to be displayed in `--help` output before the list
@@ -29286,6 +30910,8 @@ which have been added to a #GOptionContext.
Since: 2.6
+Deprecated: 2.44: Use g_option_group_unref() instead.
+
</description>
<parameters>
<parameter name="group">
@@ -29332,7 +30958,25 @@ the error hook and to callbacks of %G_OPTION_ARG_CALLBACK options, or %NULL
</parameter>
</parameters>
<return> a newly created option group. It should be added
-to a #GOptionContext or freed with g_option_group_free().
+to a #GOptionContext or freed with g_option_group_unref().
+
+</return>
+</function>
+
+<function name="g_option_group_ref">
+<description>
+Increments the reference count of @group by one.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="group">
+<parameter_description> a #GOptionGroup
+</parameter_description>
+</parameter>
+</parameters>
+<return> a #GoptionGroup
</return>
</function>
@@ -29445,30 +31089,31 @@ Since: 2.6
<return></return>
</function>
-<function name="g_param_get_default_value">
+<function name="g_option_group_unref">
<description>
-Gets the default value of @param as a pointer to a #GValue.
+Decrements the reference count of @group by one.
+If the reference count drops to 0, the @group will be freed.
+and all memory allocated by the @group is released.
-The #GValue will remain value for the life of @param.
-
-Since: 2.38
+Since: 2.44
</description>
<parameters>
-<parameter name="param">
-<parameter_description> a #GParamSpec
+<parameter name="group">
+<parameter_description> a #GOptionGroup
</parameter_description>
</parameter>
</parameters>
-<return> a pointer to a #GValue which must not be modified
-
-</return>
+<return></return>
</function>
<function name="g_param_spec_boolean">
<description>
Creates a new #GParamSpecBoolean instance specifying a %G_TYPE_BOOLEAN
-property.
+property. In many cases, it may be more appropriate to use an enum with
+g_param_spec_enum(), both to improve code clarity by using explicitly named
+values, and to allow for more values to be added in future without breaking
+API.
See g_param_spec_internal() for details on property names.
@@ -29754,6 +31399,26 @@ Get the short description of a #GParamSpec.
</return>
</function>
+<function name="g_param_spec_get_default_value">
+<description>
+Gets the default value of @param as a pointer to a #GValue.
+
+The #GValue will remain value for the life of @param.
+
+Since: 2.38
+
+</description>
+<parameters>
+<parameter name="param">
+<parameter_description> a #GParamSpec
+</parameter_description>
+</parameter>
+</parameters>
+<return> a pointer to a #GValue which must not be modified
+
+</return>
+</function>
+
<function name="g_param_spec_get_name">
<description>
Get the name of a #GParamSpec.
@@ -30143,6 +31808,8 @@ See g_param_spec_internal() for details on property names.
<function name="g_param_spec_pointer">
<description>
Creates a new #GParamSpecPointer instance specifying a pointer property.
+Where possible, it is better to use g_param_spec_object() or
+g_param_spec_boxed() to expose memory management information.
See g_param_spec_internal() for details on property names.
@@ -31560,6 +33227,10 @@ the #GDestroyNotify for @key is not called on the old value.
If @dest is %NULL, free @src; otherwise, moves @src into *@dest.
The error variable @dest points to must be %NULL.
+Note that @src is no longer valid after this call. If you want
+to keep using the same GError*, you need to set it to %NULL
+after calling this function on it.
+
</description>
<parameters>
<parameter name="dest">
@@ -32429,9 +34100,10 @@ Since: 2.14
<function name="g_queue_insert_after">
<description>
-Inserts @data into @queue after @sibling
+Inserts @data into @queue after @sibling.
-@sibling must be part of @queue
+@sibling must be part of @queue. Since GLib 2.44 a %NULL sibling pushes the
+data at the head of the queue.
Since: 2.4
@@ -32442,7 +34114,8 @@ Since: 2.4
</parameter_description>
</parameter>
<parameter name="sibling">
-<parameter_description> a #GList link that must be part of @queue
+<parameter_description> a #GList link that must be part of @queue, or %NULL to
+push at the head of the queue.
</parameter_description>
</parameter>
<parameter name="data">
@@ -32457,7 +34130,8 @@ Since: 2.4
<description>
Inserts @data into @queue before @sibling.
-@sibling must be part of @queue.
+@sibling must be part of @queue. Since GLib 2.44 a %NULL sibling pushes the
+data at the tail of the queue.
Since: 2.4
@@ -32468,7 +34142,8 @@ Since: 2.4
</parameter_description>
</parameter>
<parameter name="sibling">
-<parameter_description> a #GList link that must be part of @queue
+<parameter_description> a #GList link that must be part of @queue, or %NULL to
+push at the tail of the queue.
</parameter_description>
</parameter>
<parameter name="data">
@@ -36765,6 +38440,52 @@ Since: 2.18
<return></return>
</function>
+<function name="g_set_object">
+<description>
+Updates a #GObject pointer to refer to @new_object. It increments the
+reference count of @new_object (if non-%NULL), decrements the reference
+count of the current value of @object_ptr (if non-%NULL), and assigns
+@new_object to @object_ptr. The assignment is not atomic.
+
+@object_ptr must not be %NULL.
+
+A macro is also included that allows this function to be used without
+pointer casts. The function itself is static inline, so its address may vary
+between compilation units.
+
+One convenient usage of this function is in implementing property setters:
+|[
+void
+foo_set_bar (Foo *foo,
+Bar *new_bar)
+{
+g_return_if_fail (IS_FOO (foo));
+g_return_if_fail (new_bar == NULL || IS_BAR (new_bar));
+
+if (g_set_object (&amp;foo-&gt;bar, new_bar))
+g_object_notify (foo, &quot;bar&quot;);
+}
+]|
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="object_ptr">
+<parameter_description> a pointer to a #GObject reference
+</parameter_description>
+</parameter>
+<parameter name="new_object">
+<parameter_description> a pointer to the new #GObject to
+assign to it, or %NULL to clear the pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the value of @object_ptr changed, %FALSE otherwise
+
+</return>
+</function>
+
<function name="g_set_prgname">
<description>
Sets the name of the program. This name should not be localized,
@@ -36828,10 +38549,9 @@ example.
<function name="g_setenv">
<description>
-Sets an environment variable. Both the variable's name and value
-should be in the GLib file name encoding. On UNIX, this means that
-they can be arbitrary byte strings. On Windows, they should be in
-UTF-8.
+Sets an environment variable. On UNIX, both the variable's name and
+value can be arbitrary byte strings, except that the variable's name
+cannot contain '='. On Windows, they should be in UTF-8.
Note that on some systems, when variables are overwritten, the memory
used for the previous variables and its value isn't reclaimed.
@@ -37493,7 +39213,9 @@ is being emitted on. The rest are any arguments to be passed to the signal.
</parameter_description>
</parameter>
<parameter name="return_value">
-<parameter_description> Location to store the return value of the signal emission.
+<parameter_description> Location to
+store the return value of the signal emission. This must be provided if the
+specified signal returns a value, but may be ignored otherwise.
</parameter_description>
</parameter>
</parameters>
@@ -37917,6 +39639,12 @@ and/or @data the handlers have to match.
Returns whether there are any handlers connected to @instance for the
given signal id and detail.
+If @detail is 0 then it will only match handlers that were connected
+without detail. If @detail is non-zero then it will match handlers
+connected both without detail and with the given detail. This is
+consistent with how a signal emitted with @detail would be delivered
+to those handlers.
+
One example of when you might use this is when the arguments to the
signal are difficult to compute. A class implementor may opt to not
emit the signal if no one is attached anyway, thus saving the cost
@@ -38427,6 +40155,33 @@ g_signal_add_emission_hook()
<return></return>
</function>
+<function name="g_signal_set_va_marshaller">
+<description>
+Change the #GSignalCVaMarshaller used for a given signal. This is a
+specialised form of the marshaller that can often be used for the
+common case of a single connected signal handler and avoids the
+overhead of #GValue. Its use is optional.
+
+Since: 2.32
+
+</description>
+<parameters>
+<parameter name="signal_id">
+<parameter_description> the signal id
+</parameter_description>
+</parameter>
+<parameter name="instance_type">
+<parameter_description> the instance type on which to set the marshaller.
+</parameter_description>
+</parameter>
+<parameter name="va_marshaller">
+<parameter_description> the marshaller to set.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_signal_stop_emission">
<description>
Stops a signal's current emission.
@@ -39231,7 +40986,8 @@ or %NULL if the #GSList has no elements
Gets the number of elements in a #GSList.
This function iterates over the whole list to
-count its elements.
+count its elements. To check whether the list is non-empty, it is faster to
+check @list against %NULL.
</description>
@@ -41582,6 +43338,69 @@ Deprectated: 2.32: Use g_rw_lock_writer_unlock() instead
<return></return>
</function>
+<function name="g_steal_pointer">
+<description>
+Sets @pp to %NULL, returning the value that was there before.
+
+Conceptually, this transfers the ownership of the pointer from the
+referenced variable to the &quot;caller&quot; of the macro (ie: &quot;steals&quot; the
+reference).
+
+The return value will be properly typed, according to the type of
+@pp.
+
+This can be very useful when combined with g_autoptr() to prevent the
+return value of a function from being automatically freed. Consider
+the following example (which only works on GCC and clang):
+
+|[
+GObject *
+create_object (void)
+{
+g_autoptr(GObject) obj = g_object_new (G_TYPE_OBJECT, NULL);
+
+if (early_error_case)
+return NULL;
+
+return g_steal_pointer (&amp;obj);
+}
+]|
+
+It can also be used in similar ways for 'out' parameters and is
+particularly useful for dealing with optional out parameters:
+
+|[
+gboolean
+get_object (GObject **obj_out)
+{
+g_autoptr(GObject) obj = g_object_new (G_TYPE_OBJECT, NULL);
+
+if (early_error_case)
+return FALSE;
+
+if (obj_out)
+*obj_out = g_steal_pointer (&amp;obj);
+
+return TRUE;
+}
+]|
+
+In the above example, the object will be automatically freed in the
+early error case and also in the case that %NULL was given for
+@obj_out.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="pp">
+<parameter_description> a pointer to a pointer
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
<function name="g_stpcpy">
<description>
Copies a nul-terminated string into the dest buffer, include the
@@ -42231,8 +44050,10 @@ characters escaped. See above.
<function name="g_strfreev">
<description>
-Frees a %NULL-terminated array of strings, and the array itself.
-If called on a %NULL value, g_strfreev() simply returns.
+Frees a %NULL-terminated array of strings, as well as each
+string it contains.
+
+If @str_array is %NULL, this function simply returns.
</description>
<parameters>
@@ -43775,6 +45596,28 @@ or g_utf8_strup() instead.
</return>
</function>
+<function name="g_strv_contains">
+<description>
+Checks if @strv contains @str. @strv must not be %NULL.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="strv">
+<parameter_description> a %NULL-terminated array of strings
+</parameter_description>
+</parameter>
+<parameter name="str">
+<parameter_description> a string
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if @str is an element of @strv, according to g_str_equal().
+
+</return>
+</function>
+
<function name="g_strv_length">
<description>
Returns the length of the given %NULL-terminated
@@ -43797,11 +45640,12 @@ Since: 2.6
<function name="g_test_add">
<description>
Hook up a new test case at @testpath, similar to g_test_add_func().
-A fixture data structure with setup and teardown function may be provided
-though, similar to g_test_create_case().
+A fixture data structure with setup and teardown functions may be provided,
+similar to g_test_create_case().
+
g_test_add() is implemented as a macro, so that the fsetup(), ftest() and
-fteardown() callbacks can expect a @Fixture pointer as first argument in
-a type safe manner.
+fteardown() callbacks can expect a @Fixture pointer as their first argument
+in a type safe manner. They otherwise have type #GTestFixtureFunc.
Since: 2.16
@@ -43852,15 +45696,15 @@ Since: 2.16
</description>
<parameters>
<parameter name="testpath">
-<parameter_description> /-separated test case path name for the test.
+<parameter_description> /-separated test case path name for the test.
</parameter_description>
</parameter>
<parameter name="test_data">
-<parameter_description> Test data argument for the test function.
+<parameter_description> Test data argument for the test function.
</parameter_description>
</parameter>
<parameter name="test_func">
-<parameter_description> The test function to invoke for this test.
+<parameter_description> The test function to invoke for this test.
</parameter_description>
</parameter>
</parameters>
@@ -43912,7 +45756,7 @@ Since: 2.16
</description>
<parameters>
<parameter name="testpath">
-<parameter_description> /-separated test case path name for the test.
+<parameter_description> /-separated test case path name for the test.
</parameter_description>
</parameter>
<parameter name="test_func">
@@ -44036,14 +45880,14 @@ Since: 2.38
Create a new #GTestCase, named @test_name, this API is fairly
low level, calling g_test_add() or g_test_add_func() is preferable.
When this test is executed, a fixture structure of size @data_size
-will be allocated and filled with 0s. Then @data_setup is called
-to initialize the fixture. After fixture setup, the actual test
-function @data_test is called. Once the test run completed, the
-fixture structure is torn down by calling @data_teardown and
-after that the memory is released.
+will be automatically allocated and filled with zeros. Then @data_setup is
+called to initialize the fixture. After fixture setup, the actual test
+function @data_test is called. Once the test run completes, the
+fixture structure is torn down by calling @data_teardown and
+after that the memory is automatically released by the test framework.
Splitting up a test run into fixture setup, test function and
-fixture teardown is most usful if the same fixture is used for
+fixture teardown is most useful if the same fixture is used for
multiple tests. In this cases, g_test_create_case() will be
called with the same fixture, but varying @test_name and
@data_test arguments.
@@ -44065,11 +45909,11 @@ Since: 2.16
</parameter_description>
</parameter>
<parameter name="data_setup">
-<parameter_description> the function to set up the fixture data
+<parameter_description> the function to set up the fixture data
</parameter_description>
</parameter>
<parameter name="data_test">
-<parameter_description> the actual test function
+<parameter_description> the actual test function
</parameter_description>
</parameter>
<parameter name="data_teardown">
@@ -45641,6 +47485,29 @@ Returns the number of currently unused threads.
</return>
</function>
+<function name="g_thread_pool_move_to_front">
+<description>
+Moves the item to the front of the queue of unprocessed
+items, so that it will be processed next.
+
+Since: 2.46
+
+</description>
+<parameters>
+<parameter name="pool">
+<parameter_description> a #GThreadPool
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> an unprocessed item in the pool
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the item was found and moved
+
+</return>
+</function>
+
<function name="g_thread_pool_new">
<description>
This function creates a new thread pool.
@@ -45668,7 +47535,7 @@ global pool.
@error can be %NULL to ignore errors, or non-%NULL to report
errors. An error can only occur when @exclusive is set to %TRUE
and not all @max_threads threads could be created.
-See #GThreadError for possible errors that may occurr.
+See #GThreadError for possible errors that may occur.
Note, even in case of error a valid #GThreadPool is returned.
@@ -45910,7 +47777,7 @@ Since: 2.32
<function name="g_thread_self">
<description>
-This functions returns the #GThread corresponding to the
+This function returns the #GThread corresponding to the
current thread. Note that this function does not increase
the reference count of the returned struct.
@@ -46454,8 +48321,10 @@ g_timeout_add_seconds() function; this function allows for more
optimizations and more efficient system power usage.
This internally creates a main loop source using g_timeout_source_new()
-and attaches it to the main loop context using g_source_attach(). You can
-do these steps manually if you need greater control.
+and attaches it to the global #GMainContext using g_source_attach(), so
+the callback will be invoked in whichever thread is running that main
+context. You can do these steps manually if you need greater control or to
+use a custom main context.
The interval given is in terms of monotonic time, not wall clock
time. See g_get_monotonic_time().
@@ -46497,8 +48366,10 @@ timeout is recalculated based on the current time and the given interval
(it does not try to 'catch up' time lost in delays).
This internally creates a main loop source using g_timeout_source_new()
-and attaches it to the main loop context using g_source_attach(). You can
-do these steps manually if you need greater control.
+and attaches it to the global #GMainContext using g_source_attach(), so
+the callback will be invoked in whichever thread is running that main
+context. You can do these steps manually if you need greater control or to
+use a custom main context.
The interval given in terms of monotonic time, not wall clock time.
See g_get_monotonic_time().
@@ -47447,7 +49318,9 @@ Since: 2.8
<description>
Attempts to realloc @mem to a new size, @n_bytes, and returns %NULL
on failure. Contrast with g_realloc(), which aborts the program
-on failure. If @mem is %NULL, behaves the same as g_try_malloc().
+on failure.
+
+If @mem is %NULL, behaves the same as g_try_malloc().
</description>
@@ -48182,6 +50055,28 @@ or 0 if the type system ran out of fundamental type IDs
</return>
</function>
+<function name="g_type_get_instance_count">
+<description>
+Returns the number of instances allocated of the particular type;
+this is only available if GLib is built with debugging support and
+the instance_count debug flag is set (by setting the GOBJECT_DEBUG
+variable to include instance-count).
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="type">
+<parameter_description> a #GType
+</parameter_description>
+</parameter>
+</parameters>
+<return> the number of instances allocated of the given type;
+if instance counts are not available, returns 0.
+
+</return>
+</function>
+
<function name="g_type_get_plugin">
<description>
Returns the #GTypePlugin structure for @type.
@@ -53777,7 +55672,7 @@ Since: 2.30
Similar to g_variant_get_string() except that instead of returning
a constant string, the string is duplicated.
-The string will always be utf8 encoded.
+The string will always be UTF-8 encoded.
The return value must be freed using g_free().
@@ -53794,7 +55689,7 @@ Since: 2.24
</parameter_description>
</parameter>
</parameters>
-<return> a newly allocated string, utf8 encoded
+<return> a newly allocated string, UTF-8 encoded
</return>
</function>
@@ -54205,17 +56100,6 @@ the fixed array
</return>
</function>
-<function name="g_variant_get_gtype">
-<description>
-Since: 2.24
-Deprecated: 2.26
-
-</description>
-<parameters>
-</parameters>
-<return></return>
-</function>
-
<function name="g_variant_get_handle">
<description>
Returns the 32-bit signed integer value of @value.
@@ -54421,7 +56305,7 @@ Returns the string value of a #GVariant instance with a string
type. This includes the types %G_VARIANT_TYPE_STRING,
%G_VARIANT_TYPE_OBJECT_PATH and %G_VARIANT_TYPE_SIGNATURE.
-The string will always be utf8 encoded.
+The string will always be UTF-8 encoded.
If @length is non-%NULL then the length of the string (in bytes) is
returned there. For trusted values, this information is already
@@ -54446,7 +56330,7 @@ to store the length
</parameter_description>
</parameter>
</parameters>
-<return> the constant string, utf8 encoded
+<return> the constant string, UTF-8 encoded
</return>
</function>
@@ -55388,7 +57272,7 @@ Since: 2.24
<description>
Creates an array-of-bytes #GVariant with the contents of @string.
This function is just like g_variant_new_string() except that the
-string need not be valid utf8.
+string need not be valid UTF-8.
The nul terminator character at the end of the string is stored in
the array.
@@ -55908,14 +57792,14 @@ Since: 2.24
<description>
Creates a string #GVariant with the contents of @string.
-@string must be valid utf8.
+@string must be valid UTF-8.
Since: 2.24
</description>
<parameters>
<parameter name="string">
-<parameter_description> a normal utf8 nul-terminated string
+<parameter_description> a normal UTF-8 nul-terminated string
</parameter_description>
</parameter>
</parameters>
@@ -55953,7 +57837,7 @@ Since: 2.24
<description>
Creates a string #GVariant with the contents of @string.
-@string must be valid utf8.
+@string must be valid UTF-8.
This function consumes @string. g_free() will be called on @string
when it is no longer required.
@@ -55967,7 +57851,7 @@ Since: 2.38
</description>
<parameters>
<parameter name="string">
-<parameter_description> a normal utf8 nul-terminated string
+<parameter_description> a normal UTF-8 nul-terminated string
</parameter_description>
</parameter>
</parameters>
@@ -56169,7 +58053,8 @@ errors (in the case that the type would have been ambiguous, such as
with empty arrays).
In the event that the parsing is successful, the resulting #GVariant
-is returned.
+is returned. It is never floating, and must be freed with
+g_variant_unref().
In case of any error, %NULL will be returned. If @error is non-%NULL
then it will be set to reflect the error that occurred.
@@ -56201,7 +58086,7 @@ produced by g_variant_print()&quot;.
</parameter_description>
</parameter>
</parameters>
-<return> a reference to a #GVariant, or %NULL
+<return> a non-floating reference to a #GVariant, or %NULL
</return>
</function>
@@ -57578,6 +59463,48 @@ Since: 2.32
<return></return>
</function>
+<function name="g_win32_check_windows_version">
+<description>
+Returns whether the version of the Windows operating system the
+code is running on is at least the specified major, minor and
+service pack versions. See MSDN documentation for the Operating
+System Version. Software that needs even more detailed version and
+feature information should use the Win32 API VerifyVersionInfo()
+directly.
+
+Successive calls of this function can be used for enabling or
+disabling features at run-time for a range of Windows versions,
+as per the VerifyVersionInfo() API documentation.
+
+Since: 2.44
+
+</description>
+<parameters>
+<parameter name="major">
+<parameter_description> major version of Windows
+</parameter_description>
+</parameter>
+<parameter name="minor">
+<parameter_description> minor version of Windows
+</parameter_description>
+</parameter>
+<parameter name="spver">
+<parameter_description> Windows Service Pack Level, 0 if none
+</parameter_description>
+</parameter>
+<parameter name="os_type">
+<parameter_description> Type of Windows OS
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the Windows Version is the same or greater than
+the specified major, minor and service pack versions, and
+whether the running Windows is a workstation or server edition
+of Windows, if specifically specified.
+
+</return>
+</function>
+
<function name="g_win32_error_message">
<description>
Translate a Win32 error code (as returned by GetLastError() or
@@ -57788,17 +59715,14 @@ freed with g_free() when no longer needed. If something goes wrong,
<function name="g_win32_get_windows_version">
<description>
-Returns version information for the Windows operating system the
-code is running on. See MSDN documentation for the GetVersion()
-function. To summarize, the most significant bit is one on Win9x,
-and zero on NT-based systems. Since version 2.14, GLib works only
-on NT-based systems, so checking whether your are running on Win9x
-in your own software is moot. The least significant byte is 4 on
-Windows NT 4, and 5 on Windows XP. Software that needs really
-detailed version and feature information should use Win32 API like
-GetVersionEx() and VerifyVersionInfo().
+This function is deprecated. Use
+g_win32_check_windows_version() instead.
-Since: 2.6
+Deprecated: 2.44: Be aware that for Windows 8.1 and Windows Server
+2012 R2 and later, this will return 62 unless the application is
+manifested for Windows 8.1/Windows Server 2012 R2, for example.
+MSDN stated that GetVersion(), which is used here, is subject to
+further change or removal after Windows 8.1.
</description>
<parameters>
@@ -58274,7 +60198,7 @@ Values of this type can range from #G_MINSSIZE
to #G_MAXSSIZE.
To print or scan values of this type, use
-%G_GSIZE_MODIFIER and/or %G_GSSIZE_FORMAT.
+%G_GSSIZE_MODIFIER and/or %G_GSSIZE_FORMAT.
</description>
<parameters>
diff --git a/glib/src/glib_docs_override.xml b/glib/src/glib_docs_override.xml
index 77c4d222..9eee1064 100644
--- a/glib/src/glib_docs_override.xml
+++ b/glib/src/glib_docs_override.xml
@@ -46,6 +46,7 @@ Loads a key file into an empty KeyFile instance.
If the file could not be loaded then a FileError or KeyFileError exception is thrown.
Since: 2.6
+
\throw Glib::FileError
\throw Glib::KeyFileError
</description>
diff --git a/glib/src/glib_enums.defs b/glib/src/glib_enums.defs
index 8b6851df..3c93f084 100644
--- a/glib/src/glib_enums.defs
+++ b/glib/src/glib_enums.defs
@@ -963,23 +963,65 @@
(c-name "GVariantParseError")
(values
'("failed" "G_VARIANT_PARSE_ERROR_FAILED" "0")
- '("basic_type_expected" "G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED" "1")
- '("cannot_infer_type" "G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE" "2")
- '("definite_type_expected" "G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED" "3")
- '("input_not_at_end" "G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END" "4")
- '("invalid_character" "G_VARIANT_PARSE_ERROR_INVALID_CHARACTER" "5")
- '("invalid_format_string" "G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING" "6")
- '("invalid_object_path" "G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH" "7")
- '("invalid_signature" "G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE" "8")
- '("invalid_type_string" "G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING" "9")
- '("no_common_type" "G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE" "10")
- '("number_out_of_range" "G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE" "11")
- '("number_too_big" "G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG" "12")
- '("type_error" "G_VARIANT_PARSE_ERROR_TYPE_ERROR" "13")
- '("unexpected_token" "G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN" "14")
- '("unknown_keyword" "G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD" "15")
- '("unterminated_string_constant" "G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT" "16")
- '("value_expected" "G_VARIANT_PARSE_ERROR_VALUE_EXPECTED" "17")
+ '("basic-type-expected" "G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED" "1")
+ '("cannot-infer-type" "G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE" "2")
+ '("definite-type-expected" "G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED" "3")
+ '("input-not-at-end" "G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END" "4")
+ '("invalid-character" "G_VARIANT_PARSE_ERROR_INVALID_CHARACTER" "5")
+ '("invalid-format-string" "G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING" "6")
+ '("invalid-object-path" "G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH" "7")
+ '("invalid-signature" "G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE" "8")
+ '("invalid-type-string" "G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING" "9")
+ '("no-common-type" "G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE" "10")
+ '("number-out-of-range" "G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE" "11")
+ '("number-too-big" "G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG" "12")
+ '("type-error" "G_VARIANT_PARSE_ERROR_TYPE_ERROR" "13")
+ '("unexpected-token" "G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN" "14")
+ '("unknown-keyword" "G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD" "15")
+ '("unterminated-string-constant" "G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT" "16")
+ '("value-expected" "G_VARIANT_PARSE_ERROR_VALUE_EXPECTED" "17")
+ )
+)
+
+;; From gwin32.h
+
+;; Original typedef:
+;; typedef enum
+;; {
+;; G_WIN32_OS_ANY,
+;; G_WIN32_OS_WORKSTATION,
+;; G_WIN32_OS_SERVER,
+;; } GWin32OSType;
+
+(define-enum-extended Win32OSType
+ (in-module "G")
+ (c-name "GWin32OSType")
+ (values
+ '("any" "G_WIN32_OS_ANY" "0")
+ '("workstation" "G_WIN32_OS_WORKSTATION" "1")
+ '("server" "G_WIN32_OS_SERVER" "2")
+ )
+)
+
+;; From gthread.h
+
+;; Original typedef:
+;; typedef enum
+;; {
+;; G_THREAD_PRIORITY_LOW,
+;; G_THREAD_PRIORITY_NORMAL,
+;; G_THREAD_PRIORITY_HIGH,
+;; G_THREAD_PRIORITY_URGENT
+;; } GThreadPriority;
+
+(define-enum-extended ThreadPriority
+ (in-module "G")
+ (c-name "GThreadPriority")
+ (values
+ '("low" "G_THREAD_PRIORITY_LOW" "0")
+ '("normal" "G_THREAD_PRIORITY_NORMAL" "1")
+ '("high" "G_THREAD_PRIORITY_HIGH" "2")
+ '("urgent" "G_THREAD_PRIORITY_URGENT" "3")
)
)
diff --git a/glib/src/glib_enums.defs.patch b/glib/src/glib_enums.defs.patch
index feac2c2a..022f3b18 100644
--- a/glib/src/glib_enums.defs.patch
+++ b/glib/src/glib_enums.defs.patch
@@ -1,6 +1,8 @@
---- glib_enums.defs 2012-02-28 12:17:21.000000000 -0500
-+++ glib_enums.defs.new 2012-02-28 12:00:52.000000000 -0500
-@@ -386,16 +386,24 @@
+--- ./../../glib/src/glib_enums.defs.orig 2015-07-24 16:56:29.570857821 +0200
++++ ./../../glib/src/glib_enums.defs 2015-07-24 16:56:29.706864274 +0200
+@@ -464,20 +464,28 @@
+ ;; G_IO_ERR GLIB_SYSDEF_POLLERR,
+ ;; G_IO_HUP GLIB_SYSDEF_POLLHUP,
;; G_IO_NVAL GLIB_SYSDEF_POLLNVAL
;; } GIOCondition;
@@ -31,22 +33,5 @@
)
)
-@@ -411,6 +419,10 @@
- ;; G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK,
- ;; G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK
- ;; } GIOFlags;
-+;; Note that we add is-writeable in glibmm to preserve API.
-+;; They do that with a #define in glib, though an enum would have been OK:
-+;; See http://git.gnome.org/browse/glib/commit/glib/giochannel.h?id=0d1a2eb4bfcd733e0c015c76fb0ca0308b8a61f0
-+;; and https://bugzilla.gnome.org/show_bug.cgi?id=657045#c6
+ ;; From gmarkup.h
- (define-flags-extended IOFlags
- (in-module "G")
-@@ -419,6 +431,7 @@
- '("append" "G_IO_FLAG_APPEND" "1 << 0")
- '("nonblock" "G_IO_FLAG_NONBLOCK" "1 << 1")
- '("is-readable" "G_IO_FLAG_IS_READABLE" "1 << 2")
-+ '("is-writeable" "G_IO_FLAG_IS_WRITEABLE" "1 << 3")
- '("is-writable" "G_IO_FLAG_IS_WRITABLE" "1 << 3")
- '("is-seekable" "G_IO_FLAG_IS_SEEKABLE" "1 << 4")
- '("mask" "G_IO_FLAG_MASK" "(1 << 5) - 1")
diff --git a/glib/src/glib_functions.defs b/glib/src/glib_functions.defs
index 3d55e45d..87445f69 100644
--- a/glib/src/glib_functions.defs
+++ b/glib/src/glib_functions.defs
@@ -657,10 +657,49 @@
(return-type "none")
)
-(define-method unref_to_array
- (of-object "GBytes")
- (c-name "g_bytes_unref_to_array")
- (return-type "const-GByteArray*")
+(define-method remove
+ (of-object "GAsyncQueue")
+ (c-name "g_async_queue_remove")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "item")
+ )
+)
+
+(define-method remove_unlocked
+ (of-object "GAsyncQueue")
+ (c-name "g_async_queue_remove_unlocked")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "item")
+ )
+)
+
+(define-method push_front
+ (of-object "GAsyncQueue")
+ (c-name "g_async_queue_push_front")
+ (return-type "none")
+ (parameters
+ '("gpointer" "item")
+ )
+)
+
+(define-method push_front_unlocked
+ (of-object "GAsyncQueue")
+ (c-name "g_async_queue_push_front_unlocked")
+ (return-type "none")
+ (parameters
+ '("gpointer" "item")
+ )
+)
+
+(define-method timed_pop
+ (of-object "GAsyncQueue")
+ (c-name "g_async_queue_timed_pop")
+ (return-type "gpointer")
+ (parameters
+ '("GTimeVal*" "end_time")
+ )
)
(define-method unref_to_data
@@ -672,9 +711,13 @@
)
)
-(define-function new
- (c-name "g_checksum_new")
- (return-type "GChecksum*")
+
+
+;; From gatomic.h
+
+(define-function g_atomic_int_get
+ (c-name "g_atomic_int_get")
+ (return-type "gint")
(parameters
'("GChecksumType" "checksum_type")
)
@@ -1474,10 +1517,14 @@
)
)
-(define-method get_hash_table
- (of-object "GHashTableIter")
- (c-name "g_hash_table_iter_get_hash_table")
- (return-type "GHashTable*")
+
+
+;; From gchecksum.h
+
+(define-method get_length
+ (of-object "GChecksumType")
+ (c-name "g_checksum_type_get_length")
+ (return-type "gssize")
)
(define-method init
@@ -2058,10 +2105,19 @@
)
)
-(define-method get_locale_string
- (of-object "GKeyFile")
- (c-name "g_key_file_get_locale_string")
- (return-type "gchar*")
+
+
+;; From gdate.h
+
+(define-function g_date_new
+ (c-name "g_date_new")
+ (is-constructor-of "GDate")
+ (return-type "GDate*")
+)
+
+(define-function g_date_new_dmy
+ (c-name "g_date_new_dmy")
+ (return-type "GDate*")
(parameters
'("const-gchar*" "group_name")
'("const-gchar*" "key")
@@ -2585,12 +2641,7935 @@
)
)
+(define-function g_date_time_new_from_timeval_local
+ (c-name "g_date_time_new_from_timeval_local")
+ (return-type "GDateTime*")
+ (parameters
+ '("const-GTimeVal*" "tv")
+ )
+)
+
+(define-function g_date_time_new_from_timeval_utc
+ (c-name "g_date_time_new_from_timeval_utc")
+ (return-type "GDateTime*")
+ (parameters
+ '("const-GTimeVal*" "tv")
+ )
+)
+
+(define-function g_date_time_new
+ (c-name "g_date_time_new")
+ (is-constructor-of "GDateTime")
+ (return-type "GDateTime*")
+ (parameters
+ '("GTimeZone*" "tz")
+ '("gint" "year")
+ '("gint" "month")
+ '("gint" "day")
+ '("gint" "hour")
+ '("gint" "minute")
+ '("gdouble" "seconds")
+ )
+)
+
+(define-function g_date_time_new_local
+ (c-name "g_date_time_new_local")
+ (return-type "GDateTime*")
+ (parameters
+ '("gint" "year")
+ '("gint" "month")
+ '("gint" "day")
+ '("gint" "hour")
+ '("gint" "minute")
+ '("gdouble" "seconds")
+ )
+)
+
+(define-function g_date_time_new_utc
+ (c-name "g_date_time_new_utc")
+ (return-type "GDateTime*")
+ (parameters
+ '("gint" "year")
+ '("gint" "month")
+ '("gint" "day")
+ '("gint" "hour")
+ '("gint" "minute")
+ '("gdouble" "seconds")
+ )
+)
+
+(define-method add
+ (of-object "GDateTime")
+ (c-name "g_date_time_add")
+ (return-type "GDateTime*")
+ (parameters
+ '("GTimeSpan" "timespan")
+ )
+)
+
+(define-method add_years
+ (of-object "GDateTime")
+ (c-name "g_date_time_add_years")
+ (return-type "GDateTime*")
+ (parameters
+ '("gint" "years")
+ )
+)
+
+(define-method add_months
+ (of-object "GDateTime")
+ (c-name "g_date_time_add_months")
+ (return-type "GDateTime*")
+ (parameters
+ '("gint" "months")
+ )
+)
+
+(define-method add_weeks
+ (of-object "GDateTime")
+ (c-name "g_date_time_add_weeks")
+ (return-type "GDateTime*")
+ (parameters
+ '("gint" "weeks")
+ )
+)
+
+(define-method add_days
+ (of-object "GDateTime")
+ (c-name "g_date_time_add_days")
+ (return-type "GDateTime*")
+ (parameters
+ '("gint" "days")
+ )
+)
+
+(define-method add_hours
+ (of-object "GDateTime")
+ (c-name "g_date_time_add_hours")
+ (return-type "GDateTime*")
+ (parameters
+ '("gint" "hours")
+ )
+)
+
+(define-method add_minutes
+ (of-object "GDateTime")
+ (c-name "g_date_time_add_minutes")
+ (return-type "GDateTime*")
+ (parameters
+ '("gint" "minutes")
+ )
+)
+
+(define-method add_seconds
+ (of-object "GDateTime")
+ (c-name "g_date_time_add_seconds")
+ (return-type "GDateTime*")
+ (parameters
+ '("gdouble" "seconds")
+ )
+)
+
+(define-method add_full
+ (of-object "GDateTime")
+ (c-name "g_date_time_add_full")
+ (return-type "GDateTime*")
+ (parameters
+ '("gint" "years")
+ '("gint" "months")
+ '("gint" "days")
+ '("gint" "hours")
+ '("gint" "minutes")
+ '("gdouble" "seconds")
+ )
+)
+
+(define-function g_date_time_compare
+ (c-name "g_date_time_compare")
+ (return-type "gint")
+ (parameters
+ '("gconstpointer" "dt1")
+ '("gconstpointer" "dt2")
+ )
+)
+
+(define-method difference
+ (of-object "GDateTime")
+ (c-name "g_date_time_difference")
+ (return-type "GTimeSpan")
+ (parameters
+ '("GDateTime*" "begin")
+ )
+)
+
+(define-function g_date_time_hash
+ (c-name "g_date_time_hash")
+ (return-type "guint")
+ (parameters
+ '("gconstpointer" "datetime")
+ )
+)
+
+(define-function g_date_time_equal
+ (c-name "g_date_time_equal")
+ (return-type "gboolean")
+ (parameters
+ '("gconstpointer" "dt1")
+ '("gconstpointer" "dt2")
+ )
+)
+
+(define-method get_ymd
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_ymd")
+ (return-type "none")
+ (parameters
+ '("gint*" "year")
+ '("gint*" "month")
+ '("gint*" "day")
+ )
+)
+
+(define-method get_year
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_year")
+ (return-type "gint")
+)
+
+(define-method get_month
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_month")
+ (return-type "gint")
+)
+
+(define-method get_day_of_month
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_day_of_month")
+ (return-type "gint")
+)
+
+(define-method get_week_numbering_year
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_week_numbering_year")
+ (return-type "gint")
+)
+
+(define-method get_week_of_year
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_week_of_year")
+ (return-type "gint")
+)
+
+(define-method get_day_of_week
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_day_of_week")
+ (return-type "gint")
+)
+
+(define-method get_day_of_year
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_day_of_year")
+ (return-type "gint")
+)
+
+(define-method get_hour
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_hour")
+ (return-type "gint")
+)
+
+(define-method get_minute
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_minute")
+ (return-type "gint")
+)
+
+(define-method get_second
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_second")
+ (return-type "gint")
+)
+
+(define-method get_microsecond
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_microsecond")
+ (return-type "gint")
+)
+
+(define-method get_seconds
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_seconds")
+ (return-type "gdouble")
+)
+
+(define-method to_unix
+ (of-object "GDateTime")
+ (c-name "g_date_time_to_unix")
+ (return-type "gint64")
+)
+
+(define-method to_timeval
+ (of-object "GDateTime")
+ (c-name "g_date_time_to_timeval")
+ (return-type "gboolean")
+ (parameters
+ '("GTimeVal*" "tv")
+ )
+)
+
+(define-method get_utc_offset
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_utc_offset")
+ (return-type "GTimeSpan")
+)
+
+(define-method get_timezone_abbreviation
+ (of-object "GDateTime")
+ (c-name "g_date_time_get_timezone_abbreviation")
+ (return-type "const-gchar*")
+)
+
+(define-method is_daylight_savings
+ (of-object "GDateTime")
+ (c-name "g_date_time_is_daylight_savings")
+ (return-type "gboolean")
+)
+
+(define-method to_timezone
+ (of-object "GDateTime")
+ (c-name "g_date_time_to_timezone")
+ (return-type "GDateTime*")
+ (parameters
+ '("GTimeZone*" "tz")
+ )
+)
+
+(define-method to_local
+ (of-object "GDateTime")
+ (c-name "g_date_time_to_local")
+ (return-type "GDateTime*")
+)
+
+(define-method to_utc
+ (of-object "GDateTime")
+ (c-name "g_date_time_to_utc")
+ (return-type "GDateTime*")
+)
+
+(define-method format
+ (of-object "GDateTime")
+ (c-name "g_date_time_format")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "format")
+ )
+)
+
+
+
+;; From gdir.h
+
+(define-function g_dir_open
+ (c-name "g_dir_open")
+ (return-type "GDir*")
+ (parameters
+ '("const-gchar*" "path")
+ '("guint" "flags")
+ '("GError**" "error")
+ )
+)
+
+(define-method read_name
+ (of-object "GDir")
+ (c-name "g_dir_read_name")
+ (return-type "const-gchar*")
+)
+
+(define-method rewind
+ (of-object "GDir")
+ (c-name "g_dir_rewind")
+ (return-type "none")
+)
+
+(define-method close
+ (of-object "GDir")
+ (c-name "g_dir_close")
+ (return-type "none")
+)
+
+(define-function g_dir_open_utf8
+ (c-name "g_dir_open_utf8")
+ (return-type "GDir*")
+ (parameters
+ '("const-gchar*" "path")
+ '("guint" "flags")
+ '("GError**" "error")
+ )
+)
+
+(define-method read_name_utf8
+ (of-object "GDir")
+ (c-name "g_dir_read_name_utf8")
+ (return-type "const-gchar*")
+)
+
+
+
+;; From genviron.h
+
+(define-function g_getenv
+ (c-name "g_getenv")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "variable")
+ )
+)
+
+(define-function g_setenv
+ (c-name "g_setenv")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "variable")
+ '("const-gchar*" "value")
+ '("gboolean" "overwrite")
+ )
+)
+
+(define-function g_unsetenv
+ (c-name "g_unsetenv")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "variable")
+ )
+)
+
+(define-function g_listenv
+ (c-name "g_listenv")
+ (return-type "gchar**")
+)
+
+(define-function g_get_environ
+ (c-name "g_get_environ")
+ (return-type "gchar**")
+)
+
+(define-function g_environ_getenv
+ (c-name "g_environ_getenv")
+ (return-type "const-gchar*")
+ (parameters
+ '("gchar**" "envp")
+ '("const-gchar*" "variable")
+ )
+)
+
+(define-function g_environ_setenv
+ (c-name "g_environ_setenv")
+ (return-type "gchar**")
+ (parameters
+ '("gchar**" "envp")
+ '("const-gchar*" "variable")
+ '("const-gchar*" "value")
+ '("gboolean" "overwrite")
+ )
+)
+
+(define-function g_environ_unsetenv
+ (c-name "g_environ_unsetenv")
+ (return-type "gchar**")
+ (parameters
+ '("gchar**" "envp")
+ '("const-gchar*" "variable")
+ )
+)
+
+(define-function g_getenv_utf8
+ (c-name "g_getenv_utf8")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "variable")
+ )
+)
+
+(define-function g_setenv_utf8
+ (c-name "g_setenv_utf8")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "variable")
+ '("const-gchar*" "value")
+ '("gboolean" "overwrite")
+ )
+)
+
+(define-function g_unsetenv_utf8
+ (c-name "g_unsetenv_utf8")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "variable")
+ )
+)
+
+
+
+;; From gerror.h
+
+(define-function g_error_new
+ (c-name "g_error_new")
+ (is-constructor-of "GError")
+ (return-type "GError*")
+ (parameters
+ '("GQuark" "domain")
+ '("gint" "code")
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_error_new_literal
+ (c-name "g_error_new_literal")
+ (return-type "GError*")
+ (parameters
+ '("GQuark" "domain")
+ '("gint" "code")
+ '("const-gchar*" "message")
+ )
+)
+
+(define-function g_error_new_valist
+ (c-name "g_error_new_valist")
+ (return-type "GError*")
+ (parameters
+ '("GQuark" "domain")
+ '("gint" "code")
+ '("const-gchar*" "format")
+ '("va_list" "args")
+ )
+)
+
+(define-method free
+ (of-object "GError")
+ (c-name "g_error_free")
+ (return-type "none")
+)
+
+(define-method copy
+ (of-object "GError")
+ (c-name "g_error_copy")
+ (return-type "GError*")
+)
+
+(define-method matches
+ (of-object "GError")
+ (c-name "g_error_matches")
+ (return-type "gboolean")
+ (parameters
+ '("GQuark" "domain")
+ '("gint" "code")
+ )
+)
+
+(define-function g_set_error
+ (c-name "g_set_error")
+ (return-type "none")
+ (parameters
+ '("GError**" "err")
+ '("GQuark" "domain")
+ '("gint" "code")
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_set_error_literal
+ (c-name "g_set_error_literal")
+ (return-type "none")
+ (parameters
+ '("GError**" "err")
+ '("GQuark" "domain")
+ '("gint" "code")
+ '("const-gchar*" "message")
+ )
+)
+
+(define-function g_propagate_error
+ (c-name "g_propagate_error")
+ (return-type "none")
+ (parameters
+ '("GError**" "dest")
+ '("GError*" "src")
+ )
+)
+
+(define-function g_clear_error
+ (c-name "g_clear_error")
+ (return-type "none")
+ (parameters
+ '("GError**" "err")
+ )
+)
+
+(define-function g_prefix_error
+ (c-name "g_prefix_error")
+ (return-type "none")
+ (parameters
+ '("GError**" "err")
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_propagate_prefixed_error
+ (c-name "g_propagate_prefixed_error")
+ (return-type "none")
+ (parameters
+ '("GError**" "dest")
+ '("GError*" "src")
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+
+
+;; From gfileutils.h
+
+(define-function g_file_error_quark
+ (c-name "g_file_error_quark")
+ (return-type "GQuark")
+)
+
+(define-function g_file_error_from_errno
+ (c-name "g_file_error_from_errno")
+ (return-type "GFileError")
+ (parameters
+ '("gint" "err_no")
+ )
+)
+
+(define-function g_file_test
+ (c-name "g_file_test")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "filename")
+ '("GFileTest" "test")
+ )
+)
+
+(define-function g_file_get_contents
+ (c-name "g_file_get_contents")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "filename")
+ '("gchar**" "contents")
+ '("gsize*" "length")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_file_set_contents
+ (c-name "g_file_set_contents")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "filename")
+ '("const-gchar*" "contents")
+ '("gssize" "length")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_file_read_link
+ (c-name "g_file_read_link")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "filename")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_mkdtemp
+ (c-name "g_mkdtemp")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "tmpl")
+ )
+)
+
+(define-function g_mkdtemp_full
+ (c-name "g_mkdtemp_full")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "tmpl")
+ '("gint" "mode")
+ )
+)
+
+(define-function g_mkstemp
+ (c-name "g_mkstemp")
+ (return-type "gint")
+ (parameters
+ '("gchar*" "tmpl")
+ )
+)
+
+(define-function g_mkstemp_full
+ (c-name "g_mkstemp_full")
+ (return-type "gint")
+ (parameters
+ '("gchar*" "tmpl")
+ '("gint" "flags")
+ '("gint" "mode")
+ )
+)
+
+(define-function g_file_open_tmp
+ (c-name "g_file_open_tmp")
+ (return-type "gint")
+ (parameters
+ '("const-gchar*" "tmpl")
+ '("gchar**" "name_used")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_dir_make_tmp
+ (c-name "g_dir_make_tmp")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "tmpl")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_build_path
+ (c-name "g_build_path")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "separator")
+ '("const-gchar*" "first_element")
+ )
+ (varargs #t)
+)
+
+(define-function g_build_pathv
+ (c-name "g_build_pathv")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "separator")
+ '("gchar**" "args")
+ )
+)
+
+(define-function g_build_filename
+ (c-name "g_build_filename")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "first_element")
+ )
+ (varargs #t)
+)
+
+(define-function g_build_filenamev
+ (c-name "g_build_filenamev")
+ (return-type "gchar*")
+ (parameters
+ '("gchar**" "args")
+ )
+)
+
+(define-function g_mkdir_with_parents
+ (c-name "g_mkdir_with_parents")
+ (return-type "gint")
+ (parameters
+ '("const-gchar*" "pathname")
+ '("gint" "mode")
+ )
+)
+
+(define-function g_path_is_absolute
+ (c-name "g_path_is_absolute")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "file_name")
+ )
+)
+
+(define-function g_path_skip_root
+ (c-name "g_path_skip_root")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "file_name")
+ )
+)
+
+(define-function g_basename
+ (c-name "g_basename")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "file_name")
+ )
+)
+
+(define-function g_get_current_dir
+ (c-name "g_get_current_dir")
+ (return-type "gchar*")
+)
+
+(define-function g_path_get_basename
+ (c-name "g_path_get_basename")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "file_name")
+ )
+)
+
+(define-function g_path_get_dirname
+ (c-name "g_path_get_dirname")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "file_name")
+ )
+)
+
+(define-function g_file_test_utf8
+ (c-name "g_file_test_utf8")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "filename")
+ '("GFileTest" "test")
+ )
+)
+
+(define-function g_file_get_contents_utf8
+ (c-name "g_file_get_contents_utf8")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "filename")
+ '("gchar**" "contents")
+ '("gsize*" "length")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_mkstemp_utf8
+ (c-name "g_mkstemp_utf8")
+ (return-type "gint")
+ (parameters
+ '("gchar*" "tmpl")
+ )
+)
+
+(define-function g_file_open_tmp_utf8
+ (c-name "g_file_open_tmp_utf8")
+ (return-type "gint")
+ (parameters
+ '("const-gchar*" "tmpl")
+ '("gchar**" "name_used")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_get_current_dir_utf8
+ (c-name "g_get_current_dir_utf8")
+ (return-type "gchar*")
+)
+
+
+
+;; From ggettext.h
+
+(define-function g_strip_context
+ (c-name "g_strip_context")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "msgid")
+ '("const-gchar*" "msgval")
+ )
+)
+
+(define-function g_dgettext
+ (c-name "g_dgettext")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "domain")
+ '("const-gchar*" "msgid")
+ )
+)
+
+(define-function g_dcgettext
+ (c-name "g_dcgettext")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "domain")
+ '("const-gchar*" "msgid")
+ '("gint" "category")
+ )
+)
+
+(define-function g_dngettext
+ (c-name "g_dngettext")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "domain")
+ '("const-gchar*" "msgid")
+ '("const-gchar*" "msgid_plural")
+ '("gulong" "n")
+ )
+)
+
+(define-function g_dpgettext
+ (c-name "g_dpgettext")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "domain")
+ '("const-gchar*" "msgctxtid")
+ '("gsize" "msgidoffset")
+ )
+)
+
+(define-function g_dpgettext2
+ (c-name "g_dpgettext2")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "domain")
+ '("const-gchar*" "context")
+ '("const-gchar*" "msgid")
+ )
+)
+
+
+
+;; From ghash.h
+
+(define-function g_hash_table_new
+ (c-name "g_hash_table_new")
+ (is-constructor-of "GHashTable")
+ (return-type "GHashTable*")
+ (parameters
+ '("GHashFunc" "hash_func")
+ '("GEqualFunc" "key_equal_func")
+ )
+)
+
+(define-function g_hash_table_new_full
+ (c-name "g_hash_table_new_full")
+ (return-type "GHashTable*")
+ (parameters
+ '("GHashFunc" "hash_func")
+ '("GEqualFunc" "key_equal_func")
+ '("GDestroyNotify" "key_destroy_func")
+ '("GDestroyNotify" "value_destroy_func")
+ )
+)
+
+(define-method destroy
+ (of-object "GHashTable")
+ (c-name "g_hash_table_destroy")
+ (return-type "none")
+)
+
+(define-method insert
+ (of-object "GHashTable")
+ (c-name "g_hash_table_insert")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "key")
+ '("gpointer" "value")
+ )
+)
+
+(define-method replace
+ (of-object "GHashTable")
+ (c-name "g_hash_table_replace")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "key")
+ '("gpointer" "value")
+ )
+)
+
+(define-method add
+ (of-object "GHashTable")
+ (c-name "g_hash_table_add")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "key")
+ )
+)
+
+(define-method remove
+ (of-object "GHashTable")
+ (c-name "g_hash_table_remove")
+ (return-type "gboolean")
+ (parameters
+ '("gconstpointer" "key")
+ )
+)
+
+(define-method remove_all
+ (of-object "GHashTable")
+ (c-name "g_hash_table_remove_all")
+ (return-type "none")
+)
+
+(define-method steal
+ (of-object "GHashTable")
+ (c-name "g_hash_table_steal")
+ (return-type "gboolean")
+ (parameters
+ '("gconstpointer" "key")
+ )
+)
+
+(define-method steal_all
+ (of-object "GHashTable")
+ (c-name "g_hash_table_steal_all")
+ (return-type "none")
+)
+
+(define-method lookup
+ (of-object "GHashTable")
+ (c-name "g_hash_table_lookup")
+ (return-type "gpointer")
+ (parameters
+ '("gconstpointer" "key")
+ )
+)
+
+(define-method contains
+ (of-object "GHashTable")
+ (c-name "g_hash_table_contains")
+ (return-type "gboolean")
+ (parameters
+ '("gconstpointer" "key")
+ )
+)
+
+(define-method lookup_extended
+ (of-object "GHashTable")
+ (c-name "g_hash_table_lookup_extended")
+ (return-type "gboolean")
+ (parameters
+ '("gconstpointer" "lookup_key")
+ '("gpointer*" "orig_key")
+ '("gpointer*" "value")
+ )
+)
+
+(define-method foreach
+ (of-object "GHashTable")
+ (c-name "g_hash_table_foreach")
+ (return-type "none")
+ (parameters
+ '("GHFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method find
+ (of-object "GHashTable")
+ (c-name "g_hash_table_find")
+ (return-type "gpointer")
+ (parameters
+ '("GHRFunc" "predicate")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method foreach_remove
+ (of-object "GHashTable")
+ (c-name "g_hash_table_foreach_remove")
+ (return-type "guint")
+ (parameters
+ '("GHRFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method foreach_steal
+ (of-object "GHashTable")
+ (c-name "g_hash_table_foreach_steal")
+ (return-type "guint")
+ (parameters
+ '("GHRFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method size
+ (of-object "GHashTable")
+ (c-name "g_hash_table_size")
+ (return-type "guint")
+)
+
+(define-method get_keys
+ (of-object "GHashTable")
+ (c-name "g_hash_table_get_keys")
+ (return-type "GList*")
+)
+
+(define-method get_values
+ (of-object "GHashTable")
+ (c-name "g_hash_table_get_values")
+ (return-type "GList*")
+)
+
+(define-method get_keys_as_array
+ (of-object "GHashTable")
+ (c-name "g_hash_table_get_keys_as_array")
+ (return-type "gpointer*")
+ (parameters
+ '("guint*" "length")
+ )
+)
+
+(define-method init
+ (of-object "GHashTableIter")
+ (c-name "g_hash_table_iter_init")
+ (return-type "none")
+ (parameters
+ '("GHashTable*" "hash_table")
+ )
+)
+
+(define-method next
+ (of-object "GHashTableIter")
+ (c-name "g_hash_table_iter_next")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer*" "key")
+ '("gpointer*" "value")
+ )
+)
+
+(define-method get_hash_table
+ (of-object "GHashTableIter")
+ (c-name "g_hash_table_iter_get_hash_table")
+ (return-type "GHashTable*")
+)
+
+(define-method remove
+ (of-object "GHashTableIter")
+ (c-name "g_hash_table_iter_remove")
+ (return-type "none")
+)
+
+(define-method replace
+ (of-object "GHashTableIter")
+ (c-name "g_hash_table_iter_replace")
+ (return-type "none")
+ (parameters
+ '("gpointer" "value")
+ )
+)
+
+(define-method steal
+ (of-object "GHashTableIter")
+ (c-name "g_hash_table_iter_steal")
+ (return-type "none")
+)
+
+(define-method ref
+ (of-object "GHashTable")
+ (c-name "g_hash_table_ref")
+ (return-type "GHashTable*")
+)
+
+(define-method unref
+ (of-object "GHashTable")
+ (c-name "g_hash_table_unref")
+ (return-type "none")
+)
+
+(define-function g_str_equal
+ (c-name "g_str_equal")
+ (return-type "gboolean")
+ (parameters
+ '("gconstpointer" "v1")
+ '("gconstpointer" "v2")
+ )
+)
+
+(define-function g_str_hash
+ (c-name "g_str_hash")
+ (return-type "guint")
+ (parameters
+ '("gconstpointer" "v")
+ )
+)
+
+(define-function g_int_equal
+ (c-name "g_int_equal")
+ (return-type "gboolean")
+ (parameters
+ '("gconstpointer" "v1")
+ '("gconstpointer" "v2")
+ )
+)
+
+(define-function g_int_hash
+ (c-name "g_int_hash")
+ (return-type "guint")
+ (parameters
+ '("gconstpointer" "v")
+ )
+)
+
+(define-function g_int64_equal
+ (c-name "g_int64_equal")
+ (return-type "gboolean")
+ (parameters
+ '("gconstpointer" "v1")
+ '("gconstpointer" "v2")
+ )
+)
+
+(define-function g_int64_hash
+ (c-name "g_int64_hash")
+ (return-type "guint")
+ (parameters
+ '("gconstpointer" "v")
+ )
+)
+
+(define-function g_double_equal
+ (c-name "g_double_equal")
+ (return-type "gboolean")
+ (parameters
+ '("gconstpointer" "v1")
+ '("gconstpointer" "v2")
+ )
+)
+
+(define-function g_double_hash
+ (c-name "g_double_hash")
+ (return-type "guint")
+ (parameters
+ '("gconstpointer" "v")
+ )
+)
+
+(define-function g_direct_hash
+ (c-name "g_direct_hash")
+ (return-type "guint")
+ (parameters
+ '("gconstpointer" "v")
+ )
+)
+
+(define-function g_direct_equal
+ (c-name "g_direct_equal")
+ (return-type "gboolean")
+ (parameters
+ '("gconstpointer" "v1")
+ '("gconstpointer" "v2")
+ )
+)
+
+
+
+;; From ghmac.h
+
+(define-function g_hmac_new
+ (c-name "g_hmac_new")
+ (is-constructor-of "GHmac")
+ (return-type "GHmac*")
+ (parameters
+ '("GChecksumType" "digest_type")
+ '("const-guchar*" "key")
+ '("gsize" "key_len")
+ )
+)
+
+(define-method copy
+ (of-object "GHmac")
+ (c-name "g_hmac_copy")
+ (return-type "GHmac*")
+)
+
+(define-method ref
+ (of-object "GHmac")
+ (c-name "g_hmac_ref")
+ (return-type "GHmac*")
+)
+
+(define-method unref
+ (of-object "GHmac")
+ (c-name "g_hmac_unref")
+ (return-type "none")
+)
+
+(define-method update
+ (of-object "GHmac")
+ (c-name "g_hmac_update")
+ (return-type "none")
+ (parameters
+ '("const-guchar*" "data")
+ '("gssize" "length")
+ )
+)
+
+(define-method get_string
+ (of-object "GHmac")
+ (c-name "g_hmac_get_string")
+ (return-type "const-gchar*")
+)
+
+(define-method get_digest
+ (of-object "GHmac")
+ (c-name "g_hmac_get_digest")
+ (return-type "none")
+ (parameters
+ '("guint8*" "buffer")
+ '("gsize*" "digest_len")
+ )
+)
+
+(define-function g_compute_hmac_for_data
+ (c-name "g_compute_hmac_for_data")
+ (return-type "gchar*")
+ (parameters
+ '("GChecksumType" "digest_type")
+ '("const-guchar*" "key")
+ '("gsize" "key_len")
+ '("const-guchar*" "data")
+ '("gsize" "length")
+ )
+)
+
+(define-function g_compute_hmac_for_string
+ (c-name "g_compute_hmac_for_string")
+ (return-type "gchar*")
+ (parameters
+ '("GChecksumType" "digest_type")
+ '("const-guchar*" "key")
+ '("gsize" "key_len")
+ '("const-gchar*" "str")
+ '("gssize" "length")
+ )
+)
+
+
+
+;; From ghook.h
+
+(define-method init
+ (of-object "GHookList")
+ (c-name "g_hook_list_init")
+ (return-type "none")
+ (parameters
+ '("guint" "hook_size")
+ )
+)
+
+(define-method clear
+ (of-object "GHookList")
+ (c-name "g_hook_list_clear")
+ (return-type "none")
+)
+
+(define-function g_hook_alloc
+ (c-name "g_hook_alloc")
+ (return-type "GHook*")
+ (parameters
+ '("GHookList*" "hook_list")
+ )
+)
+
+(define-function g_hook_free
+ (c-name "g_hook_free")
+ (return-type "none")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("GHook*" "hook")
+ )
+)
+
+(define-function g_hook_ref
+ (c-name "g_hook_ref")
+ (return-type "GHook*")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("GHook*" "hook")
+ )
+)
+
+(define-function g_hook_unref
+ (c-name "g_hook_unref")
+ (return-type "none")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("GHook*" "hook")
+ )
+)
+
+(define-function g_hook_destroy
+ (c-name "g_hook_destroy")
+ (return-type "gboolean")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("gulong" "hook_id")
+ )
+)
+
+(define-function g_hook_destroy_link
+ (c-name "g_hook_destroy_link")
+ (return-type "none")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("GHook*" "hook")
+ )
+)
+
+(define-function g_hook_prepend
+ (c-name "g_hook_prepend")
+ (return-type "none")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("GHook*" "hook")
+ )
+)
+
+(define-function g_hook_insert_before
+ (c-name "g_hook_insert_before")
+ (return-type "none")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("GHook*" "sibling")
+ '("GHook*" "hook")
+ )
+)
+
+(define-function g_hook_insert_sorted
+ (c-name "g_hook_insert_sorted")
+ (return-type "none")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("GHook*" "hook")
+ '("GHookCompareFunc" "func")
+ )
+)
+
+(define-function g_hook_get
+ (c-name "g_hook_get")
+ (return-type "GHook*")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("gulong" "hook_id")
+ )
+)
+
+(define-function g_hook_find
+ (c-name "g_hook_find")
+ (return-type "GHook*")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("gboolean" "need_valids")
+ '("GHookFindFunc" "func")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_hook_find_data
+ (c-name "g_hook_find_data")
+ (return-type "GHook*")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("gboolean" "need_valids")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_hook_find_func
+ (c-name "g_hook_find_func")
+ (return-type "GHook*")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("gboolean" "need_valids")
+ '("gpointer" "func")
+ )
+)
+
+(define-function g_hook_find_func_data
+ (c-name "g_hook_find_func_data")
+ (return-type "GHook*")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("gboolean" "need_valids")
+ '("gpointer" "func")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_hook_first_valid
+ (c-name "g_hook_first_valid")
+ (return-type "GHook*")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("gboolean" "may_be_in_call")
+ )
+)
+
+(define-function g_hook_next_valid
+ (c-name "g_hook_next_valid")
+ (return-type "GHook*")
+ (parameters
+ '("GHookList*" "hook_list")
+ '("GHook*" "hook")
+ '("gboolean" "may_be_in_call")
+ )
+)
+
+(define-method compare_ids
+ (of-object "GHook")
+ (c-name "g_hook_compare_ids")
+ (return-type "gint")
+ (parameters
+ '("GHook*" "sibling")
+ )
+)
+
+(define-method invoke
+ (of-object "GHookList")
+ (c-name "g_hook_list_invoke")
+ (return-type "none")
+ (parameters
+ '("gboolean" "may_recurse")
+ )
+)
+
+(define-method invoke_check
+ (of-object "GHookList")
+ (c-name "g_hook_list_invoke_check")
+ (return-type "none")
+ (parameters
+ '("gboolean" "may_recurse")
+ )
+)
+
+(define-method marshal
+ (of-object "GHookList")
+ (c-name "g_hook_list_marshal")
+ (return-type "none")
+ (parameters
+ '("gboolean" "may_recurse")
+ '("GHookMarshaller" "marshaller")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-method marshal_check
+ (of-object "GHookList")
+ (c-name "g_hook_list_marshal_check")
+ (return-type "none")
+ (parameters
+ '("gboolean" "may_recurse")
+ '("GHookCheckMarshaller" "marshaller")
+ '("gpointer" "marshal_data")
+ )
+)
+
+
+
+;; From ghostutils.h
+
+(define-function g_hostname_is_non_ascii
+ (c-name "g_hostname_is_non_ascii")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "hostname")
+ )
+)
+
+(define-function g_hostname_is_ascii_encoded
+ (c-name "g_hostname_is_ascii_encoded")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "hostname")
+ )
+)
+
+(define-function g_hostname_is_ip_address
+ (c-name "g_hostname_is_ip_address")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "hostname")
+ )
+)
+
+(define-function g_hostname_to_ascii
+ (c-name "g_hostname_to_ascii")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "hostname")
+ )
+)
+
+(define-function g_hostname_to_unicode
+ (c-name "g_hostname_to_unicode")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "hostname")
+ )
+)
+
+
+
+;; From gi18n.h
+
+
+
+;; From gi18n-lib.h
+
+
+
+;; From giochannel.h
+
+(define-method init
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_init")
+ (return-type "none")
+)
+
+(define-method ref
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_ref")
+ (return-type "GIOChannel*")
+)
+
+(define-method unref
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_unref")
+ (return-type "none")
+)
+
+(define-method read
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_read")
+ (return-type "GIOError")
+ (parameters
+ '("gchar*" "buf")
+ '("gsize" "count")
+ '("gsize*" "bytes_read")
+ )
+)
+
+(define-method write
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_write")
+ (return-type "GIOError")
+ (parameters
+ '("const-gchar*" "buf")
+ '("gsize" "count")
+ '("gsize*" "bytes_written")
+ )
+)
+
+(define-method seek
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_seek")
+ (return-type "GIOError")
+ (parameters
+ '("gint64" "offset")
+ '("GSeekType" "type")
+ )
+)
+
+(define-method close
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_close")
+ (return-type "none")
+)
+
+(define-method shutdown
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_shutdown")
+ (return-type "GIOStatus")
+ (parameters
+ '("gboolean" "flush")
+ '("GError**" "err")
+ )
+)
+
+(define-function g_io_add_watch_full
+ (c-name "g_io_add_watch_full")
+ (return-type "guint")
+ (parameters
+ '("GIOChannel*" "channel")
+ '("gint" "priority")
+ '("GIOCondition" "condition")
+ '("GIOFunc" "func")
+ '("gpointer" "user_data")
+ '("GDestroyNotify" "notify")
+ )
+)
+
+(define-function g_io_create_watch
+ (c-name "g_io_create_watch")
+ (return-type "GSource*")
+ (parameters
+ '("GIOChannel*" "channel")
+ '("GIOCondition" "condition")
+ )
+)
+
+(define-function g_io_add_watch
+ (c-name "g_io_add_watch")
+ (return-type "guint")
+ (parameters
+ '("GIOChannel*" "channel")
+ '("GIOCondition" "condition")
+ '("GIOFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method set_buffer_size
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_set_buffer_size")
+ (return-type "none")
+ (parameters
+ '("gsize" "size")
+ )
+)
+
+(define-method get_buffer_size
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_get_buffer_size")
+ (return-type "gsize")
+)
+
+(define-method get_buffer_condition
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_get_buffer_condition")
+ (return-type "GIOCondition")
+)
+
+(define-method set_flags
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_set_flags")
+ (return-type "GIOStatus")
+ (parameters
+ '("GIOFlags" "flags")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_flags
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_get_flags")
+ (return-type "GIOFlags")
+)
+
+(define-method set_line_term
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_set_line_term")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "line_term")
+ '("gint" "length")
+ )
+)
+
+(define-method get_line_term
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_get_line_term")
+ (return-type "const-gchar*")
+ (parameters
+ '("gint*" "length")
+ )
+)
+
+(define-method set_buffered
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_set_buffered")
+ (return-type "none")
+ (parameters
+ '("gboolean" "buffered")
+ )
+)
+
+(define-method get_buffered
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_get_buffered")
+ (return-type "gboolean")
+)
+
+(define-method set_encoding
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_set_encoding")
+ (return-type "GIOStatus")
+ (parameters
+ '("const-gchar*" "encoding")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_encoding
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_get_encoding")
+ (return-type "const-gchar*")
+)
+
+(define-method set_close_on_unref
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_set_close_on_unref")
+ (return-type "none")
+ (parameters
+ '("gboolean" "do_close")
+ )
+)
+
+(define-method get_close_on_unref
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_get_close_on_unref")
+ (return-type "gboolean")
+)
+
+(define-method flush
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_flush")
+ (return-type "GIOStatus")
+ (parameters
+ '("GError**" "error")
+ )
+)
+
+(define-method read_line
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_read_line")
+ (return-type "GIOStatus")
+ (parameters
+ '("gchar**" "str_return")
+ '("gsize*" "length")
+ '("gsize*" "terminator_pos")
+ '("GError**" "error")
+ )
+)
+
+(define-method read_line_string
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_read_line_string")
+ (return-type "GIOStatus")
+ (parameters
+ '("GString*" "buffer")
+ '("gsize*" "terminator_pos")
+ '("GError**" "error")
+ )
+)
+
+(define-method read_to_end
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_read_to_end")
+ (return-type "GIOStatus")
+ (parameters
+ '("gchar**" "str_return")
+ '("gsize*" "length")
+ '("GError**" "error")
+ )
+)
+
+(define-method read_chars
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_read_chars")
+ (return-type "GIOStatus")
+ (parameters
+ '("gchar*" "buf")
+ '("gsize" "count")
+ '("gsize*" "bytes_read")
+ '("GError**" "error")
+ )
+)
+
+(define-method read_unichar
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_read_unichar")
+ (return-type "GIOStatus")
+ (parameters
+ '("gunichar*" "thechar")
+ '("GError**" "error")
+ )
+)
+
+(define-method write_chars
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_write_chars")
+ (return-type "GIOStatus")
+ (parameters
+ '("const-gchar*" "buf")
+ '("gssize" "count")
+ '("gsize*" "bytes_written")
+ '("GError**" "error")
+ )
+)
+
+(define-method write_unichar
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_write_unichar")
+ (return-type "GIOStatus")
+ (parameters
+ '("gunichar" "thechar")
+ '("GError**" "error")
+ )
+)
+
+(define-method seek_position
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_seek_position")
+ (return-type "GIOStatus")
+ (parameters
+ '("gint64" "offset")
+ '("GSeekType" "type")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_io_channel_new_file
+ (c-name "g_io_channel_new_file")
+ (return-type "GIOChannel*")
+ (parameters
+ '("const-gchar*" "filename")
+ '("const-gchar*" "mode")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_io_channel_error_quark
+ (c-name "g_io_channel_error_quark")
+ (return-type "GQuark")
+)
+
+(define-function g_io_channel_error_from_errno
+ (c-name "g_io_channel_error_from_errno")
+ (return-type "GIOChannelError")
+ (parameters
+ '("gint" "en")
+ )
+)
+
+(define-function g_io_channel_unix_new
+ (c-name "g_io_channel_unix_new")
+ (is-constructor-of "GIoChannelUnix")
+ (return-type "GIOChannel*")
+ (parameters
+ '("int" "fd")
+ )
+)
+
+(define-method unix_get_fd
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_unix_get_fd")
+ (return-type "gint")
+)
+
+(define-method win32_make_pollfd
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_win32_make_pollfd")
+ (return-type "none")
+ (parameters
+ '("GIOCondition" "condition")
+ '("GPollFD*" "fd")
+ )
+)
+
+(define-function g_io_channel_win32_poll
+ (c-name "g_io_channel_win32_poll")
+ (return-type "gint")
+ (parameters
+ '("GPollFD*" "fds")
+ '("gint" "n_fds")
+ '("gint" "timeout_")
+ )
+)
+
+(define-function g_io_channel_win32_new_messages
+ (c-name "g_io_channel_win32_new_messages")
+ (return-type "GIOChannel*")
+ (parameters
+ '("gsize" "hwnd")
+ )
+)
+
+(define-function g_io_channel_win32_new_fd
+ (c-name "g_io_channel_win32_new_fd")
+ (return-type "GIOChannel*")
+ (parameters
+ '("gint" "fd")
+ )
+)
+
+(define-method win32_get_fd
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_win32_get_fd")
+ (return-type "gint")
+)
+
+(define-function g_io_channel_win32_new_socket
+ (c-name "g_io_channel_win32_new_socket")
+ (return-type "GIOChannel*")
+ (parameters
+ '("gint" "socket")
+ )
+)
+
+(define-function g_io_channel_win32_new_stream_socket
+ (c-name "g_io_channel_win32_new_stream_socket")
+ (return-type "GIOChannel*")
+ (parameters
+ '("gint" "socket")
+ )
+)
+
+(define-method win32_set_debug
+ (of-object "GIOChannel")
+ (c-name "g_io_channel_win32_set_debug")
+ (return-type "none")
+ (parameters
+ '("gboolean" "flag")
+ )
+)
+
+(define-function g_io_channel_new_file_utf8
+ (c-name "g_io_channel_new_file_utf8")
+ (return-type "GIOChannel*")
+ (parameters
+ '("const-gchar*" "filename")
+ '("const-gchar*" "mode")
+ '("GError**" "error")
+ )
+)
+
+
+
+;; From gkeyfile.h
+
+(define-function g_key_file_error_quark
+ (c-name "g_key_file_error_quark")
+ (return-type "GQuark")
+)
+
+(define-function g_key_file_new
+ (c-name "g_key_file_new")
+ (is-constructor-of "GKeyFile")
+ (return-type "GKeyFile*")
+)
+
+(define-method ref
+ (of-object "GKeyFile")
+ (c-name "g_key_file_ref")
+ (return-type "GKeyFile*")
+)
+
+(define-method unref
+ (of-object "GKeyFile")
+ (c-name "g_key_file_unref")
+ (return-type "none")
+)
+
+(define-method free
+ (of-object "GKeyFile")
+ (c-name "g_key_file_free")
+ (return-type "none")
+)
+
+(define-method set_list_separator
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_list_separator")
+ (return-type "none")
+ (parameters
+ '("gchar" "separator")
+ )
+)
+
+(define-method load_from_file
+ (of-object "GKeyFile")
+ (c-name "g_key_file_load_from_file")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "file")
+ '("GKeyFileFlags" "flags")
+ '("GError**" "error")
+ )
+)
+
+(define-method load_from_data
+ (of-object "GKeyFile")
+ (c-name "g_key_file_load_from_data")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "data")
+ '("gsize" "length")
+ '("GKeyFileFlags" "flags")
+ '("GError**" "error")
+ )
+)
+
+(define-method load_from_dirs
+ (of-object "GKeyFile")
+ (c-name "g_key_file_load_from_dirs")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "file")
+ '("const-gchar**" "search_dirs")
+ '("gchar**" "full_path")
+ '("GKeyFileFlags" "flags")
+ '("GError**" "error")
+ )
+)
+
+(define-method load_from_data_dirs
+ (of-object "GKeyFile")
+ (c-name "g_key_file_load_from_data_dirs")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "file")
+ '("gchar**" "full_path")
+ '("GKeyFileFlags" "flags")
+ '("GError**" "error")
+ )
+)
+
+(define-method to_data
+ (of-object "GKeyFile")
+ (c-name "g_key_file_to_data")
+ (return-type "gchar*")
+ (parameters
+ '("gsize*" "length")
+ '("GError**" "error")
+ )
+)
+
+(define-method save_to_file
+ (of-object "GKeyFile")
+ (c-name "g_key_file_save_to_file")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "filename")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_start_group
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_start_group")
+ (return-type "gchar*")
+)
+
+(define-method get_groups
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_groups")
+ (return-type "gchar**")
+ (parameters
+ '("gsize*" "length")
+ )
+)
+
+(define-method get_keys
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_keys")
+ (return-type "gchar**")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("gsize*" "length")
+ '("GError**" "error")
+ )
+)
+
+(define-method has_group
+ (of-object "GKeyFile")
+ (c-name "g_key_file_has_group")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "group_name")
+ )
+)
+
+(define-method has_key
+ (of-object "GKeyFile")
+ (c-name "g_key_file_has_key")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_value
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_value")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_value
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_value")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("const-gchar*" "value")
+ )
+)
+
+(define-method get_string
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_string")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_string
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_string")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("const-gchar*" "string")
+ )
+)
+
+(define-method get_locale_string
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_locale_string")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("const-gchar*" "locale")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_locale_string
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_locale_string")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("const-gchar*" "locale")
+ '("const-gchar*" "string")
+ )
+)
+
+(define-method get_boolean
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_boolean")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_boolean
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_boolean")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("gboolean" "value")
+ )
+)
+
+(define-method get_integer
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_integer")
+ (return-type "gint")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_integer
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_integer")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("gint" "value")
+ )
+)
+
+(define-method get_int64
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_int64")
+ (return-type "gint64")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_int64
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_int64")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("gint64" "value")
+ )
+)
+
+(define-method get_uint64
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_uint64")
+ (return-type "guint64")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_uint64
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_uint64")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("guint64" "value")
+ )
+)
+
+(define-method get_double
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_double")
+ (return-type "gdouble")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_double
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_double")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("gdouble" "value")
+ )
+)
+
+(define-method get_string_list
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_string_list")
+ (return-type "gchar**")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("gsize*" "length")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_string_list
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_string_list")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("const-gchar*-const[]" "list")
+ '("gsize" "length")
+ )
+)
+
+(define-method get_locale_string_list
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_locale_string_list")
+ (return-type "gchar**")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("const-gchar*" "locale")
+ '("gsize*" "length")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_locale_string_list
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_locale_string_list")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("const-gchar*" "locale")
+ '("const-gchar*-const[]" "list")
+ '("gsize" "length")
+ )
+)
+
+(define-method get_boolean_list
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_boolean_list")
+ (return-type "gboolean*")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("gsize*" "length")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_boolean_list
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_boolean_list")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("gboolean[]" "list")
+ '("gsize" "length")
+ )
+)
+
+(define-method get_integer_list
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_integer_list")
+ (return-type "gint*")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("gsize*" "length")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_double_list
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_double_list")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("gdouble[]" "list")
+ '("gsize" "length")
+ )
+)
+
+(define-method get_double_list
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_double_list")
+ (return-type "gdouble*")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("gsize*" "length")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_integer_list
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_integer_list")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("gint[]" "list")
+ '("gsize" "length")
+ )
+)
+
+(define-method set_comment
+ (of-object "GKeyFile")
+ (c-name "g_key_file_set_comment")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("const-gchar*" "comment")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_comment
+ (of-object "GKeyFile")
+ (c-name "g_key_file_get_comment")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method remove_comment
+ (of-object "GKeyFile")
+ (c-name "g_key_file_remove_comment")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method remove_key
+ (of-object "GKeyFile")
+ (c-name "g_key_file_remove_key")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("const-gchar*" "key")
+ '("GError**" "error")
+ )
+)
+
+(define-method remove_group
+ (of-object "GKeyFile")
+ (c-name "g_key_file_remove_group")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "group_name")
+ '("GError**" "error")
+ )
+)
+
+
+
+;; From glib-autocleanups.h
+
+(define-function g_autoptr_cleanup_generic_gfree
+ (c-name "g_autoptr_cleanup_generic_gfree")
+ (return-type "none")
+ (parameters
+ '("void*" "p")
+ )
+)
+
+
+
+;; From glibconfig.h
+
+
+
+;; From glib.h
+
+
+
+;; From glib-init.h
+
+(define-function g_thread_win32_thread_detach
+ (c-name "g_thread_win32_thread_detach")
+ (return-type "none")
+)
+
+(define-function g_thread_win32_init
+ (c-name "g_thread_win32_init")
+ (return-type "none")
+)
+
+(define-function g_clock_win32_init
+ (c-name "g_clock_win32_init")
+ (return-type "none")
+)
+
+
+
+;; From glibintl.h
+
+(define-function glib_gettext
+ (c-name "glib_gettext")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "str")
+ )
+)
+
+(define-function glib_pgettext
+ (c-name "glib_pgettext")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "msgctxtid")
+ '("gsize" "msgidoffset")
+ )
+)
+
+
+
+;; From glib-object.h
+
+
+
+;; From glib_trace.h
+
+
+
+;; From glib-unix.h
+
+(define-function g_unix_error_quark
+ (c-name "g_unix_error_quark")
+ (return-type "GQuark")
+)
+
+(define-function g_unix_open_pipe
+ (c-name "g_unix_open_pipe")
+ (return-type "gboolean")
+ (parameters
+ '("gint*" "fds")
+ '("gint" "flags")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_unix_set_fd_nonblocking
+ (c-name "g_unix_set_fd_nonblocking")
+ (return-type "gboolean")
+ (parameters
+ '("gint" "fd")
+ '("gboolean" "nonblock")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_unix_signal_source_new
+ (c-name "g_unix_signal_source_new")
+ (is-constructor-of "GUnixSignalSource")
+ (return-type "GSource*")
+ (parameters
+ '("gint" "signum")
+ )
+)
+
+(define-function g_unix_signal_add_full
+ (c-name "g_unix_signal_add_full")
+ (return-type "guint")
+ (parameters
+ '("gint" "priority")
+ '("gint" "signum")
+ '("GSourceFunc" "handler")
+ '("gpointer" "user_data")
+ '("GDestroyNotify" "notify")
+ )
+)
+
+(define-function g_unix_signal_add
+ (c-name "g_unix_signal_add")
+ (return-type "guint")
+ (parameters
+ '("gint" "signum")
+ '("GSourceFunc" "handler")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-function g_unix_fd_source_new
+ (c-name "g_unix_fd_source_new")
+ (is-constructor-of "GUnixFdSource")
+ (return-type "GSource*")
+ (parameters
+ '("gint" "fd")
+ '("GIOCondition" "condition")
+ )
+)
+
+(define-function g_unix_fd_add_full
+ (c-name "g_unix_fd_add_full")
+ (return-type "guint")
+ (parameters
+ '("gint" "priority")
+ '("gint" "fd")
+ '("GIOCondition" "condition")
+ '("GUnixFDSourceFunc" "function")
+ '("gpointer" "user_data")
+ '("GDestroyNotify" "notify")
+ )
+)
+
+(define-function g_unix_fd_add
+ (c-name "g_unix_fd_add")
+ (return-type "guint")
+ (parameters
+ '("gint" "fd")
+ '("GIOCondition" "condition")
+ '("GUnixFDSourceFunc" "function")
+ '("gpointer" "user_data")
+ )
+)
+
+
+
+;; From glist.h
+
+(define-function g_list_alloc
+ (c-name "g_list_alloc")
+ (return-type "GList*")
+)
+
+(define-method free
+ (of-object "GList")
+ (c-name "g_list_free")
+ (return-type "none")
+)
+
+(define-method free_1
+ (of-object "GList")
+ (c-name "g_list_free_1")
+ (return-type "none")
+)
+
+(define-method free_full
+ (of-object "GList")
+ (c-name "g_list_free_full")
+ (return-type "none")
+ (parameters
+ '("GDestroyNotify" "free_func")
+ )
+)
+
+(define-method append
+ (of-object "GList")
+ (c-name "g_list_append")
+ (return-type "GList*")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-method prepend
+ (of-object "GList")
+ (c-name "g_list_prepend")
+ (return-type "GList*")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-method insert
+ (of-object "GList")
+ (c-name "g_list_insert")
+ (return-type "GList*")
+ (parameters
+ '("gpointer" "data")
+ '("gint" "position")
+ )
+)
+
+(define-method insert_sorted
+ (of-object "GList")
+ (c-name "g_list_insert_sorted")
+ (return-type "GList*")
+ (parameters
+ '("gpointer" "data")
+ '("GCompareFunc" "func")
+ )
+)
+
+(define-method insert_sorted_with_data
+ (of-object "GList")
+ (c-name "g_list_insert_sorted_with_data")
+ (return-type "GList*")
+ (parameters
+ '("gpointer" "data")
+ '("GCompareDataFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method insert_before
+ (of-object "GList")
+ (c-name "g_list_insert_before")
+ (return-type "GList*")
+ (parameters
+ '("GList*" "sibling")
+ '("gpointer" "data")
+ )
+)
+
+(define-method concat
+ (of-object "GList")
+ (c-name "g_list_concat")
+ (return-type "GList*")
+ (parameters
+ '("GList*" "list2")
+ )
+)
+
+(define-method remove
+ (of-object "GList")
+ (c-name "g_list_remove")
+ (return-type "GList*")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method remove_all
+ (of-object "GList")
+ (c-name "g_list_remove_all")
+ (return-type "GList*")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method remove_link
+ (of-object "GList")
+ (c-name "g_list_remove_link")
+ (return-type "GList*")
+ (parameters
+ '("GList*" "llink")
+ )
+)
+
+(define-method delete_link
+ (of-object "GList")
+ (c-name "g_list_delete_link")
+ (return-type "GList*")
+ (parameters
+ '("GList*" "link_")
+ )
+)
+
+(define-method reverse
+ (of-object "GList")
+ (c-name "g_list_reverse")
+ (return-type "GList*")
+)
+
+(define-method copy
+ (of-object "GList")
+ (c-name "g_list_copy")
+ (return-type "GList*")
+)
+
+(define-method copy_deep
+ (of-object "GList")
+ (c-name "g_list_copy_deep")
+ (return-type "GList*")
+ (parameters
+ '("GCopyFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method nth
+ (of-object "GList")
+ (c-name "g_list_nth")
+ (return-type "GList*")
+ (parameters
+ '("guint" "n")
+ )
+)
+
+(define-method nth_prev
+ (of-object "GList")
+ (c-name "g_list_nth_prev")
+ (return-type "GList*")
+ (parameters
+ '("guint" "n")
+ )
+)
+
+(define-method find
+ (of-object "GList")
+ (c-name "g_list_find")
+ (return-type "GList*")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method find_custom
+ (of-object "GList")
+ (c-name "g_list_find_custom")
+ (return-type "GList*")
+ (parameters
+ '("gconstpointer" "data")
+ '("GCompareFunc" "func")
+ )
+)
+
+(define-method position
+ (of-object "GList")
+ (c-name "g_list_position")
+ (return-type "gint")
+ (parameters
+ '("GList*" "llink")
+ )
+)
+
+(define-method index
+ (of-object "GList")
+ (c-name "g_list_index")
+ (return-type "gint")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method last
+ (of-object "GList")
+ (c-name "g_list_last")
+ (return-type "GList*")
+)
+
+(define-method first
+ (of-object "GList")
+ (c-name "g_list_first")
+ (return-type "GList*")
+)
+
+(define-method length
+ (of-object "GList")
+ (c-name "g_list_length")
+ (return-type "guint")
+)
+
+(define-method foreach
+ (of-object "GList")
+ (c-name "g_list_foreach")
+ (return-type "none")
+ (parameters
+ '("GFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method sort
+ (of-object "GList")
+ (c-name "g_list_sort")
+ (return-type "GList*")
+ (parameters
+ '("GCompareFunc" "compare_func")
+ )
+)
+
+(define-method sort_with_data
+ (of-object "GList")
+ (c-name "g_list_sort_with_data")
+ (return-type "GList*")
+ (parameters
+ '("GCompareDataFunc" "compare_func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method nth_data
+ (of-object "GList")
+ (c-name "g_list_nth_data")
+ (return-type "gpointer")
+ (parameters
+ '("guint" "n")
+ )
+)
+
+
+
+;; From gmacros.h
+
+
+
+;; From gmain.h
+
+(define-function g_main_context_new
+ (c-name "g_main_context_new")
+ (is-constructor-of "GMainContext")
+ (return-type "GMainContext*")
+)
+
(define-method ref
(of-object "GMainContext")
(c-name "g_main_context_ref")
(return-type "GMainContext*")
)
+(define-method unref
+ (of-object "GMainContext")
+ (c-name "g_main_context_unref")
+ (return-type "none")
+)
+
+(define-function g_main_context_default
+ (c-name "g_main_context_default")
+ (return-type "GMainContext*")
+)
+
+(define-method iteration
+ (of-object "GMainContext")
+ (c-name "g_main_context_iteration")
+ (return-type "gboolean")
+ (parameters
+ '("gboolean" "may_block")
+ )
+)
+
+(define-method pending
+ (of-object "GMainContext")
+ (c-name "g_main_context_pending")
+ (return-type "gboolean")
+)
+
+(define-method find_source_by_id
+ (of-object "GMainContext")
+ (c-name "g_main_context_find_source_by_id")
+ (return-type "GSource*")
+ (parameters
+ '("guint" "source_id")
+ )
+)
+
+(define-method find_source_by_user_data
+ (of-object "GMainContext")
+ (c-name "g_main_context_find_source_by_user_data")
+ (return-type "GSource*")
+ (parameters
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method find_source_by_funcs_user_data
+ (of-object "GMainContext")
+ (c-name "g_main_context_find_source_by_funcs_user_data")
+ (return-type "GSource*")
+ (parameters
+ '("GSourceFuncs*" "funcs")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method wakeup
+ (of-object "GMainContext")
+ (c-name "g_main_context_wakeup")
+ (return-type "none")
+)
+
+(define-method acquire
+ (of-object "GMainContext")
+ (c-name "g_main_context_acquire")
+ (return-type "gboolean")
+)
+
+(define-method release
+ (of-object "GMainContext")
+ (c-name "g_main_context_release")
+ (return-type "none")
+)
+
+(define-method is_owner
+ (of-object "GMainContext")
+ (c-name "g_main_context_is_owner")
+ (return-type "gboolean")
+)
+
+(define-method wait
+ (of-object "GMainContext")
+ (c-name "g_main_context_wait")
+ (return-type "gboolean")
+ (parameters
+ '("GCond*" "cond")
+ '("GMutex*" "mutex")
+ )
+)
+
+(define-method prepare
+ (of-object "GMainContext")
+ (c-name "g_main_context_prepare")
+ (return-type "gboolean")
+ (parameters
+ '("gint*" "priority")
+ )
+)
+
+(define-method query
+ (of-object "GMainContext")
+ (c-name "g_main_context_query")
+ (return-type "gint")
+ (parameters
+ '("gint" "max_priority")
+ '("gint*" "timeout_")
+ '("GPollFD*" "fds")
+ '("gint" "n_fds")
+ )
+)
+
+(define-method check
+ (of-object "GMainContext")
+ (c-name "g_main_context_check")
+ (return-type "gint")
+ (parameters
+ '("gint" "max_priority")
+ '("GPollFD*" "fds")
+ '("gint" "n_fds")
+ )
+)
+
+(define-method dispatch
+ (of-object "GMainContext")
+ (c-name "g_main_context_dispatch")
+ (return-type "none")
+)
+
+(define-method set_poll_func
+ (of-object "GMainContext")
+ (c-name "g_main_context_set_poll_func")
+ (return-type "none")
+ (parameters
+ '("GPollFunc" "func")
+ )
+)
+
+(define-method get_poll_func
+ (of-object "GMainContext")
+ (c-name "g_main_context_get_poll_func")
+ (return-type "GPollFunc")
+)
+
+(define-method add_poll
+ (of-object "GMainContext")
+ (c-name "g_main_context_add_poll")
+ (return-type "none")
+ (parameters
+ '("GPollFD*" "fd")
+ '("gint" "priority")
+ )
+)
+
+(define-method remove_poll
+ (of-object "GMainContext")
+ (c-name "g_main_context_remove_poll")
+ (return-type "none")
+ (parameters
+ '("GPollFD*" "fd")
+ )
+)
+
+(define-function g_main_depth
+ (c-name "g_main_depth")
+ (return-type "gint")
+)
+
+(define-function g_main_current_source
+ (c-name "g_main_current_source")
+ (return-type "GSource*")
+)
+
+(define-method push_thread_default
+ (of-object "GMainContext")
+ (c-name "g_main_context_push_thread_default")
+ (return-type "none")
+)
+
+(define-method pop_thread_default
+ (of-object "GMainContext")
+ (c-name "g_main_context_pop_thread_default")
+ (return-type "none")
+)
+
+(define-function g_main_context_get_thread_default
+ (c-name "g_main_context_get_thread_default")
+ (return-type "GMainContext*")
+)
+
+(define-function g_main_context_ref_thread_default
+ (c-name "g_main_context_ref_thread_default")
+ (return-type "GMainContext*")
+)
+
+(define-function g_main_loop_new
+ (c-name "g_main_loop_new")
+ (is-constructor-of "GMainLoop")
+ (return-type "GMainLoop*")
+ (parameters
+ '("GMainContext*" "context")
+ '("gboolean" "is_running")
+ )
+)
+
+(define-method run
+ (of-object "GMainLoop")
+ (c-name "g_main_loop_run")
+ (return-type "none")
+)
+
+(define-method quit
+ (of-object "GMainLoop")
+ (c-name "g_main_loop_quit")
+ (return-type "none")
+)
+
+(define-method ref
+ (of-object "GMainLoop")
+ (c-name "g_main_loop_ref")
+ (return-type "GMainLoop*")
+)
+
+(define-method unref
+ (of-object "GMainLoop")
+ (c-name "g_main_loop_unref")
+ (return-type "none")
+)
+
+(define-method is_running
+ (of-object "GMainLoop")
+ (c-name "g_main_loop_is_running")
+ (return-type "gboolean")
+)
+
+(define-method get_context
+ (of-object "GMainLoop")
+ (c-name "g_main_loop_get_context")
+ (return-type "GMainContext*")
+)
+
+(define-function g_source_new
+ (c-name "g_source_new")
+ (is-constructor-of "GSource")
+ (return-type "GSource*")
+ (parameters
+ '("GSourceFuncs*" "source_funcs")
+ '("guint" "struct_size")
+ )
+)
+
+(define-method ref
+ (of-object "GSource")
+ (c-name "g_source_ref")
+ (return-type "GSource*")
+)
+
+(define-method unref
+ (of-object "GSource")
+ (c-name "g_source_unref")
+ (return-type "none")
+)
+
+(define-method attach
+ (of-object "GSource")
+ (c-name "g_source_attach")
+ (return-type "guint")
+ (parameters
+ '("GMainContext*" "context")
+ )
+)
+
+(define-method destroy
+ (of-object "GSource")
+ (c-name "g_source_destroy")
+ (return-type "none")
+)
+
+(define-method set_priority
+ (of-object "GSource")
+ (c-name "g_source_set_priority")
+ (return-type "none")
+ (parameters
+ '("gint" "priority")
+ )
+)
+
+(define-method get_priority
+ (of-object "GSource")
+ (c-name "g_source_get_priority")
+ (return-type "gint")
+)
+
+(define-method set_can_recurse
+ (of-object "GSource")
+ (c-name "g_source_set_can_recurse")
+ (return-type "none")
+ (parameters
+ '("gboolean" "can_recurse")
+ )
+)
+
+(define-method get_can_recurse
+ (of-object "GSource")
+ (c-name "g_source_get_can_recurse")
+ (return-type "gboolean")
+)
+
+(define-method get_id
+ (of-object "GSource")
+ (c-name "g_source_get_id")
+ (return-type "guint")
+)
+
+(define-method get_context
+ (of-object "GSource")
+ (c-name "g_source_get_context")
+ (return-type "GMainContext*")
+)
+
+(define-method set_callback
+ (of-object "GSource")
+ (c-name "g_source_set_callback")
+ (return-type "none")
+ (parameters
+ '("GSourceFunc" "func")
+ '("gpointer" "data")
+ '("GDestroyNotify" "notify")
+ )
+)
+
+(define-method set_funcs
+ (of-object "GSource")
+ (c-name "g_source_set_funcs")
+ (return-type "none")
+ (parameters
+ '("GSourceFuncs*" "funcs")
+ )
+)
+
+(define-method is_destroyed
+ (of-object "GSource")
+ (c-name "g_source_is_destroyed")
+ (return-type "gboolean")
+)
+
+(define-method set_name
+ (of-object "GSource")
+ (c-name "g_source_set_name")
+ (return-type "none")
+ (parameters
+ '("const-char*" "name")
+ )
+)
+
+(define-method get_name
+ (of-object "GSource")
+ (c-name "g_source_get_name")
+ (return-type "const-char*")
+)
+
+(define-function g_source_set_name_by_id
+ (c-name "g_source_set_name_by_id")
+ (return-type "none")
+ (parameters
+ '("guint" "tag")
+ '("const-char*" "name")
+ )
+)
+
+(define-method set_ready_time
+ (of-object "GSource")
+ (c-name "g_source_set_ready_time")
+ (return-type "none")
+ (parameters
+ '("gint64" "ready_time")
+ )
+)
+
+(define-method get_ready_time
+ (of-object "GSource")
+ (c-name "g_source_get_ready_time")
+ (return-type "gint64")
+)
+
+(define-method add_unix_fd
+ (of-object "GSource")
+ (c-name "g_source_add_unix_fd")
+ (return-type "gpointer")
+ (parameters
+ '("gint" "fd")
+ '("GIOCondition" "events")
+ )
+)
+
+(define-method modify_unix_fd
+ (of-object "GSource")
+ (c-name "g_source_modify_unix_fd")
+ (return-type "none")
+ (parameters
+ '("gpointer" "tag")
+ '("GIOCondition" "new_events")
+ )
+)
+
+(define-method remove_unix_fd
+ (of-object "GSource")
+ (c-name "g_source_remove_unix_fd")
+ (return-type "none")
+ (parameters
+ '("gpointer" "tag")
+ )
+)
+
+(define-method query_unix_fd
+ (of-object "GSource")
+ (c-name "g_source_query_unix_fd")
+ (return-type "GIOCondition")
+ (parameters
+ '("gpointer" "tag")
+ )
+)
+
+(define-method set_callback_indirect
+ (of-object "GSource")
+ (c-name "g_source_set_callback_indirect")
+ (return-type "none")
+ (parameters
+ '("gpointer" "callback_data")
+ '("GSourceCallbackFuncs*" "callback_funcs")
+ )
+)
+
+(define-method add_poll
+ (of-object "GSource")
+ (c-name "g_source_add_poll")
+ (return-type "none")
+ (parameters
+ '("GPollFD*" "fd")
+ )
+)
+
+(define-method remove_poll
+ (of-object "GSource")
+ (c-name "g_source_remove_poll")
+ (return-type "none")
+ (parameters
+ '("GPollFD*" "fd")
+ )
+)
+
+(define-method add_child_source
+ (of-object "GSource")
+ (c-name "g_source_add_child_source")
+ (return-type "none")
+ (parameters
+ '("GSource*" "child_source")
+ )
+)
+
+(define-method remove_child_source
+ (of-object "GSource")
+ (c-name "g_source_remove_child_source")
+ (return-type "none")
+ (parameters
+ '("GSource*" "child_source")
+ )
+)
+
+(define-method get_current_time
+ (of-object "GSource")
+ (c-name "g_source_get_current_time")
+ (return-type "none")
+ (parameters
+ '("GTimeVal*" "timeval")
+ )
+)
+
+(define-method get_time
+ (of-object "GSource")
+ (c-name "g_source_get_time")
+ (return-type "gint64")
+)
+
+(define-function g_idle_source_new
+ (c-name "g_idle_source_new")
+ (is-constructor-of "GIdleSource")
+ (return-type "GSource*")
+)
+
+(define-function g_child_watch_source_new
+ (c-name "g_child_watch_source_new")
+ (is-constructor-of "GChildWatchSource")
+ (return-type "GSource*")
+ (parameters
+ '("GPid" "pid")
+ )
+)
+
+(define-function g_timeout_source_new
+ (c-name "g_timeout_source_new")
+ (is-constructor-of "GTimeoutSource")
+ (return-type "GSource*")
+ (parameters
+ '("guint" "interval")
+ )
+)
+
+(define-function g_timeout_source_new_seconds
+ (c-name "g_timeout_source_new_seconds")
+ (return-type "GSource*")
+ (parameters
+ '("guint" "interval")
+ )
+)
+
+(define-function g_get_current_time
+ (c-name "g_get_current_time")
+ (return-type "none")
+ (parameters
+ '("GTimeVal*" "result")
+ )
+)
+
+(define-function g_get_monotonic_time
+ (c-name "g_get_monotonic_time")
+ (return-type "gint64")
+)
+
+(define-function g_get_real_time
+ (c-name "g_get_real_time")
+ (return-type "gint64")
+)
+
+(define-function g_source_remove
+ (c-name "g_source_remove")
+ (return-type "gboolean")
+ (parameters
+ '("guint" "tag")
+ )
+)
+
+(define-function g_source_remove_by_user_data
+ (c-name "g_source_remove_by_user_data")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "user_data")
+ )
+)
+
+(define-function g_source_remove_by_funcs_user_data
+ (c-name "g_source_remove_by_funcs_user_data")
+ (return-type "gboolean")
+ (parameters
+ '("GSourceFuncs*" "funcs")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-function g_timeout_add_full
+ (c-name "g_timeout_add_full")
+ (return-type "guint")
+ (parameters
+ '("gint" "priority")
+ '("guint" "interval")
+ '("GSourceFunc" "function")
+ '("gpointer" "data")
+ '("GDestroyNotify" "notify")
+ )
+)
+
+(define-function g_timeout_add
+ (c-name "g_timeout_add")
+ (return-type "guint")
+ (parameters
+ '("guint" "interval")
+ '("GSourceFunc" "function")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_timeout_add_seconds_full
+ (c-name "g_timeout_add_seconds_full")
+ (return-type "guint")
+ (parameters
+ '("gint" "priority")
+ '("guint" "interval")
+ '("GSourceFunc" "function")
+ '("gpointer" "data")
+ '("GDestroyNotify" "notify")
+ )
+)
+
+(define-function g_timeout_add_seconds
+ (c-name "g_timeout_add_seconds")
+ (return-type "guint")
+ (parameters
+ '("guint" "interval")
+ '("GSourceFunc" "function")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_child_watch_add_full
+ (c-name "g_child_watch_add_full")
+ (return-type "guint")
+ (parameters
+ '("gint" "priority")
+ '("GPid" "pid")
+ '("GChildWatchFunc" "function")
+ '("gpointer" "data")
+ '("GDestroyNotify" "notify")
+ )
+)
+
+(define-function g_child_watch_add
+ (c-name "g_child_watch_add")
+ (return-type "guint")
+ (parameters
+ '("GPid" "pid")
+ '("GChildWatchFunc" "function")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_idle_add
+ (c-name "g_idle_add")
+ (return-type "guint")
+ (parameters
+ '("GSourceFunc" "function")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_idle_add_full
+ (c-name "g_idle_add_full")
+ (return-type "guint")
+ (parameters
+ '("gint" "priority")
+ '("GSourceFunc" "function")
+ '("gpointer" "data")
+ '("GDestroyNotify" "notify")
+ )
+)
+
+(define-function g_idle_remove_by_data
+ (c-name "g_idle_remove_by_data")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-method invoke_full
+ (of-object "GMainContext")
+ (c-name "g_main_context_invoke_full")
+ (return-type "none")
+ (parameters
+ '("gint" "priority")
+ '("GSourceFunc" "function")
+ '("gpointer" "data")
+ '("GDestroyNotify" "notify")
+ )
+)
+
+(define-method invoke
+ (of-object "GMainContext")
+ (c-name "g_main_context_invoke")
+ (return-type "none")
+ (parameters
+ '("GSourceFunc" "function")
+ '("gpointer" "data")
+ )
+)
+
+
+
+;; From gmain-internal.h
+
+
+
+;; From gmappedfile.h
+
+(define-function g_mapped_file_new
+ (c-name "g_mapped_file_new")
+ (is-constructor-of "GMappedFile")
+ (return-type "GMappedFile*")
+ (parameters
+ '("const-gchar*" "filename")
+ '("gboolean" "writable")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_mapped_file_new_from_fd
+ (c-name "g_mapped_file_new_from_fd")
+ (return-type "GMappedFile*")
+ (parameters
+ '("gint" "fd")
+ '("gboolean" "writable")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_length
+ (of-object "GMappedFile")
+ (c-name "g_mapped_file_get_length")
+ (return-type "gsize")
+)
+
+(define-method get_contents
+ (of-object "GMappedFile")
+ (c-name "g_mapped_file_get_contents")
+ (return-type "gchar*")
+)
+
+(define-method get_bytes
+ (of-object "GMappedFile")
+ (c-name "g_mapped_file_get_bytes")
+ (return-type "GBytes*")
+)
+
+(define-method ref
+ (of-object "GMappedFile")
+ (c-name "g_mapped_file_ref")
+ (return-type "GMappedFile*")
+)
+
+(define-method unref
+ (of-object "GMappedFile")
+ (c-name "g_mapped_file_unref")
+ (return-type "none")
+)
+
+(define-method free
+ (of-object "GMappedFile")
+ (c-name "g_mapped_file_free")
+ (return-type "none")
+)
+
+
+
+;; From gmarkup.h
+
+(define-function g_markup_error_quark
+ (c-name "g_markup_error_quark")
+ (return-type "GQuark")
+)
+
+(define-function g_markup_parse_context_new
+ (c-name "g_markup_parse_context_new")
+ (is-constructor-of "GMarkupParseContext")
+ (return-type "GMarkupParseContext*")
+ (parameters
+ '("const-GMarkupParser*" "parser")
+ '("GMarkupParseFlags" "flags")
+ '("gpointer" "user_data")
+ '("GDestroyNotify" "user_data_dnotify")
+ )
+)
+
+(define-method ref
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_ref")
+ (return-type "GMarkupParseContext*")
+)
+
+(define-method unref
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_unref")
+ (return-type "none")
+)
+
+(define-method free
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_free")
+ (return-type "none")
+)
+
+(define-method parse
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_parse")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "text")
+ '("gssize" "text_len")
+ '("GError**" "error")
+ )
+)
+
+(define-method push
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_push")
+ (return-type "none")
+ (parameters
+ '("const-GMarkupParser*" "parser")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method pop
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_pop")
+ (return-type "gpointer")
+)
+
+(define-method end_parse
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_end_parse")
+ (return-type "gboolean")
+ (parameters
+ '("GError**" "error")
+ )
+)
+
+(define-method get_element
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_get_element")
+ (return-type "const-gchar*")
+)
+
+(define-method get_element_stack
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_get_element_stack")
+ (return-type "const-GSList*")
+)
+
+(define-method get_position
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_get_position")
+ (return-type "none")
+ (parameters
+ '("gint*" "line_number")
+ '("gint*" "char_number")
+ )
+)
+
+(define-method get_user_data
+ (of-object "GMarkupParseContext")
+ (c-name "g_markup_parse_context_get_user_data")
+ (return-type "gpointer")
+)
+
+(define-function g_markup_escape_text
+ (c-name "g_markup_escape_text")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "text")
+ '("gssize" "length")
+ )
+)
+
+(define-function g_markup_printf_escaped
+ (c-name "g_markup_printf_escaped")
+ (return-type "gchar*")
+ (parameters
+ '("const-char*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_markup_vprintf_escaped
+ (c-name "g_markup_vprintf_escaped")
+ (return-type "gchar*")
+ (parameters
+ '("const-char*" "format")
+ '("va_list" "args")
+ )
+)
+
+(define-function g_markup_collect_attributes
+ (c-name "g_markup_collect_attributes")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "element_name")
+ '("const-gchar**" "attribute_names")
+ '("const-gchar**" "attribute_values")
+ '("GError**" "error")
+ '("GMarkupCollectType" "first_type")
+ '("const-gchar*" "first_attr")
+ )
+ (varargs #t)
+)
+
+
+
+;; From gmem.h
+
+(define-function g_free
+ (c-name "g_free")
+ (return-type "none")
+ (parameters
+ '("gpointer" "mem")
+ )
+)
+
+(define-function g_clear_pointer
+ (c-name "g_clear_pointer")
+ (return-type "none")
+ (parameters
+ '("gpointer*" "pp")
+ '("GDestroyNotify" "destroy")
+ )
+)
+
+(define-function g_malloc
+ (c-name "g_malloc")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "n_bytes")
+ )
+)
+
+(define-function g_malloc0
+ (c-name "g_malloc0")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "n_bytes")
+ )
+)
+
+(define-function g_realloc
+ (c-name "g_realloc")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "mem")
+ '("gsize" "n_bytes")
+ )
+)
+
+(define-function g_try_malloc
+ (c-name "g_try_malloc")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "n_bytes")
+ )
+)
+
+(define-function g_try_malloc0
+ (c-name "g_try_malloc0")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "n_bytes")
+ )
+)
+
+(define-function g_try_realloc
+ (c-name "g_try_realloc")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "mem")
+ '("gsize" "n_bytes")
+ )
+)
+
+(define-function g_malloc_n
+ (c-name "g_malloc_n")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "n_blocks")
+ '("gsize" "n_block_bytes")
+ )
+)
+
+(define-function g_malloc0_n
+ (c-name "g_malloc0_n")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "n_blocks")
+ '("gsize" "n_block_bytes")
+ )
+)
+
+(define-function g_realloc_n
+ (c-name "g_realloc_n")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "mem")
+ '("gsize" "n_blocks")
+ '("gsize" "n_block_bytes")
+ )
+)
+
+(define-function g_try_malloc_n
+ (c-name "g_try_malloc_n")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "n_blocks")
+ '("gsize" "n_block_bytes")
+ )
+)
+
+(define-function g_try_malloc0_n
+ (c-name "g_try_malloc0_n")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "n_blocks")
+ '("gsize" "n_block_bytes")
+ )
+)
+
+(define-function g_try_realloc_n
+ (c-name "g_try_realloc_n")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "mem")
+ '("gsize" "n_blocks")
+ '("gsize" "n_block_bytes")
+ )
+)
+
+(define-function g_steal_pointer
+ (c-name "g_steal_pointer")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "pp")
+ )
+)
+
+(define-function g_mem_set_vtable
+ (c-name "g_mem_set_vtable")
+ (return-type "none")
+ (parameters
+ '("GMemVTable*" "vtable")
+ )
+)
+
+(define-function g_mem_is_system_malloc
+ (c-name "g_mem_is_system_malloc")
+ (return-type "gboolean")
+)
+
+(define-function g_mem_profile
+ (c-name "g_mem_profile")
+ (return-type "none")
+)
+
+
+
+;; From gmessages.h
+
+(define-function g_printf_string_upper_bound
+ (c-name "g_printf_string_upper_bound")
+ (return-type "gsize")
+ (parameters
+ '("const-gchar*" "format")
+ '("va_list" "args")
+ )
+)
+
+(define-function g_log_set_handler
+ (c-name "g_log_set_handler")
+ (return-type "guint")
+ (parameters
+ '("const-gchar*" "log_domain")
+ '("GLogLevelFlags" "log_levels")
+ '("GLogFunc" "log_func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-function g_log_set_handler_full
+ (c-name "g_log_set_handler_full")
+ (return-type "guint")
+ (parameters
+ '("const-gchar*" "log_domain")
+ '("GLogLevelFlags" "log_levels")
+ '("GLogFunc" "log_func")
+ '("gpointer" "user_data")
+ '("GDestroyNotify" "destroy")
+ )
+)
+
+(define-function g_log_remove_handler
+ (c-name "g_log_remove_handler")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "log_domain")
+ '("guint" "handler_id")
+ )
+)
+
+(define-function g_log_default_handler
+ (c-name "g_log_default_handler")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "log_domain")
+ '("GLogLevelFlags" "log_level")
+ '("const-gchar*" "message")
+ '("gpointer" "unused_data")
+ )
+)
+
+(define-function g_log_set_default_handler
+ (c-name "g_log_set_default_handler")
+ (return-type "GLogFunc")
+ (parameters
+ '("GLogFunc" "log_func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-function g_log
+ (c-name "g_log")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "log_domain")
+ '("GLogLevelFlags" "log_level")
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_logv
+ (c-name "g_logv")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "log_domain")
+ '("GLogLevelFlags" "log_level")
+ '("const-gchar*" "format")
+ '("va_list" "args")
+ )
+)
+
+(define-function g_log_set_fatal_mask
+ (c-name "g_log_set_fatal_mask")
+ (return-type "GLogLevelFlags")
+ (parameters
+ '("const-gchar*" "log_domain")
+ '("GLogLevelFlags" "fatal_mask")
+ )
+)
+
+(define-function g_log_set_always_fatal
+ (c-name "g_log_set_always_fatal")
+ (return-type "GLogLevelFlags")
+ (parameters
+ '("GLogLevelFlags" "fatal_mask")
+ )
+)
+
+(define-function g_return_if_fail_warning
+ (c-name "g_return_if_fail_warning")
+ (return-type "none")
+ (parameters
+ '("const-char*" "log_domain")
+ '("const-char*" "pretty_function")
+ '("const-char*" "expression")
+ )
+)
+
+(define-function g_warn_message
+ (c-name "g_warn_message")
+ (return-type "none")
+ (parameters
+ '("const-char*" "domain")
+ '("const-char*" "file")
+ '("int" "line")
+ '("const-char*" "func")
+ '("const-char*" "warnexpr")
+ )
+)
+
+(define-function g_assert_warning
+ (c-name "g_assert_warning")
+ (return-type "none")
+ (parameters
+ '("const-char*" "log_domain")
+ '("const-char*" "file")
+ '("const-int" "line")
+ '("const-char*" "pretty_function")
+ '("const-char*" "expression")
+ )
+)
+
+(define-function g_error
+ (c-name "g_error")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_critical
+ (c-name "g_critical")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_message
+ (c-name "g_message")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_warning
+ (c-name "g_warning")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_info
+ (c-name "g_info")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_debug
+ (c-name "g_debug")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_print
+ (c-name "g_print")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_set_print_handler
+ (c-name "g_set_print_handler")
+ (return-type "GPrintFunc")
+ (parameters
+ '("GPrintFunc" "func")
+ )
+)
+
+(define-function g_printerr
+ (c-name "g_printerr")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_set_printerr_handler
+ (c-name "g_set_printerr_handler")
+ (return-type "GPrintFunc")
+ (parameters
+ '("GPrintFunc" "func")
+ )
+)
+
+
+
+;; From gmirroringtable.h
+
+
+
+;; From gnode.h
+
+(define-function g_node_new
+ (c-name "g_node_new")
+ (is-constructor-of "GNode")
+ (return-type "GNode*")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-method destroy
+ (of-object "GNode")
+ (c-name "g_node_destroy")
+ (return-type "none")
+)
+
+(define-method unlink
+ (of-object "GNode")
+ (c-name "g_node_unlink")
+ (return-type "none")
+)
+
+(define-method copy_deep
+ (of-object "GNode")
+ (c-name "g_node_copy_deep")
+ (return-type "GNode*")
+ (parameters
+ '("GCopyFunc" "copy_func")
+ '("gpointer" "data")
+ )
+)
+
+(define-method copy
+ (of-object "GNode")
+ (c-name "g_node_copy")
+ (return-type "GNode*")
+)
+
+(define-method insert
+ (of-object "GNode")
+ (c-name "g_node_insert")
+ (return-type "GNode*")
+ (parameters
+ '("gint" "position")
+ '("GNode*" "node")
+ )
+)
+
+(define-method insert_before
+ (of-object "GNode")
+ (c-name "g_node_insert_before")
+ (return-type "GNode*")
+ (parameters
+ '("GNode*" "sibling")
+ '("GNode*" "node")
+ )
+)
+
+(define-method insert_after
+ (of-object "GNode")
+ (c-name "g_node_insert_after")
+ (return-type "GNode*")
+ (parameters
+ '("GNode*" "sibling")
+ '("GNode*" "node")
+ )
+)
+
+(define-method prepend
+ (of-object "GNode")
+ (c-name "g_node_prepend")
+ (return-type "GNode*")
+ (parameters
+ '("GNode*" "node")
+ )
+)
+
+(define-method n_nodes
+ (of-object "GNode")
+ (c-name "g_node_n_nodes")
+ (return-type "guint")
+ (parameters
+ '("GTraverseFlags" "flags")
+ )
+)
+
+(define-method get_root
+ (of-object "GNode")
+ (c-name "g_node_get_root")
+ (return-type "GNode*")
+)
+
+(define-method is_ancestor
+ (of-object "GNode")
+ (c-name "g_node_is_ancestor")
+ (return-type "gboolean")
+ (parameters
+ '("GNode*" "descendant")
+ )
+)
+
+(define-method depth
+ (of-object "GNode")
+ (c-name "g_node_depth")
+ (return-type "guint")
+)
+
+(define-method find
+ (of-object "GNode")
+ (c-name "g_node_find")
+ (return-type "GNode*")
+ (parameters
+ '("GTraverseType" "order")
+ '("GTraverseFlags" "flags")
+ '("gpointer" "data")
+ )
+)
+
+(define-method traverse
+ (of-object "GNode")
+ (c-name "g_node_traverse")
+ (return-type "none")
+ (parameters
+ '("GTraverseType" "order")
+ '("GTraverseFlags" "flags")
+ '("gint" "max_depth")
+ '("GNodeTraverseFunc" "func")
+ '("gpointer" "data")
+ )
+)
+
+(define-method max_height
+ (of-object "GNode")
+ (c-name "g_node_max_height")
+ (return-type "guint")
+)
+
+(define-method children_foreach
+ (of-object "GNode")
+ (c-name "g_node_children_foreach")
+ (return-type "none")
+ (parameters
+ '("GTraverseFlags" "flags")
+ '("GNodeForeachFunc" "func")
+ '("gpointer" "data")
+ )
+)
+
+(define-method reverse_children
+ (of-object "GNode")
+ (c-name "g_node_reverse_children")
+ (return-type "none")
+)
+
+(define-method n_children
+ (of-object "GNode")
+ (c-name "g_node_n_children")
+ (return-type "guint")
+)
+
+(define-method nth_child
+ (of-object "GNode")
+ (c-name "g_node_nth_child")
+ (return-type "GNode*")
+ (parameters
+ '("guint" "n")
+ )
+)
+
+(define-method last_child
+ (of-object "GNode")
+ (c-name "g_node_last_child")
+ (return-type "GNode*")
+)
+
+(define-method find_child
+ (of-object "GNode")
+ (c-name "g_node_find_child")
+ (return-type "GNode*")
+ (parameters
+ '("GTraverseFlags" "flags")
+ '("gpointer" "data")
+ )
+)
+
+(define-method child_position
+ (of-object "GNode")
+ (c-name "g_node_child_position")
+ (return-type "gint")
+ (parameters
+ '("GNode*" "child")
+ )
+)
+
+(define-method child_index
+ (of-object "GNode")
+ (c-name "g_node_child_index")
+ (return-type "gint")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-method first_sibling
+ (of-object "GNode")
+ (c-name "g_node_first_sibling")
+ (return-type "GNode*")
+)
+
+(define-method last_sibling
+ (of-object "GNode")
+ (c-name "g_node_last_sibling")
+ (return-type "GNode*")
+)
+
+
+
+;; From goption.h
+
+(define-function g_option_error_quark
+ (c-name "g_option_error_quark")
+ (return-type "GQuark")
+)
+
+(define-function g_option_context_new
+ (c-name "g_option_context_new")
+ (is-constructor-of "GOptionContext")
+ (return-type "GOptionContext*")
+ (parameters
+ '("const-gchar*" "parameter_string")
+ )
+)
+
+(define-method set_summary
+ (of-object "GOptionContext")
+ (c-name "g_option_context_set_summary")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "summary")
+ )
+)
+
+(define-method get_summary
+ (of-object "GOptionContext")
+ (c-name "g_option_context_get_summary")
+ (return-type "const-gchar*")
+)
+
+(define-method set_description
+ (of-object "GOptionContext")
+ (c-name "g_option_context_set_description")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "description")
+ )
+)
+
+(define-method get_description
+ (of-object "GOptionContext")
+ (c-name "g_option_context_get_description")
+ (return-type "const-gchar*")
+)
+
+(define-method free
+ (of-object "GOptionContext")
+ (c-name "g_option_context_free")
+ (return-type "none")
+)
+
+(define-method set_help_enabled
+ (of-object "GOptionContext")
+ (c-name "g_option_context_set_help_enabled")
+ (return-type "none")
+ (parameters
+ '("gboolean" "help_enabled")
+ )
+)
+
+(define-method get_help_enabled
+ (of-object "GOptionContext")
+ (c-name "g_option_context_get_help_enabled")
+ (return-type "gboolean")
+)
+
+(define-method set_ignore_unknown_options
+ (of-object "GOptionContext")
+ (c-name "g_option_context_set_ignore_unknown_options")
+ (return-type "none")
+ (parameters
+ '("gboolean" "ignore_unknown")
+ )
+)
+
+(define-method get_ignore_unknown_options
+ (of-object "GOptionContext")
+ (c-name "g_option_context_get_ignore_unknown_options")
+ (return-type "gboolean")
+)
+
+(define-method set_strict_posix
+ (of-object "GOptionContext")
+ (c-name "g_option_context_set_strict_posix")
+ (return-type "none")
+ (parameters
+ '("gboolean" "strict_posix")
+ )
+)
+
+(define-method get_strict_posix
+ (of-object "GOptionContext")
+ (c-name "g_option_context_get_strict_posix")
+ (return-type "gboolean")
+)
+
+(define-method add_main_entries
+ (of-object "GOptionContext")
+ (c-name "g_option_context_add_main_entries")
+ (return-type "none")
+ (parameters
+ '("const-GOptionEntry*" "entries")
+ '("const-gchar*" "translation_domain")
+ )
+)
+
+(define-method parse
+ (of-object "GOptionContext")
+ (c-name "g_option_context_parse")
+ (return-type "gboolean")
+ (parameters
+ '("gint*" "argc")
+ '("gchar***" "argv")
+ '("GError**" "error")
+ )
+)
+
+(define-method parse_strv
+ (of-object "GOptionContext")
+ (c-name "g_option_context_parse_strv")
+ (return-type "gboolean")
+ (parameters
+ '("gchar***" "arguments")
+ '("GError**" "error")
+ )
+)
+
+(define-method set_translate_func
+ (of-object "GOptionContext")
+ (c-name "g_option_context_set_translate_func")
+ (return-type "none")
+ (parameters
+ '("GTranslateFunc" "func")
+ '("gpointer" "data")
+ '("GDestroyNotify" "destroy_notify")
+ )
+)
+
+(define-method set_translation_domain
+ (of-object "GOptionContext")
+ (c-name "g_option_context_set_translation_domain")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "domain")
+ )
+)
+
+(define-method add_group
+ (of-object "GOptionContext")
+ (c-name "g_option_context_add_group")
+ (return-type "none")
+ (parameters
+ '("GOptionGroup*" "group")
+ )
+)
+
+(define-method set_main_group
+ (of-object "GOptionContext")
+ (c-name "g_option_context_set_main_group")
+ (return-type "none")
+ (parameters
+ '("GOptionGroup*" "group")
+ )
+)
+
+(define-method get_main_group
+ (of-object "GOptionContext")
+ (c-name "g_option_context_get_main_group")
+ (return-type "GOptionGroup*")
+)
+
+(define-method get_help
+ (of-object "GOptionContext")
+ (c-name "g_option_context_get_help")
+ (return-type "gchar*")
+ (parameters
+ '("gboolean" "main_help")
+ '("GOptionGroup*" "group")
+ )
+)
+
+(define-function g_option_group_new
+ (c-name "g_option_group_new")
+ (is-constructor-of "GOptionGroup")
+ (return-type "GOptionGroup*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "description")
+ '("const-gchar*" "help_description")
+ '("gpointer" "user_data")
+ '("GDestroyNotify" "destroy")
+ )
+)
+
+(define-method set_parse_hooks
+ (of-object "GOptionGroup")
+ (c-name "g_option_group_set_parse_hooks")
+ (return-type "none")
+ (parameters
+ '("GOptionParseFunc" "pre_parse_func")
+ '("GOptionParseFunc" "post_parse_func")
+ )
+)
+
+(define-method set_error_hook
+ (of-object "GOptionGroup")
+ (c-name "g_option_group_set_error_hook")
+ (return-type "none")
+ (parameters
+ '("GOptionErrorFunc" "error_func")
+ )
+)
+
+(define-method free
+ (of-object "GOptionGroup")
+ (c-name "g_option_group_free")
+ (return-type "none")
+)
+
+(define-method ref
+ (of-object "GOptionGroup")
+ (c-name "g_option_group_ref")
+ (return-type "GOptionGroup*")
+)
+
+(define-method unref
+ (of-object "GOptionGroup")
+ (c-name "g_option_group_unref")
+ (return-type "none")
+)
+
+(define-method add_entries
+ (of-object "GOptionGroup")
+ (c-name "g_option_group_add_entries")
+ (return-type "none")
+ (parameters
+ '("const-GOptionEntry*" "entries")
+ )
+)
+
+(define-method set_translate_func
+ (of-object "GOptionGroup")
+ (c-name "g_option_group_set_translate_func")
+ (return-type "none")
+ (parameters
+ '("GTranslateFunc" "func")
+ '("gpointer" "data")
+ '("GDestroyNotify" "destroy_notify")
+ )
+)
+
+(define-method set_translation_domain
+ (of-object "GOptionGroup")
+ (c-name "g_option_group_set_translation_domain")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "domain")
+ )
+)
+
+
+
+;; From gpattern.h
+
+(define-function g_pattern_spec_new
+ (c-name "g_pattern_spec_new")
+ (is-constructor-of "GPatternSpec")
+ (return-type "GPatternSpec*")
+ (parameters
+ '("const-gchar*" "pattern")
+ )
+)
+
+(define-method free
+ (of-object "GPatternSpec")
+ (c-name "g_pattern_spec_free")
+ (return-type "none")
+)
+
+(define-method equal
+ (of-object "GPatternSpec")
+ (c-name "g_pattern_spec_equal")
+ (return-type "gboolean")
+ (parameters
+ '("GPatternSpec*" "pspec2")
+ )
+)
+
+(define-function g_pattern_match
+ (c-name "g_pattern_match")
+ (return-type "gboolean")
+ (parameters
+ '("GPatternSpec*" "pspec")
+ '("guint" "string_length")
+ '("const-gchar*" "string")
+ '("const-gchar*" "string_reversed")
+ )
+)
+
+(define-function g_pattern_match_string
+ (c-name "g_pattern_match_string")
+ (return-type "gboolean")
+ (parameters
+ '("GPatternSpec*" "pspec")
+ '("const-gchar*" "string")
+ )
+)
+
+(define-function g_pattern_match_simple
+ (c-name "g_pattern_match_simple")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "pattern")
+ '("const-gchar*" "string")
+ )
+)
+
+
+
+;; From gpoll.h
+
+(define-function g_poll
+ (c-name "g_poll")
+ (return-type "gint")
+ (parameters
+ '("GPollFD*" "fds")
+ '("guint" "nfds")
+ '("gint" "timeout")
+ )
+)
+
+
+
+;; From gprimes.h
+
+(define-function g_spaced_primes_closest
+ (c-name "g_spaced_primes_closest")
+ (return-type "guint")
+ (parameters
+ '("guint" "num")
+ )
+)
+
+
+
+;; From gprintf.h
+
+(define-function g_printf
+ (c-name "g_printf")
+ (return-type "gint")
+ (parameters
+ '("gchar-const*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_fprintf
+ (c-name "g_fprintf")
+ (return-type "gint")
+ (parameters
+ '("FILE*" "file")
+ '("gchar-const*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_sprintf
+ (c-name "g_sprintf")
+ (return-type "gint")
+ (parameters
+ '("gchar*" "string")
+ '("gchar-const*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_vprintf
+ (c-name "g_vprintf")
+ (return-type "gint")
+ (parameters
+ '("gchar-const*" "format")
+ '("va_list" "args")
+ )
+)
+
+(define-function g_vfprintf
+ (c-name "g_vfprintf")
+ (return-type "gint")
+ (parameters
+ '("FILE*" "file")
+ '("gchar-const*" "format")
+ '("va_list" "args")
+ )
+)
+
+(define-function g_vsprintf
+ (c-name "g_vsprintf")
+ (return-type "gint")
+ (parameters
+ '("gchar*" "string")
+ '("gchar-const*" "format")
+ '("va_list" "args")
+ )
+)
+
+(define-function g_vasprintf
+ (c-name "g_vasprintf")
+ (return-type "gint")
+ (parameters
+ '("gchar**" "string")
+ '("gchar-const*" "format")
+ '("va_list" "args")
+ )
+)
+
+
+
+;; From gprintfint.h
+
+
+
+;; From gqsort.h
+
+(define-function g_qsort_with_data
+ (c-name "g_qsort_with_data")
+ (return-type "none")
+ (parameters
+ '("gconstpointer" "pbase")
+ '("gint" "total_elems")
+ '("gsize" "size")
+ '("GCompareDataFunc" "compare_func")
+ '("gpointer" "user_data")
+ )
+)
+
+
+
+;; From gquark.h
+
+(define-function g_quark_try_string
+ (c-name "g_quark_try_string")
+ (return-type "GQuark")
+ (parameters
+ '("const-gchar*" "string")
+ )
+)
+
+(define-function g_quark_from_static_string
+ (c-name "g_quark_from_static_string")
+ (return-type "GQuark")
+ (parameters
+ '("const-gchar*" "string")
+ )
+)
+
+(define-function g_quark_from_string
+ (c-name "g_quark_from_string")
+ (return-type "GQuark")
+ (parameters
+ '("const-gchar*" "string")
+ )
+)
+
+(define-method to_string
+ (of-object "GQuark")
+ (c-name "g_quark_to_string")
+ (return-type "const-gchar*")
+)
+
+(define-function g_intern_string
+ (c-name "g_intern_string")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "string")
+ )
+)
+
+(define-function g_intern_static_string
+ (c-name "g_intern_static_string")
+ (return-type "const-gchar*")
+ (parameters
+ '("const-gchar*" "string")
+ )
+)
+
+
+
+;; From gqueue.h
+
+(define-function g_queue_new
+ (c-name "g_queue_new")
+ (is-constructor-of "GQueue")
+ (return-type "GQueue*")
+)
+
+(define-method free
+ (of-object "GQueue")
+ (c-name "g_queue_free")
+ (return-type "none")
+)
+
+(define-method free_full
+ (of-object "GQueue")
+ (c-name "g_queue_free_full")
+ (return-type "none")
+ (parameters
+ '("GDestroyNotify" "free_func")
+ )
+)
+
+(define-method init
+ (of-object "GQueue")
+ (c-name "g_queue_init")
+ (return-type "none")
+)
+
+(define-method clear
+ (of-object "GQueue")
+ (c-name "g_queue_clear")
+ (return-type "none")
+)
+
+(define-method is_empty
+ (of-object "GQueue")
+ (c-name "g_queue_is_empty")
+ (return-type "gboolean")
+)
+
+(define-method get_length
+ (of-object "GQueue")
+ (c-name "g_queue_get_length")
+ (return-type "guint")
+)
+
+(define-method reverse
+ (of-object "GQueue")
+ (c-name "g_queue_reverse")
+ (return-type "none")
+)
+
+(define-method copy
+ (of-object "GQueue")
+ (c-name "g_queue_copy")
+ (return-type "GQueue*")
+)
+
+(define-method foreach
+ (of-object "GQueue")
+ (c-name "g_queue_foreach")
+ (return-type "none")
+ (parameters
+ '("GFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method find
+ (of-object "GQueue")
+ (c-name "g_queue_find")
+ (return-type "GList*")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method find_custom
+ (of-object "GQueue")
+ (c-name "g_queue_find_custom")
+ (return-type "GList*")
+ (parameters
+ '("gconstpointer" "data")
+ '("GCompareFunc" "func")
+ )
+)
+
+(define-method sort
+ (of-object "GQueue")
+ (c-name "g_queue_sort")
+ (return-type "none")
+ (parameters
+ '("GCompareDataFunc" "compare_func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method push_head
+ (of-object "GQueue")
+ (c-name "g_queue_push_head")
+ (return-type "none")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-method push_tail
+ (of-object "GQueue")
+ (c-name "g_queue_push_tail")
+ (return-type "none")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-method push_nth
+ (of-object "GQueue")
+ (c-name "g_queue_push_nth")
+ (return-type "none")
+ (parameters
+ '("gpointer" "data")
+ '("gint" "n")
+ )
+)
+
+(define-method pop_head
+ (of-object "GQueue")
+ (c-name "g_queue_pop_head")
+ (return-type "gpointer")
+)
+
+(define-method pop_tail
+ (of-object "GQueue")
+ (c-name "g_queue_pop_tail")
+ (return-type "gpointer")
+)
+
+(define-method pop_nth
+ (of-object "GQueue")
+ (c-name "g_queue_pop_nth")
+ (return-type "gpointer")
+ (parameters
+ '("guint" "n")
+ )
+)
+
+(define-method peek_head
+ (of-object "GQueue")
+ (c-name "g_queue_peek_head")
+ (return-type "gpointer")
+)
+
+(define-method peek_tail
+ (of-object "GQueue")
+ (c-name "g_queue_peek_tail")
+ (return-type "gpointer")
+)
+
+(define-method peek_nth
+ (of-object "GQueue")
+ (c-name "g_queue_peek_nth")
+ (return-type "gpointer")
+ (parameters
+ '("guint" "n")
+ )
+)
+
+(define-method index
+ (of-object "GQueue")
+ (c-name "g_queue_index")
+ (return-type "gint")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method remove
+ (of-object "GQueue")
+ (c-name "g_queue_remove")
+ (return-type "gboolean")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method remove_all
+ (of-object "GQueue")
+ (c-name "g_queue_remove_all")
+ (return-type "guint")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method insert_before
+ (of-object "GQueue")
+ (c-name "g_queue_insert_before")
+ (return-type "none")
+ (parameters
+ '("GList*" "sibling")
+ '("gpointer" "data")
+ )
+)
+
+(define-method insert_after
+ (of-object "GQueue")
+ (c-name "g_queue_insert_after")
+ (return-type "none")
+ (parameters
+ '("GList*" "sibling")
+ '("gpointer" "data")
+ )
+)
+
+(define-method insert_sorted
+ (of-object "GQueue")
+ (c-name "g_queue_insert_sorted")
+ (return-type "none")
+ (parameters
+ '("gpointer" "data")
+ '("GCompareDataFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method push_head_link
+ (of-object "GQueue")
+ (c-name "g_queue_push_head_link")
+ (return-type "none")
+ (parameters
+ '("GList*" "link_")
+ )
+)
+
+(define-method push_tail_link
+ (of-object "GQueue")
+ (c-name "g_queue_push_tail_link")
+ (return-type "none")
+ (parameters
+ '("GList*" "link_")
+ )
+)
+
+(define-method push_nth_link
+ (of-object "GQueue")
+ (c-name "g_queue_push_nth_link")
+ (return-type "none")
+ (parameters
+ '("gint" "n")
+ '("GList*" "link_")
+ )
+)
+
+(define-method pop_head_link
+ (of-object "GQueue")
+ (c-name "g_queue_pop_head_link")
+ (return-type "GList*")
+)
+
+(define-method pop_tail_link
+ (of-object "GQueue")
+ (c-name "g_queue_pop_tail_link")
+ (return-type "GList*")
+)
+
+(define-method pop_nth_link
+ (of-object "GQueue")
+ (c-name "g_queue_pop_nth_link")
+ (return-type "GList*")
+ (parameters
+ '("guint" "n")
+ )
+)
+
+(define-method peek_head_link
+ (of-object "GQueue")
+ (c-name "g_queue_peek_head_link")
+ (return-type "GList*")
+)
+
+(define-method peek_tail_link
+ (of-object "GQueue")
+ (c-name "g_queue_peek_tail_link")
+ (return-type "GList*")
+)
+
+(define-method peek_nth_link
+ (of-object "GQueue")
+ (c-name "g_queue_peek_nth_link")
+ (return-type "GList*")
+ (parameters
+ '("guint" "n")
+ )
+)
+
+(define-method link_index
+ (of-object "GQueue")
+ (c-name "g_queue_link_index")
+ (return-type "gint")
+ (parameters
+ '("GList*" "link_")
+ )
+)
+
+(define-method unlink
+ (of-object "GQueue")
+ (c-name "g_queue_unlink")
+ (return-type "none")
+ (parameters
+ '("GList*" "link_")
+ )
+)
+
+(define-method delete_link
+ (of-object "GQueue")
+ (c-name "g_queue_delete_link")
+ (return-type "none")
+ (parameters
+ '("GList*" "link_")
+ )
+)
+
+
+
+;; From grand.h
+
+(define-function g_rand_new_with_seed
+ (c-name "g_rand_new_with_seed")
+ (return-type "GRand*")
+ (parameters
+ '("guint32" "seed")
+ )
+)
+
+(define-function g_rand_new_with_seed_array
+ (c-name "g_rand_new_with_seed_array")
+ (return-type "GRand*")
+ (parameters
+ '("const-guint32*" "seed")
+ '("guint" "seed_length")
+ )
+)
+
+(define-function g_rand_new
+ (c-name "g_rand_new")
+ (is-constructor-of "GRand")
+ (return-type "GRand*")
+)
+
+(define-method free
+ (of-object "GRand")
+ (c-name "g_rand_free")
+ (return-type "none")
+)
+
+(define-method copy
+ (of-object "GRand")
+ (c-name "g_rand_copy")
+ (return-type "GRand*")
+)
+
+(define-method set_seed
+ (of-object "GRand")
+ (c-name "g_rand_set_seed")
+ (return-type "none")
+ (parameters
+ '("guint32" "seed")
+ )
+)
+
+(define-method set_seed_array
+ (of-object "GRand")
+ (c-name "g_rand_set_seed_array")
+ (return-type "none")
+ (parameters
+ '("const-guint32*" "seed")
+ '("guint" "seed_length")
+ )
+)
+
+(define-method int
+ (of-object "GRand")
+ (c-name "g_rand_int")
+ (return-type "guint32")
+)
+
+(define-method int_range
+ (of-object "GRand")
+ (c-name "g_rand_int_range")
+ (return-type "gint32")
+ (parameters
+ '("gint32" "begin")
+ '("gint32" "end")
+ )
+)
+
+(define-method double
+ (of-object "GRand")
+ (c-name "g_rand_double")
+ (return-type "gdouble")
+)
+
+(define-method double_range
+ (of-object "GRand")
+ (c-name "g_rand_double_range")
+ (return-type "gdouble")
+ (parameters
+ '("gdouble" "begin")
+ '("gdouble" "end")
+ )
+)
+
+(define-function g_random_set_seed
+ (c-name "g_random_set_seed")
+ (return-type "none")
+ (parameters
+ '("guint32" "seed")
+ )
+)
+
+(define-function g_random_int
+ (c-name "g_random_int")
+ (return-type "guint32")
+)
+
+(define-function g_random_int_range
+ (c-name "g_random_int_range")
+ (return-type "gint32")
+ (parameters
+ '("gint32" "begin")
+ '("gint32" "end")
+ )
+)
+
+(define-function g_random_double
+ (c-name "g_random_double")
+ (return-type "gdouble")
+)
+
+(define-function g_random_double_range
+ (c-name "g_random_double_range")
+ (return-type "gdouble")
+ (parameters
+ '("gdouble" "begin")
+ '("gdouble" "end")
+ )
+)
+
+
+
+;; From gregex.h
+
+(define-function g_regex_error_quark
+ (c-name "g_regex_error_quark")
+ (return-type "GQuark")
+)
+
+(define-function g_regex_new
+ (c-name "g_regex_new")
+ (is-constructor-of "GRegex")
+ (return-type "GRegex*")
+ (parameters
+ '("const-gchar*" "pattern")
+ '("GRegexCompileFlags" "compile_options")
+ '("GRegexMatchFlags" "match_options")
+ '("GError**" "error")
+ )
+)
+
+(define-method ref
+ (of-object "GRegex")
+ (c-name "g_regex_ref")
+ (return-type "GRegex*")
+)
+
+(define-method unref
+ (of-object "GRegex")
+ (c-name "g_regex_unref")
+ (return-type "none")
+)
+
+(define-method get_pattern
+ (of-object "GRegex")
+ (c-name "g_regex_get_pattern")
+ (return-type "const-gchar*")
+)
+
+(define-method get_max_backref
+ (of-object "GRegex")
+ (c-name "g_regex_get_max_backref")
+ (return-type "gint")
+)
+
+(define-method get_capture_count
+ (of-object "GRegex")
+ (c-name "g_regex_get_capture_count")
+ (return-type "gint")
+)
+
+(define-method get_has_cr_or_lf
+ (of-object "GRegex")
+ (c-name "g_regex_get_has_cr_or_lf")
+ (return-type "gboolean")
+)
+
+(define-method get_max_lookbehind
+ (of-object "GRegex")
+ (c-name "g_regex_get_max_lookbehind")
+ (return-type "gint")
+)
+
+(define-method get_string_number
+ (of-object "GRegex")
+ (c-name "g_regex_get_string_number")
+ (return-type "gint")
+ (parameters
+ '("const-gchar*" "name")
+ )
+)
+
+(define-function g_regex_escape_string
+ (c-name "g_regex_escape_string")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "string")
+ '("gint" "length")
+ )
+)
+
+(define-function g_regex_escape_nul
+ (c-name "g_regex_escape_nul")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "string")
+ '("gint" "length")
+ )
+)
+
+(define-method get_compile_flags
+ (of-object "GRegex")
+ (c-name "g_regex_get_compile_flags")
+ (return-type "GRegexCompileFlags")
+)
+
+(define-method get_match_flags
+ (of-object "GRegex")
+ (c-name "g_regex_get_match_flags")
+ (return-type "GRegexMatchFlags")
+)
+
+(define-function g_regex_match_simple
+ (c-name "g_regex_match_simple")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "pattern")
+ '("const-gchar*" "string")
+ '("GRegexCompileFlags" "compile_options")
+ '("GRegexMatchFlags" "match_options")
+ )
+)
+
+(define-method match
+ (of-object "GRegex")
+ (c-name "g_regex_match")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "string")
+ '("GRegexMatchFlags" "match_options")
+ '("GMatchInfo**" "match_info")
+ )
+)
+
+(define-method match_full
+ (of-object "GRegex")
+ (c-name "g_regex_match_full")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "string")
+ '("gssize" "string_len")
+ '("gint" "start_position")
+ '("GRegexMatchFlags" "match_options")
+ '("GMatchInfo**" "match_info")
+ '("GError**" "error")
+ )
+)
+
+(define-method match_all
+ (of-object "GRegex")
+ (c-name "g_regex_match_all")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "string")
+ '("GRegexMatchFlags" "match_options")
+ '("GMatchInfo**" "match_info")
+ )
+)
+
+(define-method match_all_full
+ (of-object "GRegex")
+ (c-name "g_regex_match_all_full")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "string")
+ '("gssize" "string_len")
+ '("gint" "start_position")
+ '("GRegexMatchFlags" "match_options")
+ '("GMatchInfo**" "match_info")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_regex_split_simple
+ (c-name "g_regex_split_simple")
+ (return-type "gchar**")
+ (parameters
+ '("const-gchar*" "pattern")
+ '("const-gchar*" "string")
+ '("GRegexCompileFlags" "compile_options")
+ '("GRegexMatchFlags" "match_options")
+ )
+)
+
+(define-method split
+ (of-object "GRegex")
+ (c-name "g_regex_split")
+ (return-type "gchar**")
+ (parameters
+ '("const-gchar*" "string")
+ '("GRegexMatchFlags" "match_options")
+ )
+)
+
+(define-method split_full
+ (of-object "GRegex")
+ (c-name "g_regex_split_full")
+ (return-type "gchar**")
+ (parameters
+ '("const-gchar*" "string")
+ '("gssize" "string_len")
+ '("gint" "start_position")
+ '("GRegexMatchFlags" "match_options")
+ '("gint" "max_tokens")
+ '("GError**" "error")
+ )
+)
+
+(define-method replace
+ (of-object "GRegex")
+ (c-name "g_regex_replace")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "string")
+ '("gssize" "string_len")
+ '("gint" "start_position")
+ '("const-gchar*" "replacement")
+ '("GRegexMatchFlags" "match_options")
+ '("GError**" "error")
+ )
+)
+
+(define-method replace_literal
+ (of-object "GRegex")
+ (c-name "g_regex_replace_literal")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "string")
+ '("gssize" "string_len")
+ '("gint" "start_position")
+ '("const-gchar*" "replacement")
+ '("GRegexMatchFlags" "match_options")
+ '("GError**" "error")
+ )
+)
+
+(define-method replace_eval
+ (of-object "GRegex")
+ (c-name "g_regex_replace_eval")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "string")
+ '("gssize" "string_len")
+ '("gint" "start_position")
+ '("GRegexMatchFlags" "match_options")
+ '("GRegexEvalCallback" "eval")
+ '("gpointer" "user_data")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_regex_check_replacement
+ (c-name "g_regex_check_replacement")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "replacement")
+ '("gboolean*" "has_references")
+ '("GError**" "error")
+ )
+)
+
+(define-method get_regex
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_get_regex")
+ (return-type "GRegex*")
+)
+
+(define-method get_string
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_get_string")
+ (return-type "const-gchar*")
+)
+
+(define-method ref
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_ref")
+ (return-type "GMatchInfo*")
+)
+
+(define-method unref
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_unref")
+ (return-type "none")
+)
+
+(define-method free
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_free")
+ (return-type "none")
+)
+
+(define-method next
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_next")
+ (return-type "gboolean")
+ (parameters
+ '("GError**" "error")
+ )
+)
+
+(define-method matches
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_matches")
+ (return-type "gboolean")
+)
+
+(define-method get_match_count
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_get_match_count")
+ (return-type "gint")
+)
+
+(define-method is_partial_match
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_is_partial_match")
+ (return-type "gboolean")
+)
+
+(define-method expand_references
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_expand_references")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "string_to_expand")
+ '("GError**" "error")
+ )
+)
+
+(define-method fetch
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_fetch")
+ (return-type "gchar*")
+ (parameters
+ '("gint" "match_num")
+ )
+)
+
+(define-method fetch_pos
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_fetch_pos")
+ (return-type "gboolean")
+ (parameters
+ '("gint" "match_num")
+ '("gint*" "start_pos")
+ '("gint*" "end_pos")
+ )
+)
+
+(define-method fetch_named
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_fetch_named")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "name")
+ )
+)
+
+(define-method fetch_named_pos
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_fetch_named_pos")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "name")
+ '("gint*" "start_pos")
+ '("gint*" "end_pos")
+ )
+)
+
+(define-method fetch_all
+ (of-object "GMatchInfo")
+ (c-name "g_match_info_fetch_all")
+ (return-type "gchar**")
+)
+
+
+
+;; From gscanner.h
+
+(define-function g_scanner_new
+ (c-name "g_scanner_new")
+ (is-constructor-of "GScanner")
+ (return-type "GScanner*")
+ (parameters
+ '("const-GScannerConfig*" "config_templ")
+ )
+)
+
+(define-method destroy
+ (of-object "GScanner")
+ (c-name "g_scanner_destroy")
+ (return-type "none")
+)
+
+(define-method input_file
+ (of-object "GScanner")
+ (c-name "g_scanner_input_file")
+ (return-type "none")
+ (parameters
+ '("gint" "input_fd")
+ )
+)
+
+(define-method sync_file_offset
+ (of-object "GScanner")
+ (c-name "g_scanner_sync_file_offset")
+ (return-type "none")
+)
+
+(define-method input_text
+ (of-object "GScanner")
+ (c-name "g_scanner_input_text")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "text")
+ '("guint" "text_len")
+ )
+)
+
+(define-method get_next_token
+ (of-object "GScanner")
+ (c-name "g_scanner_get_next_token")
+ (return-type "GTokenType")
+)
+
+(define-method peek_next_token
+ (of-object "GScanner")
+ (c-name "g_scanner_peek_next_token")
+ (return-type "GTokenType")
+)
+
+(define-method cur_token
+ (of-object "GScanner")
+ (c-name "g_scanner_cur_token")
+ (return-type "GTokenType")
+)
+
+(define-method cur_value
+ (of-object "GScanner")
+ (c-name "g_scanner_cur_value")
+ (return-type "GTokenValue")
+)
+
+(define-method cur_line
+ (of-object "GScanner")
+ (c-name "g_scanner_cur_line")
+ (return-type "guint")
+)
+
+(define-method cur_position
+ (of-object "GScanner")
+ (c-name "g_scanner_cur_position")
+ (return-type "guint")
+)
+
+(define-method eof
+ (of-object "GScanner")
+ (c-name "g_scanner_eof")
+ (return-type "gboolean")
+)
+
+(define-method set_scope
+ (of-object "GScanner")
+ (c-name "g_scanner_set_scope")
+ (return-type "guint")
+ (parameters
+ '("guint" "scope_id")
+ )
+)
+
+(define-method scope_add_symbol
+ (of-object "GScanner")
+ (c-name "g_scanner_scope_add_symbol")
+ (return-type "none")
+ (parameters
+ '("guint" "scope_id")
+ '("const-gchar*" "symbol")
+ '("gpointer" "value")
+ )
+)
+
+(define-method scope_remove_symbol
+ (of-object "GScanner")
+ (c-name "g_scanner_scope_remove_symbol")
+ (return-type "none")
+ (parameters
+ '("guint" "scope_id")
+ '("const-gchar*" "symbol")
+ )
+)
+
+(define-method scope_lookup_symbol
+ (of-object "GScanner")
+ (c-name "g_scanner_scope_lookup_symbol")
+ (return-type "gpointer")
+ (parameters
+ '("guint" "scope_id")
+ '("const-gchar*" "symbol")
+ )
+)
+
+(define-method scope_foreach_symbol
+ (of-object "GScanner")
+ (c-name "g_scanner_scope_foreach_symbol")
+ (return-type "none")
+ (parameters
+ '("guint" "scope_id")
+ '("GHFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method lookup_symbol
+ (of-object "GScanner")
+ (c-name "g_scanner_lookup_symbol")
+ (return-type "gpointer")
+ (parameters
+ '("const-gchar*" "symbol")
+ )
+)
+
+(define-method unexp_token
+ (of-object "GScanner")
+ (c-name "g_scanner_unexp_token")
+ (return-type "none")
+ (parameters
+ '("GTokenType" "expected_token")
+ '("const-gchar*" "identifier_spec")
+ '("const-gchar*" "symbol_spec")
+ '("const-gchar*" "symbol_name")
+ '("const-gchar*" "message")
+ '("gint" "is_error")
+ )
+)
+
+(define-method error
+ (of-object "GScanner")
+ (c-name "g_scanner_error")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-method warn
+ (of-object "GScanner")
+ (c-name "g_scanner_warn")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+
+
+;; From gscripttable.h
+
+
+
+;; From gsequence.h
+
+(define-function g_sequence_new
+ (c-name "g_sequence_new")
+ (is-constructor-of "GSequence")
+ (return-type "GSequence*")
+ (parameters
+ '("GDestroyNotify" "data_destroy")
+ )
+)
+
+(define-method free
+ (of-object "GSequence")
+ (c-name "g_sequence_free")
+ (return-type "none")
+)
+
+(define-method get_length
+ (of-object "GSequence")
+ (c-name "g_sequence_get_length")
+ (return-type "gint")
+)
+
+(define-method foreach
+ (of-object "GSequence")
+ (c-name "g_sequence_foreach")
+ (return-type "none")
+ (parameters
+ '("GFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-function g_sequence_foreach_range
+ (c-name "g_sequence_foreach_range")
+ (return-type "none")
+ (parameters
+ '("GSequenceIter*" "begin")
+ '("GSequenceIter*" "end")
+ '("GFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method sort
+ (of-object "GSequence")
+ (c-name "g_sequence_sort")
+ (return-type "none")
+ (parameters
+ '("GCompareDataFunc" "cmp_func")
+ '("gpointer" "cmp_data")
+ )
+)
+
+(define-method sort_iter
+ (of-object "GSequence")
+ (c-name "g_sequence_sort_iter")
+ (return-type "none")
+ (parameters
+ '("GSequenceIterCompareFunc" "cmp_func")
+ '("gpointer" "cmp_data")
+ )
+)
+
+(define-method get_begin_iter
+ (of-object "GSequence")
+ (c-name "g_sequence_get_begin_iter")
+ (return-type "GSequenceIter*")
+)
+
+(define-method get_end_iter
+ (of-object "GSequence")
+ (c-name "g_sequence_get_end_iter")
+ (return-type "GSequenceIter*")
+)
+
+(define-method get_iter_at_pos
+ (of-object "GSequence")
+ (c-name "g_sequence_get_iter_at_pos")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("gint" "pos")
+ )
+)
+
+(define-method append
+ (of-object "GSequence")
+ (c-name "g_sequence_append")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-method prepend
+ (of-object "GSequence")
+ (c-name "g_sequence_prepend")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_sequence_insert_before
+ (c-name "g_sequence_insert_before")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("GSequenceIter*" "iter")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_sequence_move
+ (c-name "g_sequence_move")
+ (return-type "none")
+ (parameters
+ '("GSequenceIter*" "src")
+ '("GSequenceIter*" "dest")
+ )
+)
+
+(define-function g_sequence_swap
+ (c-name "g_sequence_swap")
+ (return-type "none")
+ (parameters
+ '("GSequenceIter*" "a")
+ '("GSequenceIter*" "b")
+ )
+)
+
+(define-method insert_sorted
+ (of-object "GSequence")
+ (c-name "g_sequence_insert_sorted")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("gpointer" "data")
+ '("GCompareDataFunc" "cmp_func")
+ '("gpointer" "cmp_data")
+ )
+)
+
+(define-method insert_sorted_iter
+ (of-object "GSequence")
+ (c-name "g_sequence_insert_sorted_iter")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("gpointer" "data")
+ '("GSequenceIterCompareFunc" "iter_cmp")
+ '("gpointer" "cmp_data")
+ )
+)
+
+(define-function g_sequence_sort_changed
+ (c-name "g_sequence_sort_changed")
+ (return-type "none")
+ (parameters
+ '("GSequenceIter*" "iter")
+ '("GCompareDataFunc" "cmp_func")
+ '("gpointer" "cmp_data")
+ )
+)
+
+(define-function g_sequence_sort_changed_iter
+ (c-name "g_sequence_sort_changed_iter")
+ (return-type "none")
+ (parameters
+ '("GSequenceIter*" "iter")
+ '("GSequenceIterCompareFunc" "iter_cmp")
+ '("gpointer" "cmp_data")
+ )
+)
+
+(define-function g_sequence_remove
+ (c-name "g_sequence_remove")
+ (return-type "none")
+ (parameters
+ '("GSequenceIter*" "iter")
+ )
+)
+
+(define-function g_sequence_remove_range
+ (c-name "g_sequence_remove_range")
+ (return-type "none")
+ (parameters
+ '("GSequenceIter*" "begin")
+ '("GSequenceIter*" "end")
+ )
+)
+
+(define-function g_sequence_move_range
+ (c-name "g_sequence_move_range")
+ (return-type "none")
+ (parameters
+ '("GSequenceIter*" "dest")
+ '("GSequenceIter*" "begin")
+ '("GSequenceIter*" "end")
+ )
+)
+
+(define-method search
+ (of-object "GSequence")
+ (c-name "g_sequence_search")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("gpointer" "data")
+ '("GCompareDataFunc" "cmp_func")
+ '("gpointer" "cmp_data")
+ )
+)
+
+(define-method search_iter
+ (of-object "GSequence")
+ (c-name "g_sequence_search_iter")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("gpointer" "data")
+ '("GSequenceIterCompareFunc" "iter_cmp")
+ '("gpointer" "cmp_data")
+ )
+)
+
+(define-method lookup
+ (of-object "GSequence")
+ (c-name "g_sequence_lookup")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("gpointer" "data")
+ '("GCompareDataFunc" "cmp_func")
+ '("gpointer" "cmp_data")
+ )
+)
+
+(define-method lookup_iter
+ (of-object "GSequence")
+ (c-name "g_sequence_lookup_iter")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("gpointer" "data")
+ '("GSequenceIterCompareFunc" "iter_cmp")
+ '("gpointer" "cmp_data")
+ )
+)
+
+(define-function g_sequence_get
+ (c-name "g_sequence_get")
+ (return-type "gpointer")
+ (parameters
+ '("GSequenceIter*" "iter")
+ )
+)
+
+(define-function g_sequence_set
+ (c-name "g_sequence_set")
+ (return-type "none")
+ (parameters
+ '("GSequenceIter*" "iter")
+ '("gpointer" "data")
+ )
+)
+
+(define-method is_begin
+ (of-object "GSequenceIter")
+ (c-name "g_sequence_iter_is_begin")
+ (return-type "gboolean")
+)
+
+(define-method is_end
+ (of-object "GSequenceIter")
+ (c-name "g_sequence_iter_is_end")
+ (return-type "gboolean")
+)
+
+(define-method next
+ (of-object "GSequenceIter")
+ (c-name "g_sequence_iter_next")
+ (return-type "GSequenceIter*")
+)
+
+(define-method prev
+ (of-object "GSequenceIter")
+ (c-name "g_sequence_iter_prev")
+ (return-type "GSequenceIter*")
+)
+
+(define-method get_position
+ (of-object "GSequenceIter")
+ (c-name "g_sequence_iter_get_position")
+ (return-type "gint")
+)
+
+(define-method move
+ (of-object "GSequenceIter")
+ (c-name "g_sequence_iter_move")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("gint" "delta")
+ )
+)
+
+(define-method get_sequence
+ (of-object "GSequenceIter")
+ (c-name "g_sequence_iter_get_sequence")
+ (return-type "GSequence*")
+)
+
+(define-method compare
+ (of-object "GSequenceIter")
+ (c-name "g_sequence_iter_compare")
+ (return-type "gint")
+ (parameters
+ '("GSequenceIter*" "b")
+ )
+)
+
+(define-function g_sequence_range_get_midpoint
+ (c-name "g_sequence_range_get_midpoint")
+ (return-type "GSequenceIter*")
+ (parameters
+ '("GSequenceIter*" "begin")
+ '("GSequenceIter*" "end")
+ )
+)
+
+
+
+;; From gshell.h
+
+(define-function g_shell_error_quark
+ (c-name "g_shell_error_quark")
+ (return-type "GQuark")
+)
+
+(define-function g_shell_quote
+ (c-name "g_shell_quote")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "unquoted_string")
+ )
+)
+
+(define-function g_shell_unquote
+ (c-name "g_shell_unquote")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "quoted_string")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_shell_parse_argv
+ (c-name "g_shell_parse_argv")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "command_line")
+ '("gint*" "argcp")
+ '("gchar***" "argvp")
+ '("GError**" "error")
+ )
+)
+
+
+
+;; From gslice.h
+
+(define-function g_slice_alloc
+ (c-name "g_slice_alloc")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "block_size")
+ )
+)
+
+(define-function g_slice_alloc0
+ (c-name "g_slice_alloc0")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "block_size")
+ )
+)
+
+(define-function g_slice_copy
+ (c-name "g_slice_copy")
+ (return-type "gpointer")
+ (parameters
+ '("gsize" "block_size")
+ '("gconstpointer" "mem_block")
+ )
+)
+
+(define-function g_slice_free1
+ (c-name "g_slice_free1")
+ (return-type "none")
+ (parameters
+ '("gsize" "block_size")
+ '("gpointer" "mem_block")
+ )
+)
+
+(define-function g_slice_free_chain_with_offset
+ (c-name "g_slice_free_chain_with_offset")
+ (return-type "none")
+ (parameters
+ '("gsize" "block_size")
+ '("gpointer" "mem_chain")
+ '("gsize" "next_offset")
+ )
+)
+
+(define-function g_slice_set_config
+ (c-name "g_slice_set_config")
+ (return-type "none")
+ (parameters
+ '("GSliceConfig" "ckey")
+ '("gint64" "value")
+ )
+)
+
+(define-function g_slice_get_config
+ (c-name "g_slice_get_config")
+ (return-type "gint64")
+ (parameters
+ '("GSliceConfig" "ckey")
+ )
+)
+
+(define-function g_slice_get_config_state
+ (c-name "g_slice_get_config_state")
+ (return-type "gint64*")
+ (parameters
+ '("GSliceConfig" "ckey")
+ '("gint64" "address")
+ '("guint*" "n_values")
+ )
+)
+
+(define-function g_slice_debug_tree_statistics
+ (c-name "g_slice_debug_tree_statistics")
+ (return-type "none")
+)
+
+
+
+;; From gslist.h
+
+(define-function g_slist_alloc
+ (c-name "g_slist_alloc")
+ (return-type "GSList*")
+)
+
+(define-method free
+ (of-object "GSList")
+ (c-name "g_slist_free")
+ (return-type "none")
+)
+
+(define-method free_1
+ (of-object "GSList")
+ (c-name "g_slist_free_1")
+ (return-type "none")
+)
+
+(define-method free_full
+ (of-object "GSList")
+ (c-name "g_slist_free_full")
+ (return-type "none")
+ (parameters
+ '("GDestroyNotify" "free_func")
+ )
+)
+
+(define-method append
+ (of-object "GSList")
+ (c-name "g_slist_append")
+ (return-type "GSList*")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-method prepend
+ (of-object "GSList")
+ (c-name "g_slist_prepend")
+ (return-type "GSList*")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-method insert
+ (of-object "GSList")
+ (c-name "g_slist_insert")
+ (return-type "GSList*")
+ (parameters
+ '("gpointer" "data")
+ '("gint" "position")
+ )
+)
+
+(define-method insert_sorted
+ (of-object "GSList")
+ (c-name "g_slist_insert_sorted")
+ (return-type "GSList*")
+ (parameters
+ '("gpointer" "data")
+ '("GCompareFunc" "func")
+ )
+)
+
+(define-method insert_sorted_with_data
+ (of-object "GSList")
+ (c-name "g_slist_insert_sorted_with_data")
+ (return-type "GSList*")
+ (parameters
+ '("gpointer" "data")
+ '("GCompareDataFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method insert_before
+ (of-object "GSList")
+ (c-name "g_slist_insert_before")
+ (return-type "GSList*")
+ (parameters
+ '("GSList*" "sibling")
+ '("gpointer" "data")
+ )
+)
+
+(define-method concat
+ (of-object "GSList")
+ (c-name "g_slist_concat")
+ (return-type "GSList*")
+ (parameters
+ '("GSList*" "list2")
+ )
+)
+
+(define-method remove
+ (of-object "GSList")
+ (c-name "g_slist_remove")
+ (return-type "GSList*")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method remove_all
+ (of-object "GSList")
+ (c-name "g_slist_remove_all")
+ (return-type "GSList*")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method remove_link
+ (of-object "GSList")
+ (c-name "g_slist_remove_link")
+ (return-type "GSList*")
+ (parameters
+ '("GSList*" "link_")
+ )
+)
+
+(define-method delete_link
+ (of-object "GSList")
+ (c-name "g_slist_delete_link")
+ (return-type "GSList*")
+ (parameters
+ '("GSList*" "link_")
+ )
+)
+
+(define-method reverse
+ (of-object "GSList")
+ (c-name "g_slist_reverse")
+ (return-type "GSList*")
+)
+
+(define-method copy
+ (of-object "GSList")
+ (c-name "g_slist_copy")
+ (return-type "GSList*")
+)
+
+(define-method copy_deep
+ (of-object "GSList")
+ (c-name "g_slist_copy_deep")
+ (return-type "GSList*")
+ (parameters
+ '("GCopyFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method nth
+ (of-object "GSList")
+ (c-name "g_slist_nth")
+ (return-type "GSList*")
+ (parameters
+ '("guint" "n")
+ )
+)
+
+(define-method find
+ (of-object "GSList")
+ (c-name "g_slist_find")
+ (return-type "GSList*")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method find_custom
+ (of-object "GSList")
+ (c-name "g_slist_find_custom")
+ (return-type "GSList*")
+ (parameters
+ '("gconstpointer" "data")
+ '("GCompareFunc" "func")
+ )
+)
+
+(define-method position
+ (of-object "GSList")
+ (c-name "g_slist_position")
+ (return-type "gint")
+ (parameters
+ '("GSList*" "llink")
+ )
+)
+
+(define-method index
+ (of-object "GSList")
+ (c-name "g_slist_index")
+ (return-type "gint")
+ (parameters
+ '("gconstpointer" "data")
+ )
+)
+
+(define-method last
+ (of-object "GSList")
+ (c-name "g_slist_last")
+ (return-type "GSList*")
+)
+
+(define-method length
+ (of-object "GSList")
+ (c-name "g_slist_length")
+ (return-type "guint")
+)
+
+(define-method foreach
+ (of-object "GSList")
+ (c-name "g_slist_foreach")
+ (return-type "none")
+ (parameters
+ '("GFunc" "func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method sort
+ (of-object "GSList")
+ (c-name "g_slist_sort")
+ (return-type "GSList*")
+ (parameters
+ '("GCompareFunc" "compare_func")
+ )
+)
+
+(define-method sort_with_data
+ (of-object "GSList")
+ (c-name "g_slist_sort_with_data")
+ (return-type "GSList*")
+ (parameters
+ '("GCompareDataFunc" "compare_func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method nth_data
+ (of-object "GSList")
+ (c-name "g_slist_nth_data")
+ (return-type "gpointer")
+ (parameters
+ '("guint" "n")
+ )
+)
+
+
+
+;; From gspawn.h
+
+(define-function g_spawn_error_quark
+ (c-name "g_spawn_error_quark")
+ (return-type "GQuark")
+)
+
+(define-function g_spawn_exit_error_quark
+ (c-name "g_spawn_exit_error_quark")
+ (return-type "GQuark")
+)
+
+(define-function g_spawn_async
+ (c-name "g_spawn_async")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "working_directory")
+ '("gchar**" "argv")
+ '("gchar**" "envp")
+ '("GSpawnFlags" "flags")
+ '("GSpawnChildSetupFunc" "child_setup")
+ '("gpointer" "user_data")
+ '("GPid*" "child_pid")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_spawn_async_with_pipes
+ (c-name "g_spawn_async_with_pipes")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "working_directory")
+ '("gchar**" "argv")
+ '("gchar**" "envp")
+ '("GSpawnFlags" "flags")
+ '("GSpawnChildSetupFunc" "child_setup")
+ '("gpointer" "user_data")
+ '("GPid*" "child_pid")
+ '("gint*" "standard_input")
+ '("gint*" "standard_output")
+ '("gint*" "standard_error")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_spawn_sync
+ (c-name "g_spawn_sync")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "working_directory")
+ '("gchar**" "argv")
+ '("gchar**" "envp")
+ '("GSpawnFlags" "flags")
+ '("GSpawnChildSetupFunc" "child_setup")
+ '("gpointer" "user_data")
+ '("gchar**" "standard_output")
+ '("gchar**" "standard_error")
+ '("gint*" "exit_status")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_spawn_command_line_sync
+ (c-name "g_spawn_command_line_sync")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "command_line")
+ '("gchar**" "standard_output")
+ '("gchar**" "standard_error")
+ '("gint*" "exit_status")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_spawn_command_line_async
+ (c-name "g_spawn_command_line_async")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "command_line")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_spawn_check_exit_status
+ (c-name "g_spawn_check_exit_status")
+ (return-type "gboolean")
+ (parameters
+ '("gint" "exit_status")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_spawn_close_pid
+ (c-name "g_spawn_close_pid")
+ (return-type "none")
+ (parameters
+ '("GPid" "pid")
+ )
+)
+
+(define-function g_spawn_async_utf8
+ (c-name "g_spawn_async_utf8")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "working_directory")
+ '("gchar**" "argv")
+ '("gchar**" "envp")
+ '("GSpawnFlags" "flags")
+ '("GSpawnChildSetupFunc" "child_setup")
+ '("gpointer" "user_data")
+ '("GPid*" "child_pid")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_spawn_async_with_pipes_utf8
+ (c-name "g_spawn_async_with_pipes_utf8")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "working_directory")
+ '("gchar**" "argv")
+ '("gchar**" "envp")
+ '("GSpawnFlags" "flags")
+ '("GSpawnChildSetupFunc" "child_setup")
+ '("gpointer" "user_data")
+ '("GPid*" "child_pid")
+ '("gint*" "standard_input")
+ '("gint*" "standard_output")
+ '("gint*" "standard_error")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_spawn_sync_utf8
+ (c-name "g_spawn_sync_utf8")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "working_directory")
+ '("gchar**" "argv")
+ '("gchar**" "envp")
+ '("GSpawnFlags" "flags")
+ '("GSpawnChildSetupFunc" "child_setup")
+ '("gpointer" "user_data")
+ '("gchar**" "standard_output")
+ '("gchar**" "standard_error")
+ '("gint*" "exit_status")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_spawn_command_line_sync_utf8
+ (c-name "g_spawn_command_line_sync_utf8")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "command_line")
+ '("gchar**" "standard_output")
+ '("gchar**" "standard_error")
+ '("gint*" "exit_status")
+ '("GError**" "error")
+ )
+)
+
+(define-function g_spawn_command_line_async_utf8
+ (c-name "g_spawn_command_line_async_utf8")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "command_line")
+ '("GError**" "error")
+ )
+)
+
+
+
+;; From gstdio.h
+
+(define-function g_access
+ (c-name "g_access")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ '("int" "mode")
+ )
+)
+
+(define-function g_chdir
+ (c-name "g_chdir")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "path")
+ )
+)
+
+(define-function g_unlink
+ (c-name "g_unlink")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ )
+)
+
+(define-function g_rmdir
+ (c-name "g_rmdir")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ )
+)
+
+(define-function g_chmod
+ (c-name "g_chmod")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ '("int" "mode")
+ )
+)
+
+(define-function g_open
+ (c-name "g_open")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ '("int" "flags")
+ '("int" "mode")
+ )
+)
+
+(define-function g_creat
+ (c-name "g_creat")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ '("int" "mode")
+ )
+)
+
+(define-function g_rename
+ (c-name "g_rename")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "oldfilename")
+ '("const-gchar*" "newfilename")
+ )
+)
+
+(define-function g_mkdir
+ (c-name "g_mkdir")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ '("int" "mode")
+ )
+)
+
+(define-function g_stat
+ (c-name "g_stat")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ '("GStatBuf*" "buf")
+ )
+)
+
+(define-function g_lstat
+ (c-name "g_lstat")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ '("GStatBuf*" "buf")
+ )
+)
+
+(define-function g_remove
+ (c-name "g_remove")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ )
+)
+
+(define-function g_fopen
+ (c-name "g_fopen")
+ (return-type "FILE*")
+ (parameters
+ '("const-gchar*" "filename")
+ '("const-gchar*" "mode")
+ )
+)
+
+(define-function g_freopen
+ (c-name "g_freopen")
+ (return-type "FILE*")
+ (parameters
+ '("const-gchar*" "filename")
+ '("const-gchar*" "mode")
+ '("FILE*" "stream")
+ )
+)
+
+(define-function g_utime
+ (c-name "g_utime")
+ (return-type "int")
+ (parameters
+ '("const-gchar*" "filename")
+ '("struct-utimbuf*" "utb")
+ )
+)
+
+(define-function g_close
+ (c-name "g_close")
+ (return-type "gboolean")
+ (parameters
+ '("gint" "fd")
+ '("GError**" "error")
+ )
+)
+
+
+
+;; From gstrfuncs.h
+
+(define-function g_ascii_tolower
+ (c-name "g_ascii_tolower")
+ (return-type "gchar")
+ (parameters
+ '("gchar" "c")
+ )
+)
+
+(define-function g_ascii_toupper
+ (c-name "g_ascii_toupper")
+ (return-type "gchar")
+ (parameters
+ '("gchar" "c")
+ )
+)
+
+(define-function g_ascii_digit_value
+ (c-name "g_ascii_digit_value")
+ (return-type "gint")
+ (parameters
+ '("gchar" "c")
+ )
+)
+
+(define-function g_ascii_xdigit_value
+ (c-name "g_ascii_xdigit_value")
+ (return-type "gint")
+ (parameters
+ '("gchar" "c")
+ )
+)
+
+(define-function g_strdelimit
+ (c-name "g_strdelimit")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "string")
+ '("const-gchar*" "delimiters")
+ '("gchar" "new_delimiter")
+ )
+)
+
+(define-function g_strcanon
+ (c-name "g_strcanon")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "string")
+ '("const-gchar*" "valid_chars")
+ '("gchar" "substitutor")
+ )
+)
+
+(define-function g_strerror
+ (c-name "g_strerror")
+ (return-type "const-gchar*")
+ (parameters
+ '("gint" "errnum")
+ )
+)
+
+(define-function g_strsignal
+ (c-name "g_strsignal")
+ (return-type "const-gchar*")
+ (parameters
+ '("gint" "signum")
+ )
+)
+
+(define-function g_strreverse
+ (c-name "g_strreverse")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "string")
+ )
+)
+
+(define-function g_strlcpy
+ (c-name "g_strlcpy")
+ (return-type "gsize")
+ (parameters
+ '("gchar*" "dest")
+ '("const-gchar*" "src")
+ '("gsize" "dest_size")
+ )
+)
+
+(define-function g_strlcat
+ (c-name "g_strlcat")
+ (return-type "gsize")
+ (parameters
+ '("gchar*" "dest")
+ '("const-gchar*" "src")
+ '("gsize" "dest_size")
+ )
+)
+
+(define-function g_strstr_len
+ (c-name "g_strstr_len")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "haystack")
+ '("gssize" "haystack_len")
+ '("const-gchar*" "needle")
+ )
+)
+
+(define-function g_strrstr
+ (c-name "g_strrstr")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "haystack")
+ '("const-gchar*" "needle")
+ )
+)
+
+(define-function g_strrstr_len
+ (c-name "g_strrstr_len")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "haystack")
+ '("gssize" "haystack_len")
+ '("const-gchar*" "needle")
+ )
+)
+
+(define-function g_str_has_suffix
+ (c-name "g_str_has_suffix")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "str")
+ '("const-gchar*" "suffix")
+ )
+)
+
+(define-function g_str_has_prefix
+ (c-name "g_str_has_prefix")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "str")
+ '("const-gchar*" "prefix")
+ )
+)
+
+(define-function g_strtod
+ (c-name "g_strtod")
+ (return-type "gdouble")
+ (parameters
+ '("const-gchar*" "nptr")
+ '("gchar**" "endptr")
+ )
+)
+
+(define-function g_ascii_strtod
+ (c-name "g_ascii_strtod")
+ (return-type "gdouble")
+ (parameters
+ '("const-gchar*" "nptr")
+ '("gchar**" "endptr")
+ )
+)
+
+(define-function g_ascii_strtoull
+ (c-name "g_ascii_strtoull")
+ (return-type "guint64")
+ (parameters
+ '("const-gchar*" "nptr")
+ '("gchar**" "endptr")
+ '("guint" "base")
+ )
+)
+
+(define-function g_ascii_strtoll
+ (c-name "g_ascii_strtoll")
+ (return-type "gint64")
+ (parameters
+ '("const-gchar*" "nptr")
+ '("gchar**" "endptr")
+ '("guint" "base")
+ )
+)
+
+(define-function g_ascii_dtostr
+ (c-name "g_ascii_dtostr")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "buffer")
+ '("gint" "buf_len")
+ '("gdouble" "d")
+ )
+)
+
+(define-function g_ascii_formatd
+ (c-name "g_ascii_formatd")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "buffer")
+ '("gint" "buf_len")
+ '("const-gchar*" "format")
+ '("gdouble" "d")
+ )
+)
+
+(define-function g_strchug
+ (c-name "g_strchug")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "string")
+ )
+)
+
+(define-function g_strchomp
+ (c-name "g_strchomp")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "string")
+ )
+)
+
+(define-function g_ascii_strcasecmp
+ (c-name "g_ascii_strcasecmp")
+ (return-type "gint")
+ (parameters
+ '("const-gchar*" "s1")
+ '("const-gchar*" "s2")
+ )
+)
+
+(define-function g_ascii_strncasecmp
+ (c-name "g_ascii_strncasecmp")
+ (return-type "gint")
+ (parameters
+ '("const-gchar*" "s1")
+ '("const-gchar*" "s2")
+ '("gsize" "n")
+ )
+)
+
+(define-function g_ascii_strdown
+ (c-name "g_ascii_strdown")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "str")
+ '("gssize" "len")
+ )
+)
+
+(define-function g_ascii_strup
+ (c-name "g_ascii_strup")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "str")
+ '("gssize" "len")
+ )
+)
+
+(define-function g_str_is_ascii
+ (c-name "g_str_is_ascii")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "str")
+ )
+)
+
+(define-function g_strcasecmp
+ (c-name "g_strcasecmp")
+ (return-type "gint")
+ (parameters
+ '("const-gchar*" "s1")
+ '("const-gchar*" "s2")
+ )
+)
+
+(define-function g_strncasecmp
+ (c-name "g_strncasecmp")
+ (return-type "gint")
+ (parameters
+ '("const-gchar*" "s1")
+ '("const-gchar*" "s2")
+ '("guint" "n")
+ )
+)
+
+(define-function g_strdown
+ (c-name "g_strdown")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "string")
+ )
+)
+
+(define-function g_strup
+ (c-name "g_strup")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "string")
+ )
+)
+
+(define-function g_strdup
+ (c-name "g_strdup")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "str")
+ )
+)
+
+(define-function g_strdup_printf
+ (c-name "g_strdup_printf")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_strdup_vprintf
+ (c-name "g_strdup_vprintf")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "format")
+ '("va_list" "args")
+ )
+)
+
+(define-function g_strndup
+ (c-name "g_strndup")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "str")
+ '("gsize" "n")
+ )
+)
+
+(define-function g_strnfill
+ (c-name "g_strnfill")
+ (return-type "gchar*")
+ (parameters
+ '("gsize" "length")
+ '("gchar" "fill_char")
+ )
+)
+
+(define-function g_strconcat
+ (c-name "g_strconcat")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "string1")
+ )
+ (varargs #t)
+)
+
+(define-function g_strjoin
+ (c-name "g_strjoin")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "separator")
+ )
+ (varargs #t)
+)
+
+(define-function g_strcompress
+ (c-name "g_strcompress")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "source")
+ )
+)
+
+(define-function g_strescape
+ (c-name "g_strescape")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "source")
+ '("const-gchar*" "exceptions")
+ )
+)
+
+(define-function g_memdup
+ (c-name "g_memdup")
+ (return-type "gpointer")
+ (parameters
+ '("gconstpointer" "mem")
+ '("guint" "byte_size")
+ )
+)
+
+(define-function g_strsplit
+ (c-name "g_strsplit")
+ (return-type "gchar**")
+ (parameters
+ '("const-gchar*" "string")
+ '("const-gchar*" "delimiter")
+ '("gint" "max_tokens")
+ )
+)
+
+(define-function g_strsplit_set
+ (c-name "g_strsplit_set")
+ (return-type "gchar**")
+ (parameters
+ '("const-gchar*" "string")
+ '("const-gchar*" "delimiters")
+ '("gint" "max_tokens")
+ )
+)
+
+(define-function g_strjoinv
+ (c-name "g_strjoinv")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "separator")
+ '("gchar**" "str_array")
+ )
+)
+
+(define-function g_strfreev
+ (c-name "g_strfreev")
+ (return-type "none")
+ (parameters
+ '("gchar**" "str_array")
+ )
+)
+
+(define-function g_strdupv
+ (c-name "g_strdupv")
+ (return-type "gchar**")
+ (parameters
+ '("gchar**" "str_array")
+ )
+)
+
+(define-function g_strv_length
+ (c-name "g_strv_length")
+ (return-type "guint")
+ (parameters
+ '("gchar**" "str_array")
+ )
+)
+
+(define-function g_stpcpy
+ (c-name "g_stpcpy")
+ (return-type "gchar*")
+ (parameters
+ '("gchar*" "dest")
+ '("const-char*" "src")
+ )
+)
+
+(define-function g_str_to_ascii
+ (c-name "g_str_to_ascii")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "str")
+ '("const-gchar*" "from_locale")
+ )
+)
+
+(define-function g_str_tokenize_and_fold
+ (c-name "g_str_tokenize_and_fold")
+ (return-type "gchar**")
+ (parameters
+ '("const-gchar*" "string")
+ '("const-gchar*" "translit_locale")
+ '("gchar***" "ascii_alternates")
+ )
+)
+
+(define-function g_str_match_string
+ (c-name "g_str_match_string")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "search_term")
+ '("const-gchar*" "potential_hit")
+ '("gboolean" "accept_alternates")
+ )
+)
+
+(define-function g_strv_contains
+ (c-name "g_strv_contains")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*-const*" "strv")
+ '("const-gchar*" "str")
+ )
+)
+
+
+
+;; From gstringchunk.h
+
+(define-function g_string_chunk_new
+ (c-name "g_string_chunk_new")
+ (is-constructor-of "GStringChunk")
+ (return-type "GStringChunk*")
+ (parameters
+ '("gsize" "size")
+ )
+)
+
+(define-method free
+ (of-object "GStringChunk")
+ (c-name "g_string_chunk_free")
+ (return-type "none")
+)
+
+(define-method clear
+ (of-object "GStringChunk")
+ (c-name "g_string_chunk_clear")
+ (return-type "none")
+)
+
+(define-method insert
+ (of-object "GStringChunk")
+ (c-name "g_string_chunk_insert")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "string")
+ )
+)
+
+(define-method insert_len
+ (of-object "GStringChunk")
+ (c-name "g_string_chunk_insert_len")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "string")
+ '("gssize" "len")
+ )
+)
+
+
+
+;; From gstring.h
+
+(define-function g_string_new
+ (c-name "g_string_new")
+ (is-constructor-of "GString")
+ (return-type "GString*")
+ (parameters
+ '("const-gchar*" "init")
+ )
+)
+
+(define-function g_string_new_len
+ (c-name "g_string_new_len")
+ (return-type "GString*")
+ (parameters
+ '("const-gchar*" "init")
+ '("gssize" "len")
+ )
+)
+
+(define-function g_string_sized_new
+ (c-name "g_string_sized_new")
+ (is-constructor-of "GStringSized")
+ (return-type "GString*")
+ (parameters
+ '("gsize" "dfl_size")
+ )
+)
+
+(define-method free
+ (of-object "GString")
+ (c-name "g_string_free")
+ (return-type "gchar*")
+ (parameters
+ '("gboolean" "free_segment")
+ )
+)
+
+(define-method free_to_bytes
+ (of-object "GString")
+ (c-name "g_string_free_to_bytes")
+ (return-type "GBytes*")
+)
+
+(define-method equal
+ (of-object "GString")
+ (c-name "g_string_equal")
+ (return-type "gboolean")
+ (parameters
+ '("const-GString*" "v2")
+ )
+)
+
+(define-method hash
+ (of-object "GString")
+ (c-name "g_string_hash")
+ (return-type "guint")
+)
+
+(define-method assign
+ (of-object "GString")
+ (c-name "g_string_assign")
+ (return-type "GString*")
+ (parameters
+ '("const-gchar*" "rval")
+ )
+)
+
+(define-method truncate
+ (of-object "GString")
+ (c-name "g_string_truncate")
+ (return-type "GString*")
+ (parameters
+ '("gsize" "len")
+ )
+)
+
+(define-method set_size
+ (of-object "GString")
+ (c-name "g_string_set_size")
+ (return-type "GString*")
+ (parameters
+ '("gsize" "len")
+ )
+)
+
+(define-method insert_len
+ (of-object "GString")
+ (c-name "g_string_insert_len")
+ (return-type "GString*")
+ (parameters
+ '("gssize" "pos")
+ '("const-gchar*" "val")
+ '("gssize" "len")
+ )
+)
+
+(define-method append
+ (of-object "GString")
+ (c-name "g_string_append")
+ (return-type "GString*")
+ (parameters
+ '("const-gchar*" "val")
+ )
+)
+
+(define-method append_len
+ (of-object "GString")
+ (c-name "g_string_append_len")
+ (return-type "GString*")
+ (parameters
+ '("const-gchar*" "val")
+ '("gssize" "len")
+ )
+)
+
+(define-method append_c
+ (of-object "GString")
+ (c-name "g_string_append_c")
+ (return-type "GString*")
+ (parameters
+ '("gchar" "c")
+ )
+)
+
+(define-method append_unichar
+ (of-object "GString")
+ (c-name "g_string_append_unichar")
+ (return-type "GString*")
+ (parameters
+ '("gunichar" "wc")
+ )
+)
+
+(define-method prepend
+ (of-object "GString")
+ (c-name "g_string_prepend")
+ (return-type "GString*")
+ (parameters
+ '("const-gchar*" "val")
+ )
+)
+
+(define-method prepend_c
+ (of-object "GString")
+ (c-name "g_string_prepend_c")
+ (return-type "GString*")
+ (parameters
+ '("gchar" "c")
+ )
+)
+
+(define-method prepend_unichar
+ (of-object "GString")
+ (c-name "g_string_prepend_unichar")
+ (return-type "GString*")
+ (parameters
+ '("gunichar" "wc")
+ )
+)
+
+(define-method prepend_len
+ (of-object "GString")
+ (c-name "g_string_prepend_len")
+ (return-type "GString*")
+ (parameters
+ '("const-gchar*" "val")
+ '("gssize" "len")
+ )
+)
+
+(define-method insert
+ (of-object "GString")
+ (c-name "g_string_insert")
+ (return-type "GString*")
+ (parameters
+ '("gssize" "pos")
+ '("const-gchar*" "val")
+ )
+)
+
+(define-method insert_c
+ (of-object "GString")
+ (c-name "g_string_insert_c")
+ (return-type "GString*")
+ (parameters
+ '("gssize" "pos")
+ '("gchar" "c")
+ )
+)
+
+(define-method insert_unichar
+ (of-object "GString")
+ (c-name "g_string_insert_unichar")
+ (return-type "GString*")
+ (parameters
+ '("gssize" "pos")
+ '("gunichar" "wc")
+ )
+)
+
+(define-method overwrite
+ (of-object "GString")
+ (c-name "g_string_overwrite")
+ (return-type "GString*")
+ (parameters
+ '("gsize" "pos")
+ '("const-gchar*" "val")
+ )
+)
+
+(define-method overwrite_len
+ (of-object "GString")
+ (c-name "g_string_overwrite_len")
+ (return-type "GString*")
+ (parameters
+ '("gsize" "pos")
+ '("const-gchar*" "val")
+ '("gssize" "len")
+ )
+)
+
+(define-method erase
+ (of-object "GString")
+ (c-name "g_string_erase")
+ (return-type "GString*")
+ (parameters
+ '("gssize" "pos")
+ '("gssize" "len")
+ )
+)
+
+(define-method ascii_down
+ (of-object "GString")
+ (c-name "g_string_ascii_down")
+ (return-type "GString*")
+)
+
+(define-method ascii_up
+ (of-object "GString")
+ (c-name "g_string_ascii_up")
+ (return-type "GString*")
+)
+
+(define-method vprintf
+ (of-object "GString")
+ (c-name "g_string_vprintf")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ '("va_list" "args")
+ )
+)
+
+(define-method printf
+ (of-object "GString")
+ (c-name "g_string_printf")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-method append_vprintf
+ (of-object "GString")
+ (c-name "g_string_append_vprintf")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ '("va_list" "args")
+ )
+)
+
+(define-method append_printf
+ (of-object "GString")
+ (c-name "g_string_append_printf")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "format")
+ )
+ (varargs #t)
+)
+
+(define-method append_uri_escaped
+ (of-object "GString")
+ (c-name "g_string_append_uri_escaped")
+ (return-type "GString*")
+ (parameters
+ '("const-gchar*" "unescaped")
+ '("const-gchar*" "reserved_chars_allowed")
+ '("gboolean" "allow_utf8")
+ )
+)
+
+(define-method append_c_inline
+ (of-object "GString")
+ (c-name "g_string_append_c_inline")
+ (return-type "GString*")
+ (parameters
+ '("gchar" "c")
+ )
+)
+
+(define-method down
+ (of-object "GString")
+ (c-name "g_string_down")
+ (return-type "GString*")
+)
+
+(define-method up
+ (of-object "GString")
+ (c-name "g_string_up")
+ (return-type "GString*")
+)
+
+
+
+;; From gtestutils.h
+
+(define-function g_strcmp0
+ (c-name "g_strcmp0")
+ (return-type "int")
+ (parameters
+ '("const-char*" "str1")
+ '("const-char*" "str2")
+ )
+)
+
+(define-function g_test_minimized_result
+ (c-name "g_test_minimized_result")
+ (return-type "none")
+ (parameters
+ '("double" "minimized_quantity")
+ '("const-char*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_test_maximized_result
+ (c-name "g_test_maximized_result")
+ (return-type "none")
+ (parameters
+ '("double" "maximized_quantity")
+ '("const-char*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_test_init
+ (c-name "g_test_init")
+ (return-type "none")
+ (parameters
+ '("int*" "argc")
+ '("char***" "argv")
+ )
+ (varargs #t)
+)
+
+(define-function g_test_subprocess
+ (c-name "g_test_subprocess")
+ (return-type "gboolean")
+)
+
+(define-function g_test_run
+ (c-name "g_test_run")
+ (return-type "int")
+)
+
+(define-function g_test_add_func
+ (c-name "g_test_add_func")
+ (return-type "none")
+ (parameters
+ '("const-char*" "testpath")
+ '("GTestFunc" "test_func")
+ )
+)
+
+(define-function g_test_add_data_func
+ (c-name "g_test_add_data_func")
+ (return-type "none")
+ (parameters
+ '("const-char*" "testpath")
+ '("gconstpointer" "test_data")
+ '("GTestDataFunc" "test_func")
+ )
+)
+
+(define-function g_test_add_data_func_full
+ (c-name "g_test_add_data_func_full")
+ (return-type "none")
+ (parameters
+ '("const-char*" "testpath")
+ '("gpointer" "test_data")
+ '("GTestDataFunc" "test_func")
+ '("GDestroyNotify" "data_free_func")
+ )
+)
+
+(define-function g_test_fail
+ (c-name "g_test_fail")
+ (return-type "none")
+)
+
+(define-function g_test_incomplete
+ (c-name "g_test_incomplete")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "msg")
+ )
+)
+
+(define-function g_test_skip
+ (c-name "g_test_skip")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "msg")
+ )
+)
+
+(define-function g_test_failed
+ (c-name "g_test_failed")
+ (return-type "gboolean")
+)
+
+(define-function g_test_set_nonfatal_assertions
+ (c-name "g_test_set_nonfatal_assertions")
+ (return-type "none")
+)
+
+(define-function g_test_message
+ (c-name "g_test_message")
+ (return-type "none")
+ (parameters
+ '("const-char*" "format")
+ )
+ (varargs #t)
+)
+
+(define-function g_test_bug_base
+ (c-name "g_test_bug_base")
+ (return-type "none")
+ (parameters
+ '("const-char*" "uri_pattern")
+ )
+)
+
+(define-function g_test_bug
+ (c-name "g_test_bug")
+ (return-type "none")
+ (parameters
+ '("const-char*" "bug_uri_snippet")
+ )
+)
+
(define-method release
(of-object "GMainContext")
(c-name "g_main_context_release")
@@ -3079,12 +11058,19 @@
(return-type "GNode*")
)
-(define-method last_sibling
- (of-object "GNode")
- (c-name "g_node_last_sibling")
- (return-type "GNode*")
+(define-method locker_new
+ (of-object "GMutex")
+ (c-name "g_mutex_locker_new")
+ (return-type "GMutexLocker*")
+)
+
+(define-method free
+ (of-object "GMutexLocker")
+ (c-name "g_mutex_locker_free")
+ (return-type "none")
)
+
(define-method max_height
(of-object "GNode")
(c-name "g_node_max_height")
@@ -3168,10 +11154,19 @@
)
)
-(define-method add_main_entries
- (of-object "GOptionContext")
- (c-name "g_option_context_add_main_entries")
- (return-type "none")
+(define-method move_to_front
+ (of-object "GThreadPool")
+ (c-name "g_thread_pool_move_to_front")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "data")
+ )
+)
+
+(define-method set_max_threads
+ (of-object "GThreadPool")
+ (c-name "g_thread_pool_set_max_threads")
+ (return-type "gboolean")
(parameters
'("const-GOptionEntry*" "entries")
'("const-gchar*" "translation_domain")
@@ -3224,75 +11219,19 @@
(return-type "const-gchar*")
)
-(define-method parse
- (of-object "GOptionContext")
- (c-name "g_option_context_parse")
- (return-type "gboolean")
- (parameters
- '("gint*" "argc")
- '("gchar***" "argv")
- '("GError**" "error")
- )
-)
-
-(define-method parse_strv
- (of-object "GOptionContext")
- (c-name "g_option_context_parse_strv")
- (return-type "gboolean")
- (parameters
- '("gchar***" "arguments")
- '("GError**" "error")
- )
-)
-
-(define-method set_description
- (of-object "GOptionContext")
- (c-name "g_option_context_set_description")
- (return-type "none")
- (parameters
- '("const-gchar*" "description")
- )
-)
-(define-method set_help_enabled
- (of-object "GOptionContext")
- (c-name "g_option_context_set_help_enabled")
- (return-type "none")
- (parameters
- '("gboolean" "help_enabled")
- )
-)
-
-(define-method set_ignore_unknown_options
- (of-object "GOptionContext")
- (c-name "g_option_context_set_ignore_unknown_options")
- (return-type "none")
- (parameters
- '("gboolean" "ignore_unknown")
- )
-)
-(define-method set_main_group
- (of-object "GOptionContext")
- (c-name "g_option_context_set_main_group")
- (return-type "none")
- (parameters
- '("GOptionGroup*" "group")
- )
-)
+;; From gtimer.h
-(define-method set_summary
- (of-object "GOptionContext")
- (c-name "g_option_context_set_summary")
- (return-type "none")
- (parameters
- '("const-gchar*" "summary")
- )
+(define-function g_timer_new
+ (c-name "g_timer_new")
+ (is-constructor-of "GTimer")
+ (return-type "GTimer*")
)
-(define-method set_translate_func
- (of-object "GOptionContext")
- (c-name "g_option_context_set_translate_func")
+(define-method destroy
+ (of-object "GTimer")
+ (c-name "g_timer_destroy")
(return-type "none")
(parameters
'("GTranslateFunc" "func")
@@ -4095,10 +12034,25 @@
)
)
-(define-method get_next_token
- (of-object "GScanner")
- (c-name "g_scanner_get_next_token")
- (return-type "GTokenType")
+
+
+;; From gunicomp.h
+
+
+
+;; From gunidecomp.h
+
+
+
+;; From gurifuncs.h
+
+(define-function g_uri_unescape_string
+ (c-name "g_uri_unescape_string")
+ (return-type "char*")
+ (parameters
+ '("const-char*" "escaped_string")
+ '("const-char*" "illegal_characters")
+ )
)
(define-method input_file
@@ -5910,27 +13864,35 @@
(return-type "gboolean")
)
-(define-method is_normal_form
- (of-object "GVariant")
- (c-name "g_variant_is_normal_form")
- (return-type "gboolean")
+(define-function g_win32_get_package_installation_directory_utf8
+ (c-name "g_win32_get_package_installation_directory_utf8")
+ (return-type "gchar*")
+ (parameters
+ '("const-gchar*" "package")
+ '("const-gchar*" "dll_name")
+ )
)
-(define-method is_of_type
- (of-object "GVariant")
- (c-name "g_variant_is_of_type")
- (return-type "gboolean")
+(define-function g_win32_get_package_installation_subdirectory_utf8
+ (c-name "g_win32_get_package_installation_subdirectory_utf8")
+ (return-type "gchar*")
(parameters
'("const-GVariantType*" "type")
)
)
-(define-method iter_new
- (of-object "GVariant")
- (c-name "g_variant_iter_new")
- (return-type "GVariantIter*")
+(define-function g_win32_check_windows_version
+ (c-name "g_win32_check_windows_version")
+ (return-type "gboolean")
+ (parameters
+ '("const-gint" "major")
+ '("const-gint" "minor")
+ '("const-gint" "spver")
+ '("const-GWin32OSType" "os_type")
+ )
)
+
(define-method lookup
(of-object "GVariant")
(c-name "g_variant_lookup")
diff --git a/glib/src/glib_functions.defs.patch b/glib/src/glib_functions.defs.patch
index b36c05a6..c0437518 100644
--- a/glib/src/glib_functions.defs.patch
+++ b/glib/src/glib_functions.defs.patch
@@ -1,6 +1,6 @@
---- glib_functions.defs 2012-02-28 10:09:30.000000000 -0500
-+++ glib_functions.defs.new 2012-02-28 10:08:25.000000000 -0500
-@@ -2563,7 +2563,7 @@
+--- glib_functions.defs.orig 2015-02-15 16:49:21.605101660 +0100
++++ glib_functions.defs 2015-02-15 16:49:21.617101670 +0100
+@@ -2739,7 +2739,7 @@
)
)
@@ -9,7 +9,7 @@
(of-object "GIConv")
(c-name "g_iconv")
(return-type "gsize")
-@@ -12346,13 +12346,9 @@
+@@ -13320,13 +13320,9 @@
(return-type "const-gchar*-const*")
)
@@ -24,9 +24,9 @@
+;; has a function pointer parameter and that is not handled correctly by
+;; h2def.py.
- (define-function g_get_user_runtime_dir
- (c-name "g_get_user_runtime_dir")
-@@ -12440,13 +12436,8 @@
+ (define-function g_get_system_config_dirs
+ (c-name "g_get_system_config_dirs")
+@@ -13419,13 +13415,8 @@
)
)
diff --git a/glib/src/gobject.defs b/glib/src/gobject.defs
deleted file mode 100644
index 0c9f4b99..00000000
--- a/glib/src/gobject.defs
+++ /dev/null
@@ -1,3 +0,0 @@
-(include gobject_functions.defs)
-(include gobject_enums.defs)
-
diff --git a/glib/src/gobject_enums.defs b/glib/src/gobject_enums.defs
index fbe784e5..f7bfc795 100644
--- a/glib/src/gobject_enums.defs
+++ b/glib/src/gobject_enums.defs
@@ -66,14 +66,27 @@
)
)
+;; From gtype.h
+
+;; Original typedef:
+;; typedef enum /*< skip >*/
+;; {
+;; G_TYPE_DEBUG_NONE = 0,
+;; G_TYPE_DEBUG_OBJECTS = 1 << 0,
+;; G_TYPE_DEBUG_SIGNALS = 1 << 1,
+;; G_TYPE_DEBUG_INSTANCE_COUNT = 1 << 2,
+;; G_TYPE_DEBUG_MASK = 0x07
+;; } GTypeDebugFlags;
+
(define-flags-extended TypeDebugFlags
(in-module "G")
(c-name "GTypeDebugFlags")
(values
- '("none" "G_TYPE_DEBUG_NONE" "0")
- '("objects" "G_TYPE_DEBUG_OBJECTS" "1")
- '("signals" "G_TYPE_DEBUG_SIGNALS" "2")
- '("mask" "G_TYPE_DEBUG_MASK" "3")
+ '("none" "G_TYPE_DEBUG_NONE" "0x0")
+ '("objects" "G_TYPE_DEBUG_OBJECTS" "1 << 0")
+ '("signals" "G_TYPE_DEBUG_SIGNALS" "1 << 1")
+ '("instance-count" "G_TYPE_DEBUG_INSTANCE_COUNT" "1 << 2")
+ '("mask" "G_TYPE_DEBUG_MASK" "0x07")
)
)
diff --git a/glib/src/gobject_functions.defs b/glib/src/gobject_functions.defs
index c813b904..f1438208 100644
--- a/glib/src/gobject_functions.defs
+++ b/glib/src/gobject_functions.defs
@@ -1,5 +1,341 @@
-(define-function new_object
- (c-name "g_closure_new_object")
+;; -*- scheme -*-
+; object definitions ...
+(define-object Module
+ (in-module "GType")
+ (parent "GObject")
+ (c-name "GTypeModule")
+ (gtype-id "G_TYPE_TYPE_MODULE")
+)
+
+(define-object Plugin
+ (in-module "GType")
+ (c-name "GTypePlugin")
+ (gtype-id "G_TYPE_TYPE_PLUGIN")
+)
+
+;; Enumerations and flags ...
+
+(define-flags Flags
+ (in-module "GBinding")
+ (c-name "GBindingFlags")
+ (gtype-id "G_TYPE_BINDING_FLAGS")
+ (values
+ '("default" "G_BINDING_DEFAULT")
+ '("bidirectional" "G_BINDING_BIDIRECTIONAL")
+ '("sync-create" "G_BINDING_SYNC_CREATE")
+ '("invert-boolean" "G_BINDING_INVERT_BOOLEAN")
+ )
+)
+
+(define-flags Flags
+ (in-module "GParam")
+ (c-name "GParamFlags")
+ (gtype-id "G_TYPE_PARAM_FLAGS")
+ (values
+ '("readable" "G_PARAM_READABLE")
+ '("writable" "G_PARAM_WRITABLE")
+ '("readwrite" "G_PARAM_READWRITE")
+ '("construct" "G_PARAM_CONSTRUCT")
+ '("construct-only" "G_PARAM_CONSTRUCT_ONLY")
+ '("lax-validation" "G_PARAM_LAX_VALIDATION")
+ '("static-name" "G_PARAM_STATIC_NAME")
+ '("private" "G_PARAM_PRIVATE")
+ '("static-nick" "G_PARAM_STATIC_NICK")
+ '("static-blurb" "G_PARAM_STATIC_BLURB")
+ '("explicit-notify" "G_PARAM_EXPLICIT_NOTIFY")
+ '("deprecated" "G_PARAM_DEPRECATED")
+ )
+)
+
+(define-flags Flags
+ (in-module "GSignal")
+ (c-name "GSignalFlags")
+ (gtype-id "G_TYPE_SIGNAL_FLAGS")
+ (values
+ '("run-first" "G_SIGNAL_RUN_FIRST")
+ '("run-last" "G_SIGNAL_RUN_LAST")
+ '("run-cleanup" "G_SIGNAL_RUN_CLEANUP")
+ '("no-recurse" "G_SIGNAL_NO_RECURSE")
+ '("detailed" "G_SIGNAL_DETAILED")
+ '("action" "G_SIGNAL_ACTION")
+ '("no-hooks" "G_SIGNAL_NO_HOOKS")
+ '("must-collect" "G_SIGNAL_MUST_COLLECT")
+ '("deprecated" "G_SIGNAL_DEPRECATED")
+ )
+)
+
+(define-flags Flags
+ (in-module "GConnect")
+ (c-name "GConnectFlags")
+ (gtype-id "G_TYPE_CONNECT_FLAGS")
+ (values
+ '("after" "G_CONNECT_AFTER")
+ '("swapped" "G_CONNECT_SWAPPED")
+ )
+)
+
+(define-flags MatchType
+ (in-module "GSignal")
+ (c-name "GSignalMatchType")
+ (gtype-id "G_TYPE_SIGNAL_MATCH_TYPE")
+ (values
+ '("id" "G_SIGNAL_MATCH_ID")
+ '("detail" "G_SIGNAL_MATCH_DETAIL")
+ '("closure" "G_SIGNAL_MATCH_CLOSURE")
+ '("func" "G_SIGNAL_MATCH_FUNC")
+ '("data" "G_SIGNAL_MATCH_DATA")
+ '("unblocked" "G_SIGNAL_MATCH_UNBLOCKED")
+ )
+)
+
+(define-flags DebugFlags
+ (in-module "GType")
+ (c-name "GTypeDebugFlags")
+ (gtype-id "G_TYPE_TYPE_DEBUG_FLAGS")
+ (values
+ '("none" "G_TYPE_DEBUG_NONE")
+ '("objects" "G_TYPE_DEBUG_OBJECTS")
+ '("signals" "G_TYPE_DEBUG_SIGNALS")
+ '("instance-count" "G_TYPE_DEBUG_INSTANCE_COUNT")
+ '("mask" "G_TYPE_DEBUG_MASK")
+ )
+)
+
+(define-flags FundamentalFlags
+ (in-module "GType")
+ (c-name "GTypeFundamentalFlags")
+ (gtype-id "G_TYPE_TYPE_FUNDAMENTAL_FLAGS")
+ (values
+ '("classed" "G_TYPE_FLAG_CLASSED")
+ '("instantiatable" "G_TYPE_FLAG_INSTANTIATABLE")
+ '("derivable" "G_TYPE_FLAG_DERIVABLE")
+ '("deep-derivable" "G_TYPE_FLAG_DEEP_DERIVABLE")
+ )
+)
+
+(define-flags Flags
+ (in-module "GType")
+ (c-name "GTypeFlags")
+ (gtype-id "G_TYPE_TYPE_FLAGS")
+ (values
+ '("abstract" "G_TYPE_FLAG_ABSTRACT")
+ '("value-abstract" "G_TYPE_FLAG_VALUE_ABSTRACT")
+ )
+)
+
+
+;; From gatomicarray.h
+
+
+
+;; From gbinding.h
+
+(define-function g_binding_flags_get_type
+ (c-name "g_binding_flags_get_type")
+ (return-type "GType")
+)
+
+(define-function g_binding_get_type
+ (c-name "g_binding_get_type")
+ (return-type "GType")
+)
+
+(define-method get_flags
+ (of-object "GBinding")
+ (c-name "g_binding_get_flags")
+ (return-type "GBindingFlags")
+)
+
+(define-method get_source
+ (of-object "GBinding")
+ (c-name "g_binding_get_source")
+ (return-type "GObject*")
+)
+
+(define-method get_target
+ (of-object "GBinding")
+ (c-name "g_binding_get_target")
+ (return-type "GObject*")
+)
+
+(define-method get_source_property
+ (of-object "GBinding")
+ (c-name "g_binding_get_source_property")
+ (return-type "const-gchar*")
+)
+
+(define-method get_target_property
+ (of-object "GBinding")
+ (c-name "g_binding_get_target_property")
+ (return-type "const-gchar*")
+)
+
+(define-method unbind
+ (of-object "GBinding")
+ (c-name "g_binding_unbind")
+ (return-type "none")
+)
+
+(define-function g_object_bind_property
+ (c-name "g_object_bind_property")
+ (return-type "GBinding*")
+ (parameters
+ '("gpointer" "source")
+ '("const-gchar*" "source_property")
+ '("gpointer" "target")
+ '("const-gchar*" "target_property")
+ '("GBindingFlags" "flags")
+ )
+)
+
+(define-function g_object_bind_property_full
+ (c-name "g_object_bind_property_full")
+ (return-type "GBinding*")
+ (parameters
+ '("gpointer" "source")
+ '("const-gchar*" "source_property")
+ '("gpointer" "target")
+ '("const-gchar*" "target_property")
+ '("GBindingFlags" "flags")
+ '("GBindingTransformFunc" "transform_to")
+ '("GBindingTransformFunc" "transform_from")
+ '("gpointer" "user_data")
+ '("GDestroyNotify" "notify")
+ )
+)
+
+(define-function g_object_bind_property_with_closures
+ (c-name "g_object_bind_property_with_closures")
+ (return-type "GBinding*")
+ (parameters
+ '("gpointer" "source")
+ '("const-gchar*" "source_property")
+ '("gpointer" "target")
+ '("const-gchar*" "target_property")
+ '("GBindingFlags" "flags")
+ '("GClosure*" "transform_to")
+ '("GClosure*" "transform_from")
+ )
+)
+
+
+
+;; From gboxed.h
+
+(define-function g_boxed_copy
+ (c-name "g_boxed_copy")
+ (return-type "gpointer")
+ (parameters
+ '("GType" "boxed_type")
+ '("gconstpointer" "src_boxed")
+ )
+)
+
+(define-function g_boxed_free
+ (c-name "g_boxed_free")
+ (return-type "none")
+ (parameters
+ '("GType" "boxed_type")
+ '("gpointer" "boxed")
+ )
+)
+
+(define-method set_boxed
+ (of-object "GValue")
+ (c-name "g_value_set_boxed")
+ (return-type "none")
+ (parameters
+ '("gconstpointer" "v_boxed")
+ )
+)
+
+(define-method set_static_boxed
+ (of-object "GValue")
+ (c-name "g_value_set_static_boxed")
+ (return-type "none")
+ (parameters
+ '("gconstpointer" "v_boxed")
+ )
+)
+
+(define-method take_boxed
+ (of-object "GValue")
+ (c-name "g_value_take_boxed")
+ (return-type "none")
+ (parameters
+ '("gconstpointer" "v_boxed")
+ )
+)
+
+(define-method set_boxed_take_ownership
+ (of-object "GValue")
+ (c-name "g_value_set_boxed_take_ownership")
+ (return-type "none")
+ (parameters
+ '("gconstpointer" "v_boxed")
+ )
+)
+
+(define-method get_boxed
+ (of-object "GValue")
+ (c-name "g_value_get_boxed")
+ (return-type "gpointer")
+)
+
+(define-method dup_boxed
+ (of-object "GValue")
+ (c-name "g_value_dup_boxed")
+ (return-type "gpointer")
+)
+
+(define-function g_boxed_type_register_static
+ (c-name "g_boxed_type_register_static")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "name")
+ '("GBoxedCopyFunc" "boxed_copy")
+ '("GBoxedFreeFunc" "boxed_free")
+ )
+)
+
+(define-function g_closure_get_type
+ (c-name "g_closure_get_type")
+ (return-type "GType")
+)
+
+(define-function g_value_get_type
+ (c-name "g_value_get_type")
+ (return-type "GType")
+)
+
+
+
+;; From gclosure.h
+
+(define-function g_cclosure_new
+ (c-name "g_cclosure_new")
+ (is-constructor-of "GCclosure")
+ (return-type "GClosure*")
+ (parameters
+ '("GCallback" "callback_func")
+ '("gpointer" "user_data")
+ '("GClosureNotify" "destroy_data")
+ )
+)
+
+(define-function g_cclosure_new_swap
+ (c-name "g_cclosure_new_swap")
+ (return-type "GClosure*")
+ (parameters
+ '("GCallback" "callback_func")
+ '("gpointer" "user_data")
+ '("GClosureNotify" "destroy_data")
+ )
+)
+
+(define-function g_signal_type_cclosure_new
+ (c-name "g_signal_type_cclosure_new")
+ (is-constructor-of "GSignalTypeCclosure")
(return-type "GClosure*")
(parameters
'("guint" "sizeof_closure")
@@ -26,6 +362,16 @@
)
)
+(define-method remove_finalize_notifier
+ (of-object "GClosure")
+ (c-name "g_closure_remove_finalize_notifier")
+ (return-type "none")
+ (parameters
+ '("gpointer" "notify_data")
+ '("GClosureNotify" "notify_func")
+ )
+)
+
(define-method add_invalidate_notifier
(of-object "GClosure")
(c-name "g_closure_add_invalidate_notifier")
@@ -36,6 +382,2933 @@
)
)
+(define-method remove_invalidate_notifier
+ (of-object "GClosure")
+ (c-name "g_closure_remove_invalidate_notifier")
+ (return-type "none")
+ (parameters
+ '("gpointer" "notify_data")
+ '("GClosureNotify" "notify_func")
+ )
+)
+
+(define-method add_marshal_guards
+ (of-object "GClosure")
+ (c-name "g_closure_add_marshal_guards")
+ (return-type "none")
+ (parameters
+ '("gpointer" "pre_marshal_data")
+ '("GClosureNotify" "pre_marshal_notify")
+ '("gpointer" "post_marshal_data")
+ '("GClosureNotify" "post_marshal_notify")
+ )
+)
+
+(define-method set_marshal
+ (of-object "GClosure")
+ (c-name "g_closure_set_marshal")
+ (return-type "none")
+ (parameters
+ '("GClosureMarshal" "marshal")
+ )
+)
+
+(define-method set_meta_marshal
+ (of-object "GClosure")
+ (c-name "g_closure_set_meta_marshal")
+ (return-type "none")
+ (parameters
+ '("gpointer" "marshal_data")
+ '("GClosureMarshal" "meta_marshal")
+ )
+)
+
+(define-method invalidate
+ (of-object "GClosure")
+ (c-name "g_closure_invalidate")
+ (return-type "none")
+)
+
+(define-method invoke
+ (of-object "GClosure")
+ (c-name "g_closure_invoke")
+ (return-type "none")
+ (parameters
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ )
+)
+
+(define-function g_cclosure_marshal_generic
+ (c-name "g_cclosure_marshal_generic")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_gvalue")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_generic_va
+ (c-name "g_cclosure_marshal_generic_va")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args_list")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+
+
+;; From genums.h
+
+(define-function g_enum_get_value
+ (c-name "g_enum_get_value")
+ (return-type "GEnumValue*")
+ (parameters
+ '("GEnumClass*" "enum_class")
+ '("gint" "value")
+ )
+)
+
+(define-function g_enum_get_value_by_name
+ (c-name "g_enum_get_value_by_name")
+ (return-type "GEnumValue*")
+ (parameters
+ '("GEnumClass*" "enum_class")
+ '("const-gchar*" "name")
+ )
+)
+
+(define-function g_enum_get_value_by_nick
+ (c-name "g_enum_get_value_by_nick")
+ (return-type "GEnumValue*")
+ (parameters
+ '("GEnumClass*" "enum_class")
+ '("const-gchar*" "nick")
+ )
+)
+
+(define-function g_flags_get_first_value
+ (c-name "g_flags_get_first_value")
+ (return-type "GFlagsValue*")
+ (parameters
+ '("GFlagsClass*" "flags_class")
+ '("guint" "value")
+ )
+)
+
+(define-function g_flags_get_value_by_name
+ (c-name "g_flags_get_value_by_name")
+ (return-type "GFlagsValue*")
+ (parameters
+ '("GFlagsClass*" "flags_class")
+ '("const-gchar*" "name")
+ )
+)
+
+(define-function g_flags_get_value_by_nick
+ (c-name "g_flags_get_value_by_nick")
+ (return-type "GFlagsValue*")
+ (parameters
+ '("GFlagsClass*" "flags_class")
+ '("const-gchar*" "nick")
+ )
+)
+
+(define-method set_enum
+ (of-object "GValue")
+ (c-name "g_value_set_enum")
+ (return-type "none")
+ (parameters
+ '("gint" "v_enum")
+ )
+)
+
+(define-method get_enum
+ (of-object "GValue")
+ (c-name "g_value_get_enum")
+ (return-type "gint")
+)
+
+(define-method set_flags
+ (of-object "GValue")
+ (c-name "g_value_set_flags")
+ (return-type "none")
+ (parameters
+ '("guint" "v_flags")
+ )
+)
+
+(define-method get_flags
+ (of-object "GValue")
+ (c-name "g_value_get_flags")
+ (return-type "guint")
+)
+
+(define-function g_enum_register_static
+ (c-name "g_enum_register_static")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "name")
+ )
+)
+
+(define-function g_flags_register_static
+ (c-name "g_flags_register_static")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "name")
+ )
+)
+
+(define-function g_enum_complete_type_info
+ (c-name "g_enum_complete_type_info")
+ (return-type "none")
+ (parameters
+ '("GType" "g_enum_type")
+ '("GTypeInfo*" "info")
+ )
+)
+
+(define-function g_flags_complete_type_info
+ (c-name "g_flags_complete_type_info")
+ (return-type "none")
+ (parameters
+ '("GType" "g_flags_type")
+ '("GTypeInfo*" "info")
+ )
+)
+
+
+
+;; From glib-types.h
+
+(define-function g_date_get_type
+ (c-name "g_date_get_type")
+ (return-type "GType")
+)
+
+(define-function g_strv_get_type
+ (c-name "g_strv_get_type")
+ (return-type "GType")
+)
+
+(define-function g_gstring_get_type
+ (c-name "g_gstring_get_type")
+ (return-type "GType")
+)
+
+(define-function g_hash_table_get_type
+ (c-name "g_hash_table_get_type")
+ (return-type "GType")
+)
+
+(define-function g_array_get_type
+ (c-name "g_array_get_type")
+ (return-type "GType")
+)
+
+(define-function g_byte_array_get_type
+ (c-name "g_byte_array_get_type")
+ (return-type "GType")
+)
+
+(define-function g_ptr_array_get_type
+ (c-name "g_ptr_array_get_type")
+ (return-type "GType")
+)
+
+(define-function g_bytes_get_type
+ (c-name "g_bytes_get_type")
+ (return-type "GType")
+)
+
+(define-function g_variant_type_get_gtype
+ (c-name "g_variant_type_get_gtype")
+ (return-type "GType")
+)
+
+(define-function g_regex_get_type
+ (c-name "g_regex_get_type")
+ (return-type "GType")
+)
+
+(define-function g_match_info_get_type
+ (c-name "g_match_info_get_type")
+ (return-type "GType")
+)
+
+(define-function g_error_get_type
+ (c-name "g_error_get_type")
+ (return-type "GType")
+)
+
+(define-function g_date_time_get_type
+ (c-name "g_date_time_get_type")
+ (return-type "GType")
+)
+
+(define-function g_time_zone_get_type
+ (c-name "g_time_zone_get_type")
+ (return-type "GType")
+)
+
+(define-function g_io_channel_get_type
+ (c-name "g_io_channel_get_type")
+ (return-type "GType")
+)
+
+(define-function g_io_condition_get_type
+ (c-name "g_io_condition_get_type")
+ (return-type "GType")
+)
+
+(define-function g_variant_builder_get_type
+ (c-name "g_variant_builder_get_type")
+ (return-type "GType")
+)
+
+(define-function g_variant_dict_get_type
+ (c-name "g_variant_dict_get_type")
+ (return-type "GType")
+)
+
+(define-function g_key_file_get_type
+ (c-name "g_key_file_get_type")
+ (return-type "GType")
+)
+
+(define-function g_main_loop_get_type
+ (c-name "g_main_loop_get_type")
+ (return-type "GType")
+)
+
+(define-function g_main_context_get_type
+ (c-name "g_main_context_get_type")
+ (return-type "GType")
+)
+
+(define-function g_source_get_type
+ (c-name "g_source_get_type")
+ (return-type "GType")
+)
+
+(define-function g_pollfd_get_type
+ (c-name "g_pollfd_get_type")
+ (return-type "GType")
+)
+
+(define-function g_thread_get_type
+ (c-name "g_thread_get_type")
+ (return-type "GType")
+)
+
+(define-function g_checksum_get_type
+ (c-name "g_checksum_get_type")
+ (return-type "GType")
+)
+
+(define-function g_markup_parse_context_get_type
+ (c-name "g_markup_parse_context_get_type")
+ (return-type "GType")
+)
+
+(define-function g_mapped_file_get_type
+ (c-name "g_mapped_file_get_type")
+ (return-type "GType")
+)
+
+(define-function g_option_group_get_type
+ (c-name "g_option_group_get_type")
+ (return-type "GType")
+)
+
+(define-function g_variant_get_gtype
+ (c-name "g_variant_get_gtype")
+ (return-type "GType")
+)
+
+
+
+;; From gmarshal.h
+
+(define-function g_cclosure_marshal_VOID__VOID
+ (c-name "g_cclosure_marshal_VOID__VOID")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__VOIDv
+ (c-name "g_cclosure_marshal_VOID__VOIDv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__BOOLEAN
+ (c-name "g_cclosure_marshal_VOID__BOOLEAN")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__BOOLEANv
+ (c-name "g_cclosure_marshal_VOID__BOOLEANv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__CHAR
+ (c-name "g_cclosure_marshal_VOID__CHAR")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__CHARv
+ (c-name "g_cclosure_marshal_VOID__CHARv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__UCHAR
+ (c-name "g_cclosure_marshal_VOID__UCHAR")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__UCHARv
+ (c-name "g_cclosure_marshal_VOID__UCHARv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__INT
+ (c-name "g_cclosure_marshal_VOID__INT")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__INTv
+ (c-name "g_cclosure_marshal_VOID__INTv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__UINT
+ (c-name "g_cclosure_marshal_VOID__UINT")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__UINTv
+ (c-name "g_cclosure_marshal_VOID__UINTv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__LONG
+ (c-name "g_cclosure_marshal_VOID__LONG")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__LONGv
+ (c-name "g_cclosure_marshal_VOID__LONGv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__ULONG
+ (c-name "g_cclosure_marshal_VOID__ULONG")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__ULONGv
+ (c-name "g_cclosure_marshal_VOID__ULONGv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__ENUM
+ (c-name "g_cclosure_marshal_VOID__ENUM")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__ENUMv
+ (c-name "g_cclosure_marshal_VOID__ENUMv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__FLAGS
+ (c-name "g_cclosure_marshal_VOID__FLAGS")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__FLAGSv
+ (c-name "g_cclosure_marshal_VOID__FLAGSv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__FLOAT
+ (c-name "g_cclosure_marshal_VOID__FLOAT")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__FLOATv
+ (c-name "g_cclosure_marshal_VOID__FLOATv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__DOUBLE
+ (c-name "g_cclosure_marshal_VOID__DOUBLE")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__DOUBLEv
+ (c-name "g_cclosure_marshal_VOID__DOUBLEv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__STRING
+ (c-name "g_cclosure_marshal_VOID__STRING")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__STRINGv
+ (c-name "g_cclosure_marshal_VOID__STRINGv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__PARAM
+ (c-name "g_cclosure_marshal_VOID__PARAM")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__PARAMv
+ (c-name "g_cclosure_marshal_VOID__PARAMv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__BOXED
+ (c-name "g_cclosure_marshal_VOID__BOXED")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__BOXEDv
+ (c-name "g_cclosure_marshal_VOID__BOXEDv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__POINTER
+ (c-name "g_cclosure_marshal_VOID__POINTER")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__POINTERv
+ (c-name "g_cclosure_marshal_VOID__POINTERv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__OBJECT
+ (c-name "g_cclosure_marshal_VOID__OBJECT")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__OBJECTv
+ (c-name "g_cclosure_marshal_VOID__OBJECTv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__VARIANT
+ (c-name "g_cclosure_marshal_VOID__VARIANT")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__VARIANTv
+ (c-name "g_cclosure_marshal_VOID__VARIANTv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__UINT_POINTER
+ (c-name "g_cclosure_marshal_VOID__UINT_POINTER")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_VOID__UINT_POINTERv
+ (c-name "g_cclosure_marshal_VOID__UINT_POINTERv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_BOOLEAN__FLAGS
+ (c-name "g_cclosure_marshal_BOOLEAN__FLAGS")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_BOOLEAN__FLAGSv
+ (c-name "g_cclosure_marshal_BOOLEAN__FLAGSv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_STRING__OBJECT_POINTER
+ (c-name "g_cclosure_marshal_STRING__OBJECT_POINTER")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_STRING__OBJECT_POINTERv
+ (c-name "g_cclosure_marshal_STRING__OBJECT_POINTERv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_cclosure_marshal_BOOLEAN__BOXED_BOXED
+ (c-name "g_cclosure_marshal_BOOLEAN__BOXED_BOXED")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("guint" "n_param_values")
+ '("const-GValue*" "param_values")
+ '("gpointer" "invocation_hint")
+ '("gpointer" "marshal_data")
+ )
+)
+
+(define-function g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv
+ (c-name "g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ '("GValue*" "return_value")
+ '("gpointer" "instance")
+ '("va_list" "args")
+ '("gpointer" "marshal_data")
+ '("int" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+
+
+;; From gobject-autocleanups.h
+
+
+
+;; From gobject.h
+
+(define-function g_initially_unowned_get_type
+ (c-name "g_initially_unowned_get_type")
+ (return-type "GType")
+)
+
+(define-method install_property
+ (of-object "GObjectClass")
+ (c-name "g_object_class_install_property")
+ (return-type "none")
+ (parameters
+ '("guint" "property_id")
+ '("GParamSpec*" "pspec")
+ )
+)
+
+(define-method find_property
+ (of-object "GObjectClass")
+ (c-name "g_object_class_find_property")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "property_name")
+ )
+)
+
+(define-method list_properties
+ (of-object "GObjectClass")
+ (c-name "g_object_class_list_properties")
+ (return-type "GParamSpec**")
+ (parameters
+ '("guint*" "n_properties")
+ )
+)
+
+(define-method override_property
+ (of-object "GObjectClass")
+ (c-name "g_object_class_override_property")
+ (return-type "none")
+ (parameters
+ '("guint" "property_id")
+ '("const-gchar*" "name")
+ )
+)
+
+(define-method install_properties
+ (of-object "GObjectClass")
+ (c-name "g_object_class_install_properties")
+ (return-type "none")
+ (parameters
+ '("guint" "n_pspecs")
+ '("GParamSpec**" "pspecs")
+ )
+)
+
+(define-function g_object_interface_install_property
+ (c-name "g_object_interface_install_property")
+ (return-type "none")
+ (parameters
+ '("gpointer" "g_iface")
+ '("GParamSpec*" "pspec")
+ )
+)
+
+(define-function g_object_interface_find_property
+ (c-name "g_object_interface_find_property")
+ (return-type "GParamSpec*")
+ (parameters
+ '("gpointer" "g_iface")
+ '("const-gchar*" "property_name")
+ )
+)
+
+(define-function g_object_interface_list_properties
+ (c-name "g_object_interface_list_properties")
+ (return-type "GParamSpec**")
+ (parameters
+ '("gpointer" "g_iface")
+ '("guint*" "n_properties_p")
+ )
+)
+
+(define-function g_object_get_type
+ (c-name "g_object_get_type")
+ (return-type "GType")
+)
+
+(define-function g_object_new
+ (c-name "g_object_new")
+ (return-type "gpointer")
+ (parameters
+ '("GType" "object_type")
+ '("const-gchar*" "first_property_name")
+ )
+ (varargs #t)
+)
+
+(define-function g_object_newv
+ (c-name "g_object_newv")
+ (return-type "gpointer")
+ (parameters
+ '("GType" "object_type")
+ '("guint" "n_parameters")
+ '("GParameter*" "parameters")
+ )
+)
+
+(define-function g_object_new_valist
+ (c-name "g_object_new_valist")
+ (return-type "GObject*")
+ (parameters
+ '("GType" "object_type")
+ '("const-gchar*" "first_property_name")
+ '("va_list" "var_args")
+ )
+)
+
+(define-function g_object_set
+ (c-name "g_object_set")
+ (return-type "none")
+ (parameters
+ '("gpointer" "object")
+ '("const-gchar*" "first_property_name")
+ )
+ (varargs #t)
+)
+
+(define-function g_object_get
+ (c-name "g_object_get")
+ (return-type "none")
+ (parameters
+ '("gpointer" "object")
+ '("const-gchar*" "first_property_name")
+ )
+ (varargs #t)
+)
+
+(define-function g_object_connect
+ (c-name "g_object_connect")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "object")
+ '("const-gchar*" "signal_spec")
+ )
+ (varargs #t)
+)
+
+(define-function g_object_disconnect
+ (c-name "g_object_disconnect")
+ (return-type "none")
+ (parameters
+ '("gpointer" "object")
+ '("const-gchar*" "signal_spec")
+ )
+ (varargs #t)
+)
+
+(define-method set_valist
+ (of-object "GObject")
+ (c-name "g_object_set_valist")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "first_property_name")
+ '("va_list" "var_args")
+ )
+)
+
+(define-method get_valist
+ (of-object "GObject")
+ (c-name "g_object_get_valist")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "first_property_name")
+ '("va_list" "var_args")
+ )
+)
+
+(define-method set_property
+ (of-object "GObject")
+ (c-name "g_object_set_property")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "property_name")
+ '("const-GValue*" "value")
+ )
+)
+
+(define-method get_property
+ (of-object "GObject")
+ (c-name "g_object_get_property")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "property_name")
+ '("GValue*" "value")
+ )
+)
+
+(define-method freeze_notify
+ (of-object "GObject")
+ (c-name "g_object_freeze_notify")
+ (return-type "none")
+)
+
+(define-method notify
+ (of-object "GObject")
+ (c-name "g_object_notify")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "property_name")
+ )
+)
+
+(define-method notify_by_pspec
+ (of-object "GObject")
+ (c-name "g_object_notify_by_pspec")
+ (return-type "none")
+ (parameters
+ '("GParamSpec*" "pspec")
+ )
+)
+
+(define-method thaw_notify
+ (of-object "GObject")
+ (c-name "g_object_thaw_notify")
+ (return-type "none")
+)
+
+(define-function g_object_is_floating
+ (c-name "g_object_is_floating")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "object")
+ )
+)
+
+(define-function g_object_ref_sink
+ (c-name "g_object_ref_sink")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "object")
+ )
+)
+
+(define-function g_object_ref
+ (c-name "g_object_ref")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "object")
+ )
+)
+
+(define-function g_object_unref
+ (c-name "g_object_unref")
+ (return-type "none")
+ (parameters
+ '("gpointer" "object")
+ )
+)
+
+(define-method weak_ref
+ (of-object "GObject")
+ (c-name "g_object_weak_ref")
+ (return-type "none")
+ (parameters
+ '("GWeakNotify" "notify")
+ '("gpointer" "data")
+ )
+)
+
+(define-method weak_unref
+ (of-object "GObject")
+ (c-name "g_object_weak_unref")
+ (return-type "none")
+ (parameters
+ '("GWeakNotify" "notify")
+ '("gpointer" "data")
+ )
+)
+
+(define-method add_weak_pointer
+ (of-object "GObject")
+ (c-name "g_object_add_weak_pointer")
+ (return-type "none")
+ (parameters
+ '("gpointer*" "weak_pointer_location")
+ )
+)
+
+(define-method remove_weak_pointer
+ (of-object "GObject")
+ (c-name "g_object_remove_weak_pointer")
+ (return-type "none")
+ (parameters
+ '("gpointer*" "weak_pointer_location")
+ )
+)
+
+(define-method add_toggle_ref
+ (of-object "GObject")
+ (c-name "g_object_add_toggle_ref")
+ (return-type "none")
+ (parameters
+ '("GToggleNotify" "notify")
+ '("gpointer" "data")
+ )
+)
+
+(define-method remove_toggle_ref
+ (of-object "GObject")
+ (c-name "g_object_remove_toggle_ref")
+ (return-type "none")
+ (parameters
+ '("GToggleNotify" "notify")
+ '("gpointer" "data")
+ )
+)
+
+(define-method get_qdata
+ (of-object "GObject")
+ (c-name "g_object_get_qdata")
+ (return-type "gpointer")
+ (parameters
+ '("GQuark" "quark")
+ )
+)
+
+(define-method set_qdata
+ (of-object "GObject")
+ (c-name "g_object_set_qdata")
+ (return-type "none")
+ (parameters
+ '("GQuark" "quark")
+ '("gpointer" "data")
+ )
+)
+
+(define-method set_qdata_full
+ (of-object "GObject")
+ (c-name "g_object_set_qdata_full")
+ (return-type "none")
+ (parameters
+ '("GQuark" "quark")
+ '("gpointer" "data")
+ '("GDestroyNotify" "destroy")
+ )
+)
+
+(define-method steal_qdata
+ (of-object "GObject")
+ (c-name "g_object_steal_qdata")
+ (return-type "gpointer")
+ (parameters
+ '("GQuark" "quark")
+ )
+)
+
+(define-method dup_qdata
+ (of-object "GObject")
+ (c-name "g_object_dup_qdata")
+ (return-type "gpointer")
+ (parameters
+ '("GQuark" "quark")
+ '("GDuplicateFunc" "dup_func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method replace_qdata
+ (of-object "GObject")
+ (c-name "g_object_replace_qdata")
+ (return-type "gboolean")
+ (parameters
+ '("GQuark" "quark")
+ '("gpointer" "oldval")
+ '("gpointer" "newval")
+ '("GDestroyNotify" "destroy")
+ '("GDestroyNotify*" "old_destroy")
+ )
+)
+
+(define-method get_data
+ (of-object "GObject")
+ (c-name "g_object_get_data")
+ (return-type "gpointer")
+ (parameters
+ '("const-gchar*" "key")
+ )
+)
+
+(define-method set_data
+ (of-object "GObject")
+ (c-name "g_object_set_data")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "key")
+ '("gpointer" "data")
+ )
+)
+
+(define-method set_data_full
+ (of-object "GObject")
+ (c-name "g_object_set_data_full")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "key")
+ '("gpointer" "data")
+ '("GDestroyNotify" "destroy")
+ )
+)
+
+(define-method steal_data
+ (of-object "GObject")
+ (c-name "g_object_steal_data")
+ (return-type "gpointer")
+ (parameters
+ '("const-gchar*" "key")
+ )
+)
+
+(define-method dup_data
+ (of-object "GObject")
+ (c-name "g_object_dup_data")
+ (return-type "gpointer")
+ (parameters
+ '("const-gchar*" "key")
+ '("GDuplicateFunc" "dup_func")
+ '("gpointer" "user_data")
+ )
+)
+
+(define-method replace_data
+ (of-object "GObject")
+ (c-name "g_object_replace_data")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "key")
+ '("gpointer" "oldval")
+ '("gpointer" "newval")
+ '("GDestroyNotify" "destroy")
+ '("GDestroyNotify*" "old_destroy")
+ )
+)
+
+(define-method watch_closure
+ (of-object "GObject")
+ (c-name "g_object_watch_closure")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ )
+)
+
+(define-function g_cclosure_new_object
+ (c-name "g_cclosure_new_object")
+ (return-type "GClosure*")
+ (parameters
+ '("GCallback" "callback_func")
+ '("GObject*" "object")
+ )
+)
+
+(define-function g_cclosure_new_object_swap
+ (c-name "g_cclosure_new_object_swap")
+ (return-type "GClosure*")
+ (parameters
+ '("GCallback" "callback_func")
+ '("GObject*" "object")
+ )
+)
+
+(define-function g_closure_new_object
+ (c-name "g_closure_new_object")
+ (return-type "GClosure*")
+ (parameters
+ '("guint" "sizeof_closure")
+ '("GObject*" "object")
+ )
+)
+
+(define-method set_object
+ (of-object "GValue")
+ (c-name "g_value_set_object")
+ (return-type "none")
+ (parameters
+ '("gpointer" "v_object")
+ )
+)
+
+(define-method get_object
+ (of-object "GValue")
+ (c-name "g_value_get_object")
+ (return-type "gpointer")
+)
+
+(define-method dup_object
+ (of-object "GValue")
+ (c-name "g_value_dup_object")
+ (return-type "gpointer")
+)
+
+(define-function g_signal_connect_object
+ (c-name "g_signal_connect_object")
+ (return-type "gulong")
+ (parameters
+ '("gpointer" "instance")
+ '("const-gchar*" "detailed_signal")
+ '("GCallback" "c_handler")
+ '("gpointer" "gobject")
+ '("GConnectFlags" "connect_flags")
+ )
+)
+
+(define-method force_floating
+ (of-object "GObject")
+ (c-name "g_object_force_floating")
+ (return-type "none")
+)
+
+(define-method run_dispose
+ (of-object "GObject")
+ (c-name "g_object_run_dispose")
+ (return-type "none")
+)
+
+(define-method take_object
+ (of-object "GValue")
+ (c-name "g_value_take_object")
+ (return-type "none")
+ (parameters
+ '("gpointer" "v_object")
+ )
+)
+
+(define-method set_object_take_ownership
+ (of-object "GValue")
+ (c-name "g_value_set_object_take_ownership")
+ (return-type "none")
+ (parameters
+ '("gpointer" "v_object")
+ )
+)
+
+(define-function g_object_compat_control
+ (c-name "g_object_compat_control")
+ (return-type "gsize")
+ (parameters
+ '("gsize" "what")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_clear_object
+ (c-name "g_clear_object")
+ (return-type "none")
+ (parameters
+ '("volatile-GObject**" "object_ptr")
+ )
+)
+
+(define-method init
+ (of-object "GWeakRef")
+ (c-name "g_weak_ref_init")
+ (return-type "none")
+ (parameters
+ '("gpointer" "object")
+ )
+)
+
+(define-method clear
+ (of-object "GWeakRef")
+ (c-name "g_weak_ref_clear")
+ (return-type "none")
+)
+
+(define-method get
+ (of-object "GWeakRef")
+ (c-name "g_weak_ref_get")
+ (return-type "gpointer")
+)
+
+(define-method set
+ (of-object "GWeakRef")
+ (c-name "g_weak_ref_set")
+ (return-type "none")
+ (parameters
+ '("gpointer" "object")
+ )
+)
+
+
+
+;; From gobject_trace.h
+
+
+
+;; From gparam.h
+
+(define-method ref
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_ref")
+ (return-type "GParamSpec*")
+)
+
+(define-method unref
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_unref")
+ (return-type "none")
+)
+
+(define-method sink
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_sink")
+ (return-type "none")
+)
+
+(define-method ref_sink
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_ref_sink")
+ (return-type "GParamSpec*")
+)
+
+(define-method get_qdata
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_get_qdata")
+ (return-type "gpointer")
+ (parameters
+ '("GQuark" "quark")
+ )
+)
+
+(define-method set_qdata
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_set_qdata")
+ (return-type "none")
+ (parameters
+ '("GQuark" "quark")
+ '("gpointer" "data")
+ )
+)
+
+(define-method set_qdata_full
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_set_qdata_full")
+ (return-type "none")
+ (parameters
+ '("GQuark" "quark")
+ '("gpointer" "data")
+ '("GDestroyNotify" "destroy")
+ )
+)
+
+(define-method steal_qdata
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_steal_qdata")
+ (return-type "gpointer")
+ (parameters
+ '("GQuark" "quark")
+ )
+)
+
+(define-method get_redirect_target
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_get_redirect_target")
+ (return-type "GParamSpec*")
+)
+
+(define-function g_param_value_set_default
+ (c-name "g_param_value_set_default")
+ (return-type "none")
+ (parameters
+ '("GParamSpec*" "pspec")
+ '("GValue*" "value")
+ )
+)
+
+(define-function g_param_value_defaults
+ (c-name "g_param_value_defaults")
+ (return-type "gboolean")
+ (parameters
+ '("GParamSpec*" "pspec")
+ '("GValue*" "value")
+ )
+)
+
+(define-function g_param_value_validate
+ (c-name "g_param_value_validate")
+ (return-type "gboolean")
+ (parameters
+ '("GParamSpec*" "pspec")
+ '("GValue*" "value")
+ )
+)
+
+(define-function g_param_value_convert
+ (c-name "g_param_value_convert")
+ (return-type "gboolean")
+ (parameters
+ '("GParamSpec*" "pspec")
+ '("const-GValue*" "src_value")
+ '("GValue*" "dest_value")
+ '("gboolean" "strict_validation")
+ )
+)
+
+(define-function g_param_values_cmp
+ (c-name "g_param_values_cmp")
+ (return-type "gint")
+ (parameters
+ '("GParamSpec*" "pspec")
+ '("const-GValue*" "value1")
+ '("const-GValue*" "value2")
+ )
+)
+
+(define-method get_name
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_get_name")
+ (return-type "const-gchar*")
+)
+
+(define-method get_nick
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_get_nick")
+ (return-type "const-gchar*")
+)
+
+(define-method get_blurb
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_get_blurb")
+ (return-type "const-gchar*")
+)
+
+(define-method set_param
+ (of-object "GValue")
+ (c-name "g_value_set_param")
+ (return-type "none")
+ (parameters
+ '("GParamSpec*" "param")
+ )
+)
+
+(define-method get_param
+ (of-object "GValue")
+ (c-name "g_value_get_param")
+ (return-type "GParamSpec*")
+)
+
+(define-method dup_param
+ (of-object "GValue")
+ (c-name "g_value_dup_param")
+ (return-type "GParamSpec*")
+)
+
+(define-method take_param
+ (of-object "GValue")
+ (c-name "g_value_take_param")
+ (return-type "none")
+ (parameters
+ '("GParamSpec*" "param")
+ )
+)
+
+(define-method set_param_take_ownership
+ (of-object "GValue")
+ (c-name "g_value_set_param_take_ownership")
+ (return-type "none")
+ (parameters
+ '("GParamSpec*" "param")
+ )
+)
+
+(define-method get_default_value
+ (of-object "GParamSpec")
+ (c-name "g_param_spec_get_default_value")
+ (return-type "const-GValue*")
+)
+
+(define-function g_param_type_register_static
+ (c-name "g_param_type_register_static")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-GParamSpecTypeInfo*" "pspec_info")
+ )
+)
+
+(define-function g_param_spec_internal
+ (c-name "g_param_spec_internal")
+ (return-type "gpointer")
+ (parameters
+ '("GType" "param_type")
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_pool_new
+ (c-name "g_param_spec_pool_new")
+ (is-constructor-of "GParamSpecPool")
+ (return-type "GParamSpecPool*")
+ (parameters
+ '("gboolean" "type_prefixing")
+ )
+)
+
+(define-method insert
+ (of-object "GParamSpecPool")
+ (c-name "g_param_spec_pool_insert")
+ (return-type "none")
+ (parameters
+ '("GParamSpec*" "pspec")
+ '("GType" "owner_type")
+ )
+)
+
+(define-method remove
+ (of-object "GParamSpecPool")
+ (c-name "g_param_spec_pool_remove")
+ (return-type "none")
+ (parameters
+ '("GParamSpec*" "pspec")
+ )
+)
+
+(define-method lookup
+ (of-object "GParamSpecPool")
+ (c-name "g_param_spec_pool_lookup")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "param_name")
+ '("GType" "owner_type")
+ '("gboolean" "walk_ancestors")
+ )
+)
+
+(define-method list_owned
+ (of-object "GParamSpecPool")
+ (c-name "g_param_spec_pool_list_owned")
+ (return-type "GList*")
+ (parameters
+ '("GType" "owner_type")
+ )
+)
+
+(define-method list
+ (of-object "GParamSpecPool")
+ (c-name "g_param_spec_pool_list")
+ (return-type "GParamSpec**")
+ (parameters
+ '("GType" "owner_type")
+ '("guint*" "n_pspecs_p")
+ )
+)
+
+
+
+;; From gparamspecs.h
+
+(define-function g_param_spec_char
+ (c-name "g_param_spec_char")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("gint8" "minimum")
+ '("gint8" "maximum")
+ '("gint8" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_uchar
+ (c-name "g_param_spec_uchar")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("guint8" "minimum")
+ '("guint8" "maximum")
+ '("guint8" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_boolean
+ (c-name "g_param_spec_boolean")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("gboolean" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_int
+ (c-name "g_param_spec_int")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("gint" "minimum")
+ '("gint" "maximum")
+ '("gint" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_uint
+ (c-name "g_param_spec_uint")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("guint" "minimum")
+ '("guint" "maximum")
+ '("guint" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_long
+ (c-name "g_param_spec_long")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("glong" "minimum")
+ '("glong" "maximum")
+ '("glong" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_ulong
+ (c-name "g_param_spec_ulong")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("gulong" "minimum")
+ '("gulong" "maximum")
+ '("gulong" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_int64
+ (c-name "g_param_spec_int64")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("gint64" "minimum")
+ '("gint64" "maximum")
+ '("gint64" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_uint64
+ (c-name "g_param_spec_uint64")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("guint64" "minimum")
+ '("guint64" "maximum")
+ '("guint64" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_unichar
+ (c-name "g_param_spec_unichar")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("gunichar" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_enum
+ (c-name "g_param_spec_enum")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("GType" "enum_type")
+ '("gint" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_flags
+ (c-name "g_param_spec_flags")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("GType" "flags_type")
+ '("guint" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_float
+ (c-name "g_param_spec_float")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("gfloat" "minimum")
+ '("gfloat" "maximum")
+ '("gfloat" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_double
+ (c-name "g_param_spec_double")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("gdouble" "minimum")
+ '("gdouble" "maximum")
+ '("gdouble" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_string
+ (c-name "g_param_spec_string")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("const-gchar*" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_param
+ (c-name "g_param_spec_param")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("GType" "param_type")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_boxed
+ (c-name "g_param_spec_boxed")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("GType" "boxed_type")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_pointer
+ (c-name "g_param_spec_pointer")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_value_array
+ (c-name "g_param_spec_value_array")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("GParamSpec*" "element_spec")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_object
+ (c-name "g_param_spec_object")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("GType" "object_type")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_override
+ (c-name "g_param_spec_override")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("GParamSpec*" "overridden")
+ )
+)
+
+(define-function g_param_spec_gtype
+ (c-name "g_param_spec_gtype")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("GType" "is_a_type")
+ '("GParamFlags" "flags")
+ )
+)
+
+(define-function g_param_spec_variant
+ (c-name "g_param_spec_variant")
+ (return-type "GParamSpec*")
+ (parameters
+ '("const-gchar*" "name")
+ '("const-gchar*" "nick")
+ '("const-gchar*" "blurb")
+ '("const-GVariantType*" "type")
+ '("GVariant*" "default_value")
+ '("GParamFlags" "flags")
+ )
+)
+
+
+
+;; From gsignal.h
+
+(define-function g_signal_newv
+ (c-name "g_signal_newv")
+ (return-type "guint")
+ (parameters
+ '("const-gchar*" "signal_name")
+ '("GType" "itype")
+ '("GSignalFlags" "signal_flags")
+ '("GClosure*" "class_closure")
+ '("GSignalAccumulator" "accumulator")
+ '("gpointer" "accu_data")
+ '("GSignalCMarshaller" "c_marshaller")
+ '("GType" "return_type")
+ '("guint" "n_params")
+ '("GType*" "param_types")
+ )
+)
+
+(define-function g_signal_new_valist
+ (c-name "g_signal_new_valist")
+ (return-type "guint")
+ (parameters
+ '("const-gchar*" "signal_name")
+ '("GType" "itype")
+ '("GSignalFlags" "signal_flags")
+ '("GClosure*" "class_closure")
+ '("GSignalAccumulator" "accumulator")
+ '("gpointer" "accu_data")
+ '("GSignalCMarshaller" "c_marshaller")
+ '("GType" "return_type")
+ '("guint" "n_params")
+ '("va_list" "args")
+ )
+)
+
+(define-function g_signal_new
+ (c-name "g_signal_new")
+ (return-type "guint")
+ (parameters
+ '("const-gchar*" "signal_name")
+ '("GType" "itype")
+ '("GSignalFlags" "signal_flags")
+ '("guint" "class_offset")
+ '("GSignalAccumulator" "accumulator")
+ '("gpointer" "accu_data")
+ '("GSignalCMarshaller" "c_marshaller")
+ '("GType" "return_type")
+ '("guint" "n_params")
+ )
+ (varargs #t)
+)
+
+(define-function g_signal_new_class_handler
+ (c-name "g_signal_new_class_handler")
+ (return-type "guint")
+ (parameters
+ '("const-gchar*" "signal_name")
+ '("GType" "itype")
+ '("GSignalFlags" "signal_flags")
+ '("GCallback" "class_handler")
+ '("GSignalAccumulator" "accumulator")
+ '("gpointer" "accu_data")
+ '("GSignalCMarshaller" "c_marshaller")
+ '("GType" "return_type")
+ '("guint" "n_params")
+ )
+ (varargs #t)
+)
+
+(define-function g_signal_set_va_marshaller
+ (c-name "g_signal_set_va_marshaller")
+ (return-type "none")
+ (parameters
+ '("guint" "signal_id")
+ '("GType" "instance_type")
+ '("GSignalCVaMarshaller" "va_marshaller")
+ )
+)
+
+(define-function g_signal_emitv
+ (c-name "g_signal_emitv")
+ (return-type "none")
+ (parameters
+ '("const-GValue*" "instance_and_params")
+ '("guint" "signal_id")
+ '("GQuark" "detail")
+ '("GValue*" "return_value")
+ )
+)
+
+(define-function g_signal_emit_valist
+ (c-name "g_signal_emit_valist")
+ (return-type "none")
+ (parameters
+ '("gpointer" "instance")
+ '("guint" "signal_id")
+ '("GQuark" "detail")
+ '("va_list" "var_args")
+ )
+)
+
+(define-function g_signal_emit
+ (c-name "g_signal_emit")
+ (return-type "none")
+ (parameters
+ '("gpointer" "instance")
+ '("guint" "signal_id")
+ '("GQuark" "detail")
+ )
+ (varargs #t)
+)
+
+(define-function g_signal_emit_by_name
+ (c-name "g_signal_emit_by_name")
+ (return-type "none")
+ (parameters
+ '("gpointer" "instance")
+ '("const-gchar*" "detailed_signal")
+ )
+ (varargs #t)
+)
+
+(define-function g_signal_lookup
+ (c-name "g_signal_lookup")
+ (return-type "guint")
+ (parameters
+ '("const-gchar*" "name")
+ '("GType" "itype")
+ )
+)
+
+(define-function g_signal_name
+ (c-name "g_signal_name")
+ (return-type "const-gchar*")
+ (parameters
+ '("guint" "signal_id")
+ )
+)
+
+(define-function g_signal_query
+ (c-name "g_signal_query")
+ (return-type "none")
+ (parameters
+ '("guint" "signal_id")
+ '("GSignalQuery*" "query")
+ )
+)
+
+(define-function g_signal_list_ids
+ (c-name "g_signal_list_ids")
+ (return-type "guint*")
+ (parameters
+ '("GType" "itype")
+ '("guint*" "n_ids")
+ )
+)
+
+(define-function g_signal_parse_name
+ (c-name "g_signal_parse_name")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "detailed_signal")
+ '("GType" "itype")
+ '("guint*" "signal_id_p")
+ '("GQuark*" "detail_p")
+ '("gboolean" "force_detail_quark")
+ )
+)
+
+(define-function g_signal_get_invocation_hint
+ (c-name "g_signal_get_invocation_hint")
+ (return-type "GSignalInvocationHint*")
+ (parameters
+ '("gpointer" "instance")
+ )
+)
+
+(define-function g_signal_stop_emission
+ (c-name "g_signal_stop_emission")
+ (return-type "none")
+ (parameters
+ '("gpointer" "instance")
+ '("guint" "signal_id")
+ '("GQuark" "detail")
+ )
+)
+
+(define-function g_signal_stop_emission_by_name
+ (c-name "g_signal_stop_emission_by_name")
+ (return-type "none")
+ (parameters
+ '("gpointer" "instance")
+ '("const-gchar*" "detailed_signal")
+ )
+)
+
+(define-function g_signal_add_emission_hook
+ (c-name "g_signal_add_emission_hook")
+ (return-type "gulong")
+ (parameters
+ '("guint" "signal_id")
+ '("GQuark" "detail")
+ '("GSignalEmissionHook" "hook_func")
+ '("gpointer" "hook_data")
+ '("GDestroyNotify" "data_destroy")
+ )
+)
+
+(define-function g_signal_remove_emission_hook
+ (c-name "g_signal_remove_emission_hook")
+ (return-type "none")
+ (parameters
+ '("guint" "signal_id")
+ '("gulong" "hook_id")
+ )
+)
+
+(define-function g_signal_has_handler_pending
+ (c-name "g_signal_has_handler_pending")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "instance")
+ '("guint" "signal_id")
+ '("GQuark" "detail")
+ '("gboolean" "may_be_blocked")
+ )
+)
+
+(define-function g_signal_connect_closure_by_id
+ (c-name "g_signal_connect_closure_by_id")
+ (return-type "gulong")
+ (parameters
+ '("gpointer" "instance")
+ '("guint" "signal_id")
+ '("GQuark" "detail")
+ '("GClosure*" "closure")
+ '("gboolean" "after")
+ )
+)
+
+(define-function g_signal_connect_closure
+ (c-name "g_signal_connect_closure")
+ (return-type "gulong")
+ (parameters
+ '("gpointer" "instance")
+ '("const-gchar*" "detailed_signal")
+ '("GClosure*" "closure")
+ '("gboolean" "after")
+ )
+)
+
+(define-function g_signal_connect_data
+ (c-name "g_signal_connect_data")
+ (return-type "gulong")
+ (parameters
+ '("gpointer" "instance")
+ '("const-gchar*" "detailed_signal")
+ '("GCallback" "c_handler")
+ '("gpointer" "data")
+ '("GClosureNotify" "destroy_data")
+ '("GConnectFlags" "connect_flags")
+ )
+)
+
+(define-function g_signal_handler_block
+ (c-name "g_signal_handler_block")
+ (return-type "none")
+ (parameters
+ '("gpointer" "instance")
+ '("gulong" "handler_id")
+ )
+)
+
+(define-function g_signal_handler_unblock
+ (c-name "g_signal_handler_unblock")
+ (return-type "none")
+ (parameters
+ '("gpointer" "instance")
+ '("gulong" "handler_id")
+ )
+)
+
+(define-function g_signal_handler_disconnect
+ (c-name "g_signal_handler_disconnect")
+ (return-type "none")
+ (parameters
+ '("gpointer" "instance")
+ '("gulong" "handler_id")
+ )
+)
+
+(define-function g_signal_handler_is_connected
+ (c-name "g_signal_handler_is_connected")
+ (return-type "gboolean")
+ (parameters
+ '("gpointer" "instance")
+ '("gulong" "handler_id")
+ )
+)
+
+(define-function g_signal_handler_find
+ (c-name "g_signal_handler_find")
+ (return-type "gulong")
+ (parameters
+ '("gpointer" "instance")
+ '("GSignalMatchType" "mask")
+ '("guint" "signal_id")
+ '("GQuark" "detail")
+ '("GClosure*" "closure")
+ '("gpointer" "func")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_signal_handlers_block_matched
+ (c-name "g_signal_handlers_block_matched")
+ (return-type "guint")
+ (parameters
+ '("gpointer" "instance")
+ '("GSignalMatchType" "mask")
+ '("guint" "signal_id")
+ '("GQuark" "detail")
+ '("GClosure*" "closure")
+ '("gpointer" "func")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_signal_handlers_unblock_matched
+ (c-name "g_signal_handlers_unblock_matched")
+ (return-type "guint")
+ (parameters
+ '("gpointer" "instance")
+ '("GSignalMatchType" "mask")
+ '("guint" "signal_id")
+ '("GQuark" "detail")
+ '("GClosure*" "closure")
+ '("gpointer" "func")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_signal_handlers_disconnect_matched
+ (c-name "g_signal_handlers_disconnect_matched")
+ (return-type "guint")
+ (parameters
+ '("gpointer" "instance")
+ '("GSignalMatchType" "mask")
+ '("guint" "signal_id")
+ '("GQuark" "detail")
+ '("GClosure*" "closure")
+ '("gpointer" "func")
+ '("gpointer" "data")
+ )
+)
+
+(define-function g_signal_override_class_closure
+ (c-name "g_signal_override_class_closure")
+ (return-type "none")
+ (parameters
+ '("guint" "signal_id")
+ '("GType" "instance_type")
+ '("GClosure*" "class_closure")
+ )
+)
+
+(define-function g_signal_override_class_handler
+ (c-name "g_signal_override_class_handler")
+ (return-type "none")
+ (parameters
+ '("const-gchar*" "signal_name")
+ '("GType" "instance_type")
+ '("GCallback" "class_handler")
+ )
+)
+
+(define-function g_signal_chain_from_overridden
+ (c-name "g_signal_chain_from_overridden")
+ (return-type "none")
+ (parameters
+ '("const-GValue*" "instance_and_params")
+ '("GValue*" "return_value")
+ )
+)
+
+(define-function g_signal_chain_from_overridden_handler
+ (c-name "g_signal_chain_from_overridden_handler")
+ (return-type "none")
+ (parameters
+ '("gpointer" "instance")
+ )
+ (varargs #t)
+)
+
+(define-function g_signal_accumulator_true_handled
+ (c-name "g_signal_accumulator_true_handled")
+ (return-type "gboolean")
+ (parameters
+ '("GSignalInvocationHint*" "ihint")
+ '("GValue*" "return_accu")
+ '("const-GValue*" "handler_return")
+ '("gpointer" "dummy")
+ )
+)
+
+(define-function g_signal_accumulator_first_wins
+ (c-name "g_signal_accumulator_first_wins")
+ (return-type "gboolean")
+ (parameters
+ '("GSignalInvocationHint*" "ihint")
+ '("GValue*" "return_accu")
+ '("const-GValue*" "handler_return")
+ '("gpointer" "dummy")
+ )
+)
+
+(define-function g_signal_handlers_destroy
+ (c-name "g_signal_handlers_destroy")
+ (return-type "none")
+ (parameters
+ '("gpointer" "instance")
+ )
+)
+
+
+
+;; From gsourceclosure.h
+
+(define-method set_closure
+ (of-object "GSource")
+ (c-name "g_source_set_closure")
+ (return-type "none")
+ (parameters
+ '("GClosure*" "closure")
+ )
+)
+
+(define-method set_dummy_callback
+ (of-object "GSource")
+ (c-name "g_source_set_dummy_callback")
+ (return-type "none")
+)
+
+
+
+;; From gtype.h
+
+(define-function g_type_init
+ (c-name "g_type_init")
+ (return-type "none")
+)
+
+(define-function g_type_init_with_debug_flags
+ (c-name "g_type_init_with_debug_flags")
+ (return-type "none")
+ (parameters
+ '("GTypeDebugFlags" "debug_flags")
+ )
+)
+
+(define-method name
+ (of-object "GType")
+ (c-name "g_type_name")
+ (return-type "const-gchar*")
+)
+
+(define-method qname
+ (of-object "GType")
+ (c-name "g_type_qname")
+ (return-type "GQuark")
+)
+
+(define-function g_type_from_name
+ (c-name "g_type_from_name")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "name")
+ )
+)
+
+(define-method parent
+ (of-object "GType")
+ (c-name "g_type_parent")
+ (return-type "GType")
+)
+
+(define-method depth
+ (of-object "GType")
+ (c-name "g_type_depth")
+ (return-type "guint")
+)
+
+(define-method next_base
+ (of-object "GType")
+ (c-name "g_type_next_base")
+ (return-type "GType")
+ (parameters
+ '("GType" "root_type")
+ )
+)
+
+(define-method is_a
+ (of-object "GType")
+ (c-name "g_type_is_a")
+ (return-type "gboolean")
+ (parameters
+ '("GType" "is_a_type")
+ )
+)
+
+(define-method class_ref
+ (of-object "GType")
+ (c-name "g_type_class_ref")
+ (return-type "gpointer")
+)
+
+(define-method class_peek
+ (of-object "GType")
+ (c-name "g_type_class_peek")
+ (return-type "gpointer")
+)
+
+(define-method class_peek_static
+ (of-object "GType")
+ (c-name "g_type_class_peek_static")
+ (return-type "gpointer")
+)
+
+(define-function g_type_class_unref
+ (c-name "g_type_class_unref")
+ (return-type "none")
+ (parameters
+ '("gpointer" "g_class")
+ )
+)
+
+(define-function g_type_class_peek_parent
+ (c-name "g_type_class_peek_parent")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "g_class")
+ )
+)
+
+(define-function g_type_interface_peek
+ (c-name "g_type_interface_peek")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "instance_class")
+ '("GType" "iface_type")
+ )
+)
+
+(define-function g_type_interface_peek_parent
+ (c-name "g_type_interface_peek_parent")
+ (return-type "gpointer")
+ (parameters
+ '("gpointer" "g_iface")
+ )
+)
+
+(define-method default_interface_ref
+ (of-object "GType")
+ (c-name "g_type_default_interface_ref")
+ (return-type "gpointer")
+)
+
+(define-method default_interface_peek
+ (of-object "GType")
+ (c-name "g_type_default_interface_peek")
+ (return-type "gpointer")
+)
+
+(define-function g_type_default_interface_unref
+ (c-name "g_type_default_interface_unref")
+ (return-type "none")
+ (parameters
+ '("gpointer" "g_iface")
+ )
+)
+
+(define-method children
+ (of-object "GType")
+ (c-name "g_type_children")
+ (return-type "GType*")
+ (parameters
+ '("guint*" "n_children")
+ )
+)
+
+(define-method interfaces
+ (of-object "GType")
+ (c-name "g_type_interfaces")
+ (return-type "GType*")
+ (parameters
+ '("guint*" "n_interfaces")
+ )
+)
+
+(define-method set_qdata
+ (of-object "GType")
+ (c-name "g_type_set_qdata")
+ (return-type "none")
+ (parameters
+ '("GQuark" "quark")
+ '("gpointer" "data")
+ )
+)
+
+(define-method get_qdata
+ (of-object "GType")
+ (c-name "g_type_get_qdata")
+ (return-type "gpointer")
+ (parameters
+ '("GQuark" "quark")
+ )
+)
+
+(define-method query
+ (of-object "GType")
+ (c-name "g_type_query")
+ (return-type "none")
+ (parameters
+ '("GTypeQuery*" "query")
+ )
+)
+
+(define-method get_instance_count
+ (of-object "GType")
+ (c-name "g_type_get_instance_count")
+ (return-type "int")
+)
+
+(define-method register_static
+ (of-object "GType")
+ (c-name "g_type_register_static")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "type_name")
+ '("const-GTypeInfo*" "info")
+ '("GTypeFlags" "flags")
+ )
+)
+
+(define-method register_static_simple
+ (of-object "GType")
+ (c-name "g_type_register_static_simple")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "type_name")
+ '("guint" "class_size")
+ '("GClassInitFunc" "class_init")
+ '("guint" "instance_size")
+ '("GInstanceInitFunc" "instance_init")
+ '("GTypeFlags" "flags")
+ )
+)
+
+(define-method register_dynamic
+ (of-object "GType")
+ (c-name "g_type_register_dynamic")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "type_name")
+ '("GTypePlugin*" "plugin")
+ '("GTypeFlags" "flags")
+ )
+)
+
+(define-method register_fundamental
+ (of-object "GType")
+ (c-name "g_type_register_fundamental")
+ (return-type "GType")
+ (parameters
+ '("const-gchar*" "type_name")
+ '("const-GTypeInfo*" "info")
+ '("const-GTypeFundamentalInfo*" "finfo")
+ '("GTypeFlags" "flags")
+ )
+)
+
+(define-method add_interface_static
+ (of-object "GType")
+ (c-name "g_type_add_interface_static")
+ (return-type "none")
+ (parameters
+ '("GType" "interface_type")
+ '("const-GInterfaceInfo*" "info")
+ )
+)
+
+(define-method add_interface_dynamic
+ (of-object "GType")
+ (c-name "g_type_add_interface_dynamic")
+ (return-type "none")
+ (parameters
+ '("GType" "interface_type")
+ '("GTypePlugin*" "plugin")
+ )
+)
+
+(define-method interface_add_prerequisite
+ (of-object "GType")
+ (c-name "g_type_interface_add_prerequisite")
+ (return-type "none")
+ (parameters
+ '("GType" "prerequisite_type")
+ )
+)
+
+(define-method interface_prerequisites
+ (of-object "GType")
+ (c-name "g_type_interface_prerequisites")
+ (return-type "GType*")
+ (parameters
+ '("guint*" "n_prerequisites")
+ )
+)
+
+(define-function g_type_class_add_private
+ (c-name "g_type_class_add_private")
+ (return-type "none")
+ (parameters
+ '("gpointer" "g_class")
+ '("gsize" "private_size")
+ )
+)
+
+(define-method add_instance_private
+ (of-object "GType")
+ (c-name "g_type_add_instance_private")
+ (return-type "gint")
+ (parameters
+ '("gsize" "private_size")
+ )
+)
+
+(define-method get_private
+ (of-object "GTypeInstance")
+ (c-name "g_type_instance_get_private")
+ (return-type "gpointer")
+ (parameters
+ '("GType" "private_type")
+ )
+)
+
+(define-function g_type_class_adjust_private_offset
+ (c-name "g_type_class_adjust_private_offset")
+ (return-type "none")
+ (parameters
+ '("gpointer" "g_class")
+ '("gint*" "private_size_or_offset")
+ )
+)
+
+(define-method add_class_private
+ (of-object "GType")
+ (c-name "g_type_add_class_private")
+ (return-type "none")
+ (parameters
+ '("gsize" "private_size")
+ )
+)
+
+(define-method get_private
+ (of-object "GTypeClass")
+ (c-name "g_type_class_get_private")
+ (return-type "gpointer")
+ (parameters
+ '("GType" "private_type")
+ )
+)
+
+(define-function g_type_class_get_instance_private_offset
+ (c-name "g_type_class_get_instance_private_offset")
+ (return-type "gint")
+ (parameters
+ '("gpointer" "g_class")
+ )
+)
+
+(define-method ensure
+ (of-object "GType")
+ (c-name "g_type_ensure")
+ (return-type "none")
+)
+
+(define-function g_type_get_type_registration_serial
+ (c-name "g_type_get_type_registration_serial")
+ (return-type "guint")
+)
+
+(define-method get_plugin
+ (of-object "GType")
+ (c-name "g_type_get_plugin")
+ (return-type "GTypePlugin*")
+)
+
+(define-method interface_get_plugin
+ (of-object "GType")
+ (c-name "g_type_interface_get_plugin")
+ (return-type "GTypePlugin*")
+ (parameters
+ '("gpointer" "notify_data")
+ '("GClosureNotify" "notify_func")
+ )
+)
+
(define-method add_marshal_guards
(of-object "GClosure")
(c-name "g_closure_add_marshal_guards")
@@ -325,11 +3598,7 @@
(return-type "gchar")
)
-(define-method get_double
- (of-object "GValue")
- (c-name "g_value_get_double")
- (return-type "gdouble")
-)
+;; From gvaluearray.h
(define-method get_enum
(of-object "GValue")
diff --git a/glib/src/iochannel.ccg b/glib/src/iochannel.ccg
index d0a18aae..93faefa7 100644
--- a/glib/src/iochannel.ccg
+++ b/glib/src/iochannel.ccg
@@ -50,8 +50,8 @@ public:
ForeignIOChannel(GIOChannel* gobject, bool take_copy)
: Glib::IOChannel(gobject, take_copy), ref_count_(0) {}
- virtual void reference() const;
- virtual void unreference() const;
+ void reference() const override;
+ void unreference() const override;
private:
mutable int ref_count_;
@@ -136,7 +136,7 @@ IOChannel::IOChannel(GIOChannel* gobject, bool take_copy)
gobject_ (gobject)
{
// This ctor should never be called for GlibmmIOChannel instances.
- g_assert(gobject != 0);
+ g_assert(gobject != nullptr);
g_assert(gobject->funcs != &GlibmmIOChannel::vfunc_table);
if(take_copy)
@@ -157,11 +157,11 @@ IOChannel::~IOChannel()
if(gobject_->funcs == &GlibmmIOChannel::vfunc_table)
{
// Disconnect the wrapper object so that it won't be deleted twice.
- reinterpret_cast<GlibmmIOChannel*>(gobject_)->wrapper = 0;
+ reinterpret_cast<GlibmmIOChannel*>(gobject_)->wrapper = nullptr;
}
- GIOChannel *const tmp_gobject = gobject_;
- gobject_ = 0;
+ const auto tmp_gobject = gobject_;
+ gobject_ = nullptr;
g_io_channel_unref(tmp_gobject);
}
@@ -169,8 +169,8 @@ IOChannel::~IOChannel()
Glib::RefPtr<IOChannel> IOChannel::create_from_file(const std::string& filename, const std::string& mode)
{
- GError* gerror = 0;
- GIOChannel *const channel = g_io_channel_new_file(filename.c_str(), mode.c_str(), &gerror);
+ GError* gerror = nullptr;
+ const auto channel = g_io_channel_new_file(filename.c_str(), mode.c_str(), &gerror);
if(gerror)
{
@@ -208,10 +208,10 @@ IOStatus IOChannel::write(const Glib::ustring& str)
IOStatus IOChannel::read_line(Glib::ustring& line)
{
Glib::ScopedPtr<char> buf;
- GError* gerror = 0;
+ GError* gerror = nullptr;
gsize bytes = 0;
- const GIOStatus status = g_io_channel_read_line(gobj(), buf.addr(), &bytes, 0, &gerror);
+ const auto status = g_io_channel_read_line(gobj(), buf.addr(), &bytes, 0, &gerror);
if(gerror)
{
@@ -229,10 +229,10 @@ IOStatus IOChannel::read_line(Glib::ustring& line)
IOStatus IOChannel::read_to_end(Glib::ustring& str)
{
Glib::ScopedPtr<char> buf;
- GError* gerror = 0;
+ GError* gerror = nullptr;
gsize bytes = 0;
- const GIOStatus status = g_io_channel_read_to_end(gobj(), buf.addr(), &bytes, &gerror);
+ const auto status = g_io_channel_read_to_end(gobj(), buf.addr(), &bytes, &gerror);
if(gerror)
{
@@ -250,10 +250,10 @@ IOStatus IOChannel::read_to_end(Glib::ustring& str)
IOStatus IOChannel::read(Glib::ustring& str, gsize count)
{
Glib::ScopedPtr<char> buf (g_new(char, count));
- GError* gerror = 0;
+ GError* gerror = nullptr;
gsize bytes = 0;
- const GIOStatus status = g_io_channel_read_chars(gobj(), buf.get(), count, &bytes, &gerror);
+ const auto status = g_io_channel_read_chars(gobj(), buf.get(), count, &bytes, &gerror);
if(gerror)
{
@@ -270,9 +270,9 @@ IOStatus IOChannel::read(Glib::ustring& str, gsize count)
IOStatus IOChannel::set_encoding(const std::string& encoding)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
- const GIOStatus status = g_io_channel_set_encoding(
+ const auto status = g_io_channel_set_encoding(
gobj(), (encoding.empty()) ? 0 : encoding.c_str(), &gerror);
if(gerror)
@@ -367,7 +367,7 @@ void IOChannel::unreference() const
Glib::RefPtr<IOChannel> wrap(GIOChannel* gobject, bool take_copy)
{
- IOChannel* cpp_object = 0;
+ IOChannel* cpp_object = nullptr;
if(gobject)
{
@@ -394,7 +394,7 @@ Glib::RefPtr<IOChannel> wrap(GIOChannel* gobject, bool take_copy)
GIOStatus GlibmmIOChannel::io_read(GIOChannel* channel, char* buf, gsize count,
gsize* bytes_read, GError** err)
{
- IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
+ const auto wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
try
{
@@ -415,7 +415,7 @@ GIOStatus GlibmmIOChannel::io_read(GIOChannel* channel, char* buf, gsize count,
GIOStatus GlibmmIOChannel::io_write(GIOChannel* channel, const char* buf, gsize count,
gsize* bytes_written, GError** err)
{
- IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
+ const auto wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
try
{
@@ -435,7 +435,7 @@ GIOStatus GlibmmIOChannel::io_write(GIOChannel* channel, const char* buf, gsize
GIOStatus GlibmmIOChannel::io_seek(GIOChannel* channel, gint64 offset, GSeekType type, GError** err)
{
- IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
+ const auto wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
try
{
@@ -455,7 +455,7 @@ GIOStatus GlibmmIOChannel::io_seek(GIOChannel* channel, gint64 offset, GSeekType
GIOStatus GlibmmIOChannel::io_close(GIOChannel* channel, GError** err)
{
- IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
+ const auto wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
try
{
@@ -477,11 +477,11 @@ GIOStatus GlibmmIOChannel::io_close(GIOChannel* channel, GError** err)
// static
GSource* GlibmmIOChannel::io_create_watch(GIOChannel* channel, GIOCondition condition)
{
- IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
+ const auto wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
try
{
- const Glib::RefPtr<Source> source = wrapper->create_watch_vfunc((IOCondition) condition);
+ const auto source = wrapper->create_watch_vfunc((IOCondition) condition);
return (source) ? source->gobj_copy() : 0;
}
catch(...)
@@ -497,7 +497,7 @@ void GlibmmIOChannel::io_free(GIOChannel* channel)
{
if(IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper)
{
- wrapper->gobject_ = 0;
+ wrapper->gobject_ = nullptr;
delete wrapper;
}
@@ -506,7 +506,7 @@ void GlibmmIOChannel::io_free(GIOChannel* channel)
GIOStatus GlibmmIOChannel::io_set_flags(GIOChannel* channel, GIOFlags flags, GError** err)
{
- IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
+ const auto wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
try
{
@@ -527,7 +527,7 @@ GIOStatus GlibmmIOChannel::io_set_flags(GIOChannel* channel, GIOFlags flags, GEr
// static
GIOFlags GlibmmIOChannel::io_get_flags(GIOChannel* channel)
{
- IOChannel *const wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
+ const auto wrapper = reinterpret_cast<GlibmmIOChannel*>(channel)->wrapper;
try
{
diff --git a/glib/src/iochannel.hg b/glib/src/iochannel.hg
index bc0f404d..9c97ce78 100644
--- a/glib/src/iochannel.hg
+++ b/glib/src/iochannel.hg
@@ -78,15 +78,7 @@ class GlibmmIOChannel;
* set_encoding("ISO-8859-15"). To set the channel to no encoding, use
* set_encoding() without any arguments.
*
- * You can create an IOChannel with one of the static create methods, or
- * implement one yourself, in which case you have to 1)&nbsp;override all
- * _vfunc() members. 2)&nbsp;set the GIOChannel flags in your constructor.
- *
- * @note This feature of being able to implement a custom Glib::IOChannel is
- * deprecated in glibmm&nbsp;2.2. The vfunc interface has not yet stabilized
- * enough to allow that -- the C++ wrapper went in by pure accident. Besides,
- * it isn't terribly useful either. Thus please refrain from overriding any
- * IOChannel vfuncs.
+ * You can create an IOChannel with one of the static create methods.
*/
class IOChannel : public sigc::trackable
{
@@ -269,11 +261,11 @@ public:
* Any pending data to be written will be flushed if @a flush is <tt>true</tt>.
* The channel will not be freed until the last reference is dropped.
* Accessing the channel after closing it is considered an error.
- * @param flush Whether to flush() pending data before closing the channel.
+ * @param flush_pending Whether to flush() pending data before closing the channel.
* @return The status of the operation.
* @throw Glib::IOChannelError
*/
- _WRAP_METHOD(IOStatus close(bool flush = true), g_io_channel_shutdown, errthrow)
+ _WRAP_METHOD(IOStatus close(bool flush_pending = true), g_io_channel_shutdown, errthrow)
/** Get the IOChannel internal buffer size.
* @return The buffer size.
@@ -413,7 +405,6 @@ public:
* @return An IOSource object that can be polled from a MainContext's event loop.
*/
Glib::RefPtr<IOSource> create_watch(IOCondition condition);
- _IGNORE(g_io_channel_create_watch)
virtual void reference() const;
virtual void unreference() const;
@@ -438,12 +429,42 @@ protected:
IOChannel(GIOChannel* gobject, bool take_copy);
#endif
+ //We don't put GLIBMM_DISABLE_DEPRECATED around these deprecated methods
+ //because they are virtual and that would make the ABI dependent on the ifdef.
+
+ /**
+ * @deprecated Custom Glib::IOChannel implementation was never really supported.
+ */
virtual IOStatus read_vfunc(char* buf, gsize count, gsize& bytes_read);
+
+ /**
+ * @deprecated Custom Glib::IOChannel implementation was never really supported.
+ */
virtual IOStatus write_vfunc(const char* buf, gsize count, gsize& bytes_written);
+
+ /**
+ * @deprecated Custom Glib::IOChannel implementation was never really supported.
+ */
virtual IOStatus seek_vfunc(gint64 offset, SeekType type);
+
+ /**
+ * @deprecated Custom Glib::IOChannel implementation was never really supported.
+ */
virtual IOStatus close_vfunc();
+
+ /**
+ * @deprecated Custom Glib::IOChannel implementation was never really supported.
+ */
virtual IOStatus set_flags_vfunc(IOFlags flags);
+
+ /**
+ * @deprecated Custom Glib::IOChannel implementation was never really supported.
+ */
virtual IOFlags get_flags_vfunc();
+
+ /**
+ * @deprecated Custom Glib::IOChannel implementation was never really supported.
+ */
virtual Glib::RefPtr<Glib::Source> create_watch_vfunc(IOCondition cond);
#ifndef DOXYGEN_SHOULD_SKIP_THIS
diff --git a/glib/src/keyfile.ccg b/glib/src/keyfile.ccg
index 366b4980..4488e317 100644
--- a/glib/src/keyfile.ccg
+++ b/glib/src/keyfile.ccg
@@ -40,7 +40,7 @@ KeyFile::~KeyFile()
bool KeyFile::load_from_data(const Glib::ustring& data, KeyFileFlags flags)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
const gboolean result = g_key_file_load_from_data(
gobj(), data.c_str(), data.bytes(),
@@ -55,8 +55,8 @@ bool KeyFile::load_from_data(const Glib::ustring& data, KeyFileFlags flags)
bool KeyFile::load_from_data_dirs(const std::string& file, std::string& full_path, KeyFileFlags flags)
{
- GError* gerror = 0;
- char* full_path_c = 0;
+ GError* gerror = nullptr;
+ char* full_path_c = nullptr;
const gboolean result = g_key_file_load_from_data_dirs(
gobj(), file.c_str(), &full_path_c,
@@ -76,8 +76,8 @@ bool KeyFile::load_from_data_dirs(const std::string& file, std::string& full_pat
bool KeyFile::load_from_dirs(const std::string& file, const Glib::ArrayHandle<std::string>& search_dirs, std::string& full_path, KeyFileFlags flags)
{
- GError* gerror = 0;
- char* full_path_c = 0;
+ GError* gerror = nullptr;
+ char* full_path_c = nullptr;
const gboolean result = g_key_file_load_from_dirs(
gobj(), file.c_str(), const_cast<const gchar**>(search_dirs.data()),
@@ -103,7 +103,7 @@ bool KeyFile::load_from_dirs(const std::string& file, const Glib::ArrayHandle<st
Glib::ustring KeyFile::to_data()
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const str = g_key_file_to_data(gobj(), 0, &gerror);
if(gerror)
@@ -123,7 +123,7 @@ Glib::ArrayHandle<Glib::ustring> KeyFile::get_groups() const
Glib::ArrayHandle<Glib::ustring> KeyFile::get_keys(const Glib::ustring& group_name) const
{
gsize length = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
char** const array = g_key_file_get_keys(
const_cast<GKeyFile*>(gobj()),
@@ -139,7 +139,7 @@ Glib::ArrayHandle<Glib::ustring> KeyFile::get_keys(const Glib::ustring& group_na
Glib::ustring KeyFile::get_locale_string(const Glib::ustring& group_name,
const Glib::ustring& key) const
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const str = g_key_file_get_locale_string(
const_cast<GKeyFile*>(gobj()),
(group_name.empty()) ? 0 : group_name.c_str(),
@@ -153,7 +153,7 @@ Glib::ustring KeyFile::get_locale_string(const Glib::ustring& group_name,
bool KeyFile::get_boolean(const Glib::ustring& key) const
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
const bool value =
static_cast<bool>(g_key_file_get_boolean(const_cast<GKeyFile*>(gobj()),
0, key.c_str(), &gerror));
@@ -165,7 +165,7 @@ bool KeyFile::get_boolean(const Glib::ustring& key) const
int KeyFile::get_integer(const Glib::ustring& key) const
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
const int value = g_key_file_get_integer(const_cast<GKeyFile*>(gobj()),
0, key.c_str(), &gerror);
if(gerror)
@@ -176,7 +176,7 @@ int KeyFile::get_integer(const Glib::ustring& key) const
gint64 KeyFile::get_int64(const Glib::ustring& key) const
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
const gint64 value = g_key_file_get_int64(const_cast<GKeyFile*>(gobj()), 0,
key.c_str(), &gerror);
@@ -189,7 +189,7 @@ gint64 KeyFile::get_int64(const Glib::ustring& key) const
guint64 KeyFile::get_uint64(const Glib::ustring& key) const
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
const guint64 value = g_key_file_get_uint64(const_cast<GKeyFile*>(gobj()),
0, key.c_str(), &gerror);
@@ -202,7 +202,7 @@ guint64 KeyFile::get_uint64(const Glib::ustring& key) const
double KeyFile::get_double(const Glib::ustring& key) const
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
double retvalue = g_key_file_get_double(const_cast<GKeyFile*>(gobj()), 0, key.c_str(), &(gerror));
if(gerror)
@@ -224,7 +224,7 @@ Glib::ArrayHandle<Glib::ustring> KeyFile::get_string_list(const Glib::ustring& g
GLIBMM_ERROR_ARG) const
{
gsize length = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
char** const array = g_key_file_get_string_list(
const_cast<GKeyFile*>(gobj()),
@@ -242,7 +242,7 @@ Glib::ArrayHandle<Glib::ustring> KeyFile::get_locale_string_list(const Glib::ust
GLIBMM_ERROR_ARG) const
{
gsize length = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
char** const array = g_key_file_get_locale_string_list(
const_cast<GKeyFile*>(gobj()),
@@ -259,7 +259,7 @@ Glib::ArrayHandle<bool> KeyFile::get_boolean_list(const Glib::ustring& group_nam
GLIBMM_ERROR_ARG) const
{
gsize length = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
gboolean *const array = g_key_file_get_boolean_list(
const_cast<GKeyFile*>(gobj()),
@@ -276,7 +276,7 @@ Glib::ArrayHandle<int> KeyFile::get_integer_list(const Glib::ustring& group_name
GLIBMM_ERROR_ARG) const
{
gsize length = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
int *const array = g_key_file_get_integer_list(
const_cast<GKeyFile*>(gobj()),
@@ -293,7 +293,7 @@ Glib::ArrayHandle<double> KeyFile::get_double_list(const Glib::ustring& group_na
GLIBMM_ERROR_ARG) const
{
gsize length = 0;
- GError* gerror = 0;
+ GError* gerror = nullptr;
double *const array = g_key_file_get_double_list(const_cast<GKeyFile*>(gobj()),
group_name.c_str(), key.c_str(),
@@ -341,7 +341,7 @@ void KeyFile::set_boolean_list(const Glib::ustring& group_name, const Glib::ustr
Glib::ustring KeyFile::get_comment() const
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const str = g_key_file_get_comment(const_cast<GKeyFile*>(gobj()), 0, 0, &gerror);
GLIBMM_THROW(gerror);
@@ -351,7 +351,7 @@ Glib::ustring KeyFile::get_comment() const
Glib::ustring KeyFile::get_comment(const Glib::ustring& group_name GLIBMM_ERROR_ARG) const
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
char *const str = g_key_file_get_comment(const_cast<GKeyFile*>(gobj()),
(group_name.empty()) ? 0 : group_name.c_str(),
0, &gerror);
@@ -362,7 +362,7 @@ Glib::ustring KeyFile::get_comment(const Glib::ustring& group_name GLIBMM_ERROR_
void KeyFile::set_comment(const Glib::ustring& comment GLIBMM_ERROR_ARG)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
g_key_file_set_comment(gobj(), 0, 0, comment.c_str(), &gerror);
GLIBMM_THROW(gerror);
@@ -371,7 +371,7 @@ void KeyFile::set_comment(const Glib::ustring& comment GLIBMM_ERROR_ARG)
void KeyFile::set_comment(const Glib::ustring& group_name, const Glib::ustring& comment
GLIBMM_ERROR_ARG)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
g_key_file_set_comment(gobj(), (group_name.empty()) ? 0 : group_name.c_str(),
0, comment.c_str(), &gerror);
GLIBMM_THROW(gerror);
diff --git a/glib/src/keyfile.hg b/glib/src/keyfile.hg
index 5f7c199f..c976a958 100644
--- a/glib/src/keyfile.hg
+++ b/glib/src/keyfile.hg
@@ -263,6 +263,7 @@ public:
* If @a key cannot be found then it is created.
*
* @newin{2,12}
+ *
* @param key A key.
* @param value An double value.
*/
diff --git a/glib/src/markup.ccg b/glib/src/markup.ccg
index ae3d4d2f..738ce781 100644
--- a/glib/src/markup.ccg
+++ b/glib/src/markup.ccg
@@ -110,7 +110,7 @@ void ParserCallbacks::start_element(GMarkupParseContext* context,
for(; *pname && *pvalue; ++pname, ++pvalue)
attributes.insert(Parser::AttributeMap::value_type(*pname, *pvalue));
- g_return_if_fail(*pname == 0 && *pvalue == 0);
+ g_return_if_fail(*pname == nullptr && *pvalue == nullptr);
}
cpp_context.get_parser()->on_start_element(cpp_context, element_name, attributes);
@@ -249,13 +249,13 @@ ParseContext::ParseContext(Parser& parser, ParseFlags flags)
ParseContext::~ParseContext()
{
- parser_ = 0;
+ parser_ = nullptr;
g_markup_parse_context_free(gobject_);
}
void ParseContext::parse(const Glib::ustring& text)
{
- GError* error = 0;
+ GError* error = nullptr;
g_markup_parse_context_parse(gobject_, text.data(), text.bytes(), &error);
if(error)
@@ -264,7 +264,7 @@ void ParseContext::parse(const Glib::ustring& text)
void ParseContext::parse(const char* text_begin, const char* text_end)
{
- GError* error = 0;
+ GError* error = nullptr;
g_markup_parse_context_parse(gobject_, text_begin, text_end - text_begin, &error);
if(error)
@@ -273,7 +273,7 @@ void ParseContext::parse(const char* text_begin, const char* text_end)
void ParseContext::end_parse()
{
- GError* error = 0;
+ GError* error = nullptr;
g_markup_parse_context_end_parse(gobject_, &error);
if(error)
@@ -306,7 +306,7 @@ void ParseContext::destroy_notify_callback(void* data)
ParseContext *const self = static_cast<ParseContext*>(data);
// Detect premature destruction.
- g_return_if_fail(self->parser_ == 0);
+ g_return_if_fail(self->parser_ == nullptr);
}
} // namespace Markup
diff --git a/glib/glibmm/miscutils.cc b/glib/src/miscutils.ccg
index 95226b8f..9d7de8e1 100644
--- a/glib/glibmm/miscutils.cc
+++ b/glib/src/miscutils.ccg
@@ -1,6 +1,3 @@
-// -*- c++ -*-
-/* $Id$ */
-
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -52,7 +49,7 @@ void set_prgname(const std::string& prgname)
std::string getenv(const std::string& variable, bool& found)
{
const char *const value = g_getenv(variable.c_str());
- found = (value != 0);
+ found = (value != nullptr);
return convert_const_gchar_ptr_to_stdstring(value);
}
@@ -106,10 +103,17 @@ std::string get_current_dir()
return convert_return_gchar_ptr_to_stdstring(g_get_current_dir());
}
+#ifndef GLIBMM_DISABLE_DEPRECATED
std::string get_user_special_dir(GUserDirectory directory)
{
return convert_const_gchar_ptr_to_stdstring(g_get_user_special_dir(directory));
}
+#endif // GLIBMM_DISABLE_DEPRECATED
+
+std::string get_user_special_dir(UserDirectory directory)
+{
+ return convert_const_gchar_ptr_to_stdstring(g_get_user_special_dir((GUserDirectory)directory));
+}
std::string get_user_data_dir()
{
@@ -129,7 +133,7 @@ std::vector<std::string> get_system_data_dirs()
if(!cresult)
return result;
- for(const gchar* const * iter = cresult; *iter != 0; ++iter)
+ for(const gchar* const * iter = cresult; *iter != nullptr; ++iter)
{
result.push_back(
convert_const_gchar_ptr_to_stdstring(*iter));
@@ -146,7 +150,7 @@ std::vector<std::string> get_system_config_dirs()
if(!cresult)
return result;
- for(const gchar* const * iter = cresult; *iter != 0; ++iter)
+ for(const gchar* const * iter = cresult; *iter != nullptr; ++iter)
{
result.push_back(
convert_const_gchar_ptr_to_stdstring(*iter));
@@ -266,4 +270,9 @@ std::string find_program_in_path(const std::string& program)
return convert_return_gchar_ptr_to_stdstring(g_find_program_in_path(program.c_str()));
}
+Glib::ustring format_size(guint64 size, FormatSizeFlags flags)
+{
+ return convert_return_gchar_ptr_to_ustring(g_format_size_full(size, (GFormatSizeFlags)flags));
+}
+
} // namespace Glib
diff --git a/glib/glibmm/miscutils.h b/glib/src/miscutils.hg
index 12c9677b..f4833f56 100644
--- a/glib/glibmm/miscutils.h
+++ b/glib/src/miscutils.hg
@@ -1,9 +1,3 @@
-// -*- c++ -*-
-#ifndef _GLIBMM_MISCUTILS_H
-#define _GLIBMM_MISCUTILS_H
-
-/* $Id$ */
-
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
@@ -21,12 +15,15 @@
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+_DEFS(glibmm,glib)
+
#include <glibmm/arrayhandle.h>
#include <glibmm/ustring.h>
-
namespace Glib
{
+_WRAP_ENUM(UserDirectory, GUserDirectory, NO_GTYPE)
+_WRAP_ENUM(FormatSizeFlags, GFormatSizeFlags, NO_GTYPE)
/** @defgroup MiscUtils Miscellaneous Utility Functions
* Miscellaneous Utility Functions -- a selection of portable utility functions.
@@ -81,7 +78,7 @@ void set_prgname(const std::string& prgname);
* environment variables, they are expanded.
*
* @param variable The environment variable to get.
- * @retval found <tt>true</tt> Whether the environment variable has been found.
+ * @param[out] found Whether the environment variable has been found.
* @return The value of the environment variable, or <tt>""</tt> if not found.
*/
std::string getenv(const std::string& variable, bool& found);
@@ -168,23 +165,46 @@ std::string get_tmp_dir();
*/
std::string get_current_dir();
-//TODO: We could create a C++ enum to wrap the C GUserDirectory enum,
-//but we would have to either be very careful, or define the enum
-//values in terms of the C enums anyway.
+#ifndef GLIBMM_DISABLE_DEPRECATED
/** Returns the full path of a special directory using its logical id.
*
* On Unix this is done using the XDG special user directories.
+ * For compatibility with existing practise, G_USER_DIRECTORY_DESKTOP
+ * falls back to `$HOME/Desktop` when XDG special user directories have
+ * not been set up.
*
* Depending on the platform, the user might be able to change the path
* of the special directory without requiring the session to restart; GLib
* will not reflect any change once the special directories are loaded.
*
- * Return value: the path to the specified special directory.
- * @param directory Te logical id of special directory
+ * @param directory The logical id of special directory.
+ * @return The path to the specified special directory, or an empty string
+ * if the logical id was not found.
*
* @newin{2,14}
+ * @deprecated Use get_user_special_dir(Glib::UserDirectory directory) instead.
*/
std::string get_user_special_dir(GUserDirectory directory);
+#endif // GLIBMM_DISABLE_DEPRECATED
+
+/** Returns the full path of a special directory using its logical id.
+ *
+ * On Unix this is done using the XDG special user directories.
+ * For compatibility with existing practise, Glib::USER_DIRECTORY_DESKTOP
+ * falls back to `$HOME/Desktop` when XDG special user directories have
+ * not been set up.
+ *
+ * Depending on the platform, the user might be able to change the path
+ * of the special directory without requiring the session to restart; GLib
+ * will not reflect any change once the special directories are loaded.
+ *
+ * @param directory The logical id of special directory.
+ * @return The path to the specified special directory, or an empty string
+ * if the logical id was not found.
+ *
+ * @newin{2,46}
+ */
+std::string get_user_special_dir(UserDirectory directory);
/** Returns a base directory in which to access application data such as icons
* that is customized for a particular user.
@@ -459,9 +479,23 @@ std::string build_path(const std::string& separator,
*/
std::string find_program_in_path(const std::string& program);
+/** Formats a size (for example the size of a file) into a human readable string.
+ *
+ * Sizes are rounded to the nearest size prefix (kB, MB, GB)
+ * and are displayed rounded to the nearest tenth. E.g. the file size
+ * 3292528 bytes will be converted into the string "3.2 MB".
+ *
+ * The prefix units base is 1000 (i.e. 1 kB is 1000 bytes), unless the
+ * Glib::FORMAT_SIZE_IEC_UNITS flag is set.
+ *
+ * @param size A size in bytes.
+ * @param flags Flags to modify the output.
+ * @return A formatted string containing a human readable file size.
+ *
+ * @newin{2,46}
+ */
+Glib::ustring format_size(guint64 size, FormatSizeFlags flags = FORMAT_SIZE_DEFAULT);
+
/** @} group MiscUtils */
} // namespace Glib
-
-
-#endif /* _GLIBMM_FILEUTILS_H */
diff --git a/glib/src/module.ccg b/glib/src/module.ccg
index 8afd6d35..4e4666cd 100644
--- a/glib/src/module.ccg
+++ b/glib/src/module.ccg
@@ -34,7 +34,7 @@ Module::~Module()
Module::operator bool() const
{
- return (gobject_ != 0);
+ return (gobject_ != nullptr);
}
} // namespace Glib
diff --git a/glib/src/module.hg b/glib/src/module.hg
index 65f7f87a..f1caf774 100644
--- a/glib/src/module.hg
+++ b/glib/src/module.hg
@@ -61,7 +61,7 @@ public:
* Glib::Module module("plugins/helloworld");
* if(module)
* {
- * void* func = 0;
+ * void* func = nullptr;
* bool found = get_symbol("some_function", func);
* }
* @endcode
diff --git a/glib/src/nodetree.hg b/glib/src/nodetree.hg
index 5a4a4b79..fb0ff7b5 100644
--- a/glib/src/nodetree.hg
+++ b/glib/src/nodetree.hg
@@ -185,7 +185,10 @@ public:
g_node_append(gobj(), node.gobj());
return node;
}
- _IGNORE(g_node_append)
+ dnl// Some glib functions are in fact preprocessor macros.
+ dnl// h2def.py does not recognize them. _IGNORE()ing them produces
+ dnl// ugly error messages in the generated nodetree.h file.
+ dnl// _IGNORE(g_node_append)
/** Inserts a NodeTree as the first child.
*
@@ -212,7 +215,7 @@ public:
insert(position, *node);
return node;
}
- _IGNORE(g_node_insert_data)
+ dnl// _IGNORE(g_node_insert_data)
/** Inserts a new NodeTree before the given sibling.
*
@@ -226,7 +229,7 @@ public:
insert_before(sibling, *node);
return node;
}
- _IGNORE(g_node_insert_data_before)
+ dnl// _IGNORE(g_node_insert_data_before)
/** Inserts a new NodeTree as the last child.
*
@@ -239,7 +242,7 @@ public:
append(*node);
return node;
}
- _IGNORE(g_node_append_data)
+ dnl// _IGNORE(g_node_append_data)
/** Inserts a new NodeTree as the first child.
*
@@ -252,7 +255,7 @@ public:
prepend(*node);
return node;
}
- _IGNORE(g_node_prepend_data)
+ dnl// _IGNORE(g_node_prepend_data)
/** Reverses the order of the children.
*/
@@ -334,7 +337,7 @@ public:
{
sigc::slot<void, GNode*, const T&, GNode**> real_slot = sigc::ptr_fun(on_compare_child);
- GNode* child = 0;
+ GNode* child = nullptr;
typedef sigc::slot<void, GNode*> type_foreach_gnode_slot;
type_foreach_gnode_slot bound_slot = sigc::bind(real_slot, the_data, &child);
@@ -367,7 +370,7 @@ public:
{
//We use a sigc::slot for the C callback, so we can bind some extra data.
sigc::slot<gboolean, GNode*, const T&, GNode**> real_slot = sigc::ptr_fun(on_compare_node);
- GNode* child = 0;
+ GNode* child = nullptr;
typedef sigc::slot<gboolean, GNode*> type_traverse_gnode_slot;
type_traverse_gnode_slot bound_slot = sigc::bind(real_slot, the_data, &child);
@@ -441,7 +444,7 @@ public:
{
return const_cast<NodeTree<T>*>(this)->first_child();
}
- _IGNORE(g_node_first_child)
+ dnl// _IGNORE(g_node_first_child)
/** Gets the last child.
*
@@ -515,7 +518,7 @@ public:
{
return const_cast<NodeTree<T>*>(this)->prev_sibling();
}
- _IGNORE(g_node_prev_sibling)
+ dnl// _IGNORE(g_node_prev_sibling)
/** Gets the next sibling
*
@@ -534,7 +537,7 @@ public:
{
return const_cast<NodeTree<T>*>(this)->next_sibling();
}
- _IGNORE(g_node_next_sibling)
+ dnl// _IGNORE(g_node_next_sibling)
/** Gets the last sibling.
*
@@ -687,11 +690,11 @@ private:
//Free the wrapped object (g_node_free not available)
g_slice_free(GNode, gobject_);
- gobject_ = 0;
+ gobject_ = nullptr;
}
///Create a new GNode, taking the contents of an existing node if one is specified.
- void clone(const NodeTree<T>* node = 0)
+ void clone(const NodeTree<T>* node = nullptr)
{
//Store the this pointer in the GNode so we can discover this wrapper later:
gobject_ = g_node_new(reinterpret_cast<gpointer>(this));
@@ -699,7 +702,7 @@ private:
if(node)
{
//Prepend the copied children of @node to the constructing node.
- for(const NodeTree<T>* i = node->last_child(); i != 0; i = i->prev_sibling())
+ for(const NodeTree<T>* i = node->last_child(); i != nullptr; i = i->prev_sibling())
prepend(*(new NodeTree<T>(*i)));
}
}
diff --git a/glib/src/optioncontext.ccg b/glib/src/optioncontext.ccg
index 601b928c..56980b49 100644
--- a/glib/src/optioncontext.ccg
+++ b/glib/src/optioncontext.ccg
@@ -65,7 +65,7 @@ OptionContext::~OptionContext()
if(has_ownership_)
g_option_context_free(gobj());
- gobject_ = 0;
+ gobject_ = nullptr;
}
void OptionContext::add_group(OptionGroup& group)
@@ -84,7 +84,7 @@ void OptionContext::set_main_group(OptionGroup& group)
/*
OptionGroup OptionContext::get_main_group() const
{
- const GOptionGroup* cobj = g_option_context_get_main_group(const_cast<GOptionContext*>( gobj()) );
+ const auto cobj = g_option_context_get_main_group(const_cast<GOptionContext*>( gobj()) );
OptionGroup cppObj(const_cast<GOptionGroup*>(cobj), true); // take_copy
return cppObj;
}
@@ -95,7 +95,7 @@ void OptionContext::set_translate_func (const SlotTranslate& slot)
{
//Create a copy of the slot. A pointer to this will be passed through the callback's data parameter.
//It will be deleted when SignalProxy_translate_gtk_callback_destroy() is called.
- SlotTranslate* slot_copy = new SlotTranslate(slot);
+ auto slot_copy = new SlotTranslate(slot);
g_option_context_set_translate_func(
gobj(), &OptionContextPrivate::SignalProxy_translate_gtk_callback, slot_copy,
diff --git a/glib/src/optioncontext.hg b/glib/src/optioncontext.hg
index 60c35497..321bb66c 100644
--- a/glib/src/optioncontext.hg
+++ b/glib/src/optioncontext.hg
@@ -105,6 +105,9 @@ public:
_WRAP_METHOD(void set_ignore_unknown_options(bool ignore_unknown = true), g_option_context_set_ignore_unknown_options)
_WRAP_METHOD(bool get_ignore_unknown_options() const, g_option_context_get_ignore_unknown_options)
+ _WRAP_METHOD(void set_strict_posix(bool strict_posix = true), g_option_context_set_strict_posix)
+ _WRAP_METHOD(bool get_strict_posix() const, g_option_context_get_strict_posix)
+
#m4 _CONVERSION(`char**&',`gchar***',`&($3)')
_WRAP_METHOD(bool parse(int& argc, char**& argv), g_option_context_parse, errthrow)
diff --git a/glib/src/optionentry.ccg b/glib/src/optionentry.ccg
index 9a64f102..37641692 100644
--- a/glib/src/optionentry.ccg
+++ b/glib/src/optionentry.ccg
@@ -75,7 +75,7 @@ void OptionEntry::set_long_name(const Glib::ustring& value)
if(gobject_->long_name)
{
g_free((gchar*)(gobject_->long_name));
- gobject_->long_name = 0;
+ gobject_->long_name = nullptr;
}
//Note that we do not use NULL for an empty string,
@@ -89,7 +89,7 @@ void OptionEntry::set_description(const Glib::ustring& value)
if(gobject_->description)
{
g_free((gchar*)(gobject_->description));
- gobject_->description = 0;
+ gobject_->description = nullptr;
}
gobj()->description = (value).empty() ? 0 : g_strdup((value).c_str());
@@ -100,7 +100,7 @@ void OptionEntry::set_arg_description(const Glib::ustring& value)
if(gobject_->arg_description)
{
g_free((gchar*)(gobject_->arg_description));
- gobject_->arg_description = 0;
+ gobject_->arg_description = nullptr;
}
gobj()->arg_description = (value).empty() ? 0 : g_strdup((value).c_str());
diff --git a/glib/src/optiongroup.ccg b/glib/src/optiongroup.ccg
index 4a875646..4d26a8f7 100644
--- a/glib/src/optiongroup.ccg
+++ b/glib/src/optiongroup.ccg
@@ -43,7 +43,7 @@ public:
{ }
bool is_filename_option() const
- { return slot_filename_ != 0; }
+ { return slot_filename_ != nullptr; }
const OptionGroup::SlotOptionArgString* get_slot_string() const
{ return slot_string_; }
@@ -75,7 +75,7 @@ static gboolean g_callback_pre_parse(GOptionContext* context,
{
OptionContext cppContext(context, false /* take_ownership */);
- OptionGroup* option_group = static_cast<OptionGroup*>(data);
+ auto option_group = static_cast<OptionGroup*>(data);
if(!option_group)
{
OptionError(OptionError::FAILED, "Glib::OptionGroup: g_callback_pre_parse(): "
@@ -108,7 +108,7 @@ static void g_callback_error(GOptionContext* context,
OptionContext cppContext(context, false /* take_ownership */);
- OptionGroup* option_group = static_cast<OptionGroup*>(data);
+ auto option_group = static_cast<OptionGroup*>(data);
if(option_group)
return option_group->on_error(cppContext, *option_group);
}
@@ -157,10 +157,9 @@ gboolean OptionGroup::post_parse_callback(GOptionContext* context,
//The C args have now been given values by g_option_context_parse().
//Convert C values to C++ values:
- for(type_map_entries::iterator iter = option_group->map_entries_.begin();
- iter != option_group->map_entries_.end(); ++iter)
+ for(auto& the_pair : option_group->map_entries_)
{
- CppOptionEntry& cpp_entry = iter->second;
+ auto& cpp_entry = the_pair.second;
cpp_entry.convert_c_to_cpp();
}
@@ -198,17 +197,17 @@ gboolean OptionGroup::option_arg_callback(const gchar* option_name, const gchar*
if(option_name[1] == '-')
{
//Long option name.
- const Glib::ustring long_option_name = Glib::ustring(option_name+2);
+ const auto long_option_name = Glib::ustring(option_name+2);
iterFind = option_group->map_entries_.find(long_option_name);
}
else
{
//Short option name.
- const gchar short_option_name = option_name[1];
+ const auto short_option_name = option_name[1];
for(iterFind = option_group->map_entries_.begin();
iterFind != option_group->map_entries_.end(); ++iterFind)
{
- const OptionGroup::CppOptionEntry& cppOptionEntry = iterFind->second;
+ const auto& cppOptionEntry = iterFind->second;
if (cppOptionEntry.entry_ &&
cppOptionEntry.entry_->get_short_name() == short_option_name)
break;
@@ -222,7 +221,7 @@ gboolean OptionGroup::option_arg_callback(const gchar* option_name, const gchar*
return false;
}
- const OptionGroup::CppOptionEntry& cppOptionEntry = iterFind->second;
+ const auto& cppOptionEntry = iterFind->second;
if (cppOptionEntry.carg_type_ != G_OPTION_ARG_CALLBACK)
{
OptionError(OptionError::FAILED, "Glib::OptionGroup::option_arg_callback() "
@@ -230,20 +229,20 @@ gboolean OptionGroup::option_arg_callback(const gchar* option_name, const gchar*
return false;
}
- const bool has_value = (value != 0);
+ const bool has_value = (value != nullptr);
const OptionArgCallback* const option_arg =
static_cast<const OptionArgCallback*>(cppOptionEntry.cpparg_);
try
{
if (option_arg->is_filename_option())
{
- const OptionGroup::SlotOptionArgFilename* the_slot = option_arg->get_slot_filename();
+ const auto the_slot = option_arg->get_slot_filename();
const std::string cpp_value(value ? value : "");
return (*the_slot)(cpp_option_name, cpp_value, has_value);
}
else
{
- const OptionGroup::SlotOptionArgString* the_slot = option_arg->get_slot_string();
+ const auto the_slot = option_arg->get_slot_string();
const Glib::ustring cpp_value(value ? value : "");
return (*the_slot)(cpp_option_name, cpp_value, has_value);
}
@@ -286,16 +285,16 @@ OptionGroup::OptionGroup(GOptionGroup* castitem)
OptionGroup::~OptionGroup()
{
//Free any C types that were allocated during add_entry():
- for(type_map_entries::iterator iter = map_entries_.begin(); iter != map_entries_.end(); ++iter)
+ for(auto& the_pair : map_entries_)
{
- CppOptionEntry& cpp_entry = iter->second;
+ auto& cpp_entry = the_pair.second;
cpp_entry.release_c_arg();
}
if(has_ownership_)
{
- g_option_group_free(gobj());
- gobject_ = 0;
+ g_option_group_unref(gobj());
+ gobject_ = nullptr;
}
}
@@ -375,35 +374,61 @@ void OptionGroup::add_entry_filename(const OptionEntry& entry, const SlotOptionA
void OptionGroup::add_entry_with_wrapper(const OptionEntry& entry, GOptionArg arg_type, void* cpp_arg)
{
- const Glib::ustring name = entry.get_long_name();
+ const auto name = entry.get_long_name();
type_map_entries::iterator iterFind = map_entries_.find(name);
- if( iterFind == map_entries_.end() ) //If we have not added this entry already
+ if (iterFind == map_entries_.end()) //If we have not added this entry already
{
CppOptionEntry cppEntry;
//g_option_group_add_entry() does not take its own copy, so we must keep the instance alive.
cppEntry.entry_ = new OptionEntry(entry);
//cppEntry.entry_ is deleted in release_c_arg(), via the destructor.
- cppEntry.carg_type_ = arg_type;
- cppEntry.allocate_c_arg();
- cppEntry.set_c_arg_default(cpp_arg);
+ // Several options can refer to the same C++ variable,
+ // typically a pair of --enable-x / --disable-x options.
+ // Only one C variable shall be allocated for them.
+ // See https://bugzilla.gnome.org/show_bug.cgi?id=744854.
+ bool is_duplicate = false;
+ void* carg = nullptr;
+ if (arg_type != G_OPTION_ARG_CALLBACK)
+ {
+ for (type_map_entries::iterator iter = map_entries_.begin();
+ iter != map_entries_.end(); ++iter)
+ {
+ const auto& cpp_entry = iter->second;
+ if (cpp_entry.cpparg_ == cpp_arg &&
+ cpp_entry.carg_type_ == arg_type &&
+ cpp_entry.carg_)
+ {
+ is_duplicate = true;
+ carg = cpp_entry.carg_;
+ break;
+ }
+ }
+ }
+ cppEntry.carg_type_ = arg_type;
+ if (!is_duplicate)
+ {
+ cppEntry.allocate_c_arg();
+ cppEntry.set_c_arg_default(cpp_arg);
+ carg = cppEntry.carg_;
+ }
cppEntry.cpparg_ = cpp_arg;
//Give the information to the C API:
cppEntry.entry_->gobj()->arg = arg_type;
- cppEntry.entry_->gobj()->arg_data = cppEntry.carg_;
+ cppEntry.entry_->gobj()->arg_data = carg;
//Remember the C++/C mapping so that we can use it later:
map_entries_[name] = cppEntry;
add_entry(*(cppEntry.entry_));
}
- else if( arg_type == G_OPTION_ARG_CALLBACK )
+ else if (arg_type == G_OPTION_ARG_CALLBACK)
{
//Delete the OptionArgCallback instance that was allocated by add_entry()
//or add_entry_filename().
- OptionArgCallback* option_arg = static_cast<OptionArgCallback*>(cpp_arg);
+ auto option_arg = static_cast<OptionArgCallback*>(cpp_arg);
delete option_arg;
}
}
@@ -428,7 +453,7 @@ void OptionGroup::set_translate_func(const SlotTranslate& slot)
// Create a copy of the slot. A pointer to this will be passed through the
// callback's data parameter. It will be deleted when
// OptionGroup_Translate_glibmm_callback_destroy() is called.
- SlotTranslate* slot_copy = new SlotTranslate(slot);
+ auto slot_copy = new SlotTranslate(slot);
g_option_group_set_translate_func(gobj(),
&OptionGroup_Translate_glibmm_callback, slot_copy,
&OptionGroup_Translate_glibmm_callback_destroy);
@@ -448,13 +473,12 @@ void OptionGroup::CppOptionEntry::allocate_c_arg()
//defaults based on the C++-typed arguments.
switch(carg_type_)
{
- case G_OPTION_ARG_STRING: //The char* will be for UTF8 strins.
- case G_OPTION_ARG_FILENAME: //The char* will be for strings in the current locale's encoding.
+ case G_OPTION_ARG_STRING: //The char* will be for UTF8 a string.
+ case G_OPTION_ARG_FILENAME: //The char* will be for a string in the current locale's encoding.
{
char** typed_arg = new char*;
//The C code will allocate a char* and put it here, for us to g_free() later.
- //Alternatively, set_c_arg_default() might allocate a char*, and the C code might or might not free and replace that.
- *typed_arg = 0;
+ *typed_arg = nullptr;
carg_ = typed_arg;
break;
@@ -479,15 +503,16 @@ void OptionGroup::CppOptionEntry::allocate_c_arg()
case G_OPTION_ARG_FILENAME_ARRAY:
{
char*** typed_arg = new char**;
+ //The C code will allocate a char** and put it here, for us to g_strfreev() later.
*typed_arg = 0;
carg_ = typed_arg;
break;
}
- case G_OPTION_ARG_NONE: /* Actually a boolean. */
+ case G_OPTION_ARG_NONE: // Actually a boolean.
{
gboolean* typed_arg = new gboolean;
- *typed_arg = 0;
+ *typed_arg = false;
carg_ = typed_arg;
break;
@@ -546,63 +571,16 @@ void OptionGroup::CppOptionEntry::set_c_arg_default(void* cpp_arg)
break;
}
case G_OPTION_ARG_STRING:
- {
- Glib::ustring* typed_cpp_arg = static_cast<Glib::ustring*>(cpp_arg);
- if(typed_cpp_arg && !typed_cpp_arg->empty())
- {
- const char** typed_c_arg = static_cast<const char**>(carg_);
- *typed_c_arg = g_strdup(typed_cpp_arg->c_str()); //Freed in release_c_arg().
- }
- break;
- }
case G_OPTION_ARG_FILENAME:
- {
- std::string* typed_cpp_arg = static_cast<std::string*>(cpp_arg);
- if(typed_cpp_arg && !typed_cpp_arg->empty())
- {
- const char** typed_c_arg = static_cast<const char**>(carg_);
- *typed_c_arg = g_strdup(typed_cpp_arg->c_str()); //Freed in release_c_arg().
- }
- break;
- }
case G_OPTION_ARG_STRING_ARRAY:
- {
- std::vector<Glib::ustring>* typed_cpp_arg = static_cast<std::vector<Glib::ustring>*>(cpp_arg);
- if(typed_cpp_arg)
- {
- std::vector<Glib::ustring>& vec = *typed_cpp_arg;
- const char** array = static_cast<const char**>( g_malloc(sizeof(gchar*) * (vec.size() + 1)) );
-
- for(std::vector<Glib::ustring>::size_type i = 0; i < vec.size(); ++i)
- {
- array[i] = g_strdup( vec[i].c_str() );
- }
-
- array[vec.size()] = 0;
-
- const char*** typed_c_arg = static_cast<const char***>(carg_);
- *typed_c_arg = array;
- }
- break;
- }
case G_OPTION_ARG_FILENAME_ARRAY:
{
- std::vector<std::string>* typed_cpp_arg = static_cast<std::vector<std::string>*>(cpp_arg);
- if(typed_cpp_arg)
- {
- std::vector<std::string>& vec = *typed_cpp_arg;
- const char** array = static_cast<const char**>( g_malloc(sizeof(gchar*) * (vec.size() + 1)) );
-
- for(std::vector<Glib::ustring>::size_type i = 0; i < vec.size(); ++i)
- {
- array[i] = g_strdup( vec[i].c_str() );
- }
-
- array[vec.size()] = 0;
-
- const char*** typed_c_arg = static_cast<const char***>(carg_);
- *typed_c_arg = array;
- }
+ // No need to set default values for string-valued options.
+ // If *carg_ is still 0, when convert_c_to_cpp() is called, just don't
+ // touch *cpparg_. Besides, setting default values in *carg_ can result
+ // in memory leaks, because glib would not free the strings before
+ // the char*'s are overwritten with pointers to newly allocated copies
+ // of the command option arguments.
break;
}
case G_OPTION_ARG_CALLBACK:
@@ -640,8 +618,8 @@ void OptionGroup::CppOptionEntry::release_c_arg()
case G_OPTION_ARG_FILENAME:
{
char** typed_arg = static_cast<char**>(carg_);
- g_free(*typed_arg); //Free the char* string at type_arg, which was allocated by the C code.
- delete typed_arg; //Delete the char** that we allocated in allocate_c_arg;
+ g_free(*typed_arg); //Free the char* string at typed_arg, if allocated by the C code.
+ delete typed_arg; //Delete the char** that we allocated in allocate_c_arg().
break;
}
@@ -662,10 +640,13 @@ void OptionGroup::CppOptionEntry::release_c_arg()
case G_OPTION_ARG_STRING_ARRAY:
case G_OPTION_ARG_FILENAME_ARRAY:
{
- delete (char**)carg_;
+ char*** typed_arg = static_cast<char***>(carg_);
+ g_strfreev(*typed_arg); //Free the array of strings and the array at typed_arg, if allocated by the C code.
+ delete typed_arg; //Delete the char*** that we allocated in allocate_c_arg().
+
break;
}
- case G_OPTION_ARG_NONE: /* Actually a boolean. */
+ case G_OPTION_ARG_NONE: // Actually a boolean.
{
gboolean* typed_arg = static_cast<gboolean*>(carg_);
delete typed_arg;
@@ -676,9 +657,9 @@ void OptionGroup::CppOptionEntry::release_c_arg()
{
//Delete the OptionArgCallback instance that was allocated by add_entry()
//or add_entry_filename().
- OptionArgCallback* option_arg = static_cast<OptionArgCallback*>(cpparg_);
+ auto option_arg = static_cast<OptionArgCallback*>(cpparg_);
delete option_arg;
- cpparg_ = 0;
+ cpparg_ = nullptr;
break;
}
@@ -688,7 +669,7 @@ void OptionGroup::CppOptionEntry::release_c_arg()
}
}
- carg_ = 0;
+ carg_ = nullptr;
}
if(entry_)
@@ -697,31 +678,30 @@ void OptionGroup::CppOptionEntry::release_c_arg()
void OptionGroup::CppOptionEntry::convert_c_to_cpp()
{
+ if (!carg_)
+ return;
+
switch(carg_type_)
{
case G_OPTION_ARG_STRING:
{
char** typed_arg = static_cast<char**>(carg_);
- Glib::ustring* typed_cpp_arg = static_cast<Glib::ustring*>(cpparg_);
- if(typed_arg && typed_cpp_arg)
+ auto typed_cpp_arg = static_cast<Glib::ustring*>(cpparg_);
+ if(typed_arg && *typed_arg && typed_cpp_arg)
{
- char* pch = *typed_arg;
- (*typed_cpp_arg) = Glib::convert_const_gchar_ptr_to_ustring(pch);
-
- break;
+ *typed_cpp_arg = *typed_arg;
}
+ break;
}
case G_OPTION_ARG_FILENAME:
{
char** typed_arg = static_cast<char**>(carg_);
- std::string* typed_cpp_arg = static_cast<std::string*>(cpparg_);
- if(typed_arg && typed_cpp_arg)
+ auto typed_cpp_arg = static_cast<std::string*>(cpparg_);
+ if(typed_arg && *typed_arg && typed_cpp_arg)
{
- char* pch = *typed_arg;
- (*typed_cpp_arg) = Glib::convert_const_gchar_ptr_to_stdstring(pch);
-
- break;
+ *typed_cpp_arg = *typed_arg;
}
+ break;
}
case G_OPTION_ARG_INT:
{
@@ -736,12 +716,12 @@ void OptionGroup::CppOptionEntry::convert_c_to_cpp()
case G_OPTION_ARG_STRING_ARRAY:
{
char*** typed_arg = static_cast<char***>(carg_);
- vecustrings* typed_cpp_arg = static_cast<vecustrings*>(cpparg_);
- if(typed_arg && typed_cpp_arg)
+ auto typed_cpp_arg = static_cast<vecustrings*>(cpparg_);
+ if(typed_arg && *typed_arg && typed_cpp_arg)
{
typed_cpp_arg->clear();
- //The C array seems to be null-terminated.
+ //The C array is null-terminated.
//Glib::StringArrayHandle array_handle(*typed_arg, Glib::OWNERSHIP_NONE);
//The SUN Forte compiler complains about this:
@@ -765,36 +745,34 @@ void OptionGroup::CppOptionEntry::convert_c_to_cpp()
//So we do this:
char** char_array_next = *typed_arg;
- while(char_array_next && *char_array_next)
+ while(*char_array_next)
{
typed_cpp_arg->push_back(*char_array_next);
++char_array_next;
}
}
-
break;
}
case G_OPTION_ARG_FILENAME_ARRAY:
{
char*** typed_arg = static_cast<char***>(carg_);
- vecustrings* typed_cpp_arg = static_cast<vecustrings*>(cpparg_);
- if(typed_arg && typed_cpp_arg)
+ auto typed_cpp_arg = static_cast<vecstrings*>(cpparg_);
+ if(typed_arg && *typed_arg && typed_cpp_arg)
{
typed_cpp_arg->clear();
//See comments above about the SUN Forte and Tru64 compilers.
char** char_array_next = *typed_arg;
- while(char_array_next && *char_array_next)
+ while(*char_array_next)
{
typed_cpp_arg->push_back(*char_array_next);
++char_array_next;
}
}
-
break;
}
- case G_OPTION_ARG_NONE: /* Actually a boolean. */
+ case G_OPTION_ARG_NONE: // Actually a boolean.
{
*(static_cast<bool*>(cpparg_)) = *(static_cast<gboolean*>(carg_));
break;
diff --git a/glib/src/optiongroup.hg b/glib/src/optiongroup.hg
index 98572080..4afe9c1e 100644
--- a/glib/src/optiongroup.hg
+++ b/glib/src/optiongroup.hg
@@ -37,6 +37,8 @@ class OptionEntry;
class OptionContext;
#endif //DOXYGEN_SHOULD_SKIP_THIS
+//TODO: GOptionGroup is now refcounted. See https://bugzilla.gnome.org/show_bug.cgi?id=743349
+//When we can break API/ABI, make Glib::OptionGroup refcounted. _CLASS_OPAQUE_REFCOUNTED?
/** An OptionGroup defines the options in a single group.
* Libraries which need to parse commandline options are expected to provide a function that allows their OptionGroups to
* be added to the application's OptionContext.
@@ -65,10 +67,10 @@ public:
* so it is only useful with C functions that return newly-allocated GOptionGroups.
*/
explicit OptionGroup(GOptionGroup* castitem);
- _IGNORE(g_option_group_new)
+ _IGNORE(g_option_group_new, g_option_group_ref)
virtual ~OptionGroup();
- _IGNORE(g_option_group_free)
+ _IGNORE(g_option_group_free, g_option_group_unref)
virtual bool on_pre_parse(OptionContext& context, OptionGroup& group);
diff --git a/glib/src/regex.ccg b/glib/src/regex.ccg
index af91d4ab..61408cc6 100644
--- a/glib/src/regex.ccg
+++ b/glib/src/regex.ccg
@@ -24,8 +24,8 @@ Glib::RefPtr<Glib::Regex> Regex::create(const Glib::ustring& pattern,
RegexCompileFlags compile_options,
RegexMatchFlags match_options)
{
- GError* gerror = 0;
- GRegex* regex = g_regex_new(pattern.c_str(), (GRegexCompileFlags)compile_options,
+ GError* gerror = nullptr;
+ auto regex = g_regex_new(pattern.c_str(), (GRegexCompileFlags)compile_options,
(GRegexMatchFlags)match_options, &gerror);
if(gerror)
@@ -47,7 +47,7 @@ bool Regex::match(
RegexMatchFlags match_options
)
{
- GMatchInfo* ginfo = 0;
+ GMatchInfo* ginfo = nullptr;
bool const result = static_cast<bool>(g_regex_match(gobj(), string.c_str(),
static_cast<GRegexMatchFlags>(match_options), &ginfo));
match_info.set_gobject(ginfo);
@@ -66,8 +66,8 @@ bool Regex::match(
RegexMatchFlags match_options
)
{
- GError* gerror = 0;
- GMatchInfo* ginfo = 0;
+ GError* gerror = nullptr;
+ GMatchInfo* ginfo = nullptr;
bool const result = static_cast<bool>(g_regex_match_full(gobj(),
string.c_str(), -1, start_position,
@@ -88,8 +88,8 @@ bool Regex::match(
RegexMatchFlags match_options
)
{
- GError* gerror = 0;
- GMatchInfo* ginfo = 0;
+ GError* gerror = nullptr;
+ GMatchInfo* ginfo = nullptr;
bool const result = static_cast<bool>(g_regex_match_full(gobj(),
string.c_str(), string_len, start_position,
@@ -104,7 +104,7 @@ bool Regex::match(
bool Regex::match(const Glib::ustring& string, int start_position, RegexMatchFlags match_options)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_regex_match_full(gobj(), string.c_str(), -1, start_position, ((GRegexMatchFlags)(match_options)), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -114,7 +114,7 @@ bool Regex::match(const Glib::ustring& string, int start_position, RegexMatchFla
bool Regex::match(const Glib::ustring& string, gssize string_len, int start_position, RegexMatchFlags match_options)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_regex_match_full(gobj(), string.c_str(), string_len, start_position, ((GRegexMatchFlags)(match_options)), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -128,7 +128,7 @@ bool Regex::match_all(
RegexMatchFlags match_options
)
{
- GMatchInfo* ginfo = 0;
+ GMatchInfo* ginfo = nullptr;
bool const result = static_cast<bool>(g_regex_match_all(gobj(),
string.c_str(), static_cast<GRegexMatchFlags>(match_options),
&ginfo));
@@ -148,8 +148,8 @@ bool Regex::match_all(
RegexMatchFlags match_options
)
{
- GError* gerror = 0;
- GMatchInfo* ginfo = 0;
+ GError* gerror = nullptr;
+ GMatchInfo* ginfo = nullptr;
bool const retvalue = static_cast<bool>(g_regex_match_all_full(gobj(),
string.c_str(), -1, start_position,
@@ -170,8 +170,8 @@ bool Regex::match_all(
RegexMatchFlags match_options
)
{
- GError* gerror = 0;
- GMatchInfo* ginfo = 0;
+ GError* gerror = nullptr;
+ GMatchInfo* ginfo = nullptr;
bool const retvalue = static_cast<bool>(g_regex_match_all_full(gobj(),
string.c_str(), string_len, start_position,
@@ -186,7 +186,7 @@ bool Regex::match_all(
bool Regex::match_all(const Glib::ustring& string, int start_position, RegexMatchFlags match_options)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_regex_match_all_full(gobj(), string.c_str(), -1, start_position, ((GRegexMatchFlags)(match_options)), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -196,7 +196,7 @@ bool Regex::match_all(const Glib::ustring& string, int start_position, RegexMatc
bool Regex::match_all(const Glib::ustring& string, gssize string_len, int start_position, RegexMatchFlags match_options)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
bool retvalue = g_regex_match_all_full(gobj(), string.c_str(), string_len, start_position, ((GRegexMatchFlags)(match_options)), 0, &(gerror));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -206,8 +206,8 @@ bool Regex::match_all(const Glib::ustring& string, gssize string_len, int start_
Glib::ustring Regex::replace(const Glib::ustring& string, int start_position, const Glib::ustring& replacement, RegexMatchFlags match_options)
{
- GError* gerror = 0;
- Glib::ustring retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_regex_replace(gobj(), string.c_str(), -1, start_position, replacement.c_str(), ((GRegexMatchFlags)(match_options)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_regex_replace(gobj(), string.c_str(), -1, start_position, replacement.c_str(), ((GRegexMatchFlags)(match_options)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -217,8 +217,8 @@ Glib::ustring Regex::replace(const Glib::ustring& string, int start_position, co
Glib::ustring Regex::replace_literal(const Glib::ustring& string, int start_position, const Glib::ustring& replacement, RegexMatchFlags match_options)
{
- GError* gerror = 0;
- Glib::ustring retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_regex_replace_literal(gobj(), string.c_str(), -1, start_position, replacement.c_str(), ((GRegexMatchFlags)(match_options)), &(gerror)));
+ GError* gerror = nullptr;
+ auto retvalue = Glib::convert_return_gchar_ptr_to_ustring(g_regex_replace_literal(gobj(), string.c_str(), -1, start_position, replacement.c_str(), ((GRegexMatchFlags)(match_options)), &(gerror)));
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -227,8 +227,8 @@ Glib::ustring Regex::replace_literal(const Glib::ustring& string, int start_posi
Glib::StringArrayHandle Regex::split(const Glib::ustring& string, int start_position, RegexMatchFlags match_options, int max_tokens) const
{
- GError* gerror = 0;
- Glib::StringArrayHandle retvalue = Glib::StringArrayHandle(g_regex_split_full(const_cast<GRegex*>(gobj()), string.c_str(), -1, start_position, ((GRegexMatchFlags)(match_options)), max_tokens, &(gerror)), Glib::OWNERSHIP_DEEP);
+ GError* gerror = nullptr;
+ auto retvalue = Glib::StringArrayHandle(g_regex_split_full(const_cast<GRegex*>(gobj()), string.c_str(), -1, start_position, ((GRegexMatchFlags)(match_options)), max_tokens, &(gerror)), Glib::OWNERSHIP_DEEP);
if(gerror)
::Glib::Error::throw_exception(gerror);
@@ -242,19 +242,19 @@ MatchInfo::MatchInfo()
{
}
-MatchInfo::MatchInfo(GMatchInfo* castitem, bool take_ownership)
+MatchInfo::MatchInfo(GMatchInfo* castitem, bool take_the_ownership)
: gobject_(castitem),
- take_ownership(take_ownership)
+ take_ownership(take_the_ownership)
{
}
-void MatchInfo::set_gobject(GMatchInfo* castitem, bool take_ownership)
+void MatchInfo::set_gobject(GMatchInfo* castitem, bool take_the_ownership)
{
- if(gobject_ && take_ownership)
+ if(gobject_ && this->take_ownership)
g_match_info_free(gobject_);
gobject_ = castitem;
- this->take_ownership = take_ownership;
+ this->take_ownership = take_the_ownership;
}
MatchInfo::~MatchInfo()
diff --git a/glib/src/regex.hg b/glib/src/regex.hg
index b6ae1f12..818dada0 100644
--- a/glib/src/regex.hg
+++ b/glib/src/regex.hg
@@ -223,10 +223,10 @@ public:
/** C object constructor.
* @param castitem The C object.
- * @param take_ownership Whether to destroy the C object with the wrapper or
+ * @param take_the_ownership Whether to destroy the C object with the wrapper or
* not.
*/
- explicit MatchInfo(GMatchInfo* castitem, bool take_ownership = true);
+ explicit MatchInfo(GMatchInfo* castitem, bool take_the_ownership = true); //TODO: Rename to take_ownership when we can rename the member variable.
/// Destructor.
virtual ~MatchInfo();
@@ -273,7 +273,7 @@ public:
protected:
GMatchInfo* gobject_; // The C object.
- bool take_ownership; // Bool signaling ownership.
+ bool take_ownership; // Bool signaling ownership. //TODO: Give this a _ suffix when we can break API.
protected:
// So that Glib::Regex::match() can set the C object.
diff --git a/glib/src/shell.ccg b/glib/src/shell.ccg
index 4950c086..db01f78e 100644
--- a/glib/src/shell.ccg
+++ b/glib/src/shell.ccg
@@ -25,9 +25,9 @@ namespace Glib
Glib::ArrayHandle<std::string> shell_parse_argv(const std::string& command_line)
{
- char** argv = 0;
+ char** argv = nullptr;
int argc = 0;
- GError* error = 0;
+ GError* error = nullptr;
g_shell_parse_argv(command_line.c_str(), &argc, &argv, &error);
@@ -45,7 +45,7 @@ std::string shell_quote(const std::string& unquoted_string)
std::string shell_unquote(const std::string& quoted_string)
{
- GError* error = 0;
+ GError* error = nullptr;
char *const buf = g_shell_unquote(quoted_string.c_str(), &error);
if(error)
diff --git a/glib/src/signalproxy.h.m4 b/glib/src/signalproxy.h.m4
index 69db201d..2f275f99 100644
--- a/glib/src/signalproxy.h.m4
+++ b/glib/src/signalproxy.h.m4
@@ -1,5 +1,3 @@
-// -*- c++ -*-
-dnl
dnl Glib SignalProxy Templates
dnl
dnl Copyright 2001 Free Software Foundation
@@ -19,7 +17,6 @@ dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library; if not, write to the Free
dnl Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
dnl
-dnl Ignore the next line
/* This is a generated file, do not edit. Generated from __file__ */
include(template.macros.m4)
#ifndef __header__
@@ -33,7 +30,7 @@ extern "C"
#include <sigc++/sigc++.h>
#include <glibmm/signalproxy_connectionnode.h>
-
+#include <glibmm/ustring.h>
namespace Glib
{
@@ -52,7 +49,7 @@ struct SignalProxyInfo
#endif //DOXYGEN_SHOULD_SKIP_THIS
-// This base class is used by SignalProxyNormal and SignalProxyProperty.
+// This base class is used by SignalProxyNormal, SignalProxyDetailed and SignalProxyProperty.
class SignalProxyBase
{
public:
@@ -61,7 +58,7 @@ public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
static inline sigc::slot_base* data_to_slot(void* data)
{
- SignalProxyConnectionNode *const pConnectionNode = static_cast<SignalProxyConnectionNode*>(data);
+ const auto pConnectionNode = static_cast<SignalProxyConnectionNode*>(data);
// Return 0 if the connection is blocked.
return (!pConnectionNode->slot_.blocked()) ? &pConnectionNode->slot_ : 0;
@@ -76,7 +73,7 @@ private:
};
-// shared portion of a Signal
+// Shared portion of a Signal without detail
/** The SignalProxy provides an API similar to sigc::signal that can be used to
* connect sigc::slots to glib signals.
*
@@ -84,6 +81,8 @@ private:
* which might emit it. Actually, proxies are controlled by
* the template derivatives, which serve as gatekeepers for the
* types allowed on a particular signal.
+ *
+ * For signals with a detailed name (signal_name::detail_name) see SignalProxyDetailed.
*/
class SignalProxyNormal : public SignalProxyBase
{
@@ -136,27 +135,77 @@ private:
SignalProxyNormal& operator=(const SignalProxyNormal&);
};
+// Shared portion of a Signal with detail
+/** The SignalProxy provides an API similar to sigc::signal that can be used to
+ * connect sigc::slots to glib signals.
+ *
+ * This holds the name of the glib signal, including the detail name if any,
+ * and the object which might emit it. Actually, proxies are controlled by
+ * the template derivatives, which serve as gatekeepers for the
+ * types allowed on a particular signal.
+ */
+class SignalProxyDetailed : public SignalProxyBase
+{
+public:
+ ~SignalProxyDetailed();
+
+ /// Stops the current signal emission (not in libsigc++)
+ void emission_stop();
+
+protected:
+
+ /** Creates a proxy for a signal that can be emitted by @a obj.
+ * @param obj The object that can emit the signal.
+ * @param info Information about the signal, including its name
+ * and the C callbacks that should be called by glib.
+ * @param detail_name The detail name, if any.
+ */
+ SignalProxyDetailed(Glib::ObjectBase* obj, const SignalProxyInfo* info, const Glib::ustring& detail_name);
+
+ /** Connects a signal handler to a signal.
+ * This is called by connect() and connect_notify() in derived SignalProxy classes.
+ *
+ * @param notify Whether this method is called by connect_notify() or by connect().
+ * @param slot The signal handler, usually created with sigc::mem_fun() or sigc::ptr_fun().
+ * @param after Whether this signal handler should be called before or after the default signal handler.
+ */
+ sigc::slot_base& connect_impl_(bool notify, const sigc::slot_base& slot, bool after);
+
+private:
+ const SignalProxyInfo* info_; // Pointer to statically allocated structure.
+ const Glib::ustring detailed_name_; // signal_name[[::detail_name]]dnl one pair of [] in the generated .h file
+
+
+ // no copy assignment
+ SignalProxyDetailed& operator=(const SignalProxyDetailed&);
+};
+
dnl
-dnl GLIB_SIGNAL_PROXY([P1, P2, ...],return type)
+dnl GLIB_SIGNAL_PROXY([P1, P2, ...], Normal or Detailed)
dnl
define([GLIB_SIGNAL_PROXY],[dnl
LINE(]__line__[)dnl
-/**** Glib::[SignalProxy]NUM($1) ***************************************************/
+/**** Glib::[SignalProxy]ifelse($2,Normal,,$2)[]NUM($1) ***************************************************/
-/** Proxy for signals with NUM($1) arguments.
+/** Proxy for signals with NUM($1) arguments[]ifelse($2,Normal,,[ and possibly a detailed name]).
* Use the connect() or connect_notify() method, with sigc::mem_fun() or sigc::ptr_fun()
* to connect signal handlers to signals.
*/
template <LIST(class R,ARG_CLASS($1))>
-class [SignalProxy]NUM($1) : public SignalProxyNormal
+class [SignalProxy]ifelse($2,Normal,,$2)[]NUM($1) : public SignalProxy$2
{
public:
typedef sigc::slot<LIST(R,ARG_TYPE($1))> SlotType;
typedef sigc::slot<LIST(void,ARG_TYPE($1))> VoidSlotType;
- [SignalProxy]NUM($1)(ObjectBase* obj, const SignalProxyInfo* info)
+ifelse($2,Normal,dnl
+ [SignalProxy]NUM($1)[(ObjectBase* obj, const SignalProxyInfo* info)
: SignalProxyNormal(obj, info) {}
+],dnl Detailed
+ [SignalProxyDetailed]NUM($1)[(ObjectBase* obj, const SignalProxyInfo* info, const Glib::ustring& detail_name)
+ : SignalProxyDetailed(obj, info, detail_name) {}
+])dnl
/** Connects a signal handler to a signal.
*
@@ -166,7 +215,7 @@ public:
* @param after Whether this signal handler should be called before or after the default signal handler.
*/
sigc::connection connect(const SlotType& slot, bool after = true)
- { return sigc::connection(connect_(slot, after)); }
+ { return sigc::connection(ifelse($2,Normal,[connect_(slot, after)],[connect_impl_(false, slot, after)])); }
/** Connects a signal handler without a return value to a signal.
* By default, the signal handler will be called before the default signal handler.
@@ -190,20 +239,28 @@ public:
* @param after Whether this signal handler should be called before or after the default signal handler.
*/
sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
- { return sigc::connection(connect_notify_(slot, after)); }
+ { return sigc::connection(ifelse($2,Normal,[connect_notify_(slot, after)],[connect_impl_(true, slot, after)])); }
};
])dnl
-
+dnl
dnl Template forms of SignalProxy
-
-GLIB_SIGNAL_PROXY(ARGS(P,0))
-GLIB_SIGNAL_PROXY(ARGS(P,1))
-GLIB_SIGNAL_PROXY(ARGS(P,2))
-GLIB_SIGNAL_PROXY(ARGS(P,3))
-GLIB_SIGNAL_PROXY(ARGS(P,4))
-GLIB_SIGNAL_PROXY(ARGS(P,5))
-GLIB_SIGNAL_PROXY(ARGS(P,6))
-
+dnl
+GLIB_SIGNAL_PROXY(ARGS(P,0), Normal)
+GLIB_SIGNAL_PROXY(ARGS(P,1), Normal)
+GLIB_SIGNAL_PROXY(ARGS(P,2), Normal)
+GLIB_SIGNAL_PROXY(ARGS(P,3), Normal)
+GLIB_SIGNAL_PROXY(ARGS(P,4), Normal)
+GLIB_SIGNAL_PROXY(ARGS(P,5), Normal)
+GLIB_SIGNAL_PROXY(ARGS(P,6), Normal)
+dnl
+GLIB_SIGNAL_PROXY(ARGS(P,0), Detailed)
+GLIB_SIGNAL_PROXY(ARGS(P,1), Detailed)
+GLIB_SIGNAL_PROXY(ARGS(P,2), Detailed)
+GLIB_SIGNAL_PROXY(ARGS(P,3), Detailed)
+GLIB_SIGNAL_PROXY(ARGS(P,4), Detailed)
+GLIB_SIGNAL_PROXY(ARGS(P,5), Detailed)
+GLIB_SIGNAL_PROXY(ARGS(P,6), Detailed)
+dnl
} // namespace Glib
#endif /* __header__ */
diff --git a/glib/src/spawn.ccg b/glib/src/spawn.ccg
index 707d5828..5cfbdb7a 100644
--- a/glib/src/spawn.ccg
+++ b/glib/src/spawn.ccg
@@ -34,7 +34,7 @@ static void child_setup_callback(void* user_data)
{
try
{
- (*reinterpret_cast<sigc::slot<void>*>(user_data))();
+ (*reinterpret_cast<Glib::SlotSpawnChildSetup*>(user_data))();
}
catch(...)
{
@@ -67,15 +67,15 @@ void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
SpawnFlags flags,
- const sigc::slot<void>& child_setup,
+ const SlotSpawnChildSetup& child_setup,
Pid* child_pid,
int* standard_input,
int* standard_output,
int* standard_error)
{
const bool setup_slot = !child_setup.empty();
- sigc::slot<void> child_setup_ = child_setup;
- GError* gerror = 0;
+ auto child_setup_ = child_setup;
+ GError* gerror = nullptr;
g_spawn_async_with_pipes(
(working_directory.empty()) ? 0 : working_directory.c_str(),
@@ -95,15 +95,15 @@ void spawn_async_with_pipes(const std::string& working_directory,
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags,
- const sigc::slot<void>& child_setup,
+ const SlotSpawnChildSetup& child_setup,
Pid* child_pid,
int* standard_input,
int* standard_output,
int* standard_error)
{
const bool setup_slot = !child_setup.empty();
- sigc::slot<void> child_setup_ = child_setup;
- GError* gerror = 0;
+ auto child_setup_ = child_setup;
+ GError* gerror = nullptr;
g_spawn_async_with_pipes(
(working_directory.empty()) ? 0 : working_directory.c_str(),
@@ -123,12 +123,12 @@ void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
SpawnFlags flags,
- const sigc::slot<void>& child_setup,
+ const SlotSpawnChildSetup& child_setup,
Pid* child_pid)
{
const bool setup_slot = !child_setup.empty();
- sigc::slot<void> child_setup_ = child_setup;
- GError* gerror = 0;
+ auto child_setup_ = child_setup;
+ GError* gerror = nullptr;
g_spawn_async(
(working_directory.empty()) ? 0 : working_directory.c_str(),
@@ -147,12 +147,12 @@ void spawn_async(const std::string& working_directory,
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags,
- const sigc::slot<void>& child_setup,
+ const SlotSpawnChildSetup& child_setup,
Pid* child_pid)
{
const bool setup_slot = !child_setup.empty();
- sigc::slot<void> child_setup_ = child_setup;
- GError* gerror = 0;
+ auto child_setup_ = child_setup;
+ GError* gerror = nullptr;
g_spawn_async(
(working_directory.empty()) ? 0 : working_directory.c_str(),
@@ -171,17 +171,17 @@ void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
SpawnFlags flags,
- const sigc::slot<void>& child_setup,
+ const SlotSpawnChildSetup& child_setup,
std::string* standard_output,
std::string* standard_error,
int* exit_status)
{
const bool setup_slot = !child_setup.empty();
- sigc::slot<void> child_setup_ = child_setup;
+ auto child_setup_ = child_setup;
Glib::ScopedPtr<char> buf_standard_output;
Glib::ScopedPtr<char> buf_standard_error;
- GError* gerror = 0;
+ GError* gerror = nullptr;
g_spawn_sync(
(working_directory.empty()) ? 0 : working_directory.c_str(),
@@ -205,17 +205,17 @@ void spawn_sync(const std::string& working_directory,
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags,
- const sigc::slot<void>& child_setup,
+ const SlotSpawnChildSetup& child_setup,
std::string* standard_output,
std::string* standard_error,
int* exit_status)
{
const bool setup_slot = !child_setup.empty();
- sigc::slot<void> child_setup_ = child_setup;
+ auto child_setup_ = child_setup;
Glib::ScopedPtr<char> buf_standard_output;
Glib::ScopedPtr<char> buf_standard_error;
- GError* gerror = 0;
+ GError* gerror = nullptr;
g_spawn_sync(
(working_directory.empty()) ? 0 : working_directory.c_str(),
@@ -237,7 +237,7 @@ void spawn_sync(const std::string& working_directory,
void spawn_command_line_async(const std::string& command_line)
{
- GError* gerror = 0;
+ GError* gerror = nullptr;
g_spawn_command_line_async(command_line.c_str(), &gerror);
if(gerror)
@@ -251,7 +251,7 @@ void spawn_command_line_sync(const std::string& command_line,
{
Glib::ScopedPtr<char> buf_standard_output;
Glib::ScopedPtr<char> buf_standard_error;
- GError* gerror = 0;
+ GError* gerror = nullptr;
g_spawn_command_line_sync(
command_line.c_str(),
diff --git a/glib/src/spawn.hg b/glib/src/spawn.hg
index bb53a087..c10e44bf 100644
--- a/glib/src/spawn.hg
+++ b/glib/src/spawn.hg
@@ -35,10 +35,15 @@ _WRAP_ENUM(SpawnFlags, GSpawnFlags, NO_GTYPE)
* @{
*/
-/** Exception class for errors occuring when spawning processes.
+/** %Exception class for errors occuring when spawning processes.
*/
_WRAP_GERROR(SpawnError, GSpawnError, G_SPAWN_ERROR, NO_GTYPE, s#^2BIG$#TOOBIG#)
+/** For instance,<br>
+ * void on_child_setup();
+ */
+typedef sigc::slot<void> SlotSpawnChildSetup;
+
/** Executes a child program asynchronously (your program will not
* block waiting for the child to exit). The child program is
* specified by the only argument that must be provided, @a argv.
@@ -175,7 +180,7 @@ _WRAP_GERROR(SpawnError, GSpawnError, G_SPAWN_ERROR, NO_GTYPE, s#^2BIG$#TOOBIG#)
* @param argv Child's argument vector.
* @param envp Child's environment.
* @param flags Flags from SpawnFlags
- * @param child_setup Slot to run in the child just before exec().
+ * @param child_setup Slot to run in the child just before exec(), or an empty slot.
* @param child_pid Return location for child process ID, or NULL.
* @param standard_input Return location for file descriptor to write to child's stdin, or NULL.
* @param standard_output Return location for file descriptor to read child's stdout, or NULL.
@@ -191,18 +196,18 @@ void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
SpawnFlags flags = SPAWN_DEFAULT,
- const sigc::slot<void>& child_setup = sigc::slot<void>(),
- Pid* child_pid = 0,
- int* standard_input = 0,
- int* standard_output = 0,
- int* standard_error = 0);
+ const SlotSpawnChildSetup& child_setup = SlotSpawnChildSetup(),
+ Pid* child_pid = nullptr,
+ int* standard_input = nullptr,
+ int* standard_output = nullptr,
+ int* standard_error = nullptr);
/** Like the main spawn_async_with_pipes() method, but inheriting the parent's environment.
*
* @param working_directory Child's current working directory, or an empty string to inherit the parent's, in the GLib file name encoding.
* @param argv Child's argument vector.
* @param flags Flags from SpawnFlags
- * @param child_setup Slot to run in the child just before exec().
+ * @param child_setup Slot to run in the child just before exec(), or an empty slot.
* @param child_pid Return location for child process ID, or NULL.
* @param standard_input Return location for file descriptor to write to child's stdin, or NULL.
* @param standard_output Return location for file descriptor to read child's stdout, or NULL.
@@ -217,11 +222,11 @@ void spawn_async_with_pipes(const std::string& working_directory,
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SPAWN_DEFAULT,
- const sigc::slot<void>& child_setup = sigc::slot<void>(),
- Pid* child_pid = 0,
- int* standard_input = 0,
- int* standard_output = 0,
- int* standard_error = 0);
+ const SlotSpawnChildSetup& child_setup = SlotSpawnChildSetup(),
+ Pid* child_pid = nullptr,
+ int* standard_input = nullptr,
+ int* standard_output = nullptr,
+ int* standard_error = nullptr);
/** See spawn_async_with_pipes() for a full description. This function
* simply calls the spawn_async_with_pipes() without any pipes.
@@ -236,7 +241,7 @@ void spawn_async_with_pipes(const std::string& working_directory,
* @param argv Child's argument vector.
* @param envp Child's environment.
* @param flags Flags from SpawnFlags.
- * @param child_setup Slot to run in the child just before exec().
+ * @param child_setup Slot to run in the child just before exec(), or an empty slot.
* @param child_pid Return location for child process ID, or NULL
*
* @throws SpawnError Errors are reported even if they occur in the child (for example if the
@@ -248,15 +253,15 @@ void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
SpawnFlags flags = SPAWN_DEFAULT,
- const sigc::slot<void>& child_setup = sigc::slot<void>(),
- Pid* child_pid = 0);
+ const SlotSpawnChildSetup& child_setup = SlotSpawnChildSetup(),
+ Pid* child_pid = nullptr);
/** Like the main spawn_async() method, but inheriting the parent's environment.
*
* @param working_directory Child's current working directory, or an empty string to inherit parent's.
* @param argv Child's argument vector.
* @param flags Flags from SpawnFlags.
- * @param child_setup Slot to run in the child just before exec().
+ * @param child_setup Slot to run in the child just before exec(), or an empty slot.
* @param child_pid Return location for child process ID, or NULL
*
* @throws SpawnError Errors are reported even if they occur in the child (for example if the
@@ -267,8 +272,8 @@ void spawn_async(const std::string& working_directory,
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SPAWN_DEFAULT,
- const sigc::slot<void>& child_setup = sigc::slot<void>(),
- Pid* child_pid = 0);
+ const SlotSpawnChildSetup& child_setup = SlotSpawnChildSetup(),
+ Pid* child_pid = nullptr);
/** Executes a child synchronously (waits for the child to exit before returning).
* All output from the child is stored in @a standard_output and @a standard_error,
@@ -291,7 +296,7 @@ void spawn_async(const std::string& working_directory,
* @param argv Child's argument vector.
* @param envp Child's environment.
* @param flags Flags from SpawnFlags
- * @param child_setup Slot to run in the child just before exec().
+ * @param child_setup Slot to run in the child just before exec(), or an empty slot.
* @param standard_output Return location for file descriptor to read child's stdout, or NULL.
* @param standard_error Return location for file descriptor to read child's stderr, or NULL.
* @param exit_status Return location for child exit status, as returned by waitpid(), or NULL
@@ -306,17 +311,17 @@ void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
SpawnFlags flags = SPAWN_DEFAULT,
- const sigc::slot<void>& child_setup = sigc::slot<void>(),
- std::string* standard_output = 0,
- std::string* standard_error = 0,
- int* exit_status = 0);
+ const SlotSpawnChildSetup& child_setup = SlotSpawnChildSetup(),
+ std::string* standard_output = nullptr,
+ std::string* standard_error = nullptr,
+ int* exit_status = nullptr);
/** Like the main spawn_sync() method, but inheriting the parent's environment.
*
* @param working_directory Child's current working directory, or an empty string to inherit the parent's, in the GLib file name encoding.
* @param argv Child's argument vector.
* @param flags Flags from SpawnFlags
- * @param child_setup Slot to run in the child just before exec().
+ * @param child_setup Slot to run in the child just before exec(), or an empty slot.
* @param standard_output Return location for file descriptor to read child's stdout, or NULL.
* @param standard_error Return location for file descriptor to read child's stderr, or NULL.
* @param exit_status Return location for child exit status, as returned by waitpid(), or NULL
@@ -330,10 +335,10 @@ void spawn_sync(const std::string& working_directory,
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SPAWN_DEFAULT,
- const sigc::slot<void>& child_setup = sigc::slot<void>(),
- std::string* standard_output = 0,
- std::string* standard_error = 0,
- int* exit_status = 0);
+ const SlotSpawnChildSetup& child_setup = SlotSpawnChildSetup(),
+ std::string* standard_output = nullptr,
+ std::string* standard_error = nullptr,
+ int* exit_status = nullptr);
/** A simple version of spawn_async() that parses a command line with
* shell_parse_argv() and passes it to spawn_async(). It runs a
@@ -388,9 +393,9 @@ void spawn_command_line_async(const std::string& command_line);
* @throws ShellError If the command line could not be parsed.
*/
void spawn_command_line_sync(const std::string& command_line,
- std::string* standard_output = 0,
- std::string* standard_error = 0,
- int* exit_status = 0);
+ std::string* standard_output = nullptr,
+ std::string* standard_error = nullptr,
+ int* exit_status = nullptr);
/** On some platforms, notably WIN32, the Pid type represents a resource
* which must be closed to prevent resource leaking. close_pid()
diff --git a/glib/src/thread.ccg b/glib/src/thread.ccg
index cfc38952..cfca2186 100644
--- a/glib/src/thread.ccg
+++ b/glib/src/thread.ccg
@@ -26,7 +26,7 @@ extern "C"
static void* call_thread_entry_slot(void* data)
{
- sigc::slot_base *const slot = reinterpret_cast<sigc::slot_base*>(data);
+ const auto slot = reinterpret_cast<sigc::slot_base*>(data);
try
{
@@ -71,11 +71,11 @@ void thread_init_impl()
Thread* Thread::create(const sigc::slot<void>& slot, bool /* joinable */)
{
// Make a copy of slot on the heap
- sigc::slot_base *const slot_copy = new sigc::slot<void>(slot);
+ const auto slot_copy = new sigc::slot<void>(slot);
- GError* error = 0;
+ GError* error = nullptr;
- GThread *const thread = g_thread_try_new(NULL,
+ const auto thread = g_thread_try_new(NULL,
&call_thread_entry_slot, slot_copy, &error);
if(error)
@@ -97,11 +97,11 @@ Thread* Thread::create(const sigc::slot<void>& slot, unsigned long stack_size,
bool joinable, bool bound, ThreadPriority priority)
{
// Make a copy of slot on the heap
- sigc::slot_base *const slot_copy = new sigc::slot<void>(slot);
+ const auto slot_copy = new sigc::slot<void>(slot);
- GError* error = 0;
+ GError* error = nullptr;
- GThread *const thread = g_thread_create_full(
+ const auto thread = g_thread_create_full(
&call_thread_entry_slot, slot_copy, stack_size, joinable,
bound, (GThreadPriority) priority, &error);
diff --git a/glib/src/thread.hg b/glib/src/thread.hg
index fb6f19b7..b5efa43b 100644
--- a/glib/src/thread.hg
+++ b/glib/src/thread.hg
@@ -21,23 +21,16 @@ _CONFIGINCLUDE(glibmmconfig.h)
_IS_DEPRECATED // This whole file is deprecated.
#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
-// Must be included in the .cc file before the generated #ifndef GLIBMM_DISABLE_DEPRECATED,
-// or else "configure --disable-deprecated-api" + "make" will fail.
-#include <glibmmconfig.h>
+//Stop the compiler warnings about using the deprecated API;
+#define GLIB_DISABLE_DEPRECATION_WARNINGS 1
#m4 _POP()
// We use GThreadFunctions in the (deprecated) API, so we must temporarily undef G_DISABLE_DEPRECATED.
// Temporarily undef G_DISABLE_DEPRECATED, redefining it later if appropriate.
#if defined(G_DISABLE_DEPRECATED) && !defined(GLIBMM_G_DISABLE_DEPRECATED_UNDEFED)
-
//Stop the deprecation ifdef guards around the API declarations:
#undef G_DISABLE_DEPRECATED
-
-//Stop the compiler warnings about using the deprecated API;
-#define GLIB_DISABLE_DEPRECATION_WARNINGS 1
-
#define GLIBMM_G_DISABLE_DEPRECATED_UNDEFED 1
-
#endif
#include <glib.h>
@@ -45,7 +38,6 @@ _IS_DEPRECATED // This whole file is deprecated.
// Redefine G_DISABLE_DEPRECATED if it was defined before we temporarily undefed it:
#if defined(GLIBMM_G_DISABLE_DEPRECATED_UNDEFED)
#define G_DISABLE_DEPRECATED 1
-#undef GLIB_DISABLE_DEPRECATION_WARNINGS
#undef GLIBMM_G_DISABLE_DEPRECATED_UNDEFED
#endif
@@ -114,7 +106,7 @@ _WRAP_ENUM(ThreadPriority, GThreadPriority, NO_GTYPE)
/** Initializes the GLib thread system.
* @deprecated Calling thread_init() is no longer necessary and no longer has any effect.
*/
-void thread_init(GThreadFunctions* vtable = 0);
+void thread_init(GThreadFunctions* vtable = nullptr);
/** Returns whether the thread system is initialized.
* @return @c true, if the thread system is initialized.
@@ -638,7 +630,7 @@ private:
* @code
* Glib::Cond data_cond;
* Glib::Mutex data_mutex;
- * void* current_data = 0;
+ * void* current_data = nullptr;
*
* void push_data(void* data)
* {
@@ -656,7 +648,7 @@ private:
* data_cond.wait(data_mutex);
*
* void *const data = current_data;
- * current_data = 0;
+ * current_data = nullptr;
*
* return data;
* }
diff --git a/glib/src/threads.ccg b/glib/src/threads.ccg
index d417a982..e507b6d3 100644
--- a/glib/src/threads.ccg
+++ b/glib/src/threads.ccg
@@ -18,6 +18,19 @@
#include <glibmm/exceptionhandler.h>
#include <glib.h>
+/* Why reinterpret_cast<Thread*>(gobject) is needed:
+ *
+ * A Thread instance is in fact always a GThread instance.
+ * Unfortunately, GThread cannot be a member of Thread,
+ * because it is an opaque struct. Also, the C interface does not provide
+ * any hooks to install a destroy notification handler, thus we cannot
+ * wrap it dynamically either.
+ *
+ * The cast works because Thread does not have any member data, and
+ * it is impossible to derive from it. This is ensured by not implementing
+ * the (private) default constructor.
+ * This trick is used also in classes declared as _CLASS_OPAQUE_REFCOUNTED.
+ */
namespace
{
@@ -27,19 +40,19 @@ extern "C"
static void* call_thread_entry_slot(void* data)
{
- sigc::slot_base *const slot = reinterpret_cast<sigc::slot_base*>(data);
+ const auto slot = reinterpret_cast<sigc::slot_base*>(data);
try
{
- // Recreate the specific slot, and drop the reference obtained by create().
+ // Recreate the specific slot.
(*static_cast<sigc::slot<void>*>(slot))();
}
- catch(Glib::Threads::Thread::Exit&)
+ catch (Glib::Threads::Thread::Exit&)
{
// Just exit from the thread. The Threads::Thread::Exit exception
// is our sane C++ replacement of g_thread_exit().
}
- catch(...)
+ catch (...)
{
Glib::exception_handlers_invoke();
}
@@ -59,30 +72,27 @@ namespace Glib
namespace Threads
{
-/**** Glib::Thread *********************************************************/
+/**** Glib::Threads::Thread ************************************************/
// static
Thread* Thread::create(const sigc::slot<void>& slot, const std::string& name)
{
- // Make a copy of slot on the heap
- sigc::slot_base *const slot_copy = new sigc::slot<void>(slot);
-
- GError* error = 0;
- GThread* thread;
+ // Make a copy of slot on the heap.
+ const auto slot_copy = new sigc::slot<void>(slot);
- if (name.size() > 0)
- thread = g_thread_try_new(name.c_str(), &call_thread_entry_slot,
- slot_copy, &error);
- else
- thread = g_thread_try_new(NULL, &call_thread_entry_slot,
- slot_copy, &error);
+ GError* error = nullptr;
+ auto thread = g_thread_try_new(name.empty() ? 0 : name.c_str(),
+ &call_thread_entry_slot, slot_copy, &error);
- if(error)
+ if (error)
{
delete slot_copy;
Glib::Error::throw_exception(error);
}
-
+ if (!thread)
+ {
+ delete slot_copy;
+ }
return reinterpret_cast<Thread*>(thread);
}
@@ -100,7 +110,7 @@ Thread* Thread::self()
void Thread::join()
{
- g_thread_join(&gobject_);
+ g_thread_join(reinterpret_cast<GThread*>(this));
}
// static
@@ -109,6 +119,15 @@ void Thread::yield()
g_thread_yield();
}
+GThread* Thread::gobj()
+{
+ return reinterpret_cast<GThread*>(this);
+}
+
+const GThread* Thread::gobj() const
+{
+ return reinterpret_cast<const GThread*>(this);
+}
Thread* wrap(GThread* gobject)
{
@@ -116,7 +135,7 @@ Thread* wrap(GThread* gobject)
}
-/**** Glib::Mutex **********************************************************/
+/**** Glib::Threads::Mutex *************************************************/
Mutex::Mutex()
{
@@ -148,7 +167,7 @@ Mutex* wrap(GMutex* gobject)
return reinterpret_cast<Mutex*>(gobject);
}
-/**** Glib::RecMutex *******************************************************/
+/**** Glib::Threads::RecMutex **********************************************/
RecMutex::RecMutex()
{
@@ -180,7 +199,7 @@ RecMutex* wrap(GRecMutex* gobject)
return reinterpret_cast<RecMutex*>(gobject);
}
-/**** Glib::RWLock ***************************************************/
+/**** Glib::Threads::RWLock ************************************************/
void RWLock::reader_lock()
{
@@ -212,8 +231,6 @@ void RWLock::writer_unlock()
g_rw_lock_writer_unlock(&gobject_);
}
-/**** Glib::RWLock *********************************************************/
-
RWLock::RWLock()
{
g_rw_lock_init(&gobject_);
@@ -225,7 +242,7 @@ RWLock::~RWLock()
}
-/**** Glib::Cond ***********************************************************/
+/**** Glib::Threads::Cond **************************************************/
Cond::Cond()
{
diff --git a/glib/src/threads.hg b/glib/src/threads.hg
index 52bb4b41..412d5fb5 100644
--- a/glib/src/threads.hg
+++ b/glib/src/threads.hg
@@ -18,39 +18,17 @@
_DEFS(glibmm,glib)
_CONFIGINCLUDE(glibmmconfig.h)
-
-// We use the (now deprecated) GThread definition in the API,
-// and we cannot stop that without breaking ABI.
-// (see the comment below),
-// so we must temporarily undef G_DISABLE_DEPRECATED when
-// including glib.h.
-
-// Temporarily undef G_DISABLE_DEPRECATED, redefining it later if appropriate.
-#if defined(G_DISABLE_DEPRECATED) && !defined(GLIBMM_G_DISABLE_DEPRECATED_UNDEFED)
-
-//Stop the deprecation ifdef guards around the API declarations:
-#undef G_DISABLE_DEPRECATED
-
-//Stop the compiler warnings about using the deprecated API;
-#define GLIB_DISABLE_DEPRECATION_WARNINGS 1
-
-#define GLIBMM_G_DISABLE_DEPRECATED_UNDEFED 1
-
-#endif
+#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
+// Don't let glibmm.h include thread.h. Pretend that it's already included.
+// glib.h can then be included with G_DISABLE_DEPRECATED defined, and
+// the compiler can react if deprecated glib functions are used.
+#define _GLIBMM_THREAD_H
+#m4 _POP()
#include <glib.h>
-
-// Redefine G_DISABLE_DEPRECATED if it was defined before we temporarily undefed it:
-#if defined(GLIBMM_G_DISABLE_DEPRECATED_UNDEFED)
-#define G_DISABLE_DEPRECATED 1
-#undef GLIB_DISABLE_DEPRECATION_WARNINGS
-#undef GLIBMM_G_DISABLE_DEPRECATED_UNDEFED
-#endif
-
-
#include <glibmm/error.h>
#include <sigc++/sigc++.h>
-
+#include <string>
#include <cstddef>
namespace Glib
@@ -62,7 +40,7 @@ namespace Threads
_GMMPROC_EXTRA_NAMESPACE(Threads)
/** @defgroup Threads Threads
- * Thread abstraction; including threads, different mutexes,
+ * %Thread abstraction; including threads, different mutexes,
* conditions and thread private data.
* @{
*/
@@ -74,7 +52,7 @@ class Mutex;
class RecMutex;
class RWLock;
-/** Exception class for thread-related errors.
+/** %Exception class for thread-related errors.
*/
_WRAP_GERROR(ThreadError, GThreadError, G_THREAD_ERROR, NO_GTYPE)
@@ -90,8 +68,8 @@ _WRAP_GERROR(ThreadError, GThreadError, G_THREAD_ERROR, NO_GTYPE)
* a Threads::Thread::Exit exception, which will be caught by the internal thread
* entry function.
*
- * @note You might have noticed that the thread entry slot doesn't have the
- * usual void* return value. If you want to return any data from your thread
+ * @note The thread entry slot doesn't have the void* return value that a
+ * GThreadFunc has. If you want to return any data from your thread,
* you can pass an additional output argument to the thread's entry slot.
*/
class Thread
@@ -169,12 +147,10 @@ public:
*/
static void yield();
- GThread* gobj() { return &gobject_; }
- const GThread* gobj() const { return &gobject_; }
+ GThread* gobj();
+ const GThread* gobj() const;
private:
- GThread gobject_;
-
// Glib::Thread can neither be constructed nor deleted.
Thread();
void operator delete(void*, std::size_t);
@@ -195,7 +171,13 @@ private:
class Thread::Exit
{};
-/** @relates Glib::Threads::Thread */
+/** A C++ wrapper for the C object.
+ *
+ * @param gobject The C instance.
+ * @return The C++ wrapper.
+ *
+ * @relates Glib::Threads::Thread
+ */
Thread* wrap(GThread* gobject);
/** Represents a mutex (mutual exclusion).
@@ -203,8 +185,8 @@ Thread* wrap(GThread* gobject);
* Mutex::Lock instead of calling lock() and unlock() directly&nbsp;--
* it will make your life much easier.
*
- * @note Glib::Mutex is not recursive, i.e. a thread will deadlock, if it
- * already has locked the mutex while calling lock(). Use Glib::RecMutex
+ * @note Glib::Threads::Mutex is not recursive, i.e. a thread will deadlock, if it
+ * already has locked the mutex while calling lock(). Use Glib::Threads::RecMutex
* instead, if you need recursive mutexes.
*/
class Mutex
@@ -251,12 +233,12 @@ private:
* @par Usage example:
* @code
* {
- * Glib::Mutex::Lock lock (mutex); // calls mutex.lock()
+ * Glib::Threads::Mutex::Lock lock(mutex); // calls mutex.lock()
* do_something();
* } // the destructor calls mutex.unlock()
* @endcode
* As you can see, the compiler takes care of the unlocking. This is not
- * only exception safe but also much less error-prone. You could even
+ * only exception-safe but also much less error-prone. You could even
* <tt>return</tt> while still holding the lock and it will be released
* properly.
*/
@@ -319,10 +301,7 @@ private:
RecMutex(const RecMutex&);
RecMutex& operator=(const RecMutex&);
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
- // Must be public to allow initialization at compile time.
GRecMutex gobject_;
-#endif
};
/** Utility class for exception-safe locking of recursive mutexes.
@@ -396,10 +375,7 @@ private:
RWLock(const RWLock&);
RWLock& operator=(const RWLock&);
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
- // Must be public to allow initialization at compile time.
GRWLock gobject_;
-#endif
};
/** Utility class for exception-safe locking of read/write locks.
@@ -456,13 +432,13 @@ private:
* they can signal the @a Cond, such that the waiting thread is woken up.
* @par Usage example:
* @code
- * Glib::Cond data_cond;
- * Glib::Mutex data_mutex;
- * void* current_data = 0;
+ * Glib::Threads::Cond data_cond;
+ * Glib::Threads::Mutex data_mutex;
+ * void* current_data = nullptr;
*
* void push_data(void* data)
* {
- * Glib::Mutex::Lock lock (data_mutex);
+ * Glib::Threads::Mutex::Lock lock(data_mutex);
*
* current_data = data;
* data_cond.signal();
@@ -470,18 +446,18 @@ private:
*
* void* pop_data()
* {
- * Glib::Mutex::Lock lock (data_mutex);
+ * Glib::Threads::Mutex::Lock lock(data_mutex);
*
* while (!current_data)
* data_cond.wait(data_mutex);
*
- * void *const data = current_data;
- * current_data = 0;
+ * void* const data = current_data;
+ * current_data = nullptr;
*
* return data;
* }
* @endcode
-*/
+ */
class Cond
{
public:
@@ -491,12 +467,11 @@ public:
/** If threads are waiting for this @a Cond, exactly one of them is woken up.
* It is good practice to hold the same lock as the waiting thread, while calling
* this method, though not required.
- *
*/
void signal();
/** If threads are waiting for this @a Cond, all of them are woken up.
- * It is good practice to hold the same lock as the waiting thread, while calling
+ * It is good practice to hold the same lock as the waiting threads, while calling
* this method, though not required.
*/
void broadcast();
@@ -504,7 +479,7 @@ public:
/** Waits until this thread is woken up on this @a Cond.
* The mutex is unlocked before falling asleep and locked again before resuming.
*
- * @param mutex a @a Mutex that is currently locked.
+ * @param mutex A @a Mutex that is currently locked.
*
* @note It is important to use the @a wait() and @a wait_until() methods
* only inside a loop, which checks for the condition to be true as it is not
@@ -515,11 +490,40 @@ public:
*/
void wait(Mutex& mutex);
- /** Waits until this thread is woken up on this @a Cond, but not longer than until the time, that is specified by @a end_time.
+ /** Waits until this thread is woken up on this @a Cond, but not longer
+ * than until the time specified by @a end_time.
* The mutex is unlocked before falling asleep and locked again before resuming.
*
- * @param mutex a @a Mutex that is currently locked.
- * @param end_time a max time to wait.
+ * @par Usage example:
+ * Extending the example presented in the documentation of class Cond.
+ * @code
+ * void* pop_data_timed()
+ * {
+ * Glib::Threads::Mutex::Lock lock(data_mutex);
+ *
+ * // Wait at most 5 seconds.
+ * const gint64 end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND;
+ * while (!current_data)
+ * if (!data_cond.wait_until(data_mutex, end_time)
+ * return 0; // timeout
+ *
+ * void* const data = current_data;
+ * current_data = nullptr;
+ *
+ * return data;
+ * }
+ * @endcode
+ * The end time is calculated once, before entering the loop, and reused.
+ * This is the motivation behind the use of absolute time. If a relative time
+ * of 5 seconds were passed directly to the call and a spurious wakeup
+ * occurred, the program would have to start over waiting again, which would
+ * lead to a total wait time of more than 5 seconds.
+ *
+ * @param mutex A @a Mutex that is currently locked.
+ * @param end_time The monotonic time to wait until, in microseconds.
+ * See g_get_monotonic_time().
+ * @return <tt>true</tt> if the condition variable was signalled (or in the case
+ * of a spurious wakeup), <tt>false</tt> if @a end_time has passed.
*
* @note It is important to use the @a wait() and @a wait_until() methods
* only inside a loop, which checks for the condition to be true as it is not
@@ -544,7 +548,7 @@ private:
*
* It is recommended that all instances of this class are statically allocated.
* The first time an instance is used (get(), set() or replace() is called)
- * gtk+ allocates a scarce OS resource that cannot be deallocated.
+ * glib allocates a scarce OS resource that cannot be deallocated.
*/
template <class T>
class Private
@@ -606,8 +610,7 @@ private:
/* inline implementation */
/***************************************************************************/
-
-/**** Glib::Mutex::Lock ****************************************************/
+/**** Glib::Threads::Mutex::Lock *******************************************/
inline
Mutex::Lock::Lock(Mutex& mutex)
@@ -667,7 +670,7 @@ bool Mutex::Lock::locked() const
}
-/**** Glib::RecMutex::Lock *************************************************/
+/**** Glib::Threads::RecMutex::Lock ****************************************/
inline
RecMutex::Lock::Lock(RecMutex& mutex)
@@ -727,7 +730,7 @@ bool RecMutex::Lock::locked() const
}
-/**** Glib::RWLock::ReaderLock *********************************************/
+/**** Glib::Threads::RWLock::ReaderLock ************************************/
inline
RWLock::ReaderLock::ReaderLock(RWLock& rwlock)
@@ -787,7 +790,7 @@ bool RWLock::ReaderLock::locked() const
}
-/**** Glib::RWLock::WriterLock *********************************************/
+/**** Glib::Threads::RWLock::WriterLock ************************************/
inline
RWLock::WriterLock::WriterLock(RWLock& rwlock)
@@ -846,7 +849,7 @@ bool RWLock::WriterLock::locked() const
return locked_;
}
-/**** Glib::Private ********************************************************/
+/**** Glib::Threads::Private<T> ********************************************/
// static
template <class T>
diff --git a/glib/src/value_basictypes.cc.m4 b/glib/src/value_basictypes.cc.m4
index 62cc5474..090b33bc 100644
--- a/glib/src/value_basictypes.cc.m4
+++ b/glib/src/value_basictypes.cc.m4
@@ -1,7 +1,5 @@
divert(-1)
-dnl $Id$
-
dnl Glib::Value specializations for fundamental types
dnl
dnl Copyright 2002 The gtkmm Development Team
@@ -34,7 +32,7 @@ dnl Please ignore the format stuff. I was just tired and played a little.
// static
GType Value<$1>::value_type()
{
- return G_TYPE_[]UPPER($2);
+ return G_TYPE_[]UPPER(ifelse($2,schar,char,$2));
}
void Value<$1>::set($1 data)
@@ -49,7 +47,7 @@ $1 Value<$1>::get() const
GParamSpec* Value<$1>::create_param_spec(const Glib::ustring& name) const
{
- return g_param_spec_$2(
+ return g_param_spec_[]ifelse($2,schar,char,$2)(
name.c_str(), 0, 0,ifelse($2,pointer,,[
ifelse($3,,,[$3, $4, ])[]g_value_get_$2(&gobject_),])
GParamFlags(G_PARAM_READABLE | G_PARAM_WRITABLE));
@@ -57,7 +55,6 @@ GParamSpec* Value<$1>::create_param_spec(const Glib::ustring& name) const
])
divert[]dnl
-// -*- c++ -*-
// This is a generated file, do not edit. Generated from __file__
/* So we can use deprecated functions in our deprecated methods */
@@ -73,7 +70,10 @@ G_GNUC_EXTENSION typedef long long long_long;
G_GNUC_EXTENSION typedef unsigned long long unsigned_long_long;
GLIB_VALUE_BASIC(bool, boolean)
+#ifndef GLIBMM_DISABLE_DEPRECATED
GLIB_VALUE_BASIC(char, char, -128, 127)
+#endif // GLIBMM_DISABLE_DEPRECATED
+GLIB_VALUE_BASIC(signed char, schar, -128, 127)
GLIB_VALUE_BASIC(unsigned char, uchar, 0, 255)
GLIB_VALUE_BASIC(int, int, G_MININT, G_MAXINT)
GLIB_VALUE_BASIC(unsigned int, uint, 0, G_MAXUINT)
diff --git a/glib/src/value_basictypes.h.m4 b/glib/src/value_basictypes.h.m4
index 11b4c6cd..f9648c09 100644
--- a/glib/src/value_basictypes.h.m4
+++ b/glib/src/value_basictypes.h.m4
@@ -1,7 +1,5 @@
divert(-1)
-dnl $Id$
-
dnl Glib::Value specializations for fundamental types
dnl
dnl Copyright 2002 The gtkmm Development Team
@@ -50,7 +48,6 @@ public:
])
divert[]dnl
-// -*- c++ -*-
// This is a generated file, do not edit. Generated from __file__
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -68,7 +65,12 @@ divert[]dnl
namespace Glib
{
GLIB_VALUE_BASIC(bool, boolean)
+#ifndef GLIBMM_DISABLE_DEPRECATED
+/// @deprecated Use Value<signed char> instead.
GLIB_VALUE_BASIC(char, char)
+#endif // GLIBMM_DISABLE_DEPRECATED
+/// @newin{2,44}
+GLIB_VALUE_BASIC(signed char, int8)
GLIB_VALUE_BASIC(unsigned char, uchar)
GLIB_VALUE_BASIC(int, int)
GLIB_VALUE_BASIC(unsigned int, uint)
diff --git a/glib/src/valuearray.ccg b/glib/src/valuearray.ccg
index 114e978f..8b82aeda 100644
--- a/glib/src/valuearray.ccg
+++ b/glib/src/valuearray.ccg
@@ -48,7 +48,7 @@ ValueArray::ValueArray(guint n_preallocated) :
bool ValueArray::get_nth(guint index, Glib::ValueBase& value)
{
- GValue* const g_value = g_value_array_get_nth(gobj(), index);
+ const auto g_value = g_value_array_get_nth(gobj(), index);
if(g_value)
{
diff --git a/glib/src/variant.ccg b/glib/src/variant.ccg
index a7c53524..7ab9cb13 100644
--- a/glib/src/variant.ccg
+++ b/glib/src/variant.ccg
@@ -56,6 +56,60 @@ void VariantBase::byteswap(VariantBase& result) const
result.init(g_value); // g_value is already referenced.
}
+bool VariantBase::is_castable_to(const VariantType& supertype) const
+{
+ const std::string subtype_string = get_type_string();
+ const std::string supertype_string = supertype.get_string();
+
+ // The following code is similar to g_variant_type_is_subtype_of(), with
+ // these differences:
+ // - Both types are assumed to be definite types (no indefinite types,
+ // no 'r', '?' or '*').
+ // - VARIANT_TYPE_OBJECT_PATH (o) and VARIANT_TYPE_SIGNATURE (g) can be cast to
+ // VARIANT_TYPE_STRING (s), (Variant<Glib::ustring>::variant_type()).
+ // - VARIANT_TYPE_STRING (s), VARIANT_TYPE_OBJECT_PATH (o) and
+ // VARIANT_TYPE_SIGNATURE (g) can be cast to VARIANT_TYPE_BYTESTRING (ay),
+ // (Variant<std::string>::variant_type()).
+ // - VARIANT_TYPE_HANDLE (h) can be cast to VARIANT_TYPE_INT32 (i),
+ // (Variant<gint32>::variant_type()).
+
+ std::size_t subtype_index = 0;
+ std::size_t supertype_index = 0;
+ const std::size_t supertype_size = supertype_string.size();
+ while (supertype_index < supertype_size)
+ {
+ const char supertype_char = supertype_string[supertype_index++];
+ const char subtype_char = subtype_string[subtype_index++];
+
+ if (supertype_char == subtype_char)
+ continue;
+
+ switch (supertype_char)
+ {
+ case 's':
+ if (!(subtype_char == 'o' || subtype_char == 'g'))
+ return false;
+ break;
+
+ case 'a':
+ if (!(supertype_string[supertype_index] == 'y' &&
+ (subtype_char == 's' || subtype_char == 'o' || subtype_char == 'g')))
+ return false;
+ supertype_index++;
+ break;
+
+ case 'i':
+ if (!(subtype_char == 'h'))
+ return false;
+ break;
+
+ default:
+ return false;
+ }
+ }
+ return true;
+}
+
VariantStringBase::VariantStringBase()
: VariantBase()
@@ -71,7 +125,7 @@ VariantStringBase::VariantStringBase(GVariant* castitem, bool take_a_reference)
void VariantStringBase::create_object_path(VariantStringBase& output,
const std::string& object_path)
{
- GVariant* result = 0;
+ GVariant* result = nullptr;
result = g_variant_new_object_path(object_path.c_str());
g_variant_ref_sink(result);
output.init(result);
@@ -81,7 +135,7 @@ void VariantStringBase::create_object_path(VariantStringBase& output,
void VariantStringBase::create_signature(VariantStringBase& output,
const std::string& signature)
{
- GVariant* result = 0;
+ GVariant* result = nullptr;
result = g_variant_new_signature(signature.c_str());
g_variant_ref_sink(result);
output.init(result);
@@ -140,7 +194,7 @@ void VariantContainerBase::get_child(VariantBase& child, gsize index) const
{
if(index >= g_variant_n_children(gobject_))
throw std::out_of_range(
- "VariantContainerBase::get(): Index out of bounds.");
+ "VariantContainerBase::get_child(): Index out of bounds.");
GVariant* const gvariant = g_variant_get_child_value(gobject_, index);
child.init(gvariant);
@@ -180,6 +234,22 @@ bool VariantContainerBase::get_maybe(VariantBase& maybe) const
return false;
}
+VariantIter VariantContainerBase::get_iter(const VariantType& container_variant_type) const
+{
+ // Get the GVariantIter.
+ // If the underlying GVariant can be cast to the type of the container,
+ // use the actual type (which may differ from container_variant_type, if
+ // the GVariant contains strings, object paths or DBus type signatures),
+ // otherwise let g_variant_get() report what's wrong with the type.
+ GVariantIter* g_iter = nullptr;
+ g_variant_get(const_cast<GVariant*>(gobj()),
+ is_castable_to(container_variant_type) ?
+ get_type_string().c_str() : container_variant_type.get_string().c_str(),
+ &g_iter);
+
+ return VariantIter(g_iter);
+}
+
/****************** Specializations ***********************************/
VariantBase::operator const void*() const
@@ -197,6 +267,7 @@ void VariantBase::init(const GVariant* cobject, bool take_a_reference)
g_variant_ref(gobject_);
}
+/*--------------------Variant<VariantBase>---------------------*/
Variant<VariantBase>::Variant()
: VariantContainerBase()
@@ -216,7 +287,7 @@ const VariantType& Variant<VariantBase>::variant_type()
Variant<VariantBase> Variant<VariantBase>::create(const VariantBase& data)
{
- Variant<VariantBase> result = Variant<VariantBase>(g_variant_new_variant(const_cast<GVariant*>(data.gobj())));
+ auto result = Variant<VariantBase>(g_variant_new_variant(const_cast<GVariant*>(data.gobj())));
return result;
}
@@ -226,6 +297,7 @@ void Variant<VariantBase>::get(VariantBase& variant) const
variant.init(gvariant);
}
+/*--------------------Variant<Glib::ustring>---------------------*/
Variant<Glib::ustring>::Variant()
: VariantStringBase()
@@ -246,7 +318,7 @@ const VariantType& Variant<Glib::ustring>::variant_type()
Variant<Glib::ustring>
Variant<Glib::ustring>::create(const Glib::ustring& data)
{
- Variant<Glib::ustring> result =
+ auto result =
Variant<Glib::ustring>(g_variant_new_string(data.c_str()));
return result;
}
@@ -281,6 +353,8 @@ throw(std::bad_cast)
}
}
+/*--------------------Variant<std::string>---------------------*/
+
Variant<std::string>::Variant()
: VariantStringBase()
{
@@ -300,7 +374,7 @@ const VariantType& Variant<std::string>::variant_type()
Variant<std::string>
Variant<std::string>::create(const std::string& data)
{
- Variant<std::string> result =
+ auto result =
Variant<std::string>(g_variant_new_bytestring(data.c_str()));
return result;
}
@@ -335,15 +409,17 @@ std::string Variant<std::string>::get() const
{
const VariantType vtype = get_type();
- const char* pch = 0;
+ const char* pch = nullptr;
if(vtype.equal(VARIANT_TYPE_BYTESTRING))
pch = g_variant_get_bytestring(gobject_);
- else //g_variant_get_string() cna handle strings, object paths, and signatures.
+ else //g_variant_get_string() can handle strings, object paths, and signatures.
pch = g_variant_get_string(gobject_, 0);
return convert_const_gchar_ptr_to_stdstring(pch);
}
+/*--------------------Variant< std::vector<Glib::ustring> >---------------------*/
+
typedef std::vector<Glib::ustring> type_vec_ustring;
Variant<type_vec_ustring>::Variant()
@@ -375,15 +451,14 @@ Variant<type_vec_ustring>::create(const type_vec_ustring& data)
GVariantBuilder* builder = g_variant_builder_new(array_variant_type.gobj());
// Add the elements of the vector into the builder.
- for(type_vec_ustring::const_iterator iter = data.begin();
- iter < data.end(); iter++)
+ for(const auto& str : data)
{
g_variant_builder_add(builder,
- element_variant_type.get_string().c_str(), iter->c_str());
+ element_variant_type.get_string().c_str(), str.c_str());
}
// Create the variant using the builder.
- Variant<type_vec_ustring> result =
+ auto result =
Variant<type_vec_ustring>(g_variant_new(
array_variant_type.get_string().c_str(), builder));
@@ -394,48 +469,42 @@ Variant<type_vec_ustring>::create(const type_vec_ustring& data)
Glib::ustring Variant<type_vec_ustring>::get_child(gsize index) const
{
- gsize n_elements = 0;
-
- const gchar** array = g_variant_get_strv(const_cast<GVariant*>(gobj()),
- &n_elements);
-
- if(index >= n_elements)
+ if (index >= g_variant_n_children(const_cast<GVariant*>(gobj())))
throw std::out_of_range(
- "Variant< std::vector<Glib::ustring> >::get(): Index out of bounds.");
+ "Variant< std::vector<Glib::ustring> >::get_child(): Index out of bounds.");
- Glib::ustring const result(array[index]);
- g_free(array);
- return result;
+ GVariant* gvariant =
+ g_variant_get_child_value(const_cast<GVariant*>(gobj()), index);
+
+ return Glib::Variant<Glib::ustring>(gvariant).get();
}
type_vec_ustring Variant<type_vec_ustring>::get() const
{
- gsize n_elements = 0;
+ // g_variant_get_strv() can be used only if the type is VARIANT_TYPE_STRING_ARRAY,
+ // but the Variant can alternatively hold an array of object paths or DBus type signatures.
+ type_vec_ustring result;
+
+ gsize n_children = g_variant_n_children(const_cast<GVariant*>(gobj()));
+
+ for (gsize i = 0; i < n_children; i++)
+ {
+ GVariant* gvariant =
+ g_variant_get_child_value(const_cast<GVariant*>(gobj()), i);
- const gchar** array = g_variant_get_strv(const_cast<GVariant*>(gobj()),
- &n_elements);
+ result.push_back(Glib::Variant<Glib::ustring>(gvariant).get());
+ }
- type_vec_ustring const result(array, array + n_elements);
- g_free(array);
return result;
}
VariantIter Variant<type_vec_ustring>::get_iter() const
{
- // Get the variant type of the elements.
- VariantType element_variant_type = Variant<Glib::ustring>::variant_type();
-
- // Get the variant type of the array.
- VariantType array_variant_type = Variant<type_vec_ustring>::variant_type();
-
- // Get the GVariantIter.
- GVariantIter* g_iter = 0;
- g_variant_get(const_cast<GVariant*>(gobj()),
- array_variant_type.get_string().c_str(), &g_iter);
-
- return VariantIter(g_iter);
+ return VariantContainerBase::get_iter(variant_type());
}
+/*--------------------Variant< std::vector<std::string> >---------------------*/
+
typedef std::vector<std::string> type_vec_string;
Variant<type_vec_string>::Variant()
@@ -471,7 +540,7 @@ Variant<type_vec_string>::create(const type_vec_string& data)
// Create the variant using g_variant_new_bytestring_array() (passing the
// newly constructed array.
- Variant<type_vec_string> result =
+ auto result =
Variant<type_vec_string>(g_variant_new_bytestring_array(str_array,
data.size()));
@@ -496,7 +565,7 @@ Variant<type_vec_string>::create_from_object_paths(const type_vec_string& data)
// Create the variant using g_variant_new_objv() (passing the
// newly constructed array.
- Variant<type_vec_string> result =
+ auto result =
Variant<type_vec_string>(g_variant_new_objv(str_array, data.size()));
g_strfreev(str_array);
@@ -505,46 +574,38 @@ Variant<type_vec_string>::create_from_object_paths(const type_vec_string& data)
std::string Variant<type_vec_string>::get_child(gsize index) const
{
- gsize n_elements = 0;
-
- const gchar** array =
- g_variant_get_bytestring_array(const_cast<GVariant*>(gobj()), &n_elements);
-
- if(index >= n_elements)
+ if (index >= g_variant_n_children(const_cast<GVariant*>(gobj())))
throw std::out_of_range(
- "Variant< std::vector<std::string> >::get(): Index out of bounds.");
+ "Variant< std::vector<std::string> >::get_child(): Index out of bounds.");
- std::string const result(array[index]);
- g_free(array);
- return result;
+ GVariant* gvariant =
+ g_variant_get_child_value(const_cast<GVariant*>(gobj()), index);
+
+ return Glib::Variant<std::string>(gvariant).get();
}
type_vec_string Variant<type_vec_string>::get() const
{
- gsize n_elements = 0;
+ // g_variant_get_bytestring_array() can be used only if the type is VARIANT_TYPE_BYTESTRING_ARRAY,
+ // but the Variant can alternatively hold an array of strings, object paths or DBus type signatures.
+ type_vec_string result;
+
+ gsize n_children = g_variant_n_children(const_cast<GVariant*>(gobj()));
- const gchar** array =
- g_variant_get_bytestring_array(const_cast<GVariant*>(gobj()), &n_elements);
+ for (gsize i = 0; i < n_children; i++)
+ {
+ GVariant* gvariant =
+ g_variant_get_child_value(const_cast<GVariant*>(gobj()), i);
+
+ result.push_back(Glib::Variant<std::string>(gvariant).get());
+ }
- type_vec_string const result(array, array + n_elements);
- g_free(array);
return result;
}
VariantIter Variant<type_vec_string>::get_iter() const
{
- // Get the variant type of the elements.
- const VariantType element_variant_type = Variant<std::string>::variant_type();
-
- // Get the variant type of the array.
- const VariantType array_variant_type = Variant<type_vec_string>::variant_type();
-
- // Get the GVariantIter.
- GVariantIter* g_iter = 0;
- g_variant_get(const_cast<GVariant*>(gobj()),
- array_variant_type.get_string().c_str(), &g_iter);
-
- return VariantIter(g_iter);
+ return VariantContainerBase::get_iter(variant_type());
}
} // namespace Glib
diff --git a/glib/src/variant.hg b/glib/src/variant.hg
index 0cb1a827..5f9a440e 100644
--- a/glib/src/variant.hg
+++ b/glib/src/variant.hg
@@ -20,6 +20,7 @@ _DEFS(glibmm,glib)
#include <glibmmconfig.h>
#include <glibmm/varianttype.h>
#include <glibmm/variantiter.h>
+#include <glibmm/refptr.h>
#include <glibmm/ustring.h>
#include <glibmm/error.h>
#include <utility>
@@ -30,6 +31,7 @@ _DEFS(glibmm,glib)
namespace Glib
{
+class Bytes;
/** @defgroup Variant Variant Data Types
*
@@ -38,7 +40,7 @@ namespace Glib
* information about the type of that value. The range of possible
* values is determined by the type. The type system used is VariantType.
*
- * See the VariantBase class and it's derived types, such as VariantContainerBase,
+ * See the VariantBase class and its derived types, such as VariantContainerBase,
* and the Variant<> template type.
*
* Variant instances always have a type and a value (which are given
@@ -58,14 +60,14 @@ namespace Glib
*
* There is a Python-inspired text language for describing Variant
* values. Variant includes a printer for this language and a parser
- * with type inferencing.</a>.
+ * with type inferencing.
*/
//Note: We wrap this because it is thrown by GtkBuilder's functions.
// See https://bugzilla.gnome.org/show_bug.cgi?id=708206
// It would also be thrown by parse() if we wrap g_variant_parse().
// Now (2014-01-30) it's also thrown by Gio::Action::parse_detailed_name().
-/** Exception class for Variant parse errors.
+/** %Exception class for Variant parse errors.
*/
_WRAP_GERROR(VariantParseError, GVariantParseError, G_VARIANT_PARSE_ERROR, NO_GTYPE)
@@ -132,7 +134,9 @@ public:
_WRAP_METHOD(GVariantClass classify() const, g_variant_classify)
_WRAP_METHOD(gsize get_size() const, g_variant_get_size)
- _WRAP_METHOD(gconstpointer get_data(), g_variant_get_data)
+ _WRAP_METHOD(gconstpointer get_data(), g_variant_get_data, deprecated "Use the const version instead.")
+ _WRAP_METHOD(gconstpointer get_data() const, g_variant_get_data, newin "2,46")
+ _WRAP_METHOD(Glib::RefPtr<const Glib::Bytes> get_data_as_bytes() const, g_variant_get_data_as_bytes, newin "2,46")
_WRAP_METHOD(void store(gpointer data) const, g_variant_store)
_WRAP_METHOD(Glib::ustring print(bool type_annotate = false) const, g_variant_print)
@@ -144,6 +148,7 @@ public:
/** Checks if @a *this and @a other have the same type and value.
*
* @newin{2,24}
+ *
* @param other The Variant to compare with.
* @return <tt>true</tt> if @a *this and @a other are equal.
*/
@@ -212,6 +217,24 @@ public:
_IGNORE(g_variant_dict_new)
+protected:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ /** Used by cast_dynamic().
+ * In addition to an exact match, the following casts are possible:
+ * - VARIANT_TYPE_OBJECT_PATH and VARIANT_TYPE_SIGNATURE can be cast to
+ * VARIANT_TYPE_STRING (Glib::ustring).
+ * - VARIANT_TYPE_STRING, VARIANT_TYPE_OBJECT_PATH and VARIANT_TYPE_SIGNATURE
+ * can be cast to VARIANT_TYPE_BYTESTRING (std::string).
+ * - VARIANT_TYPE_HANDLE can be cast to VARIANT_TYPE_INT32.
+ *
+ * These casts are possible also when they are parts of a more complicated type.
+ * E.g. in Variant<std::map<Glib::ustring, std::vector<std::string> > > the map's keys
+ * can be VARIANT_TYPE_OBJECT_PATH and the vector's elements can be VARIANT_TYPE_SIGNATURE.
+ * @newin{2,46}
+ */
+ bool is_castable_to(const VariantType& supertype) const;
+#endif //DOXYGEN_SHOULD_SKIP_THIS
+
private:
/** Relational operators are deleted to prevent invalid conversion
* to const void*.
@@ -242,7 +265,7 @@ throw(std::bad_cast)
{
return V_CastTo();
}
- if(v.is_of_type(V_CastTo::variant_type()))
+ if(v.is_castable_to(V_CastTo::variant_type()))
{
return V_CastTo(const_cast<GVariant*>(v.gobj()), true);
}
@@ -258,8 +281,7 @@ throw(std::bad_cast)
*/
class VariantStringBase : public VariantBase
{
- // Trick gmmproc into thinking this is derived from GVariant to wrap a
- // some methods.
+ // Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(VariantStringBase, GVariant)
public:
@@ -314,8 +336,7 @@ public:
*/
class VariantContainerBase : public VariantBase
{
- // Trick gmmproc into thinking this is derived from GVariant to wrap a
- // some methods.
+ // Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(VariantContainerBase, GVariant)
public:
@@ -379,7 +400,7 @@ public:
*/
/** If this is a maybe-typed instance, extract its value. If the value is
- * Nothing, then this function returns <tt>0</tt>.
+ * Nothing, then this function returns <tt>false</tt>.
*
* @param maybe A place in which to return the value (the value may be
* <tt>0</tt>).
@@ -387,6 +408,14 @@ public:
*/
bool get_maybe(VariantBase& maybe) const;
_IGNORE(g_variant_get_maybe)
+
+protected:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ /** Used by get_iter() in the subclasses.
+ * @newin{2,46}
+ */
+ VariantIter get_iter(const VariantType& container_variant_type) const;
+#endif //DOXYGEN_SHOULD_SKIP_THIS
};
template<>
@@ -404,10 +433,6 @@ public:
typedef T CppType;
};
-// Each specialization has (or should have) a variant_type() method that gets
-// the type. So the C g_variant_get_type() function can be ignored.
-_IGNORE(g_variant_get_type)
-
/****************** Specializations ***********************************/
/** Specialization of Variant containing a VariantBase.
@@ -417,8 +442,7 @@ _IGNORE(g_variant_get_type)
template<>
class Variant<VariantBase> : public VariantContainerBase
{
- // Trick gmmproc into thinking this is derived from GVariant to wrap a
- // some methods.
+ // Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(Variant<VariantBase>, GVariant)
public:
@@ -505,15 +529,14 @@ public:
};
/** Specialization of Variant containing a Glib::ustring, for variants of type
- * string, bytestring, object path, or signature.
+ * string, object path, or signature.
* @newin{2,28}
* @ingroup Variant
*/
template<>
class Variant<Glib::ustring> : public VariantStringBase
{
- // Trick gmmproc into thinking this is derived from GVariant to wrap a
- // some methods.
+ // Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(Variant<Glib::ustring>, GVariant)
public:
typedef char* CType;
@@ -552,12 +575,13 @@ public:
_IGNORE(g_variant_get_string, g_variant_dup_string)
};
+//TODO: When we can break ABI, remove this template specialization.
template<>
Variant<Glib::ustring> VariantBase::cast_dynamic< Variant<Glib::ustring> >(const VariantBase& v)
throw(std::bad_cast);
/** Specialization of Variant containing a std::string, for variants of type
- * bytestring, object path, or signature.
+ * bytestring, string, object path, or signature.
* See also Variant<Glib::ustring> for UTF-8 strings.
* @newin{2,28}
* @ingroup Variant
@@ -565,8 +589,7 @@ throw(std::bad_cast);
template<>
class Variant<std::string> : public VariantStringBase
{
- // Trick gmmproc into thinking this is derived from GVariant to wrap a
- // some methods.
+ // Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(Variant<std::string>, GVariant)
public:
typedef char* CType;
@@ -601,6 +624,7 @@ public:
_IGNORE(g_variant_get_bytestring, g_variant_dup_bytestring)
};
+//TODO: When we can break ABI, remove this template specialization.
template<>
Variant<std::string> VariantBase::cast_dynamic< Variant<std::string> >(const VariantBase& v)
throw(std::bad_cast);
@@ -945,11 +969,12 @@ public:
_IGNORE(
g_variant_get_boolean,
g_variant_get_byte,
+ g_variant_get_int16,
g_variant_get_uint16,
- g_variant_get_int64,
g_variant_get_int32,
- g_variant_get_int16,
+ g_variant_get_handle,
g_variant_get_uint32,
+ g_variant_get_int64,
g_variant_get_uint64,
g_variant_get_double,
g_variant_iter_new
@@ -1029,11 +1054,11 @@ Variant< std::pair<K, V> >::create(const std::pair<K, V>& data)
template<class K, class V>
std::pair<K, V> Variant< std::pair<K, V> >::get() const
{
- // Get the key (the first element of the this VariantContainerBase).
+ // Get the key (the first element of this VariantContainerBase).
Variant<K> key;
VariantContainerBase::get_child(key, 0);
- // Get the value (the second element of the this VariantContainerBase).
+ // Get the value (the second element of this VariantContainerBase).
Variant<V> value;
VariantContainerBase::get_child(value, 1);
@@ -1058,9 +1083,6 @@ template<class T>
Variant< std::vector<T> >
Variant< std::vector<T> >::create(const std::vector<T>& data)
{
- // Get the variant type of the elements.
- VariantType element_variant_type = Variant<T>::variant_type();
-
// Get the variant type of the array.
VariantType array_variant_type = Variant< std::vector<T> >::variant_type();
@@ -1068,17 +1090,16 @@ Variant< std::vector<T> >::create(const std::vector<T>& data)
GVariantBuilder* builder = g_variant_builder_new(array_variant_type.gobj());
// Add the elements of the vector into the builder.
- for(typename std::vector<T>::const_iterator iter = data.begin();
- iter < data.end(); iter++)
+ for(const auto& element : data)
{
- Glib::Variant<T> variant = Glib::Variant<T>::create(*iter);
+ Glib::Variant<T> variant = Glib::Variant<T>::create(element);
g_variant_builder_add_value(builder, variant.gobj());
}
// Create the variant using the builder.
Variant< std::vector<T> > result =
Variant< std::vector<T> >(g_variant_new(
- reinterpret_cast<gchar*>(array_variant_type.gobj()), builder));
+ reinterpret_cast<const gchar*>(array_variant_type.gobj()), builder));
g_variant_builder_unref(builder);
@@ -1125,18 +1146,7 @@ std::vector<T> Variant< std::vector<T> >::get() const
template<class T>
VariantIter Variant< std::vector<T> >::get_iter() const
{
- // Get the variant type of the elements.
- VariantType element_variant_type = Variant<T>::variant_type();
-
- // Get the variant type of the array.
- VariantType array_variant_type = Variant< std::vector<T> >::variant_type();
-
- // Get the GVariantIter.
- GVariantIter* g_iter = 0;
- g_variant_get(const_cast<GVariant*>(gobj()),
- reinterpret_cast<gchar*>(array_variant_type.gobj()), &g_iter);
-
- return VariantIter(g_iter);
+ return VariantContainerBase::get_iter(variant_type());
}
/*---------------------Variant< std::map<K, V> > --------------------*/
@@ -1165,19 +1175,18 @@ Variant< std::map<K, V> >::create(const std::map<K, V>& data)
// Create a GVariantBuilder to build the array.
GVariantBuilder* builder = g_variant_builder_new(array_variant_type.gobj());
- // Add the elements of the vector into the builder.
- for(typename std::map<K, V>::const_iterator iter = data.begin();
- iter != data.end(); iter++)
+ // Add the elements of the map into the builder.
+ for(const auto& element : data)
{
- Variant< std::pair<K, V> > dict_entry =
- Variant< std::pair<K, V> >::create(*iter);
+ auto dict_entry =
+ Variant< std::pair<K, V> >::create(element);
g_variant_builder_add_value(builder, dict_entry.gobj());
}
// Create the variant using the builder.
Variant< std::map<K, V> > result = Variant< std::map<K, V> >(g_variant_new(
- reinterpret_cast<gchar*>(array_variant_type.gobj()), builder));
+ reinterpret_cast<const gchar*>(array_variant_type.gobj()), builder));
g_variant_builder_unref(builder);
@@ -1235,19 +1244,7 @@ std::map<K, V> Variant< std::map<K, V> >::get() const
template<class K, class V>
VariantIter Variant< std::map<K, V> >::get_iter() const
{
- // Get the variant type of the elements.
- VariantType element_variant_type =
- Variant< std::pair<K, V> >::variant_type();
-
- // Get the variant type of the array.
- VariantType array_variant_type = Variant< std::map<K, V> >::variant_type();
-
- // Get the GVariantIter.
- GVariantIter* g_iter = 0;
- g_variant_get(const_cast<GVariant*>(gobj()),
- reinterpret_cast<gchar*>(array_variant_type.gobj()), &g_iter);
-
- return VariantIter(g_iter);
+ return VariantContainerBase::get_iter(variant_type());
}
} // namespace Glib
diff --git a/glib/src/variant_basictypes.cc.m4 b/glib/src/variant_basictypes.cc.m4
index ba79a204..4247da88 100644
--- a/glib/src/variant_basictypes.cc.m4
+++ b/glib/src/variant_basictypes.cc.m4
@@ -23,11 +23,14 @@ dnl Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
include(template.macros.m4)
dnl
-dnl For instance, GLIB_VARIANT_BASIC(c++ type, c type, c type name)
-dnl parameters:
-dnl c++ type: The C++ type for the specialization, such as bool
-dnl c type: The C type used by the C API, such as gboolean.
-dnl c type name: The text used in the C API functions and macros, such as boolean, in g_variant_get_boolean() and G_VARIANT_TYPE_BOOLEAN.
+dnl For instance, GLIB_VARIANT_BASIC(C++ type, C type, C type name [,C type name 2])
+dnl Parameters:
+dnl C++ type: The C++ type for the specialization, such as bool.
+dnl C type: The C type used by the C API, such as gboolean.
+dnl C type name: The text used in the C API functions and macros, such as boolean
+dnl in g_variant_get_boolean() and G_VARIANT_TYPE_BOOLEAN.
+dnl C type name 2: Optional second text, such as handle in g_variant_get_handle()
+dnl and G_VARIANT_TYPE_HANDLE.
dnl
define([GLIB_VARIANT_BASIC],[dnl
LINE(]__line__[)dnl
@@ -44,13 +47,27 @@ const VariantType& Variant<$1>::variant_type()
Variant<$1> Variant<$1>::create($1 data)
{
- Variant<$1> result = Variant<$1>(g_variant_new_$3(data));
+ auto result = Variant<$1>(g_variant_new_$3(data));
return result;
}
+ifelse($4,,,[
+Variant<$1> Variant<$1>::create_$4($1 data)
+{
+ auto result = Variant<$1>(g_variant_new_$4(data));
+ return result;
+}
+])dnl
$1 Variant<$1>::get() const
{
+ifelse($4,,[dnl
return g_variant_get_$3(gobject_);
+],[dnl
+ if (get_type().equal(VARIANT_TYPE_[]UPPER($3)))
+ return g_variant_get_$3(gobject_);
+ else
+ return g_variant_get_$4(gobject_);
+])dnl
}
])
@@ -66,11 +83,10 @@ GLIB_VARIANT_BASIC(bool, gboolean, boolean)
GLIB_VARIANT_BASIC(unsigned char, guchar, byte)
GLIB_VARIANT_BASIC(gint16, gint16, int16)
GLIB_VARIANT_BASIC(guint16, guint16, uint16)
-GLIB_VARIANT_BASIC(gint32, gint32, int32)
+GLIB_VARIANT_BASIC(gint32, gint32, int32, handle)
GLIB_VARIANT_BASIC(guint32, guint32, uint32)
GLIB_VARIANT_BASIC(gint64, gint64, int64)
GLIB_VARIANT_BASIC(guint64, guint64, uint64)
-dnl This would redeclare the <int> GLIB_VARIANT_BASIC(gint32, guint32, handle)
GLIB_VARIANT_BASIC(double, gdouble, double)
} // namespace Glib
diff --git a/glib/src/variant_basictypes.h.m4 b/glib/src/variant_basictypes.h.m4
index 2f11a521..a6b6ec06 100644
--- a/glib/src/variant_basictypes.h.m4
+++ b/glib/src/variant_basictypes.h.m4
@@ -23,11 +23,14 @@ dnl Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
include(template.macros.m4)
dnl
-dnl For instance, GLIB_VARIANT_BASIC(c++ type, c type, c type name)
-dnl parameters:
-dnl c++ type: The C++ type for the specialization, such as bool
-dnl c type: The C type used by the C API, such as gboolean.
-dnl c type name: The text used in the C API functions and macros, such as boolean, in g_variant_get_boolean() and G_VARIANT_TYPE_BOOLEAN.
+dnl For instance, GLIB_VARIANT_BASIC(C++ type, C type, C type name [,C type name 2])
+dnl Parameters:
+dnl C++ type: The C++ type for the specialization, such as bool.
+dnl C type: The C type used by the C API, such as gboolean.
+dnl C type name: The text used in the C API functions and macros, such as boolean
+dnl in g_variant_get_boolean() and G_VARIANT_TYPE_BOOLEAN.
+dnl C type name 2: Optional second text, such as handle in g_variant_get_handle()
+dnl and G_VARIANT_TYPE_HANDLE.
dnl
define([GLIB_VARIANT_BASIC],[dnl
LINE(]__line__[)dnl
@@ -67,7 +70,13 @@ public:
* @return The new Glib::Variant<$1>.
*/
static Variant<$1> create($1 data);
-
+ifelse($4,,,[
+ /** Creates a new Glib::Variant<$1> of type VARIANT_TYPE_[]UPPER($4).
+ * @param data The value of the new Glib::Variant<$1>.
+ * @return The new Glib::Variant<$1>.
+ */
+ static Variant<$1> create_$4($1 data);
+])
/** Gets the value of the Glib::Variant<$1>.
* @return The $1 value of the Glib::Variant<$1>.
*/
@@ -90,10 +99,9 @@ GLIB_VARIANT_BASIC(bool, gboolean, boolean)
GLIB_VARIANT_BASIC(unsigned char, guchar, byte)
GLIB_VARIANT_BASIC(gint16, gint16, int16)
GLIB_VARIANT_BASIC(guint16, guint16, uint16)
-GLIB_VARIANT_BASIC(gint32, gint32, int32)
+GLIB_VARIANT_BASIC(gint32, gint32, int32, handle)
GLIB_VARIANT_BASIC(guint32, guint32, uint32)
GLIB_VARIANT_BASIC(gint64, gint64, int64)
GLIB_VARIANT_BASIC(guint64, guint64, uint64)
-dnl This would redeclare the <int> specialization: GLIB_VARIANT_BASIC(gint32, guint32, handle)
GLIB_VARIANT_BASIC(double, gdouble, double)
} // namespace Glib
diff --git a/glib/src/varianttype.ccg b/glib/src/varianttype.ccg
index 71d34d9a..5a3702f8 100644
--- a/glib/src/varianttype.ccg
+++ b/glib/src/varianttype.ccg
@@ -27,7 +27,7 @@ VariantType::VariantType(const GVariantType* castitem)
if(castitem)
gobject_ = g_variant_type_copy(castitem);
else
- gobject_ = 0;
+ gobject_ = nullptr;
}
VariantType::VariantType(const std::string& type_string)
@@ -45,7 +45,7 @@ VariantType& VariantType::operator=(const GVariantType* castitem)
if(castitem)
gobject_ = g_variant_type_copy(castitem);
else
- gobject_ = 0;
+ gobject_ = nullptr;
return *this;
}
@@ -54,14 +54,14 @@ VariantType& VariantType::operator=(const GVariantType* castitem)
VariantType VariantType::create_tuple(const std::vector<VariantType>& items)
{
typedef GVariantType* var_ptr;
- var_ptr* const var_array = new var_ptr[items.size()];
+ const auto var_array = new var_ptr[items.size()];
for(std::vector<VariantType>::size_type i = 0; i < items.size(); i++)
{
var_array[i] = const_cast<GVariantType*>(items[i].gobj());
}
- VariantType result = Glib::wrap(g_variant_type_new_tuple(var_array, items.size()));
+ auto result = Glib::wrap(g_variant_type_new_tuple(var_array, items.size()));
delete[] var_array;
return result;
}
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c2b0458b..8f35cbb7 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -41,6 +41,7 @@ check_PROGRAMS = \
glibmm_bool_arrayhandle/test \
glibmm_null_vectorutils/test \
glibmm_null_containerhandle/test \
+ glibmm_refptr/test \
glibmm_refptr_sigc_bind/test \
glibmm_bytearray/test
@@ -101,5 +102,6 @@ glibmm_null_vectorutils_test_SOURCES = glibmm_null_vectorutils/main.cc
glibmm_null_vectorutils_test_LDADD = $(giomm_ldadd)
glibmm_null_containerhandle_test_SOURCES = glibmm_null_containerhandle/main.cc
glibmm_null_containerhandle_test_LDADD = $(giomm_ldadd)
+glibmm_refptr_test_SOURCES = glibmm_refptr/main.cc
glibmm_refptr_sigc_bind_test_SOURCES = glibmm_refptr_sigc_bind/main.cc
glibmm_bytearray_test_SOURCES = glibmm_bytearray/main.cc
diff --git a/tests/giomm_asyncresult_sourceobject/main.cc b/tests/giomm_asyncresult_sourceobject/main.cc
index c9f79e58..12136fa8 100644
--- a/tests/giomm_asyncresult_sourceobject/main.cc
+++ b/tests/giomm_asyncresult_sourceobject/main.cc
@@ -29,9 +29,9 @@ int main(int, char**)
Glib::init();
Gio::init();
- Glib::RefPtr<Glib::MainLoop> mainloop = Glib::MainLoop::create();
+ auto mainloop = Glib::MainLoop::create();
- Glib::RefPtr<Gio::File> file = Gio::File::create_for_path("/etc/passwd");
+ auto file = Gio::File::create_for_path("/etc/passwd");
file->read_async(&on_read_async);
mainloop->run();
diff --git a/tests/giomm_ioerror/main.cc b/tests/giomm_ioerror/main.cc
index ae51ec21..797ed22e 100644
--- a/tests/giomm_ioerror/main.cc
+++ b/tests/giomm_ioerror/main.cc
@@ -34,14 +34,14 @@ int main(int, char**)
try
{
- Glib::RefPtr<Gio::File> file = Gio::File::create_for_path(TEST_FILE);
+ auto file = Gio::File::create_for_path(TEST_FILE);
if(!file)
{
std::cerr << "Gio::File::create_for_path() returned an empty RefPtr." << std::endl;
return EXIT_FAILURE;
}
- Glib::RefPtr<Gio::FileInputStream> stream = file->read();
+ auto stream = file->read();
if(!stream)
{
std::cerr << "Gio::File::read() returned an empty RefPtr." << std::endl;
diff --git a/tests/giomm_memoryinputstream/main.cc b/tests/giomm_memoryinputstream/main.cc
index 813fa4e3..8228bd21 100644
--- a/tests/giomm_memoryinputstream/main.cc
+++ b/tests/giomm_memoryinputstream/main.cc
@@ -43,7 +43,7 @@ int main(int, char**)
std::memset(buffer, 0, sizeof buffer);
try
{
- Glib::RefPtr<Gio::MemoryInputStream> stream = Gio::MemoryInputStream::create();
+ auto stream = Gio::MemoryInputStream::create();
if (!stream)
{
std::cerr << "Could not create a MemoryInputStream." << std::endl;
diff --git a/tests/giomm_simple/main.cc b/tests/giomm_simple/main.cc
index e88c4604..175cadf3 100644
--- a/tests/giomm_simple/main.cc
+++ b/tests/giomm_simple/main.cc
@@ -22,14 +22,14 @@ int main(int, char**)
try
{
- Glib::RefPtr<Gio::File> file = Gio::File::create_for_path(TEST_FILE);
+ auto file = Gio::File::create_for_path(TEST_FILE);
if(!file)
{
std::cerr << "Gio::File::create_for_path() returned an empty RefPtr." << std::endl;
return EXIT_FAILURE;
}
- Glib::RefPtr<Gio::FileInputStream> stream = file->read();
+ auto stream = file->read();
if(!stream)
{
std::cerr << "Gio::File::read() returned an empty RefPtr." << std::endl;
diff --git a/tests/giomm_tls_client/main.cc b/tests/giomm_tls_client/main.cc
index c76551a1..2eb0eaf0 100644
--- a/tests/giomm_tls_client/main.cc
+++ b/tests/giomm_tls_client/main.cc
@@ -29,7 +29,7 @@ bool on_accept_certificate(const Glib::RefPtr<const Gio::TlsCertificate>& cert,
std::cout << "Outputing certificate data:" << std::endl <<
cert->property_certificate_pem().get_value();
- Glib::RefPtr<const Gio::TlsCertificate> issuer = cert->get_issuer();
+ auto issuer = cert->get_issuer();
std::cout << "Outputing the issuer's certificate data:" << std::endl <<
issuer->property_certificate_pem().get_value();
@@ -44,7 +44,7 @@ int main(int, char**)
{
Gio::init();
- const Glib::ustring test_host = "www.google.com";
+ const Glib::ustring test_host = "www.gnome.org";
std::vector< Glib::RefPtr<Gio::InetAddress> > inet_addresses;
@@ -74,19 +74,29 @@ int main(int, char**)
std::cout << "Successfully resolved address of test host '" << test_host <<
"'." << std::endl;
- Glib::RefPtr<Gio::InetAddress> first_inet_address = inet_addresses[0];
+ auto first_inet_address = inet_addresses[0];
std::cout << "First address of test host is " <<
first_inet_address->to_string() << "." << std::endl;
- Glib::RefPtr<Gio::Socket> socket =
+ auto socket =
Gio::Socket::create(first_inet_address->get_family(),
Gio::SOCKET_TYPE_STREAM, Gio::SOCKET_PROTOCOL_TCP);
- Glib::RefPtr<Gio::InetSocketAddress> address =
+ auto address =
Gio::InetSocketAddress::create(first_inet_address, 443);
- socket->connect(address);
+ try
+ {
+ socket->connect(address);
+ }
+ catch(const Gio::Error& ex)
+ {
+ std::cout << "Could not connect socket to " <<
+ address->get_address()->to_string() << ":" << address->get_port() <<
+ ". Exception: " << ex.what() << std::endl;
+ return EXIT_FAILURE;
+ }
if(!socket->is_connected())
{
@@ -95,7 +105,7 @@ int main(int, char**)
"." << std::endl;
}
- Glib::RefPtr<Gio::TcpConnection> conn = Glib::RefPtr<Gio::TcpConnection>::cast_dynamic(Gio::SocketConnection::create(socket));
+ auto conn = Glib::RefPtr<Gio::TcpConnection>::cast_dynamic(Gio::SocketConnection::create(socket));
if(!conn || !conn->is_connected())
{
@@ -110,11 +120,9 @@ int main(int, char**)
address->get_address()->to_string() << ":" << address->get_port() <<
"." << std::endl;
- Glib::RefPtr<Gio::TlsClientConnection> tls_connection;
-
try
{
- Glib::RefPtr<Gio::TlsClientConnection> tls_connection =
+ auto tls_connection =
Gio::TlsClientConnection::create(conn, address);
tls_connection->signal_accept_certificate().connect(
@@ -125,7 +133,7 @@ int main(int, char**)
std::cout << "Attempting to get the issuer's certificate from the "
"connection." << std::endl;
- Glib::RefPtr<Gio::TlsCertificate> issuer_certificate =
+ auto issuer_certificate =
tls_connection->get_peer_certificate()->get_issuer();
if(!issuer_certificate)
@@ -138,12 +146,12 @@ int main(int, char**)
std::endl;
std::cout << "Attempting to use the connection's database." << std::endl;
- Glib::RefPtr<Gio::TlsDatabase> database = tls_connection->get_database();
+ auto database = tls_connection->get_database();
std::cout << "Looking up the certificate's issuer in the database." <<
std::endl;
- Glib::RefPtr<Gio::TlsCertificate> db_certificate =
+ auto db_certificate =
database->lookup_certificate_issuer(issuer_certificate);
if(!db_certificate)
diff --git a/tests/glibmm_btree/main.cc b/tests/glibmm_btree/main.cc
index c678c37a..837b7ae7 100644
--- a/tests/glibmm_btree/main.cc
+++ b/tests/glibmm_btree/main.cc
@@ -74,8 +74,7 @@ my_p_key_compare(const type_p_key_value& key_a, const type_p_key_value& key_b)
int
main()
{
- type_key_value::const_iterator i;
- Glib::RefPtr< Glib::BalancedTree<type_key_value, type_key_value> > tree = Glib::BalancedTree<type_key_value, type_key_value>::create();
+ auto tree = Glib::BalancedTree<type_key_value, type_key_value>::create();
for (type_key_value::size_type i = 0; i < str.size(); ++i)
tree->insert(str.substr(i, 1), str.substr(i, 1));
@@ -138,7 +137,7 @@ main()
value = tree->search(sigc::ptr_fun(my_search), "|");
g_assert(value == NULL);
- Glib::RefPtr< Glib::BalancedTree<type_p_key_value, type_p_key_value> > ptree = Glib::BalancedTree<type_p_key_value, type_p_key_value>::create(sigc::ptr_fun(my_p_key_compare));
+ auto ptree = Glib::BalancedTree<type_p_key_value, type_p_key_value>::create(sigc::ptr_fun(my_p_key_compare));
for (type_key_value::size_type i = 0; i < str.size(); ++i)
pstr.push_back(new type_key_value(str.substr(i, 1)));
diff --git a/tests/glibmm_interface_implementation/main.cc b/tests/glibmm_interface_implementation/main.cc
index bc8253b1..40da2787 100644
--- a/tests/glibmm_interface_implementation/main.cc
+++ b/tests/glibmm_interface_implementation/main.cc
@@ -1,6 +1,12 @@
+// This program does not only test the implementation of an interface
+// in a custom class. It also tests virtual functions that have leaked memory
+// or printed unjustified critical messages in glibmm before version 2.44.
+// See https://bugzilla.gnome.org/show_bug.cgi?id=705124.
+
#include <glibmm.h>
#include <giomm.h> //There are no Interfaces in glibmm, but there are in giomm.
#include <iostream>
+#include <cstring>
class CustomAction :
public Gio::Action,
@@ -13,8 +19,10 @@ public:
Glib::Property<Glib::ustring> property;
protected:
- //Implement a vfunc:
- virtual Glib::ustring get_name_vfunc() const;
+ //Implement vfuncs:
+ Glib::ustring get_name_vfunc() const override;
+ Glib::VariantType get_state_type_vfunc() const override;
+ Glib::VariantBase get_state_hint_vfunc() const override;
};
CustomAction::CustomAction()
@@ -32,33 +40,65 @@ Glib::ustring CustomAction::get_name_vfunc() const
return "custom-name";
}
+Glib::VariantType CustomAction::get_state_type_vfunc() const
+{
+ return Glib::VariantType(G_VARIANT_TYPE_INT16);
+}
+
+Glib::VariantBase CustomAction::get_state_hint_vfunc() const
+{
+ return Glib::Variant<gint16>::create(42);
+}
int main(int, char**)
{
Glib::init();
CustomAction action;
+ bool success = true;
+
Glib::ustring name = action.get_name();
std::cout << "The name is '" << name << "'." << std::endl;
+ success &= name == "custom-name";
+
std::cout << "The name property of the implemented interface is '"
<< action.property_name().get_value() << "'." << std::endl;
+ success &= action.property_name().get_value() == "";
+
std::cout << "The custom string property is '"
<< action.property.get_value() << "'." << std::endl;
+ success &= action.property.get_value() == "Initial value.";
action.property = "A new value.";
std::cout << "The custom string property (after changing it) is '"
<< action.property.get_value() << "'." << std::endl;
+ success &= action.property.get_value() == "A new value.";
- gchar* prop_value = 0;
+ gchar* prop_value = nullptr;
g_object_set(action.gobj(), "custom_property", "Another value", NULL);
g_object_get(action.gobj(), "custom_property", &prop_value, NULL);
- std::cout << "The custom property after g_object_get/set() is '"
+ std::cout << "The custom property after g_object_set/get() is '"
<< prop_value << "'." << std::endl;
+ success &= std::strcmp(prop_value, "Another value") == 0;
+ g_free(prop_value);
+ prop_value = nullptr;
+
std::cout << "The custom property through the Glib::Property<> is '"
<< action.property.get_value() << "'." << std::endl;
+ success &= action.property.get_value() == "Another value";
+
std::cout << "The name property of the implemented interface is '"
<< action.property_name().get_value() << "'." << std::endl;
- g_assert(get_name_called);
+ success &= action.property_name().get_value() == "";
+ success &= get_name_called;
+
+ // Check if other vfuncs leak memory. Use valgrind!
+ action.get_parameter_type();
+ action.get_state_type();
+ action.get_state_type();
+ action.get_state_hint_variant();
+ action.get_state_variant();
+ action.get_enabled();
- return EXIT_SUCCESS;
+ return success ? EXIT_SUCCESS : EXIT_FAILURE;
}
diff --git a/tests/glibmm_mainloop/main.cc b/tests/glibmm_mainloop/main.cc
index fbf70027..56bd02d9 100644
--- a/tests/glibmm_mainloop/main.cc
+++ b/tests/glibmm_mainloop/main.cc
@@ -50,8 +50,8 @@ bool mark_and_quit(const Glib::Threads::Thread* expected_thread,
void thread_function(const Glib::Threads::Thread* first_thread,
const Glib::RefPtr<Glib::MainLoop>& first_mainloop)
{
- Glib::RefPtr<Glib::MainContext> second_context = Glib::MainContext::create();
- Glib::RefPtr<Glib::MainLoop> second_mainloop = Glib::MainLoop::create(second_context);
+ auto second_context = Glib::MainContext::create();
+ auto second_mainloop = Glib::MainLoop::create(second_context);
// Show how Glib::MainContext::invoke() can be used for calling a function,
// possibly executed in another thread.
@@ -75,7 +75,7 @@ int main(int, char**)
{
Glib::init();
- Glib::RefPtr<Glib::MainLoop> first_mainloop = Glib::MainLoop::create();
+ auto first_mainloop = Glib::MainLoop::create();
// This thread shall be the owner of the default main context, when
// thread_function() calls mark_and_quit() via Glib::MainContext::invoke(),
diff --git a/tests/glibmm_refptr/main.cc b/tests/glibmm_refptr/main.cc
new file mode 100644
index 00000000..d03b2249
--- /dev/null
+++ b/tests/glibmm_refptr/main.cc
@@ -0,0 +1,275 @@
+// Bug 564005 - Valgrind errors and crash on exit with Gtk::UIManager
+// Bug 154498 - Unnecessary warning on console: signalproxy_connectionnode.cc
+
+
+#include <glibmm.h>
+#include <sigc++/sigc++.h>
+#include <iostream>
+#include <stdlib.h>
+
+#define ACTIVATE_BUG 1
+
+// A class with its own reference-count, for use with RefPtr.
+class Something
+{
+public:
+ Something()
+ : ref_count_(1),
+ max_ref_count_(ref_count_)
+ {}
+
+ void reference()
+ {
+ ++ref_count_;
+
+ //Track the highest-ever max count.
+ if(max_ref_count_ < ref_count_)
+ max_ref_count_ = ref_count_;
+ }
+
+ void unreference()
+ {
+ if (--ref_count_ <= 0)
+ delete this;
+ }
+
+ //Just so we can check it in our test.
+ int ref_count()
+ {
+ return ref_count_;
+ }
+
+ //Just so we can check it in our test.
+ int max_ref_count()
+ {
+ return max_ref_count_;
+ }
+
+
+private:
+ int ref_count_;
+ int max_ref_count_;
+};
+
+class SomethingDerived : public Something
+{
+};
+
+class Parent
+{
+public:
+ explicit Parent(const Glib::RefPtr<Something>& something)
+ : something_(something),
+ was_constructed_via_copy_constructor_(true),
+ was_constructed_via_move_constructor_(false)
+ {
+ }
+
+ explicit Parent(Glib::RefPtr<Something>&& something)
+ : something_(std::move(something)),
+ was_constructed_via_copy_constructor_(false),
+ was_constructed_via_move_constructor_(true)
+ {
+ }
+
+ //Non copyable
+ Parent(const Parent& src) = delete;
+ Parent& operator=(const Parent& src) = delete;
+
+ bool was_constructed_via_copy_constructor() const
+ {
+ return was_constructed_via_copy_constructor_;
+ }
+
+ bool was_constructed_via_move_constructor() const
+ {
+ return was_constructed_via_move_constructor_;
+ }
+
+ int something_ref_count() const
+ {
+ return something_->ref_count();
+ }
+
+ int something_max_ref_count() const
+ {
+ return something_->max_ref_count();
+ }
+
+private:
+ Glib::RefPtr<Something> something_;
+ bool was_constructed_via_copy_constructor_;
+ bool was_constructed_via_move_constructor_;
+
+};
+
+static
+void test_initial_refcount()
+{
+ Glib::RefPtr<Something> refSomething (new Something());
+ g_assert_cmpint(refSomething->ref_count(), ==, 1);
+ g_assert_cmpint(refSomething->max_ref_count(), ==, 1);
+}
+
+static
+void test_refptr_copy_constructor()
+{
+ Glib::RefPtr<Something> refSomething (new Something());
+ g_assert_cmpint(refSomething->ref_count(), ==, 1);
+ g_assert_cmpint(refSomething->max_ref_count(), ==, 1);
+
+ {
+ Glib::RefPtr<Something> refSomething2(refSomething);
+ g_assert_cmpint(refSomething->ref_count(), ==, 2);
+ g_assert_cmpint(refSomething2->ref_count(), ==, 2);
+ g_assert_cmpint(refSomething->max_ref_count(), ==, 2);
+ }
+
+ //Test the refcount after other references should have been released
+ //when other RefPtrs went out of scope:
+ g_assert_cmpint(refSomething->ref_count(), ==, 1);
+ g_assert_cmpint(refSomething->max_ref_count(), ==, 2);
+}
+
+static
+void test_refptr_assignment_operator()
+{
+ Glib::RefPtr<Something> refSomething (new Something());
+ g_assert_cmpint(refSomething->ref_count(), ==, 1);
+ g_assert_cmpint(refSomething->max_ref_count(), ==, 1);
+
+ {
+ Glib::RefPtr<Something> refSomething2 = refSomething;
+ g_assert_cmpint(refSomething->ref_count(), ==, 2);
+ g_assert_cmpint(refSomething2->ref_count(), ==, 2);
+ g_assert_cmpint(refSomething->max_ref_count(), ==, 2);
+ }
+
+ //Test the refcount after other references should have been released
+ //when other RefPtrs went out of scope:
+ g_assert_cmpint(refSomething->ref_count(), ==, 1);
+ g_assert_cmpint(refSomething->max_ref_count(), ==, 2);
+}
+
+
+
+static
+Glib::RefPtr<Something> get_something()
+{
+ static Glib::RefPtr<Something> something_to_get;
+
+ //Reinitialize it each time:
+ something_to_get = Glib::RefPtr<Something>(new Something());
+
+ return something_to_get;
+}
+
+static
+void test_refptr_with_parent_copy_constructor()
+{
+ //We use get_something() because test_refptr_with_parent_move_constructor() does.
+ Glib::RefPtr<Something> refSomething = get_something();
+ g_assert_cmpint(refSomething->ref_count(), ==, 2); //1 here and 1 inside get_something()
+ g_assert_cmpint(refSomething->max_ref_count(), ==, 2);
+
+ {
+ Parent parent(refSomething);
+ g_assert(!parent.was_constructed_via_move_constructor());
+ g_assert(parent.was_constructed_via_copy_constructor());
+ g_assert_cmpint(parent.something_ref_count(), ==, 3); //1 here, 1 in parent, and 1 inside get_something()
+ g_assert_cmpint(parent.something_max_ref_count(), ==, 3);
+ }
+
+ //Test the refcount after other references should have been released
+ //when other RefPtrs went out of scope:
+ g_assert_cmpint(refSomething->ref_count(), ==, 2); //1 here and 1 inside get_something()
+ g_assert_cmpint(refSomething->max_ref_count(), ==, 3);
+}
+
+static
+void test_refptr_with_parent_move_constructor()
+{
+ Parent parent(get_something());
+ g_assert(parent.was_constructed_via_move_constructor());
+ g_assert(!parent.was_constructed_via_copy_constructor());
+ g_assert_cmpint(parent.something_ref_count(), ==, 2); //1 in parent and 1 inside get_something()
+ g_assert_cmpint(parent.something_max_ref_count(), ==, 2);
+}
+
+static
+void test_refptr_move_constructor()
+{
+ Glib::RefPtr<Something> refSomething(new Something());
+ Glib::RefPtr<Something> refSomething2(std::move(refSomething));
+ g_assert_cmpint(refSomething2->ref_count(), ==, 1);
+ g_assert(!refSomething);
+ g_assert_cmpint(refSomething2->max_ref_count(), ==, 1);
+}
+
+static
+void test_refptr_move_assignment_operator()
+{
+ Glib::RefPtr<Something> refSomething(new Something());
+ Glib::RefPtr<Something> refSomething2;
+ refSomething2 = std::move(refSomething);
+ g_assert_cmpint(refSomething2->ref_count(), ==, 1);
+ g_assert(!refSomething);
+ g_assert_cmpint(refSomething2->max_ref_count(), ==, 1);
+}
+
+static
+void test_refptr_universal_reference_move_constructor()
+{
+ Glib::RefPtr<SomethingDerived> refSomethingDerived(new SomethingDerived());
+ Glib::RefPtr<Something> refSomething(std::move(refSomethingDerived));
+ g_assert_cmpint(refSomething->ref_count(), ==, 1);
+ g_assert(!refSomethingDerived);
+ g_assert_cmpint(refSomething->max_ref_count(), ==, 1);
+}
+
+static
+void test_refptr_universal_reference_asignment_operator()
+{
+ Glib::RefPtr<SomethingDerived> refSomethingDerived(new SomethingDerived());
+ Glib::RefPtr<Something> refSomething;
+ refSomething = std::move(refSomethingDerived);
+ g_assert_cmpint(refSomething->ref_count(), ==, 1);
+ g_assert(!refSomethingDerived);
+ g_assert_cmpint(refSomething->max_ref_count(), ==, 1);
+}
+
+int main(int, char**)
+{
+ //Test initial refcount:
+ test_initial_refcount();
+
+ //Test refcount when using the RefPtr copy constructor:
+ test_refptr_copy_constructor();
+
+ //Test refcount when using the RefPtr assignment operator (operator=):
+ test_refptr_assignment_operator();
+
+ //Test the refcount when using the RefPtr move constuctor:
+ test_refptr_move_constructor();
+
+ //Test the refcount when using the RefPtr move asignment operator (operator=):
+ test_refptr_move_assignment_operator();
+
+ //Test the refcount when another class makes a copy via its constructor:
+ test_refptr_with_parent_copy_constructor();
+
+ //Test the refcount when another class makes a copy via its
+ //(perfect-forwarding) move constructor, which should not involve a temporary
+ //instance:
+ test_refptr_with_parent_move_constructor();
+
+ //Test the refcount when using the RefPtr move constructor with derived class
+ //as an argument.
+ test_refptr_universal_reference_move_constructor();
+
+ //Test the refcount when using the RefPtr assignment operator (operator=)
+ //with derived class as an argument.
+ test_refptr_universal_reference_asignment_operator();
+
+ return EXIT_SUCCESS;
+}
diff --git a/tests/glibmm_refptr_sigc_bind/main.cc b/tests/glibmm_refptr_sigc_bind/main.cc
index 27b54e9e..38fe93b1 100644
--- a/tests/glibmm_refptr_sigc_bind/main.cc
+++ b/tests/glibmm_refptr_sigc_bind/main.cc
@@ -1,7 +1,6 @@
// Bug 564005 - Valgrind errors and crash on exit with Gtk::UIManager
// Bug 154498 - Unnecessary warning on console: signalproxy_connectionnode.cc
-// libsigc++-only test case. (Or almost so. glib_refptr.h is stolen from glibmm.)
#include <glibmm/refptr.h>
#include <sigc++/sigc++.h>
diff --git a/tests/glibmm_valuearray/main.cc b/tests/glibmm_valuearray/main.cc
index 2139d436..ca111432 100644
--- a/tests/glibmm_valuearray/main.cc
+++ b/tests/glibmm_valuearray/main.cc
@@ -41,23 +41,23 @@ int on_compare(const Glib::ValueBase& v1, const Glib::ValueBase& v2)
int main(int, char**)
{
- const int VALUES = 10;
+ const int VALUES_COUNT = 10;
Glib::init();
- Glib::Value<int> value[VALUES];
+ Glib::Value<int> values[VALUES_COUNT];
Glib::ValueArray array;
- for(int i = 0; i < VALUES; i++)
+ for(int i = 0; i < VALUES_COUNT; i++)
{
- value[i].init(Glib::Value<int>::value_type());
- value[i].set(i + 1); // (i + 1) ==> Set to natural counting numbers.
- array.prepend(value[i]);
+ values[i].init(Glib::Value<int>::value_type());
+ values[i].set(i + 1); // (i + 1) ==> Set to natural counting numbers.
+ array.prepend(values[i]);
}
ostr << "Array members before sorting:" << std::endl;
- for(int i = 0; i < VALUES; i++)
+ for(int i = 0; i < VALUES_COUNT; i++)
{
Glib::ValueBase value;
@@ -69,18 +69,18 @@ int main(int, char**)
break;
}
- Glib::Value<int> int_val = static_cast< Glib::Value<int>& >(value);
+ auto int_val = static_cast< Glib::Value<int>& >(value);
ostr << int_val.get() << " ";
}
ostr << std::endl; // End of line for list of array elements.
// Sort array and remove last element:
- array.sort(sigc::ptr_fun(&on_compare)).remove(VALUES - 1);
+ array.sort(sigc::ptr_fun(&on_compare)).remove(VALUES_COUNT - 1);
ostr << "Array members after sorting without last element:" <<
std::endl;
- for(int i = 0; i < VALUES - 1; i++)
+ for(int i = 0; i < VALUES_COUNT - 1; i++)
{
Glib::ValueBase value;
@@ -92,7 +92,7 @@ int main(int, char**)
break;
}
- Glib::Value<int> int_val = static_cast< Glib::Value<int>& >(value);
+ auto int_val = static_cast< Glib::Value<int>& >(value);
ostr << int_val.get() << " ";
}
ostr << std::endl; // End of line for list of array elements.
diff --git a/tests/glibmm_variant/main.cc b/tests/glibmm_variant/main.cc
index 086719f2..47943de3 100644
--- a/tests/glibmm_variant/main.cc
+++ b/tests/glibmm_variant/main.cc
@@ -26,10 +26,10 @@ int main(int, char**)
for(guint i = 0; i < int_vector.size(); i++)
ostr << int_vector[i] << std::endl;
- Glib::Variant< std::vector<int> > integers_variant =
+ auto integers_variant =
Glib::Variant< std::vector<int> >::create(int_vector);
- std::vector<int> int_vector2 = integers_variant.get();
+ auto int_vector2 = integers_variant.get();
ostr << "The size of the copied vector is " << int_vector2.size() <<
'.' << std::endl;
@@ -53,7 +53,7 @@ int main(int, char**)
//vector<std::string>:
std::vector<std::string> vec_strings;
vec_strings.push_back("a");
- Glib::Variant<std::vector<std::string> > variant_vec_strings =
+ auto variant_vec_strings =
Glib::Variant<std::vector<std::string> >::create(vec_strings);
//Dict:
@@ -65,7 +65,7 @@ int main(int, char**)
ostr << "The original dictionary entry is (" << dict_entry.first <<
", " << dict_entry.second << ")." << std::endl;
- Glib::Variant<TypeDictEntry> dict_entry_variant =
+ auto dict_entry_variant =
Glib::Variant<TypeDictEntry>::create(dict_entry);
TypeDictEntry copy_entry = dict_entry_variant.get();
@@ -92,7 +92,7 @@ int main(int, char**)
ostr << "(" << i << ", " << orig_dict[i] << ")." << std::endl;
}
- Glib::Variant<TypeDict> orig_dict_variant =
+ auto orig_dict_variant =
Glib::Variant<TypeDict>::create(orig_dict);
TypeDict dict_copy = orig_dict_variant.get();
@@ -106,7 +106,7 @@ int main(int, char**)
index = 3;
- std::pair<unsigned, Glib::ustring> a_pair = orig_dict_variant.get_child(index);
+ auto a_pair = orig_dict_variant.get_child(index);
ostr << "Element number " << index + 1 << " in the variant is: (" <<
a_pair.first << ", " << a_pair.second << ")." << std::endl;
@@ -134,7 +134,7 @@ int main(int, char**)
Glib::ustring s = "String " + ss.str();
- Glib::Variant<int> v = Glib::Variant<int>::create(i);
+ auto v = Glib::Variant<int>::create(i);
complex_dict1.insert(
std::pair< Glib::ustring, Glib::Variant<int> >("Map 1 " + s, v));
@@ -150,7 +150,7 @@ int main(int, char**)
complex_vector.push_back(complex_dict1);
complex_vector.push_back(complex_dict2);
- Glib::Variant<ComplexVecType> complex_variant =
+ auto complex_variant =
Glib::Variant<ComplexVecType>::create(complex_vector);
// This will output the type string aa{sv}.
@@ -166,10 +166,8 @@ int main(int, char**)
ComplexDictType map = copy_complex_vector[i];
- for(ComplexDictType::const_iterator iter = map.begin();
- iter != map.end(); iter++)
+ for(const auto& entry : map)
{
- std::pair< Glib::ustring, Glib::Variant<int> > entry = *iter;
ostr << entry.first << " -> " << entry.second.get() << "." << std::endl;
}
ostr << std::endl;
@@ -189,7 +187,7 @@ static void test_dynamic_cast_ustring_types()
try
{
- Glib::Variant<Glib::ustring> derived =
+ auto derived =
Glib::VariantBase::cast_dynamic< Glib::Variant<Glib::ustring> >(vbase_string);
ostr << "Casted string Glib::Variant<Glib::ustring>: " << derived.get() << std::endl;
}
@@ -204,7 +202,7 @@ static void test_dynamic_cast_ustring_types()
try
{
- Glib::Variant<Glib::ustring> derived =
+ auto derived =
Glib::VariantBase::cast_dynamic< Glib::Variant<Glib::ustring> >(vbase_objectpath);
ostr << "Casted object path Glib::Variant<Glib::ustring>: " << derived.get() << std::endl;
}
@@ -218,7 +216,7 @@ static void test_dynamic_cast_ustring_types()
try
{
- Glib::Variant<Glib::ustring> derived =
+ auto derived =
Glib::VariantBase::cast_dynamic< Glib::Variant<Glib::ustring> >(vbase_signature);
ostr << "Casted signature Glib::Variant<Glib::ustring>: " << derived.get() << std::endl;
}
@@ -237,7 +235,7 @@ static void test_dynamic_cast_string_types()
try
{
- Glib::Variant<std::string> derived =
+ auto derived =
Glib::VariantBase::cast_dynamic< Glib::Variant<std::string> >(vbase_string);
ostr << "Casted string Glib::Variant<std::string>: " << derived.get() << std::endl;
}
@@ -252,7 +250,7 @@ static void test_dynamic_cast_string_types()
try
{
- Glib::Variant<std::string> derived =
+ auto derived =
Glib::VariantBase::cast_dynamic< Glib::Variant<std::string> >(vbase_objectpath);
ostr << "Casted object path Glib::Variant<std::string>: " << derived.get() << std::endl;
}
@@ -266,7 +264,7 @@ static void test_dynamic_cast_string_types()
try
{
- Glib::Variant<std::string> derived =
+ auto derived =
Glib::VariantBase::cast_dynamic< Glib::Variant<std::string> >(vbase_signature);
ostr << "Casted signature Glib::Variant<std::string>: " << derived.get() << std::endl;
}
@@ -276,11 +274,69 @@ static void test_dynamic_cast_string_types()
}
}
+// Test casting a complicated type, containing an object path and a DBus type signature.
+void test_dynamic_cast_composite_types()
+{
+ // Build a GVaraint of type a{oag}, and cast it to
+ // Glib::Variant<std::map<Glib::ustring, std::vector<std::string>>>.
+ // 'o' is VARIANT_TYPE_OBJECT_PATH and 'g' is VARIANT_TYPE_SIGNATURE.
+
+ GVariantBuilder dict_builder;
+ GVariantBuilder array_builder;
+ g_variant_builder_init(&dict_builder, G_VARIANT_TYPE("a{oag}"));
+
+ g_variant_builder_init(&array_builder, G_VARIANT_TYPE("ag"));
+ g_variant_builder_add(&array_builder, "g","id");
+ g_variant_builder_add(&array_builder, "g","isi");
+ g_variant_builder_add(&array_builder, "g","ia{si}");
+ g_variant_builder_add(&dict_builder, "{oag}", "/remote/object/path1", &array_builder);
+
+ g_variant_builder_init(&array_builder, G_VARIANT_TYPE("ag"));
+ g_variant_builder_add(&array_builder, "g","i(d)");
+ g_variant_builder_add(&array_builder, "g","i(si)");
+ g_variant_builder_add(&dict_builder, "{oag}", "/remote/object/path2", &array_builder);
+
+ Glib::VariantBase cppdict(g_variant_builder_end(&dict_builder));
+
+ try
+ {
+ typedef std::map<Glib::ustring, std::vector<std::string> > composite_type;
+ auto derived =
+ Glib::VariantBase::cast_dynamic<Glib::Variant<composite_type> >(cppdict);
+
+ ostr << "Cast composite type (get_type_string()=" << derived.get_type_string()
+ << ", variant_type().get_string()=" << derived.variant_type().get_string() << "): ";
+ composite_type var = derived.get();
+ for (const auto& the_pair : var)
+ {
+ ostr << "\n " << the_pair.first << ":";
+ const auto& vec = the_pair.second;
+ for (const auto& str : vec)
+ ostr << " " << str;
+ }
+ ostr << std::endl;
+ }
+ catch (const std::bad_cast& e)
+ {
+ g_assert_not_reached();
+ }
+
+ try
+ {
+ auto derived =
+ Glib::VariantBase::cast_dynamic<Glib::Variant<std::map<Glib::ustring, std::string> > >(cppdict);
+ g_assert_not_reached();
+ }
+ catch (const std::bad_cast& e)
+ {
+ }
+}
+
static void test_dynamic_cast()
{
- Glib::Variant<int> v1 = Glib::Variant<int>::create(10);
+ auto v1 = Glib::Variant<int>::create(10);
Glib::VariantBase& v2 = v1;
- Glib::Variant<int> v3 = Glib::VariantBase::cast_dynamic<Glib::Variant<int> >(v2);
+ auto v3 = Glib::VariantBase::cast_dynamic<Glib::Variant<int> >(v2);
g_assert(v3.get() == 10);
Glib::VariantBase v5 = v1;
@@ -327,7 +383,7 @@ static void test_dynamic_cast()
type_dict_sv var_map;
type_map_sv map;
- Glib::Variant<Glib::ustring> var_string =
+ auto var_string =
Glib::Variant<Glib::ustring>::create("test variant");
map["test key"] = var_string;
var_map = type_dict_sv::create(map);
@@ -338,7 +394,7 @@ static void test_dynamic_cast()
try
{
- Glib::Variant<std::map<Glib::ustring, Glib::ustring> > var_wrong_map =
+ auto var_wrong_map =
Glib::VariantBase::cast_dynamic<Glib::Variant<std::map<Glib::ustring, Glib::ustring> > >(ref_var_base);
g_assert_not_reached();
}
@@ -351,14 +407,15 @@ static void test_dynamic_cast()
g_assert(var_string.get() == "test variant");
// A variant of type v
- Glib::Variant<Glib::VariantBase> var_v = Glib::Variant<Glib::VariantBase>::create(var_string);
+ auto var_v = Glib::Variant<Glib::VariantBase>::create(var_string);
g_assert(var_v.get_type_string() == "v");
- Glib::Variant<Glib::ustring> var_s2 =
+ auto var_s2 =
Glib::VariantBase::cast_dynamic<Glib::Variant<Glib::ustring> >(var_v.get());
g_assert(var_s2.get() == "test variant");
test_dynamic_cast_ustring_types();
test_dynamic_cast_string_types();
+ test_dynamic_cast_composite_types();
}
static GLogLevelFlags
diff --git a/tests/glibmm_vector/main.cc b/tests/glibmm_vector/main.cc
index b1ae14bb..d184ecc0 100644
--- a/tests/glibmm_vector/main.cc
+++ b/tests/glibmm_vector/main.cc
@@ -40,7 +40,7 @@ const unsigned int magic_limit(5);
GList*
create_list()
{
- GList* head = 0;
+ GList* head = nullptr;
for(unsigned int iter(0); iter < magic_limit; ++iter)
{
@@ -142,7 +142,7 @@ copy_array(GCredentials** array)
{
dup[iter] = array[iter];
}
- dup[magic_limit] = 0;
+ dup[magic_limit] = nullptr;
return dup;
}
diff --git a/tools/defs_gen/docextract.py b/tools/defs_gen/docextract.py
index 7bf49119..1b18f56c 100644
--- a/tools/defs_gen/docextract.py
+++ b/tools/defs_gen/docextract.py
@@ -12,12 +12,17 @@ import sys, os, re
# option being specified.
no_since = False
+# Used to tell if extract() shall collect information from subdirectories.
+# This variable is modified from docextract_to_xml based on the --no-recursion
+# option being specified.
+no_recursion = False
+
__all__ = ['extract']
class GtkDoc:
def __init__(self):
self.name = None
- # The block type ('function', 'signal', property', 'enum')
+ # The block type ('function', 'signal', property', 'section', 'enum')
self.block_type = ''
self.params = []
self.annotations = []
@@ -65,6 +70,7 @@ function_name_pattern = re.compile(r'^([a-z]\w*)\s*:?(\s*\(.*\)\s*){0,2}\s*$')
signal_name_pattern = re.compile(r'^([A-Z]\w+::[a-z0-9-]+)\s*:?(\s*\(.*\)\s*){0,2}\s*$')
property_name_pattern = re.compile(r'^([A-Z]\w+:[a-z0-9-]+)\s*:?(\s*\(.*\)\s*){0,2}\s*$')
enum_name_pattern = re.compile(r'^([A-Z]\w+)\s*:?(\s*\(.*\)\s*){0,2}\s*$')
+section_name_pattern = re.compile(r'^(SECTION:[a-z0-9_-]+)\s*:?(\s*\(.*\)\s*){0,2}\s*$')
return_pattern = re.compile(r'^@?(returns:|return\s+value:)(.*\n?)$', re.IGNORECASE)
deprecated_pattern = re.compile(r'^(deprecated\s*:\s*.*\n?)$', re.IGNORECASE)
rename_to_pattern = re.compile(r'^(rename\s+to)\s*:\s*(.*\n?)$', re.IGNORECASE)
@@ -77,9 +83,13 @@ annotation_lead_pattern = re.compile(r'^\s*\(\s*(.*?)\s*\)\s*')
# These patterns determine the identifier of the current comment block. They
# are grouped in a list for easy determination of block identifiers (in
-# skip_to_identifier). The function_name_pattern should be tested for last
-# because it always matches signal and property identifiers.
-identifier_patterns = [ signal_name_pattern, property_name_pattern, enum_name_pattern, function_name_pattern ]
+# skip_to_identifier).
+# The function_name_pattern shall be tested for last, because it always matches
+# signal and property identifiers.
+# The property_name_pattern shall be tested for after the section_name_pattern,
+# because the property_name_pattern matches most section identifiers.
+identifier_patterns = [ signal_name_pattern, section_name_pattern,
+ property_name_pattern, enum_name_pattern, function_name_pattern ]
# This pattern is to match return sections that forget to have a colon (':')
# after the initial 'Return' phrase. It is not included by default in the list
@@ -195,6 +205,8 @@ def skip_to_identifier(fp, line, cur_doc):
# Set the GtkDoc type.
if pattern == signal_name_pattern:
cur_doc.set_type('signal')
+ elif pattern == section_name_pattern:
+ cur_doc.set_type('section')
elif pattern == property_name_pattern:
cur_doc.set_type('property')
elif pattern == enum_name_pattern:
@@ -450,8 +462,9 @@ def parse_dir(dir, doc_dict):
if file in ('.', '..'): continue
path = os.path.join(dir, file)
if os.path.isdir(path):
- parse_dir(path, doc_dict)
- if len(file) > 2 and (file[-2:] == '.c' or file[-2:] == '.h'):
+ if not no_recursion:
+ parse_dir(path, doc_dict)
+ elif len(file) > 2 and file[-2:] in ('.c', '.h'):
sys.stderr.write("Processing " + path + '\n')
parse_file(open(path, 'r'), doc_dict)
@@ -504,6 +517,6 @@ def extract_tmpl(dirs, doc_dict=None):
path = os.path.join(dir, file)
if os.path.isdir(path):
continue
- if len(file) > 2 and file[-2:] == '.sgml':
+ if len(file) > 5 and file[-5:] == '.sgml':
parse_tmpl(open(path, 'r'), doc_dict)
return doc_dict
diff --git a/tools/defs_gen/docextract_to_xml.py b/tools/defs_gen/docextract_to_xml.py
index 4222250a..a3221350 100755
--- a/tools/defs_gen/docextract_to_xml.py
+++ b/tools/defs_gen/docextract_to_xml.py
@@ -14,8 +14,8 @@ import docextract
def usage():
sys.stderr.write('usage: docextract_to_xml.py ' +
- '[-s /src/dir | --source-dir=/src/dir] ' +
- '[-a | --with-annotations] [-p | --with-properties] ' +
+ '[-s /src/dir | --source-dir=/src/dir] [-a | --with-annotations] ' +
+ '[-p | --with-properties] [-c | --with-sections] [-r | --no-recursion] ' +
'[-n | --no-since] [-i | --no-signals ] [-e | --no-enums ]\n')
sys.exit(1)
@@ -61,10 +61,11 @@ def print_annotations(annotations):
if __name__ == '__main__':
try:
- opts, args = getopt.getopt(sys.argv[1:], "d:s:o:apnie",
+ opts, args = getopt.getopt(sys.argv[1:], "d:s:o:apcrnie",
["source-dir=", "with-annotations",
- "with-properties", "no-since",
- "no-signals", "no-enums"])
+ "with-properties", "with-sections",
+ "no-recursion", "no-since",
+ "no-signals", "no-enums"])
except getopt.error as e:
sys.stderr.write('docextract_to_xml.py: %s\n' % e)
usage()
@@ -72,6 +73,7 @@ if __name__ == '__main__':
with_annotations = False
with_signals = True
with_properties = False
+ with_sections = False
with_enums = True
for opt, arg in opts:
if opt in ('-s', '--source-dir'):
@@ -80,6 +82,10 @@ if __name__ == '__main__':
with_annotations = True
if opt in ('-p', '--with-properties'):
with_properties = True
+ if opt in ('-c', '--with-sections'):
+ with_sections = True
+ if opt in ('-r', '--no-recursion'):
+ docextract.no_recursion = True
if opt in ('-n', '--no-since'):
docextract.no_since = True
if opt in ('-i', '--no-signals'):
@@ -99,8 +105,8 @@ if __name__ == '__main__':
print("<root>")
for name, value in sorted(docs.items()):
- # Get the type of comment block ('function', 'signal' or
- # 'property') (the value is a GtkDoc).
+ # Get the type of comment block ('function', 'signal',
+ # 'property', 'section' or 'enum') (the value is a GtkDoc).
block_type = value.get_type()
# Skip signals if the option was not specified.
@@ -109,6 +115,18 @@ if __name__ == '__main__':
# Likewise for properties.
elif block_type == 'property' and not with_properties:
continue
+ # Likewise for sections.
+ elif block_type == 'section':
+ if not with_sections:
+ continue
+ # Delete 'SECTION:' from the name.
+ # (It could easily be deleted by docextract.extract(), but then
+ # there would be a theoretical risk that a section name would
+ # be identical to a function name, when all kinds of elements
+ # are stored in the docs dictionary with their names as key.)
+ last_colon_pos = name.rfind(':')
+ if last_colon_pos >= 0:
+ name = name[last_colon_pos+1:]
# Likewise for enums.
elif block_type == 'enum' and not with_enums:
continue
@@ -133,9 +151,9 @@ if __name__ == '__main__':
print("</parameters>")
- if block_type != 'property' and block_type != 'enum':
- # Show the return-type (also if not dealing with a property or
- # enum):
+ if block_type not in ('property', 'section', 'enum'):
+ # Show the return-type if not dealing with a property, section
+ # or enum:
if with_annotations:
print("<return>")
print("<return_description>" + escape_text(value.ret[0]) + \
diff --git a/tools/defs_gen/h2def.py b/tools/defs_gen/h2def.py
index d0cd5a24..1f33771f 100755
--- a/tools/defs_gen/h2def.py
+++ b/tools/defs_gen/h2def.py
@@ -289,11 +289,11 @@ def clean_func(buf):
pat = re.compile(r"""\\\n""", re.MULTILINE)
buf = pat.sub('', buf)
- # Preprocess directives
+ # Preprocessor directives
pat = re.compile(r"""^[#].*?$""", re.MULTILINE)
buf = pat.sub('', buf)
- #typedefs, stucts, and enums
+ #typedefs, structs, and enums
pat = re.compile(r"""^(typedef|struct|enum)(\s|.|\n)*?;\s*""",
re.MULTILINE)
buf = pat.sub('', buf)
@@ -307,7 +307,7 @@ def clean_func(buf):
buf = pat.sub('', buf)
#strip *_DEPRECATED_IN_*_FOR (*):
- pat = re.compile(r"""[A-Z]+_DEPRECATED_IN_[0-9]_([0-9]*)_FOR\s*\(\S*\)\S*""", re.MULTILINE)
+ pat = re.compile(r"""[A-Z]+_DEPRECATED_IN_[0-9]_([0-9]*)_FOR\s*\(.*\)\S*""", re.MULTILINE)
buf = pat.sub('', buf)
#strip *_DEPRECATED*
diff --git a/tools/extra_defs_gen/generate_defs_gio.cc b/tools/extra_defs_gen/generate_defs_gio.cc
index 213f52e8..602b59b4 100644
--- a/tools/extra_defs_gen/generate_defs_gio.cc
+++ b/tools/extra_defs_gen/generate_defs_gio.cc
@@ -93,6 +93,7 @@ int main(int, char**)
<< get_defs(G_TYPE_SETTINGS_BACKEND)
<< get_defs(G_TYPE_SIMPLE_ASYNC_RESULT)
<< get_defs(G_TYPE_SIMPLE_ACTION)
+ << get_defs(G_TYPE_SIMPLE_IO_STREAM)
<< get_defs(G_TYPE_SUBPROCESS)
<< get_defs(G_TYPE_SUBPROCESS_LAUNCHER)
<< get_defs(G_TYPE_THEMED_ICON)
@@ -114,13 +115,18 @@ int main(int, char**)
<< get_defs(G_TYPE_SRV_TARGET)
<< get_defs(G_TYPE_RESOLVER)
<< get_defs(G_TYPE_NETWORK_ADDRESS)
+ << get_defs(G_TYPE_NETWORK_MONITOR)
<< get_defs(G_TYPE_NETWORK_SERVICE)
<< get_defs(G_TYPE_SETTINGS)
+ << get_defs(G_TYPE_SETTINGS_SCHEMA)
+ << get_defs(G_TYPE_SETTINGS_SCHEMA_KEY)
+ << get_defs(G_TYPE_SETTINGS_SCHEMA_SOURCE)
<< get_defs(G_TYPE_SIMPLE_PERMISSION)
<< get_defs(G_TYPE_SOCKET)
<< get_defs(G_TYPE_SOCKET_CLIENT)
<< get_defs(G_TYPE_SOCKET_CONNECTION)
<< get_defs(G_TYPE_TCP_CONNECTION)
+ << get_defs(G_TYPE_TCP_WRAPPER_CONNECTION)
<< get_defs(G_TYPE_TLS_BACKEND)
<< get_defs(G_TYPE_TLS_CERTIFICATE)
<< get_defs(G_TYPE_TLS_CLIENT_CONNECTION)
diff --git a/tools/extra_defs_gen/generate_extra_defs.cc b/tools/extra_defs_gen/generate_extra_defs.cc
index f209348c..bc8a78cf 100644
--- a/tools/extra_defs_gen/generate_extra_defs.cc
+++ b/tools/extra_defs_gen/generate_extra_defs.cc
@@ -69,7 +69,7 @@ std::string get_properties(GType gtype)
std::string strObjectName = g_type_name(gtype);
//Get the list of properties:
- GParamSpec** ppParamSpec = 0;
+ GParamSpec** ppParamSpec = nullptr;
guint iCount = 0;
if(G_TYPE_IS_OBJECT(gtype))
{
@@ -160,8 +160,8 @@ std::string get_signals(GType gtype, GTypeIsAPointerFunc is_a_pointer_func)
std::string strResult;
std::string strObjectName = g_type_name(gtype);
- gpointer gclass_ref = 0;
- gpointer ginterface_ref = 0;
+ gpointer gclass_ref = nullptr;
+ gpointer ginterface_ref = nullptr;
if(G_TYPE_IS_OBJECT(gtype))
gclass_ref = g_type_class_ref(gtype); //Ensures that class_init() is called.
@@ -220,16 +220,16 @@ std::string get_signals(GType gtype, GTypeIsAPointerFunc is_a_pointer_func)
{
strResult += " (parameters\n";
- for(unsigned i = 0; i < signalQuery.n_params; i++)
+ for(unsigned j = 0; j < signalQuery.n_params; j++)
{
- GType typeParamMangled = pParameters[i];
+ GType typeParamMangled = pParameters[j];
//Parameter name:
//We can't get the real parameter name from the GObject system. It's not registered with g_signal_new().
- gchar* pchNum = g_strdup_printf("%d", i);
+ gchar* pchNum = g_strdup_printf("%d", j);
std::string strParamName = "p" + std::string(pchNum);
g_free(pchNum);
- pchNum = 0;
+ pchNum = nullptr;
//Just like above, for the return type:
std::string strTypeName = get_type_name_signal( typeParamMangled & ~G_SIGNAL_TYPE_STATIC_SCOPE, is_a_pointer_func ); //The type is mangled with a flag. Hacky.
diff --git a/tools/gen_scripts/gio_generate_docs.sh b/tools/gen_scripts/gio_generate_docs.sh
index 7c815021..81fc2e8a 100755
--- a/tools/gen_scripts/gio_generate_docs.sh
+++ b/tools/gen_scripts/gio_generate_docs.sh
@@ -13,6 +13,7 @@ PREFIX="$JHBUILD_SOURCES"
ROOT_DIR="$(dirname "$0")/../.."
OUT_DIR="$ROOT_DIR/gio/src"
+PARAMS="--with-properties --no-recursion"
for dir in "$PREFIX"/glib/gio; do
PARAMS="$PARAMS -s $dir"
done
diff --git a/tools/gen_scripts/gio_generate_extra_defs.sh b/tools/gen_scripts/gio_generate_extra_defs.sh
index 4e428bdb..b4330d71 100755
--- a/tools/gen_scripts/gio_generate_extra_defs.sh
+++ b/tools/gen_scripts/gio_generate_extra_defs.sh
@@ -3,9 +3,36 @@
# This script assumes that it resides in the tools/gen_scripts directory and
# the defs file will be placed in gio/src.
+# To update the gio_signals.defs file:
+# 1. ./gio_generate_extra_defs.sh
+# Generates gio/src/gio_signals.defs.orig and gio/src/gio_signals.defs.
+# If any hunks from the patch file fail to apply, apply them manually to the
+# gio_signals.defs file, if required.
+# 2. Optional: Remove gio/src/gio_signals.defs.orig.
+
+# To update the gio_signals.defs file and the patch file:
+# 1. Like step 1 when updating only the gio_signals.defs file.
+# 2. Apply new patches manually to the gio_signals.defs file.
+# 3. ./gio_generate_extra_defs.sh --make-patch
+# 4. Like step 2 when updating only the gio_signals.defs file.
+
ROOT_DIR="$(dirname "$0")/../.."
GEN_DIR="$ROOT_DIR/tools/extra_defs_gen"
OUT_DIR="$ROOT_DIR/gio/src"
+OUT_FILE=gio_signals.defs
+OUT_DIR_FILE="$OUT_DIR"/$OUT_FILE
-"$GEN_DIR"/generate_defs_gio > "$OUT_DIR"/gio_signals.defs
-patch "$OUT_DIR"/gio_signals.defs "$OUT_DIR"/gio_signals.defs.patch
+if [ $# -eq 0 ]
+then
+ "$GEN_DIR"/generate_defs_gio > "$OUT_DIR_FILE"
+ # patch version 2.7.5 does not like directory names.
+ cd "$OUT_DIR"
+ PATCH_OPTIONS="--backup --version-control=simple --suffix=.orig"
+ patch $PATCH_OPTIONS $OUT_FILE $OUT_FILE.patch
+elif [ "$1" = "--make-patch" ]
+then
+ diff --unified=5 "$OUT_DIR_FILE".orig "$OUT_DIR_FILE" > "$OUT_DIR_FILE".patch
+else
+ echo "Usage: $0 [--make-patch]"
+ exit 1
+fi
diff --git a/tools/gen_scripts/glib_generate_docs.sh b/tools/gen_scripts/glib_generate_docs.sh
index a77c04a7..92a942ff 100755
--- a/tools/gen_scripts/glib_generate_docs.sh
+++ b/tools/gen_scripts/glib_generate_docs.sh
@@ -13,7 +13,8 @@ PREFIX="$JHBUILD_SOURCES"
ROOT_DIR="$(dirname "$0")/../.."
OUT_DIR="$ROOT_DIR/glib/src"
-for dir in "$PREFIX"/glib/{glib,gmodule,gobject,gthread}; do
+PARAMS="--with-properties --no-recursion"
+for dir in "$PREFIX"/glib/{glib,glib/deprecated,gmodule,gobject,gthread}; do
PARAMS="$PARAMS -s $dir"
done
diff --git a/tools/generate_wrap_init.pl.in b/tools/generate_wrap_init.pl.in
index 1381dfe3..f49fe2f2 100644
--- a/tools/generate_wrap_init.pl.in
+++ b/tools/generate_wrap_init.pl.in
@@ -66,7 +66,7 @@ while ($ARGV[0] =~ /^-/)
{
if ($ARGV[0] =~ /--namespace=(\S+)/)
{
- push(@namespace_whole, $1);
+ push(@namespace_whole, split('::', $1));
if($parent_dir eq "")
{ $parent_dir = lc($1) . "mm"; }
diff --git a/tools/gmmproc.in b/tools/gmmproc.in
index 8b576539..e9295031 100644
--- a/tools/gmmproc.in
+++ b/tools/gmmproc.in
@@ -123,22 +123,27 @@ if ($main::unwrapped)
# Don't take non-readable construct-only properties into account.
my @properties = grep { $$_{entity_type} eq 'property' and ( $$_{readable} or not $$_{construct_only} ) } @unwrapped;
+ # Don't print a name of any kind between the first and second colon on a line,
+ # if there is any chance that "error" is (part of) the name.
+ # MS Visual Studio will misunderstand.
+ # See https://mail.gnome.org/archives/gtkmm-list/2014-November/msg00044.html
+
local $, = "\ngmmproc: ";
local $\ = "\n";
if (@methods)
{
- print STDERR ("gmmproc: $main::source: Unwrapped functions:",
+ print STDERR ("gmmproc, $main::source: Unwrapped functions:",
map($$_{c_name}, @methods));
}
if (@properties)
{
- print STDERR ("gmmproc: $main::source: Unwrapped properties:",
+ print STDERR ("gmmproc, $main::source: Unwrapped properties:",
map($$_{class} . '::' . $$_{name}, @properties));
}
if (@signals)
{
- print STDERR ("gmmproc: $main::source: Unwrapped signals:",
+ print STDERR ("gmmproc, $main::source: Unwrapped signals:",
map($$_{class} . '::' . $$_{name}, @signals));
}
}
diff --git a/tools/m4/class_boxedtype.m4 b/tools/m4/class_boxedtype.m4
index 1a9b731f..1afa53a5 100644
--- a/tools/m4/class_boxedtype.m4
+++ b/tools/m4/class_boxedtype.m4
@@ -135,6 +135,20 @@ __CPPNAME__::__CPPNAME__`'(const __CPPNAME__& other)
gobject_ ((other.gobject_) ? __BOXEDTYPE_FUNC_COPY`'(other.gobject_) : 0)
{}
+__CPPNAME__::__CPPNAME__`'(__CPPNAME__&& other)
+:
+ gobject_(other.gobject_)
+{
+ other.gobject_ = nullptr;
+}
+
+__CPPNAME__& __CPPNAME__::operator=(__CPPNAME__`'&& other)
+{
+ __CPPNAME__ temp (other);
+ swap(temp);
+ return *this;
+}
+
ifdef(`__BOOL_CUSTOM_CTOR_CAST__',,`dnl else
__CPPNAME__::__CPPNAME__`'(__CNAME__* gobject, bool make_a_copy)
:
@@ -208,6 +222,9 @@ ifdef(`__BOOL_CUSTOM_CTOR_CAST__',,`dnl else
__CPPNAME__`'(const __CPPNAME__& other);
__CPPNAME__& operator=(const __CPPNAME__& other);
+ __CPPNAME__`'(__CPPNAME__&& other);
+ __CPPNAME__& operator=(__CPPNAME__&& other);
+
_IMPORT(SECTION_DTOR_DOCUMENTATION)
~__CPPNAME__`'();
diff --git a/tools/m4/class_gobject.m4 b/tools/m4/class_gobject.m4
index f097f180..edd0c5b5 100644
--- a/tools/m4/class_gobject.m4
+++ b/tools/m4/class_gobject.m4
@@ -115,7 +115,10 @@ ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl
_STRUCT_PROTOTYPE()
')dnl
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
__NAMESPACE_BEGIN__ class __CPPNAME__`'_Class; __NAMESPACE_END__
+#endif //DOXYGEN_SHOULD_SKIP_THIS
+
_SECTION(SECTION_HEADER3)
ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl
@@ -245,10 +248,9 @@ private:')dnl endif
friend class __CPPNAME__`'_Class;
static CppClassType `'__BASE__`'_class_;
-private:
// noncopyable
- __CPPNAME__`'(const __CPPNAME__&);
- __CPPNAME__& operator=(const __CPPNAME__&);
+ __CPPNAME__`'(const __CPPNAME__&) = delete;
+ __CPPNAME__& operator=(const __CPPNAME__&) = delete;
protected:
explicit __CPPNAME__`'(const Glib::ConstructParams& construct_params);
diff --git a/tools/m4/class_interface.m4 b/tools/m4/class_interface.m4
index fe4add6b..7226a32b 100644
--- a/tools/m4/class_interface.m4
+++ b/tools/m4/class_interface.m4
@@ -92,11 +92,11 @@ const Glib::Interface_Class& __CPPNAME__`'_Class::init()
void __CPPNAME__`'_Class::iface_init_function(void* g_iface, void*)
{
- BaseClassType *const klass = static_cast<BaseClassType*>(g_iface);
+ const auto klass = static_cast<BaseClassType*>(g_iface);
//This is just to avoid an "unused variable" warning when there are no vfuncs or signal handlers to connect.
//This is a temporary fix until I find out why I can not seem to derive a GtkFileChooser interface. murrayc
- g_assert(klass != 0);
+ g_assert(klass != nullptr);
_IMPORT(SECTION_PCC_CLASS_INIT_VFUNCS)
@@ -117,7 +117,10 @@ define(`_END_CLASS_INTERFACE',`
_SECTION(SECTION_HEADER1)
_STRUCT_PROTOTYPE()
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
__NAMESPACE_BEGIN__ class __CPPNAME__`'_Class; __NAMESPACE_END__
+#endif // DOXYGEN_SHOULD_SKIP_THIS
+
_SECTION(SECTION_HEADER3)
ifdef(`__BOOL_NO_WRAP_FUNCTION__',`dnl
@@ -231,14 +234,14 @@ public:
typedef __CNAME__ BaseObjectType;
typedef __CCLASS__ BaseClassType;
+ // noncopyable
+ __CPPNAME__`'(const __CPPNAME__&) = delete;
+ __CPPNAME__& operator=(const __CPPNAME__&) = delete;
+
private:
friend class __CPPNAME__`'_Class;
static CppClassType `'__BASE__`'_class_;
- // noncopyable
- __CPPNAME__`'(const __CPPNAME__&);
- __CPPNAME__& operator=(const __CPPNAME__&);
-
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
protected:
/**
diff --git a/tools/m4/class_opaque_copyable.m4 b/tools/m4/class_opaque_copyable.m4
index 9e53649e..f3fe4bd6 100644
--- a/tools/m4/class_opaque_copyable.m4
+++ b/tools/m4/class_opaque_copyable.m4
@@ -113,7 +113,7 @@ __CPPNAME__::__CPPNAME__`'(__CNAME__* castitem, bool make_a_copy /* = false */)
if(castitem)
gobject_ = __OPAQUE_FUNC_COPY`'(castitem);
else
- gobject_ = 0;
+ gobject_ = nullptr;
}
}
')
@@ -122,7 +122,7 @@ ifelse(__OPAQUE_FUNC_COPY,NONE,`dnl
',`dnl else
__CPPNAME__& __CPPNAME__::operator=(const __CPPNAME__`'& src)
{
- __CNAME__ *const new_gobject = (src.gobject_) ? __OPAQUE_FUNC_COPY`'(src.gobject_) : 0;
+ const auto new_gobject = (src.gobject_) ? __OPAQUE_FUNC_COPY`'(src.gobject_) : 0;
if(gobject_)
__OPAQUE_FUNC_FREE`'(gobject_);
diff --git a/tools/m4/class_opaque_refcounted.m4 b/tools/m4/class_opaque_refcounted.m4
index c9242baf..847ac3be 100644
--- a/tools/m4/class_opaque_refcounted.m4
+++ b/tools/m4/class_opaque_refcounted.m4
@@ -116,7 +116,7 @@ const __CNAME__* __CPPNAME__::gobj() const
__CNAME__* __CPPNAME__::gobj_copy() const
{
// See the comment at the top of this file, if you want to know why the cast works.
- __CNAME__ *const gobject = reinterpret_cast<__CNAME__*>(const_cast<__CPPNAME__*>(this));
+ const auto gobject = reinterpret_cast<__CNAME__*>(const_cast<__CPPNAME__*>(this));
__OPAQUE_FUNC_REF`'(gobject);
return gobject;
}
@@ -171,11 +171,11 @@ protected:
__CPPNAME__`'();
void operator delete(void*, std::size_t);
-private:
// noncopyable
- __CPPNAME__`'(const __CPPNAME__&);
- __CPPNAME__& operator=(const __CPPNAME__&);
+ __CPPNAME__`'(const __CPPNAME__&) = delete;
+ __CPPNAME__& operator=(const __CPPNAME__&) = delete;
+private:
_IMPORT(SECTION_CLASS2)
')
diff --git a/tools/m4/class_shared.m4 b/tools/m4/class_shared.m4
index 4175b575..3442ad15 100644
--- a/tools/m4/class_shared.m4
+++ b/tools/m4/class_shared.m4
@@ -190,7 +190,7 @@ ifdef(`__BOOL_DO_NOT_DERIVE_GTYPE__',`dnl
void __CPPNAME__`'_Class::class_init_function(void* g_class, void* class_data)
{
- BaseClassType *const klass = static_cast<BaseClassType*>(g_class);
+ const auto klass = static_cast<BaseClassType*>(g_class);
CppClassParent::class_init_function(klass, class_data);
_IMPORT(SECTION_PCC_CLASS_INIT_VFUNCS)
diff --git a/tools/m4/convert_gio.m4 b/tools/m4/convert_gio.m4
index 3d170668..8219d4d0 100644
--- a/tools/m4/convert_gio.m4
+++ b/tools/m4/convert_gio.m4
@@ -32,6 +32,8 @@ _CONV_ENUM(G,FileType)
_CONV_ENUM(G,MountMountFlags)
_CONV_ENUM(G,MountOperationResult)
_CONV_ENUM(G,MountUnmountFlags)
+_CONV_ENUM(G,NetworkConnectivity)
+_CONV_ENUM(G,NotificationPriority)
_CONV_ENUM(G,OutputStreamSpliceFlags)
_CONV_ENUM(G,PasswordSave)
_CONV_ENUM(G,ResolverRecordType)
@@ -240,6 +242,10 @@ _CONVERSION(`PasswordSave',`GPasswordSave',`($2)$3')
#MountOperation
#_CONVERSION(`GAskPasswordFlags',`AskPasswordFlags',`($2)$3')
+# NetworkMonitor
+_CONVERSION(`GNetworkMonitor*',`Glib::RefPtr<NetworkMonitor>',`Glib::wrap($3)')
+
+
# Notification
_CONVERSION(`GNotification*',`Glib::RefPtr<Notification>',`Glib::wrap($3)')
_CONVERSION(`const Glib::RefPtr<Notification>&',`GNotification*',__CONVERT_CONST_REFPTR_TO_P)
@@ -262,6 +268,14 @@ _CONVERSION(`GSettings*',`Glib::RefPtr<Settings>',`Glib::wrap($3)')
_CONVERSION(`const Glib::StringArrayHandle&',`const gchar*-const*',`($3).data()')
_CONVERSION(`const Glib::RefPtr<SettingsBackend>&',`GSettingsBackend*',__CONVERT_REFPTR_TO_P)
+_CONVERSION(`GSettingsSchemaKey*',`Glib::RefPtr<SettingsSchemaKey>',`Glib::wrap($3)')
+_CONVERSION(`GSettingsSchemaKey*',`Glib::RefPtr<const SettingsSchemaKey>',`Glib::wrap($3)')
+
+_CONVERSION(`GSettingsSchema*',`Glib::RefPtr<SettingsSchema>',`Glib::wrap($3)')
+_CONVERSION(`GSettingsSchema*',`Glib::RefPtr<const SettingsSchema>',`Glib::wrap($3)')
+
+_CONVERSION(`GSettingsSchemaSource*',`Glib::RefPtr<SettingsSchemaSource>',`Glib::wrap($3)')
+
#Socket
_CONVERSION(`const Glib::RefPtr<Socket>&',`GSocket*',__CONVERT_CONST_REFPTR_TO_P)
diff --git a/tools/m4/enum.m4 b/tools/m4/enum.m4
index 3ac338b2..dc988925 100644
--- a/tools/m4/enum.m4
+++ b/tools/m4/enum.m4
@@ -1,5 +1,6 @@
dnl
dnl _ENUM(cpp_type, c_type, value_suffix, `element_list', `flags', `optional_refdoc_comment', 'get_type_function_name')
+dnl $1 $2 $3 $4 $5 $6 $7
dnl
m4_define(`_ENUM',`dnl
_PUSH()
@@ -20,6 +21,7 @@ m4_define(`__DOCGROUP_'__MODULE_CANONICAL__`_ENUMS__')dnl
dnl
dnl
/** $6
+ *
* @ingroup __MODULE_CANONICAL__`'Enums
m4_ifelse($3,Flags,`dnl
* @par Bitwise operators:
diff --git a/tools/m4/filelist.am b/tools/m4/filelist.am
index 04d0b01b..55fedb2b 100644
--- a/tools/m4/filelist.am
+++ b/tools/m4/filelist.am
@@ -25,7 +25,6 @@ files_codegen_m4 = \
initialize_gio.m4 \
initialize_glib.m4 \
initialize_glibmm.m4 \
- list.m4 \
member.m4 \
method.m4 \
property.m4 \
diff --git a/tools/m4/gerror.m4 b/tools/m4/gerror.m4
index a8b8437e..e48aef6e 100644
--- a/tools/m4/gerror.m4
+++ b/tools/m4/gerror.m4
@@ -15,7 +15,7 @@ _POP()
class __CPPNAME__ : public Glib::Error
{
public:
- $6
+ /** $6
*/
enum Code
{
diff --git a/tools/m4/list.m4 b/tools/m4/list.m4
deleted file mode 100644
index 954beb19..00000000
--- a/tools/m4/list.m4
+++ /dev/null
@@ -1,232 +0,0 @@
-_PUSH()
-
-dnl
-dnl These variables affect the generation of the list
-dnl
-define(GP_LIST_HELPER_NAMESPACE,`define(`__LIST_NAMESPACE__',$1)')
-define(GP_LIST_ELEM,`define(`__LISTELEM__',`$*')')
-define(GP_LIST_ITER,`define(`__LISTITER__',`$*')')
-define(GP_LIST_NOINSERT,`define(`__LISTEO__')')
-
-dnl
-dnl GP_LIST(ListName, ParentCppType, ParentCType, ChildCppType, FieldNameC)
-dnl
-dnl In the .ccg file, you'll need to implement:
-dnl iterator insert(iterator position, element_type& e);
-dnl
-dnl Fieldname assumed to be children if not specified
-define(GP_LIST,`
-_PUSH()
-
-define(`__LISTNAME__',$1)
-define(`__LISTPARENT__',$2)
-define(`__LISTPARENT_G__',$3)
-define(`__LISTTYPE__',$4)
-define(`__LISTELEM__',const Element)
-define(`__LISTITER__',Glib::List_Iterator< __LISTTYPE__ >)
-define(`__LIST_NAMESPACE__',$2_Helpers)
-#define(`__LISTFIELD__',ifelse($5,,children,$5))
-define(`__LISTFIELD__',$5)
-
-_SECTION(SECTION_USR)
-')
-
-dnl
-dnl GP_LIST_END()
-dnl
-dnl Closes a list
-define(GP_LIST_END,`dnl
-_POP()
-
-class __LISTNAME__ : public Glib::HelperList< __LISTTYPE__, __LISTELEM__, __LISTITER__ >
-{
-public:
- __LISTNAME__`'();
- explicit __LISTNAME__`'(__LISTPARENT_G__* gparent);
- __LISTNAME__`'(const __LISTNAME__& src);
- virtual ~__LISTNAME__`'() {}
-
- __LISTNAME__& operator=(const __LISTNAME__& src);
-
- typedef Glib::HelperList< __LISTTYPE__, __LISTELEM__, __LISTITER__ > type_base;
-
- __LISTPARENT_G__* gparent();
- const __LISTPARENT_G__* gparent() const;
-
- virtual GList*& glist() const; // front of list
-
- virtual void erase(iterator start, iterator stop);
- virtual iterator erase(iterator); //Implented as custom or by LIST_CONTAINER_REMOVE
- virtual void remove(const_reference); //Implented as custom or by LIST_CONTAINER_REMOVE
-
- /// This is order n. (use at own risk)
- reference operator[](size_type l) const;
-
-ifdef(`__LISTEO__',`dnl
-protected:
- //Hide these because it's read-only:
- iterator insert(iterator position, element_type& e);
-
- inline void pop_front();
- inline void pop_back();
-,`dnl
-public:
- iterator insert(iterator position, element_type& e); //custom-implemented.
-
- template <class InputIterator>
- inline void insert(iterator position, InputIterator first, InputIterator last)
- {
- for(;first != last; ++first)
- position = insert(position, *first);
- }
-
- inline void push_front(element_type& e)
- { insert(begin(), e); }
- inline void push_back(element_type& e)
- { insert(end(), e); }
-')dnl
-
-_IMPORT(SECTION_USR)
-};
-
-_PUSH(SECTION_CC)
-
-namespace __LIST_NAMESPACE__
-{
-
-__LISTNAME__::__LISTNAME__`'()
-{}
-
-__LISTNAME__::__LISTNAME__`'(__LISTPARENT_G__* gparent)
-: type_base((GObject*)gparent)
-{}
-
-__LISTNAME__::__LISTNAME__`'(const __LISTNAME__& src)
-:
- type_base(src)
-{}
-
-__LISTNAME__& __LISTNAME__::operator=(const __LISTNAME__& src)
-{
- type_base::operator=(src);
- return *this;
-}
-
-ifelse(__LISTFIELD__,CUSTOM,`dnl
-',`dnl else
-GList*& __LISTNAME__::glist() const
-{
- return ((__LISTPARENT_G__*)gparent_)->__LISTFIELD__;
-}
-')dnl endif
-
-void __LISTNAME__::erase(iterator start, iterator stop)
-{
- type_base::erase(start, stop);
-}
-
-__LISTPARENT_G__* __LISTNAME__::gparent()
-{
- return (__LISTPARENT_G__*)type_base::gparent();
-}
-
-const __LISTPARENT_G__* __LISTNAME__::gparent() const
-{
- return (__LISTPARENT_G__*)type_base::gparent();
-}
-
-__LISTNAME__::reference __LISTNAME__::operator[](size_type l) const
-{
- return type_base::operator[](l);
-}
-
-} /* namespace __LIST_NAMESPACE__ */
-
-undefine(`__LISTNAME__')dnl
-undefine(`__LISTTYPE__')dnl
-undefine(`__LISTPARENT__')dnl
-undefine(`__LISTELEM__')dnl
-undefine(`__LISTFIELD__')dnl
-_POP()
-')
-
-dnl
-dnl GP_LIST_FIND(access_method)
-dnl
-dnl Defines find(containertype) and find(Widget&)
-dnl access_method is the name of method returning a Widget*
-define(GP_LIST_FIND,`
- iterator find(const_reference c);
- iterator find(Widget&);
-_PUSH(SECTION_CC)
-
-namespace __LIST_NAMESPACE__
-{
-
-__LISTNAME__::iterator __LISTNAME__::find(const_reference w)
-{
- iterator i = begin();
- while (i != end() && (i->ifelse($1,,,$1()->)gobj() != w.ifelse($1,,,$1()->)gobj()))
- ++i;
- return i;
-}
-
-__LISTNAME__::iterator __LISTNAME__::find(Widget& w)
-{
- iterator i = begin();
- while (i != end() && ((GtkWidget*)i->ifelse($1,,,$1()->)gobj() != w.gobj()))
- ++i;
- return i;
-}
-
-} /* namespace __LIST_NAMESPACE__ */
-
-_POP()
-')
-
-dnl
-dnl GP_LIST_CONTAINER_REMOVE(access_method)
-dnl
-dnl Implements remove(const_reference), erase(iterator)
-dnl and defines remove(Widget&)
-dnl (assumes that the widget uses gtk+ container methods).
-dnl access_method is the name of the method returning a Widget*
-define(GP_LIST_CONTAINER_REMOVE,`
-virtual void remove(Widget& w); //Implented as custom or by LIST_CONTAINER_REMOVE
-_PUSH(SECTION_CC)
-
-namespace __LIST_NAMESPACE__
-{
-
-void __LISTNAME__::remove(const_reference child)
-{
- gtk_container_remove(GTK_CONTAINER(gparent_),
- (GtkWidget*)(child.ifelse($1,,,$1()->)gobj()));
-}
-
-void __LISTNAME__::remove(Widget& widget)
-{
- gtk_container_remove(GTK_CONTAINER(gparent_), (GtkWidget*)(widget.gobj()));
-}
-
-__LISTNAME__::iterator __LISTNAME__::erase(iterator position)
-{
- //Check that it is a valid iterator, to a real item:
- if ( !position.node_|| (position == end()) )
- return end();
-
- //Get an iterator the the next item, to return:
- iterator next = position;
- next++;
-
- //Use GTK+ C function to remove it, by providing the GtkWidget*:
- gtk_container_remove( GTK_CONTAINER(gparent_), (GtkWidget*)(position->ifelse($1,,,$1()->)gobj()) );
- return next;
-}
-
-} /* namespace __LIST_NAMESPACE__ */
-
-_POP()
-')
-
-_POP()dnl
diff --git a/tools/m4/method.m4 b/tools/m4/method.m4
index 3c48b3e1..3ca4de6e 100644
--- a/tools/m4/method.m4
+++ b/tools/m4/method.m4
@@ -1,22 +1,24 @@
-dnl $Id$
-
dnl
dnl
dnl Code generation sections for making a method.
dnl
dnl
-
dnl
dnl method
-dnl $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21
-dnl _METHOD(cppname,cname,cpprettype,crettype,arglist,cdeclarations,cargs,cinitializations,const,refreturn,errthrow,deprecated,constversion,ifdef,arglist_without_types,out_param,out_param_cpptype,slot_type,slot_name,no_slot_copy,wrap_line)
+dnl $1 $2 $3 $4 $5 $6 $7 $8
+dnl _METHOD(cppname,cname,cpprettype,crettype,arglist,cdeclarations,cargs,cinitializations,
+dnl $9 $10 $11 $12 $13 $14 $15
+dnl const,refreturn,errthrow,deprecated,constversion,arglist_without_types,ifdef,
+dnl $16 $17 $18 $19 $20 $21
+dnl out_param,out_param_cpptype,slot_type,slot_name,no_slot_copy,wrap_line)
define(`_METHOD',`dnl
_PUSH(SECTION_CC)
-ifelse(`$12',,,`_DEPRECATE_IFDEF_START
-')dnl
ifelse(`$15',,,`#ifdef $15'
)dnl
+ifelse(`$12',,,`_DEPRECATE_IFDEF_START`'dnl The expansion of _DEPRECATE_IFDEF_START ends with a newline
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+')dnl
$3 __CPPNAME__::$1`'($5)ifelse(`$9',1,` const')
{
ifelse(`$13',,dnl
@@ -26,10 +28,10 @@ dnl If a slot type has been specified insert a slot copy declaration.
dnl See if the slot should or should not be copied
`ifelse(`$20',,dnl
` // Create a copy of the slot.
- $18* slot_copy = new $18($19); ',dnl
+ auto slot_copy = new $18($19); ',dnl
dnl
` // Use the original slot (not a copy).
- $18* slot_copy = const_cast<$18*>(&$19);')
+ auto slot_copy = const_cast<$18*>(&$19);')
')`'dnl
dnl Insert the declarations for C output parameters
@@ -59,17 +61,17 @@ ifelse(`$8',,,`$8
')dnl
')',dnl End if a C++ output parameter is specified.
dnl If is errthrow or refreturn
-`ifelse(`$11',,,` GError* gerror = 0;
+`ifelse(`$11',,,` GError* gerror = nullptr;
')dnl
dnl If a slot type has been specified insert a slot copy declaration.
ifelse(`$18',,,dnl
dnl See if the slot should or should not be copied
`ifelse(`$20',,dnl
` // Create a copy of the slot.
- $18* slot_copy = new $18($19); ',dnl
+ auto slot_copy = new $18($19); ',dnl
dnl
` // Use the original slot (not a copy).
- $18* slot_copy = const_cast<$18*>(&$19);')
+ auto slot_copy = const_cast<$18*>(&$19);')
')`'dnl
dnl Insert the declarations for C output parameters
@@ -99,24 +101,27 @@ ifelse(`$3',void,,` return retvalue;
',` return const_cast<__CPPNAME__*>(this)->$1($14);
')dnl
}
-
-ifelse(`$15',,,`
-#endif // $15
-')dnl
-ifelse(`$12',,,`_DEPRECATE_IFDEF_END
-')dnl
+ifelse(`$12',,,`G_GNUC_END_IGNORE_DEPRECATIONS
+_DEPRECATE_IFDEF_END')`'dnl The expansion of _DEPRECATE_IFDEF_END ends with a newline
+ifelse(`$15',,,`#endif // $15
+')
_POP()')
dnl
dnl static method
-dnl $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18
-dnl _STATIC_METHOD(cppname,cname,cpprettype,crettype,arglist,cdeclarations,cargs,cinitializations,refreturn,errthrow,deprecated,ifdef,out_param,out_param_type,slot_type,slot_name,no_slot_copy,wrap_line)
+dnl $1 $2 $3 $4 $5 $6 $7
+dnl _STATIC_METHOD(cppname,cname,cpprettype,crettype,arglist,cdeclarations,cargs,
+dnl $8 $9 $10 $11 $12 $13
+dnl cinitializations,refreturn,errthrow,deprecated,ifdef,out_param,
+dnl $14 $15 $16 $17 $18
+dnl out_param_type,slot_type,slot_name,no_slot_copy,wrap_line)
define(`_STATIC_METHOD',`dnl
_PUSH(SECTION_CC)
-ifelse(`$11',,,`_DEPRECATE_IFDEF_START
-')dnl
ifelse(`$12',,,`#ifdef $12'
)dnl
+ifelse(`$11',,,`_DEPRECATE_IFDEF_START`'dnl The expansion of _DEPRECATE_IFDEF_START ends with a newline
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+')dnl
$3 __CPPNAME__::$1($5)
{
ifelse(`$9'`$10',,dnl
@@ -125,10 +130,10 @@ ifelse(`$15',,,dnl
dnl See if the slot should or should not be copied
`ifelse(`$17',,dnl
` // Create a copy of the slot.
- $15* slot_copy = new $15($16); ',dnl
+ auto slot_copy = new $15($16); ',dnl
dnl
` // Use the original slot (not a copy).
- $15* slot_copy = const_cast<$15*>(&$16);')
+ auto slot_copy = const_cast<$15*>(&$16);')
')`'dnl
dnl Insert declarations for C the output parameters
@@ -150,16 +155,16 @@ dnl Return the value if it was stored and if the method returns something
ifelse(`$3',void,,`ifelse(`$6',,,` return retval;
')')dnl
',dnl End if a C++ output parameter is specified.
-`ifelse(`$10',,,` GError* gerror = 0;')
+`ifelse(`$10',,,` GError* gerror = nullptr;')
dnl If a slot type has been specified insert a slot copy declaration.
ifelse(`$15',,,dnl
dnl See if the slot should or should not be copied
`ifelse(`$17',,dnl
` // Create a copy of the slot.
- $15* slot_copy = new $15($16); ',dnl
+ auto slot_copy = new $15($16); ',dnl
dnl
` // Use the original slot (not a copy).
- $15* slot_copy = const_cast<$15*>(&$16);')
+ auto slot_copy = const_cast<$15*>(&$16);')
')`'dnl
dnl Insert the declarations for the C output parameters
@@ -185,10 +190,8 @@ ifelse(`$3',void,,` return retvalue;
')dnl
')dnl
}
-
-ifelse(`$12',,,`
-#endif // $12
-')dnl
-ifelse(`$11',,,`_DEPRECATE_IFDEF_END
+ifelse(`$11',,,`G_GNUC_END_IGNORE_DEPRECATIONS
+_DEPRECATE_IFDEF_END')`'dnl The expansion of _DEPRECATE_IFDEF_END ends with a newline
+ifelse(`$12',,,`#endif // $12
')
_POP()')
diff --git a/tools/m4/property.m4 b/tools/m4/property.m4
index 119f21cb..1709affa 100644
--- a/tools/m4/property.m4
+++ b/tools/m4/property.m4
@@ -1,5 +1,3 @@
-dnl $Id$
-
dnl
dnl
dnl Code generation sections for properties
@@ -17,25 +15,20 @@ dnl Put spaces around the template parameter if necessary.
pushdef(`__PROXY_TYPE__',`dnl
Glib::PropertyProxy$4< _QUOTE($3) >'dnl
)dnl
-#ifdef GLIBMM_PROPERTIES_ENABLED
/** $6
*
- * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
* @return A PropertyProxy$4 that allows you to dnl
ifelse($4,_ReadOnly,get,`ifelse($4,_WriteOnly,set,get or set)') the value of the property,
* or receive notification when the value of the property changes.
*/
__PROXY_TYPE__ property_$2`'() ifelse($4,_ReadOnly, const,);
-#endif //#GLIBMM_PROPERTIES_ENABLED
_PUSH(SECTION_CC_PROPERTYPROXIES)
ifelse(`$5',,,`_DEPRECATE_IFDEF_START
')dnl
-#ifdef GLIBMM_PROPERTIES_ENABLED
__PROXY_TYPE__ __CPPNAME__::property_$2`'() ifelse($4,_ReadOnly, const,)
{
return __PROXY_TYPE__`'(this, "$1");
}
-#endif //GLIBMM_PROPERTIES_ENABLED
ifelse(`$5',,,`_DEPRECATE_IFDEF_END
')dnl
diff --git a/tools/m4/signal.m4 b/tools/m4/signal.m4
index d84838d9..d85f93c7 100644
--- a/tools/m4/signal.m4
+++ b/tools/m4/signal.m4
@@ -1,4 +1,3 @@
-
#
# --------------------------- Signal Decl----------------------------
#
@@ -14,15 +13,29 @@ dnl $8 = `custom_c_callback (boolean)',
dnl $9 = `deprecated' (boolean),
dnl $10 = `refdoc_comment',
dnl $11 = ifdef,
-dnl $12 = exceptionHandler)
+dnl $12 = exceptionHandler,
+dnl $13 = detail_name,
+dnl $14 = two_signal_methods (boolean))
define(`_SIGNAL_PROXY',`
ifelse(`$11',,,`#ifdef $11'
)dnl
ifelse(`$9',,,`_DEPRECATE_IFDEF_START
')dnl
+ifelse($13,,`dnl no detail_name
+$10
+ Glib::SignalProxy`'_NUM($6)< $5`'_COMMA_PREFIX($6) > signal_$4`'();
+',dnl detail_name
+$14,0,`dnl
+$10
+ Glib::SignalProxyDetailed`'_NUM($6)< $5`'_COMMA_PREFIX($6) > signal_$4`'(const Glib::ustring& $13 = Glib::ustring());
+',`dnl detail_name and two_signal_methods
$10
Glib::SignalProxy`'_NUM($6)< $5`'_COMMA_PREFIX($6) > signal_$4`'();
+
+$10
+ Glib::SignalProxyDetailed`'_NUM($6)< $5`'_COMMA_PREFIX($6) > signal_$4`'(const Glib::ustring& $13);
+')dnl end detail_name
ifelse(`$9',,,`_DEPRECATE_IFDEF_END
')dnl
ifelse(`$11',,,`#endif // $11
@@ -54,25 +67,22 @@ static $2 __CPPNAME__`'_signal_$4_callback`'(__CNAME__`'* self, _COMMA_SUFFIX($3
using namespace __NAMESPACE__;
typedef sigc::slot< $5`'_COMMA_PREFIX($6) > SlotType;
- __CPPNAME__* obj = dynamic_cast<__CPPNAME__*>(Glib::ObjectBase::_get_current_wrapper((GObject*) self));
+ auto obj = dynamic_cast<__CPPNAME__*>(Glib::ObjectBase::_get_current_wrapper((GObject*) self));
// Do not try to call a signal on a disassociated wrapper.
if(obj)
{
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
try
{
- #endif //GLIBMM_EXCEPTIONS_ENABLED
- if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot`'(data))
+ if(const auto slot = Glib::SignalProxyNormal::data_to_slot`'(data))
ifelse(`$2',void,`dnl
(*static_cast<SlotType*>(slot))($7);
',`dnl else
return _CONVERT($5,$2,`(*static_cast<SlotType*>(slot))($7)');
')dnl endif
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
}
catch(...)
{
-ifelse($15, `', `dnl
+ifelse($12, `', `dnl
Glib::exception_handlers_invoke`'();
', `dnl
try
@@ -85,7 +95,6 @@ ifelse($15, `', `dnl
}
')dnl
}
- #endif //GLIBMM_EXCEPTIONS_ENABLED
}
ifelse($2,void,,`dnl else
@@ -100,17 +109,14 @@ static $2 __CPPNAME__`'_signal_$4_notify_callback`'(__CNAME__`'* self, _COMMA_SU
using namespace __NAMESPACE__;
typedef sigc::slot< void`'_COMMA_PREFIX($6) > SlotType;
- __CPPNAME__* obj = dynamic_cast<__CPPNAME__*>(Glib::ObjectBase::_get_current_wrapper((GObject*) self));
+ auto obj = dynamic_cast<__CPPNAME__*>(Glib::ObjectBase::_get_current_wrapper((GObject*) self));
// Do not try to call a signal on a disassociated wrapper.
if(obj)
{
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
try
{
- #endif //GLIBMM_EXCEPTIONS_ENABLED
- if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot`'(data))
+ if(const auto slot = Glib::SignalProxyNormal::data_to_slot`'(data))
(*static_cast<SlotType*>(slot))($7);
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
}
catch(...)
{
@@ -127,7 +133,6 @@ ifelse($12, `', `dnl
}
')dnl
}
- #endif //GLIBMM_EXCEPTIONS_ENABLED
}
typedef $2 RType;
@@ -155,10 +160,28 @@ ifelse(`$11',,,`#ifdef $11'
)dnl
ifelse(`$9',,,`_DEPRECATE_IFDEF_START
')dnl
+ifelse($13,,`dnl no detail_name
+Glib::SignalProxy`'_NUM($6)< $5`'_COMMA_PREFIX($6) > __CPPNAME__::signal_$4`'()
+{
+ return Glib::SignalProxy`'_NUM($6)< $5`'_COMMA_PREFIX($6) >(this, &__CPPNAME__`'_signal_$4_info);
+}
+',dnl detail_name
+$14,0,`dnl
+Glib::SignalProxyDetailed`'_NUM($6)< $5`'_COMMA_PREFIX($6) > __CPPNAME__::signal_$4`'(const Glib::ustring& $13)
+{
+ return Glib::SignalProxyDetailed`'_NUM($6)< $5`'_COMMA_PREFIX($6) >(this, &__CPPNAME__`'_signal_$4_info, $13);
+}
+',`dnl detail_name and two_signal_methods
Glib::SignalProxy`'_NUM($6)< $5`'_COMMA_PREFIX($6) > __CPPNAME__::signal_$4`'()
{
return Glib::SignalProxy`'_NUM($6)< $5`'_COMMA_PREFIX($6) >(this, &__CPPNAME__`'_signal_$4_info);
}
+
+Glib::SignalProxyDetailed`'_NUM($6)< $5`'_COMMA_PREFIX($6) > __CPPNAME__::signal_$4`'(const Glib::ustring& $13)
+{
+ return Glib::SignalProxyDetailed`'_NUM($6)< $5`'_COMMA_PREFIX($6) >(this, &__CPPNAME__`'_signal_$4_info, $13);
+}
+')dnl end detail_name
ifelse(`$9',,,`_DEPRECATE_IFDEF_END
')dnl
ifelse(`$11',,,`#endif // $11
@@ -212,7 +235,7 @@ $4 __CPPNAME__`'_Class::$2_callback`'($5)
dnl First, do a simple cast to ObjectBase. We will have to do a dynamic_cast
dnl eventually, but it is not necessary to check whether we need to call
dnl the vfunc.
- Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
+ const auto obj_base = static_cast<Glib::ObjectBase*>(
Glib::ObjectBase::_get_current_wrapper`'((GObject*)$8));
_IMPORT(SECTION_CHECK)
@@ -225,13 +248,11 @@ _IMPORT(SECTION_CHECK)
{
dnl We need to do a dynamic cast to get the real object type, to call the
dnl C++ vfunc on it.
- CppObjectType *const obj = dynamic_cast<CppObjectType* const>(obj_base);
+ const auto obj = dynamic_cast<CppObjectType* const>(obj_base);
if(obj) // This can be NULL during destruction.
{
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
try // Trap C++ exceptions which would normally be lost because this is a C callback.
{
- #endif //GLIBMM_EXCEPTIONS_ENABLED
// Call the virtual member method, which derived classes might override.
ifelse($4,void,`dnl
obj->on_$1`'($7);
@@ -239,16 +260,15 @@ ifelse($4,void,`dnl
',`dnl
return _CONVERT($3,$4,`obj->on_$1`'($7)');
')dnl
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
}
catch(...)
{
-ifelse($15, `', `dnl
+ifelse($11, `', `dnl
Glib::exception_handlers_invoke`'();
', `dnl
try
{
- return _CONVERT($3, $4, `obj->$15`'()');
+ return _CONVERT($3, $4, `obj->$11`'()');
}
catch(...)
{
@@ -256,17 +276,16 @@ ifelse($15, `', `dnl
}
')dnl
}
- #endif //GLIBMM_EXCEPTIONS_ENABLED
}
}
- BaseClassType *const base = static_cast<BaseClassType*>(
+ const auto base = static_cast<BaseClassType*>(
ifdef(`__BOOL_IS_INTERFACE__',`dnl
_IFACE_PARENT_FROM_OBJECT($8)dnl
',`dnl
_PARENT_GCLASS_FROM_OBJECT($8)dnl
') );
-dnl g_assert(base != 0);
+dnl g_assert(base != nullptr);
// Call the original underlying C function:
if(base && base->$2)
@@ -306,13 +325,13 @@ ifelse(`$9',,,`#ifdef $9'
)dnl
$3 __NAMESPACE__::__CPPNAME__::on_$1`'($5)
{
- BaseClassType *const base = static_cast<BaseClassType*>(
+ const auto base = static_cast<BaseClassType*>(
ifdef(`__BOOL_IS_INTERFACE__',`dnl
_IFACE_PARENT_FROM_OBJECT(gobject_)dnl
',`dnl
_PARENT_GCLASS_FROM_OBJECT(gobject_)dnl
') );
-dnl g_assert(base != 0);
+dnl g_assert(base != nullptr);
if(base && base->$2)
ifelse($3,void,`dnl
diff --git a/tools/m4/vfunc.m4 b/tools/m4/vfunc.m4
index beac4c86..fd2aeb82 100644
--- a/tools/m4/vfunc.m4
+++ b/tools/m4/vfunc.m4
@@ -20,28 +20,30 @@ _POP()')
dnl $1 $2 $3 $4
dnl _VFUNC_PCC(cppname,gtkname,cpprettype,crettype,
-dnl $5 $6 $7 $8 $9 $10 $11
-dnl `<cargs and names>',`<cnames>',`<cpparg names>',firstarg, refreturn_ctype, ifdef, errthrow,
-dnl $12 $13 $14 $15
-dnl slot_type, c_data_param_name, return_value, exception_handler)
+dnl $5 $6 $7 $8
+dnl `<cargs and names>',`<cnames>',`<cpparg names>',firstarg,
+dnl $9 $10 $11 $12
+dnl refreturn_ctype, keep_return, ifdef, errthrow,
+dnl $13 $14 $15 $16
+dnl slot_type, c_data_param_name, return_value, exception_handler)
dnl
dnl Note: _get_current_wrapper_inline() could be used throughout for performance instead of _get_current_wrapper(),
dnl and is_derived_() instead of is_derived_(),
dnl but it is not yet clear whether that would be a worthwhile performance optimization.
define(`_VFUNC_PCC',`dnl
_PUSH(SECTION_PCC_VFUNCS)
-ifelse(`$10',,,`#ifdef $10'
+ifelse(`$11',,,`#ifdef $11'
)dnl
$4 __CPPNAME__`'_Class::$2_vfunc_callback`'($5)
{
-ifelse(`$13',,,dnl
-` const $12* slot = static_cast<$12*>($13);
+ifelse(`$14',,,dnl
+` const auto slot = static_cast<$13*>($14);
')dnl
dnl First, do a simple cast to ObjectBase. We will have to do a dynamic_cast
dnl eventually, but it is not necessary to check whether we need to call
dnl the vfunc.
- Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
+ const auto obj_base = static_cast<Glib::ObjectBase*>(
Glib::ObjectBase::_get_current_wrapper`'((GObject*)$8));
_IMPORT(SECTION_CHECK)
@@ -54,37 +56,50 @@ _IMPORT(SECTION_CHECK)
{
dnl We need to do a dynamic cast to get the real object type, to call the
dnl C++ vfunc on it.
- CppObjectType *const obj = dynamic_cast<CppObjectType* const>(obj_base);
+ const auto obj = dynamic_cast<CppObjectType* const>(obj_base);
if(obj) // This can be NULL during destruction.
{
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
try // Trap C++ exceptions which would normally be lost because this is a C callback.
{
- #endif //GLIBMM_EXCEPTIONS_ENABLED
// Call the virtual member method, which derived classes might override.
ifelse($4,void,`dnl
obj->$1`'($7);
return;
-',`dnl
+',`dnl not void
ifelse($9,refreturn_ctype,`dnl Assume Glib::unwrap_copy() is correct if refreturn_ctype is requested.
return Glib::unwrap_copy`'(`obj->$1'($7));
-',`dnl
+',`dnl not refreturn_ctype
+ifelse($10,keep_return,`dnl
+ static auto quark_return_value = g_quark_from_static_string("__NAMESPACE__::__CPPNAME__::$1");
+
+ auto return_value = static_cast<$3*>(g_object_get_qdata(obj_base->gobj(), quark_return_value));
+ if (!return_value)
+ {
+ return_value = new $3`'();
+ g_object_set_qdata_full(obj_base->gobj(), quark_return_value, return_value,
+ &Glib::destroy_notify_delete<$3>);
+ }
+ // Keep a copy of the return value. The caller is not expected
+ // to free the object that the returned pointer points to.
+ *return_value = obj->$1`'($7);
+ return _CONVERT($3,$4,`(*return_value)');
+',`dnl not keep_return
return _CONVERT($3,$4,`obj->$1`'($7)');
-')dnl
-')dnl
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
+')dnl end keep_return
+')dnl end refreturn_ctype
+')dnl end void
}
catch(...)
{
-ifelse($15, `', `dnl
+ifelse($16, `', `dnl
Glib::exception_handlers_invoke`'();
', `dnl
try
{
ifelse($9,refreturn_ctype,`dnl
- return Glib::unwrap_copy`'(obj->$15`'());
+ return Glib::unwrap_copy`'(obj->$16`'());
', `dnl
- return _CONVERT($3, $4, `obj->$15`'()');
+ return _CONVERT($3, $4, `obj->$16`'()');
')dnl
}
catch(...)
@@ -93,7 +108,6 @@ ifelse($9,refreturn_ctype,`dnl
}
')dnl
}
- #endif //GLIBMM_EXCEPTIONS_ENABLED
}
}
@@ -103,13 +117,13 @@ ifdef(`__BOOL_IS_INTERFACE__',`dnl
',`dnl
_PARENT_GCLASS_FROM_OBJECT($8)dnl
') );
-dnl g_assert(base != 0);
+dnl g_assert(base != nullptr);
// Call the original underlying C function:
if(base && base->$2)
{
ifelse($4,void,,`$4 retval = ')(*base->$2)`'($6);
-ifelse($11,errthrow,`dnl
+ifelse($12,errthrow,`dnl
if(*error)
::Glib::Error::throw_exception(*error);
')dnl
@@ -118,15 +132,15 @@ ifelse($4,void,,` return retval;
}
ifelse($4,void,,`dnl
-ifelse(`$14', `',`dnl
+ifelse(`$15', `',`dnl
typedef $4 RType;
return RType`'();
',`dnl
- return _CONVERT($3,$4,`$14');
+ return _CONVERT($3,$4,`$15');
')dnl
')dnl
}
-ifelse(`$10',,,`#endif // $10
+ifelse(`$11',,,`#endif // $11
')dnl
_POP()')
@@ -144,24 +158,24 @@ ifelse(`$11',,,dnl
dnl See if the slot should or should not be copied
`ifelse(`$13',,dnl
` // Create a copy of the slot.
- $11* slot_copy = new $11($12); ',dnl
+ auto slot_copy = new $11($12); ',dnl
dnl
` // Use the original slot (not a copy).
- $11* slot_copy = const_cast<$11*>(&$12);')
+ auto slot_copy = const_cast<$11*>(&$12);')
')dnl
- BaseClassType *const base = static_cast<BaseClassType*>(
+ const auto base = static_cast<BaseClassType*>(
ifdef(`__BOOL_IS_INTERFACE__',`dnl
_IFACE_PARENT_FROM_OBJECT(gobject_)dnl
',`dnl
_PARENT_GCLASS_FROM_OBJECT(gobject_)dnl
') );
-dnl g_assert(base != 0);
+dnl g_assert(base != nullptr);
if(base && base->$2)
{
ifelse($10,errthrow,`dnl
- GError* gerror = 0;
+ GError* gerror = nullptr;
')dnl
ifelse($3,void,`dnl
(*base->$2)`'(ifelse(`$7',1,const_cast<__CNAME__*>(gobj()),gobj())`'_COMMA_PREFIX($6));
@@ -209,4 +223,3 @@ ifelse(`$5',,,`#endif // $5
')dnl
_POP()')
-
diff --git a/tools/pm/DocsParser.pm b/tools/pm/DocsParser.pm
index c771fc3c..8dae9c14 100644
--- a/tools/pm/DocsParser.pm
+++ b/tools/pm/DocsParser.pm
@@ -25,7 +25,7 @@ use XML::Parser;
use strict;
use warnings;
-# use Util;
+use Util;
use Function;
use GtkDefs;
use Object;
@@ -112,18 +112,19 @@ sub parse_on_start($$%)
$tag = lc($tag);
- if($tag eq "function" or $tag eq "signal" or $tag eq "enum")
+ if($tag eq "function" or $tag eq "signal" or $tag eq "property" or $tag eq "enum")
{
if(defined $DocsParser::objCurrentFunction)
{
$objParser->xpcroak(
- "\nClose a function, signal or enum tag before you open another one.");
+ "\nClose a function, signal, property or enum tag before you open another one.");
}
my $functionName = $attr{name};
- # Change signal name from Class::a-signal-name to Class::a_signal_name.
- $functionName =~ s/-/_/g if($tag eq "signal");
+ # Change signal name from Class::a-signal-name to Class::a_signal_name
+ # and property name from Class:a-property-name to Class:a_property_name
+ $functionName =~ s/-/_/g if ($tag eq "signal" or $tag eq "property");
#Reuse existing Function, if it exists:
#(For instance, if this is the override parse)
@@ -195,7 +196,7 @@ sub parse_on_end($$)
$tag = lc($tag);
- if($tag eq "function" or $tag eq "signal" or $tag eq "enum")
+ if($tag eq "function" or $tag eq "signal" or $tag eq "property" or $tag eq "enum")
{
# Store the Function structure in the array:
my $functionName = $$DocsParser::objCurrentFunction{name};
@@ -233,14 +234,15 @@ sub parse_on_cdata($$)
}
}
-sub lookup_enum_documentation($$$)
+sub lookup_enum_documentation($$$$)
{
- my ($c_enum_name, $cpp_enum_name, $ref_flags) = @_;
+ my ($c_enum_name, $cpp_enum_name, $indent, $ref_flags) = @_;
my @subst_in = [];
my @subst_out = [];
+ my $newin = "";
- # Get the substitutions.
+ # Get the substitutions, and recognize some flags too.
foreach(@$ref_flags)
{
if(/^\s*s#([^#]+)#([^#]*)#\s*$/)
@@ -248,6 +250,10 @@ sub lookup_enum_documentation($$$)
push(@subst_in, $1);
push(@subst_out, $2);
}
+ elsif(/^\s*newin(.*)/) #If newin is at the start.
+ {
+ $newin = string_unquote(string_trim($1));
+ }
}
my $objFunction = $DocsParser::hasharrayFunctions{$c_enum_name};
@@ -285,19 +291,23 @@ sub lookup_enum_documentation($$$)
$param =~ s/([a-zA-Z0-9]*(_[a-zA-Z0-9]+)*)_?/$1/g;
if(length($desc) > 0)
{
- $desc =~ s/\n/ /g;
- $desc =~ s/ $//;
- $desc =~ s/^\s+//; # Chop off leading whitespace
+ # Chop off leading and trailing whitespace.
+ $desc =~ s/^\s+//;
+ $desc =~ s/\s+$//;
$desc .= '.' unless($desc =~ /(?:^|\.)$/);
- $docs .= "\@var $cpp_enum_name ${param}\n \u${desc}\n\n"; # \u = Convert next char to uppercase
+ $docs .= "\@var $cpp_enum_name ${param}\n\u${desc}\n\n"; # \u = Convert next char to uppercase
}
}
- # Append the enum description docs.
- $docs .= "\@enum $cpp_enum_name\n";
- $docs .= $$objFunction{description};
+ # Replace @newin in the enum description, but don't in the element descriptions.
+ my $description = "\@enum $cpp_enum_name\n";
+ $description .= $$objFunction{description};
+ DocsParser::convert_docs_to_cpp($objFunction, \$description);
+ DocsParser::replace_or_add_newin(\$description, $newin);
+ # Append the enum description docs.
DocsParser::convert_docs_to_cpp($objFunction, \$docs);
+ $docs .= "\n\n$description";
DocsParser::add_m4_quotes(\$docs);
# Escape the space after "i.e." or "e.g." in the brief description.
@@ -305,20 +315,21 @@ sub lookup_enum_documentation($$$)
remove_example_code($c_enum_name, \$docs);
- # Convert to Doxygen-style comment.
- $docs =~ s/\n/\n \* /g;
- $docs = "\/\*\* " . $docs;
+ # Add indentation and an asterisk on all lines except the first.
+ # $docs does not contain leading "/**" and trailing "*/".
+ $docs =~ s/\n/\n${indent}\* /g;
return $docs;
}
-# $strCommentBlock lookup_documentation($strFunctionName, $deprecation_docs, $objCppfunc)
+# $strCommentBlock lookup_documentation($strFunctionName, $deprecation_docs, $newin, $objCppfunc)
# The final objCppfunc parameter is optional. If passed, it is used to
# decide if the final C parameter should be omitted if the C++ method
-# has a slot parameter.
-sub lookup_documentation($$;$)
+# has a slot parameter. It is also used for converting C parameter names to
+# C++ parameter names in the documentation, if they differ.
+sub lookup_documentation($$$;$)
{
- my ($functionName, $deprecation_docs, $objCppfunc) = @_;
+ my ($functionName, $deprecation_docs, $newin, $objCppfunc) = @_;
my $objFunction = $DocsParser::hasharrayFunctions{$functionName};
if(!$objFunction)
@@ -335,18 +346,30 @@ sub lookup_documentation($$;$)
}
DocsParser::convert_docs_to_cpp($objFunction, \$text);
+ DocsParser::replace_or_add_newin(\$text, $newin);
# A blank line, marking the end of a paragraph, is needed after @newin.
# Most @newins are at the end of a function description.
$text .= "\n";
- #Add note about deprecation if we have specified that in our _WRAP_METHOD() call:
+ # Add note about deprecation if we have specified that in our _WRAP_METHOD(),
+ # _WRAP_SIGNAL(), _WRAP_PROPERTY() or _WRAP_CHILD_PROPERTY() call:
if($deprecation_docs ne "")
{
$text .= "\n\@deprecated $deprecation_docs\n";
}
- DocsParser::append_parameter_docs($objFunction, \$text, $objCppfunc);
+ my %param_name_mappings = DocsParser::append_parameter_docs($objFunction, \$text, $objCppfunc);
DocsParser::append_return_docs($objFunction, \$text);
+
+ # Convert C parameter names to C++ parameter names where they differ.
+ foreach my $key (keys %param_name_mappings)
+ {
+ $text =~ s/\@(param|a) $key\b/\@$1 $param_name_mappings{$key}/g;
+ }
+
+ # Remove leading and trailing white space.
+ $text = string_trim($text);
+
DocsParser::add_m4_quotes(\$text);
# Escape the space after "i.e." or "e.g." in the brief description.
@@ -375,7 +398,8 @@ sub remove_example_code($$)
($$text =~ s"<programlisting>.*?</programlisting>"\n[C example ellipted]"sg);
$example_removals += ($$text =~ s"\|\[.*?]\|"\n[C example ellipted]"sg);
- print STDERR "gmmproc: $main::source: $obj_name: Example code discarded.\n"
+ # See "MS Visual Studio" comment in gmmproc.in.
+ print STDERR "gmmproc, $main::source, $obj_name: Example code discarded.\n"
if ($example_removals);
}
@@ -396,51 +420,143 @@ sub add_m4_quotes($)
# The final objCppfunc is optional. If passed, it is used to determine
# if the final C parameter should be omitted if the C++ method has a
-# slot parameter.
+# slot parameter. It is also used for converting C parameter names to
+# C++ parameter names in the documentation, if they differ.
sub append_parameter_docs($$;$)
{
my ($obj_function, $text, $objCppfunc) = @_;
- my @param_names = @{$$obj_function{param_names}};
+ my @docs_param_names = @{$$obj_function{param_names}};
my $param_descriptions = \$$obj_function{param_descriptions};
-
- # Strip first parameter if this is a method.
my $defs_method = GtkDefs::lookup_method_dont_mark($$obj_function{name});
- # the second alternative is for use with method-mappings meaning:
- # this function is mapped into this Gtk::class
- shift(@param_names) if(($defs_method && $$defs_method{class} ne "") ||
- ($$obj_function{mapped_class} ne ""));
+ my @c_param_names = $defs_method ? @{$$defs_method{param_names}} : @docs_param_names;
+
+ # The information in
+ # $obj_function comes from the docs.xml file,
+ # $objCppfunc comes from _WRAP_METHOD() or _WRAP_SIGNAL() in the .hg file,
+ # $defs_method comes from the methods.defs file.
+
+ # Ideally @docs_param_names and @c_param_names are identical.
+ # In the real world the parameters in the C documentation are sometimes not
+ # listed in the same order as the arguments in the C function declaration.
+ # We try to handle that case to some extent. If no argument name is misspelt
+ # in either the docs or the C function declaration, it usually succeeds for
+ # methods, but not for signals. For signals there is no C function declaration
+ # to compare with. If the docs of some method or signal get badly distorted
+ # due to imperfections in the C docs, and it's difficult to get the C docs
+ # corrected, correct docs can be added to the docs_override.xml file.
+
+ # Skip first param if this is a signal.
+ if ($$obj_function{name} =~ /\w+::/)
+ {
+ shift(@docs_param_names);
+ shift(@c_param_names);
+ }
+ # Skip first parameter if this is a non-static method.
+ elsif (defined($objCppfunc))
+ {
+ if (!$$objCppfunc{static})
+ {
+ shift(@docs_param_names);
+ shift(@c_param_names);
+ }
+ }
+ # The second alternative is for use with method-mappings meaning:
+ # this function is mapped into this Gtk::class.
+ elsif (($defs_method && $$defs_method{class} ne "") ||
+ $$obj_function{mapped_class} ne "")
+ {
+ shift(@docs_param_names);
+ shift(@c_param_names);
+ }
- # Also skip first param if this is a signal.
- shift(@param_names) if ($$obj_function{name} =~ /\w+::/);
# Skip the last param if there is a slot because it would be a
# gpointer user_data parameter.
- pop(@param_names) if (defined($objCppfunc) && $$objCppfunc{slot_name});
+ if (defined($objCppfunc) && $$objCppfunc{slot_name})
+ {
+ pop(@docs_param_names);
+ pop(@c_param_names);
+ }
- foreach my $param (@param_names)
+ # Skip the last param if it's an error output param.
+ if (scalar @docs_param_names && $docs_param_names[-1] eq "error")
+ {
+ pop(@docs_param_names);
+ pop(@c_param_names);
+ }
+
+ my $cpp_param_names;
+ my $param_mappings;
+ my $out_param_index = 1000; # No method has that many arguments, hopefully.
+ if (defined($objCppfunc))
{
- if ($param ne "error" ) #We wrap GErrors as exceptions, so ignore these.
+ $cpp_param_names = $$objCppfunc{param_names};
+ $param_mappings = $$objCppfunc{param_mappings}; # C name -> C++ index
+ if (exists $$param_mappings{OUT})
{
- my $desc = $$param_descriptions->{$param};
+ $out_param_index = $$param_mappings{OUT};
+ }
+ }
+ my %param_name_mappings; # C name -> C++ name
- # Deal with callback parameters converting the docs to a slot
- # compatible format.
- if ($param eq "callback")
+ for (my $i = 0; $i < @docs_param_names; ++$i)
+ {
+ my $param = $docs_param_names[$i];
+ my $desc = $$param_descriptions->{$param};
+
+ if (defined($objCppfunc))
+ {
+ # If the C++ name is not equal to the C name, mark that the name
+ # shall be changed in the documentation.
+ my $cpp_name = $param;
+ if (exists $$param_mappings{$param})
{
- $param = "slot";
- $$text =~ s/\@a callback/\@a slot/g;
+ # Rename and/or reorder declaration ({c_name} or {.}) in _WRAP_*().
+ $cpp_name = $$cpp_param_names[$$param_mappings{$param}];
}
-
- $param =~ s/([a-zA-Z0-9]*(_[a-zA-Z0-9]+)*)_?/$1/g;
- DocsParser::convert_docs_to_cpp($obj_function, \$desc);
- if(length($desc) > 0)
+ elsif ($c_param_names[$i] eq $param)
+ {
+ # Location in docs coincides with location in C declaration.
+ my $cpp_index = $i;
+ $cpp_index++ if ($i >= $out_param_index);
+ $cpp_name = $$cpp_param_names[$cpp_index];
+ }
+ else
+ {
+ # Search for the param in the C declaration.
+ for (my $j = 0; $j < @c_param_names; ++$j)
+ {
+ if ($c_param_names[$j] eq $param)
+ {
+ my $cpp_index = $j;
+ $cpp_index++ if ($j >= $out_param_index);
+ $cpp_name = $$cpp_param_names[$cpp_index];
+ last;
+ }
+ }
+ }
+ if ($cpp_name ne $param)
{
- $desc .= '.' unless($desc =~ /(?:^|\.)$/);
- $$text .= "\n\@param ${param} \u${desc}";
+ $param_name_mappings{$param} = $cpp_name;
}
}
+ elsif ($param eq "callback")
+ {
+ # Deal with callback parameters converting the docs to a slot
+ # compatible format.
+ $param_name_mappings{$param} = "slot";
+ }
+
+ $param =~ s/([a-zA-Z0-9]*(_[a-zA-Z0-9]+)*)_?/$1/g;
+ DocsParser::convert_docs_to_cpp($obj_function, \$desc);
+ if(length($desc) > 0)
+ {
+ $desc .= '.' unless($desc =~ /(?:^|\.)$/);
+ $$text .= "\n\@param ${param} \u${desc}";
+ }
}
+ return %param_name_mappings;
}
@@ -513,14 +629,20 @@ sub convert_tags_to_doxygen($)
s"<variablelist>\n?(.*?)</variablelist>\n?"&DocsParser::convert_variablelist($1)"esg;
# Use our Doxygen @newin alias.
- # If Since is not followed by a colon, substitute @newin only if it's
- # in a sentence of its own at the end of the string.
- s/\bSince:\s*(\d+)\.(\d+)\.(\d+)\b\.?/\@newin{$1,$2,$3}/g;
- s/\bSince:\s*(\d+)\.(\d+)\b\.?/\@newin{$1,$2}/g;
- s/(\.\s+)Since\s+(\d+)\.(\d+)\.(\d+)\.?$/$1\@newin{$2,$3,$4}/;
- s/(\.\s+)Since\s+(\d+)\.(\d+)\.?$/$1\@newin{$2,$3}/;
-
- s"\b->\b"->"g;
+ # Accept "Since" with or without a following colon.
+ # Require the Since clause to be
+ # - at the end of the string,
+ # - at the end of a line and followed by a blank line, or
+ # - followed by "Deprecated".
+ # If none of these requirements is met, "Since" may be embedded inside
+ # a function description, referring to only a part of the description.
+ # See e.g. g_date_time_format() and gdk_cursor_new_from_pixbuf().
+ # Doxygen assumes that @newin is followed by a paragraph that describes
+ # what is new, but we don't use it that way.
+ my $first_part = '\bSince[:\h]\h*(\d+)\.(\d+)'; # \h == [\t ] (horizontal whitespace)
+ my $last_part = '\.?(\s*$|\h*\n\h*\n|\s+Deprecated)';
+ s/$first_part\.(\d+)$last_part/\@newin{$1,$2,$3}$4/g;
+ s/$first_part$last_part/\@newin{$1,$2}$3/g;
# Doxygen is too dumb to handle &mdash;
s"&mdash;" \@htmlonly&mdash;\@endhtmlonly "g;
@@ -540,6 +662,21 @@ sub convert_tags_to_doxygen($)
}
}
+# void replace_or_add_newin(\$text, $newin)
+# If $newin is not empty, replace the version numbers in an existing @newin
+# Doxygen alias, or add one if there is none.
+sub replace_or_add_newin($$)
+{
+ my ($text, $newin) = @_;
+
+ return if ($newin eq "");
+
+ if (!($$text =~ s/\@newin\{[\d,]+\}/\@newin{$newin}/))
+ {
+ $$text .= "\n\n\@newin{$newin}";
+ }
+}
+
# Convert <simplelist> tags to a list of newline-separated elements.
sub convert_simplelist($)
{
@@ -691,7 +828,7 @@ sub lookup_object_of_method($$)
}
else
{
- print "DocsParser.pm:lookup_object_of_method(): Warning: GtkDefs::lookup_object() failed for object name=" . $object . ", function name=" . $name . "\n";
+ print "DocsParser.pm: lookup_object_of_method(): Warning: GtkDefs::lookup_object() failed for object name=" . $object . ", function name=" . $name . "\n";
print " This may be a missing define-object in a *.defs file.\n"
}
}
diff --git a/tools/pm/Enum.pm b/tools/pm/Enum.pm
index 8d0ce774..61840771 100644
--- a/tools/pm/Enum.pm
+++ b/tools/pm/Enum.pm
@@ -300,7 +300,7 @@ sub build_element_list($$$$)
push(@subst_in, $1);
push(@subst_out, $2);
}
- elsif($_ !~ /^\s*$/)
+ elsif($_ !~ /^\s*(?:newin.*)?$/) # newin or only white space
{
return undef;
}
diff --git a/tools/pm/Output.pm b/tools/pm/Output.pm
index 05e0fa16..587d06ba 100644
--- a/tools/pm/Output.pm
+++ b/tools/pm/Output.pm
@@ -72,15 +72,16 @@ sub output_wrap_failed($$$)
{
my ($self, $cname, $error) = @_;
+ # See "MS Visual Studio" comment in gmmproc.in.
my $str = sprintf("//gtkmmproc error: %s : %s", $cname, $error);
- print STDERR "Output.pm: $main::source: $cname : $error\n";
+ print STDERR "Output.pm, $main::source, $cname : $error\n";
$self->append($str);
}
sub error
{
my $format=shift @_;
- printf STDERR "Output.pm: $main::source: $format",@_;
+ printf STDERR "Output.pm, $main::source: $format",@_;
}
sub ifdef($$)
@@ -204,6 +205,9 @@ sub output_wrap_vfunc_cc($$$$$$$$)
my $refreturn_ctype = "";
$refreturn_ctype = "refreturn_ctype" if($$objCFunc{rettype_needs_ref});
+ my $keep_return = "";
+ $keep_return = "keep_return" if($$objCppfunc{keep_return});
+
# Get the conversions.
my $conversions =
convert_args_c_to_cpp($objCFunc, $objCppfunc, $line_num);
@@ -211,7 +215,7 @@ sub output_wrap_vfunc_cc($$$$$$$$)
my $returnValue = $$objCppfunc{return_value};
my $exceptionHandler = $$objCppfunc{exception_handler};
- my $str = sprintf("_VFUNC_PCC(%s,%s,%s,%s,\`%s\',\`%s\',\`%s\',%s,%s,%s,%s,%s,%s,%s,%s)dnl\n",
+ my $str = sprintf("_VFUNC_PCC(%s,%s,%s,%s,\`%s\',\`%s\',\`%s\',%s,%s,%s,%s,%s,%s,%s,%s,%s)dnl\n",
$$objCppfunc{name},
$cname,
$$objCppfunc{rettype},
@@ -221,6 +225,7 @@ sub output_wrap_vfunc_cc($$$$$$$$)
$conversions,
${$objCFunc->get_param_names()}[0],
$refreturn_ctype,
+ $keep_return,
$ifdef,
$errthrow,
$$objCppfunc{slot_type},
@@ -578,11 +583,14 @@ sub output_wrap_create($$$)
}
}
-# void output_wrap_sig_decl($filename, $line_num, $objCSignal, $objCppfunc, $signal_name, $bCustomCCallback, $ifdef, $commentblock, $deprecated, $deprecation_docs, $exceptionHandler)
-# custom_signalproxy_name is "" when no type conversion is required - a normal templates SignalProxy will be used instead.
-sub output_wrap_sig_decl($$$$$$$$$$$)
+# void output_wrap_sig_decl($filename, $line_num, $objCSignal, $objCppfunc, $signal_name,
+# $bCustomCCallback, $ifdef, $commentblock, $deprecated, $deprecation_docs,
+# $newin, $exceptionHandler, $detail_name, $bTwoSignalMethods)
+sub output_wrap_sig_decl($$$$$$$$$$$$$$)
{
- my ($self, $filename, $line_num, $objCSignal, $objCppfunc, $signal_name, $bCustomCCallback, $ifdef, $commentblock, $deprecated, $deprecation_docs, $exceptionHandler) = @_;
+ my ($self, $filename, $line_num, $objCSignal, $objCppfunc, $signal_name,
+ $bCustomCCallback, $ifdef, $commentblock, $deprecated, $deprecation_docs,
+ $newin, $exceptionHandler, $detail_name, $bTwoSignalMethods) = @_;
# _SIGNAL_PROXY(c_signal_name, c_return_type, `<c_arg_types_and_names>',
# cpp_signal_name, cpp_return_type, `<cpp_arg_types>',`<c_args_to_cpp>',
@@ -594,8 +602,8 @@ sub output_wrap_sig_decl($$$$$$$$$$$)
$underscored_signal_name =~ s/-/_/g;
# Get the existing signal documentation from the parsed docs.
- my $documentation =
- DocsParser::lookup_documentation("$$objCSignal{class}::$underscored_signal_name", $deprecation_docs);
+ my $documentation = DocsParser::lookup_documentation(
+ "$$objCSignal{class}::$underscored_signal_name", $deprecation_docs, $newin, $objCppfunc);
# Create a merged Doxygen comment block for the signal from the looked up
# docs (the block will also contain a prototype of the slot as an example).
@@ -609,6 +617,9 @@ sub output_wrap_sig_decl($$$$$$$$$$$)
{
# Strip leading whitespace
$doxycomment =~ s/^\s+//;
+ # Add a level of m4 quotes. Necessary if $commentblock contains __FT__ or __BT__.
+ # DocsParser::lookup_documentation() adds it in $documentation.
+ $commentblock = "`" . $commentblock . "'";
# We don't have something to add, so just use $commentblock with
# opening and closing tokens added.
@@ -629,7 +640,7 @@ sub output_wrap_sig_decl($$$$$$$$$$$)
my $conversions =
convert_args_c_to_cpp($objCSignal, $objCppfunc, $line_num);
- my $str = sprintf("_SIGNAL_PROXY(%s,%s,\`%s\',%s,%s,\`%s\',\`%s\',\`%s\',%s,\`%s\',%s,%s)dnl\n",
+ my $str = sprintf("_SIGNAL_PROXY(%s,%s,\`%s\',%s,%s,\`%s\',\`%s\',\`%s\',%s,\`%s\',%s,%s,%s,%s)dnl\n",
$signal_name,
$$objCSignal{rettype},
$objCSignal->args_types_and_names_without_object(),
@@ -641,7 +652,9 @@ sub output_wrap_sig_decl($$$$$$$$$$$)
$deprecated,
$doxycomment,
$ifdef,
- $exceptionHandler
+ $exceptionHandler,
+ $detail_name, # If a detailed name is supported (signal_name::detail_name)
+ $bTwoSignalMethods # If separate signal_xxx() methods for detailed and general name.
);
$self->append($str);
@@ -675,17 +688,10 @@ sub output_wrap_enum($$$$$$$)
# Get the enum documentation from the parsed docs.
my $enum_docs =
- DocsParser::lookup_enum_documentation("$c_type", "$cpp_type", \@flags);
-
- # Remove initial Doxygen comment block start ('/**') from the enum docs
- # to merge the passed in Doxygen comment block.
- $enum_docs =~ s/\/\*\*\s+//g;
-
- # Make sure indentation of passed in comment is correct.
- $comment =~ s/\n\s*\*/\n */g;
+ DocsParser::lookup_enum_documentation("$c_type", "$cpp_type", " ", \@flags);
# Merge the passed in comment to the existing enum documentation.
- $comment = $comment . "\n * " . $enum_docs;
+ $comment .= "\n * " . $enum_docs if $enum_docs ne "";
my $str = sprintf("_ENUM(%s,%s,%s,\`%s\',\`%s\',\`%s\')dnl\n",
$cpp_type,
@@ -706,7 +712,7 @@ sub output_wrap_enum_docs_only($$$$$$$)
# Get the existing enum description from the parsed docs.
my $enum_docs =
- DocsParser::lookup_enum_documentation("$c_type", "$cpp_type", \@flags);
+ DocsParser::lookup_enum_documentation("$c_type", "$cpp_type", " ", \@flags);
if($enum_docs eq "")
{
@@ -715,17 +721,10 @@ sub output_wrap_enum_docs_only($$$$$$$)
}
# Include the enum docs in the module's enum docs group.
- $enum_docs .= "\n * \@ingroup ${module_canonical}Enums\n";
+ $enum_docs .= "\n *\n * \@ingroup ${module_canonical}Enums";
- # Remove initial Doxygen comment block start ('/**') from the enum docs
- # to merge the passed in Doxygen comment block.
- $enum_docs =~ s/\/\*\*\s+//g;
-
# Merge the passed in comment to the existing enum documentation.
- $comment = "\/\*\* " . $comment . "\n * " . $enum_docs . "\n */\n";
-
- # Make sure indentation of passed in comment is correct.
- $comment =~ s/\n\s*\*/\n */g;
+ $comment = "/** " . $comment . "\n * " . $enum_docs . "\n */\n";
$self->append($comment);
}
@@ -761,10 +760,7 @@ sub output_wrap_gerror($$$$$$$)
# Get the enum documentation from the parsed docs.
my $enum_docs =
- DocsParser::lookup_enum_documentation("$c_enum", "Code", \@flags);
-
- # Make sure indentation of enum documentation is correct.
- $enum_docs =~ s/\n\s*\*/\n \*/g;
+ DocsParser::lookup_enum_documentation("$c_enum", "Code", " ", \@flags);
# Prevent Doxygen from auto-linking to a class called Error.
$enum_docs =~ s/([^%])(Error code)/$1%$2/g;
@@ -785,7 +781,8 @@ sub output_wrap_gerror($$$$$$$)
# void output_wrap_any_property($filename, $line_num, $name, $cpp_type, $c_class, $deprecated, $deprecation_docs, $objProperty, $proxy_macro)
sub output_wrap_any_property($$$$$$$$$$)
{
- my ($self, $filename, $line_num, $name, $cpp_type, $c_class, $deprecated, $deprecation_docs, $objProperty, $proxy_macro) = @_;
+ my ($self, $filename, $line_num, $name, $cpp_type, $c_class, $deprecated,
+ $deprecation_docs, $newin, $objProperty, $proxy_macro) = @_;
my $objDefsParser = $$self{objDefsParser};
@@ -817,9 +814,44 @@ sub output_wrap_any_property($$$$$$$$$$)
my $name_underscored = $name;
$name_underscored =~ tr/-/_/;
- # Get the property documentation, if any, and add m4 quotes.
- my $documentation = $objProperty->get_docs($deprecation_docs);
- add_m4_quotes(\$documentation) if ($documentation ne "");
+ # Get the existing property documentation, if any, from the parsed docs.
+ my $documentation = DocsParser::lookup_documentation(
+ "$$objProperty{class}:$name_underscored", $deprecation_docs, $newin);
+
+ if ($documentation ne "")
+ {
+ # Remove leading "/**" and trailing "*/". They will be added by the m4 macro.
+ $documentation =~ s/^\s*\/\*\*\s*//;
+ $documentation =~ s/\s*\*\/\s*$//;
+ }
+
+ if ($documentation =~ /^`?[*\s]*
+ (?:
+ \@newin\{[\d,]+\}
+ |[Ss]ince[:\h]+\d+\.\d+
+ |\@deprecated\s
+ |[Dd]eprecated[:\s]
+ )/x)
+ {
+ # The documentation begins with a "@newin", "Since", "@deprecated" or
+ # "Deprecated" line. Get documentation also from the Property object,
+ # but don't add another @newin or @deprecated.
+ my $objdoc = $objProperty->get_docs("", "");
+ if ($objdoc ne "")
+ {
+ add_m4_quotes(\$objdoc);
+ $documentation = "$objdoc\n *\n * $documentation";
+ }
+ }
+ elsif ($documentation eq "")
+ {
+ # Try to get the (usually short) documentation from the Property object.
+ $documentation = $objProperty->get_docs($deprecation_docs, $newin);
+ if ($documentation ne "")
+ {
+ add_m4_quotes(\$documentation);
+ }
+ }
#Declaration:
if($deprecated ne "")
@@ -863,7 +895,8 @@ sub output_wrap_any_property($$$$$$$$$$)
# void output_wrap_property($filename, $line_num, $name, $cpp_type, $deprecated, $deprecation_docs)
sub output_wrap_property($$$$$$$$)
{
- my ($self, $filename, $line_num, $name, $cpp_type, $c_class, $deprecated, $deprecation_docs) = @_;
+ my ($self, $filename, $line_num, $name, $cpp_type, $c_class, $deprecated,
+ $deprecation_docs, $newin) = @_;
my $objProperty = GtkDefs::lookup_property($c_class, $name);
if($objProperty eq 0) #If the lookup failed:
@@ -872,7 +905,8 @@ sub output_wrap_property($$$$$$$$)
}
else
{
- $self->output_wrap_any_property($filename, $line_num, $name, $cpp_type, $c_class, $deprecated, $deprecation_docs, $objProperty, "_PROPERTY_PROXY");
+ $self->output_wrap_any_property($filename, $line_num, $name, $cpp_type, $c_class,
+ $deprecated, $deprecation_docs, $newin, $objProperty, "_PROPERTY_PROXY");
}
}
@@ -880,7 +914,8 @@ sub output_wrap_property($$$$$$$$)
# void output_wrap_child_property($filename, $line_num, $name, $cpp_type, $deprecated, $deprecation_docs)
sub output_wrap_child_property($$$$$$$$)
{
- my ($self, $filename, $line_num, $name, $cpp_type, $c_class, $deprecated, $deprecation_docs) = @_;
+ my ($self, $filename, $line_num, $name, $cpp_type, $c_class, $deprecated,
+ $deprecation_docs, $newin) = @_;
my $objChildProperty = GtkDefs::lookup_child_property($c_class, $name);
if($objChildProperty eq 0) #If the lookup failed:
@@ -889,7 +924,8 @@ sub output_wrap_child_property($$$$$$$$)
}
else
{
- $self->output_wrap_any_property($filename, $line_num, $name, $cpp_type, $c_class, $deprecated, $deprecation_docs, $objChildProperty, "_CHILD_PROPERTY_PROXY");
+ $self->output_wrap_any_property($filename, $line_num, $name, $cpp_type, $c_class,
+ $deprecated, $deprecation_docs, $newin, $objChildProperty, "_CHILD_PROPERTY_PROXY");
}
}
diff --git a/tools/pm/Property.pm b/tools/pm/Property.pm
index f89140ea..8e2a131f 100644
--- a/tools/pm/Property.pm
+++ b/tools/pm/Property.pm
@@ -112,15 +112,21 @@ sub get_writable($)
sub get_docs($$)
{
- my ($self, $deprecation_docs) = @_;
+ my ($self, $deprecation_docs, $newin) = @_;
my $text = $$self{docs};
- #Add note about deprecation if we have specified that in our _WRAP_METHOD() call:
+ #Add note about deprecation if we have specified that in our _WRAP_PROPERTY()
+ #or_WRAP_CHILD_PROPERTY() call:
if($deprecation_docs ne "")
{
$text .= "\n * \@deprecated $deprecation_docs";
}
+ if ($newin ne "")
+ {
+ $text .= "\n *\n * \@newin{$newin}";
+ }
+
return $text;
}
diff --git a/tools/pm/WrapParser.pm b/tools/pm/WrapParser.pm
index dc12eb47..b33ecb13 100644
--- a/tools/pm/WrapParser.pm
+++ b/tools/pm/WrapParser.pm
@@ -111,6 +111,8 @@ sub parse_and_build_output($)
if ($token eq "_DEFS") { $self->on_defs(); next;} #Read the defs file.
if ($token eq "_IGNORE") { $self->on_ignore(); next;} #Ignore a function.
if ($token eq "_IGNORE_SIGNAL") { $self->on_ignore_signal(); next;} #Ignore a signal.
+ if ($token eq "_IGNORE_PROPERTY") { $self->on_ignore_property(); next;} #Ignore a property.
+ if ($token eq "_IGNORE_CHILD_PROPERTY") { $self->on_ignore_child_property(); next;} #Ignore a child property.
if ($token eq "_WRAP_METHOD") { $self->on_wrap_method(); next;}
if ($token eq "_WRAP_METHOD_DOCS_ONLY") { $self->on_wrap_method_docs_only(); next;}
if ($token eq "_WRAP_CORBA_METHOD") { $self->on_wrap_corba_method(); next;} #Used in libbonobo*mm.
@@ -471,25 +473,42 @@ sub on_ignore($)
}
}
-sub on_ignore_signal($)
+# void on_ignore_signal_or_property(\&lookup_function, $type)
+sub on_ignore_signal_or_property($$$)
{
- my ($self) = @_;
- my $objOutputter = $$self{objOutputter};
+ my ($self, $lookup_function, $type) = @_;
my $str = $self->extract_bracketed_text();
- $str = string_trim($str);
- $str = string_unquote($str);
my @args = split(/\s+|,/,$str);
foreach (@args)
{
- next if ($_ eq "");
- my $objCsignal = GtkDefs::lookup_signal($$self{c_class}, $_); #Pretend that we've used it.
- if(!$objCsignal)
+ my $name = string_unquote($_);
+ next if ($name eq "");
+ my $objCentity = $lookup_function->($$self{c_class}, $name); #Pretend that we've used it.
+ if (!$objCentity)
{
- $objOutputter->output_wrap_failed($_, "ignored signal defs lookup failed");
+ $$self{objOutputter}->output_wrap_failed($name, "ignored $type defs lookup failed");
}
}
}
+sub on_ignore_signal($)
+{
+ my ($self) = @_;
+ $self->on_ignore_signal_or_property(\&GtkDefs::lookup_signal, "signal");
+}
+
+sub on_ignore_property($)
+{
+ my ($self) = @_;
+ $self->on_ignore_signal_or_property(\&GtkDefs::lookup_property, "property");
+}
+
+sub on_ignore_child_property($)
+{
+ my ($self) = @_;
+ $self->on_ignore_signal_or_property(\&GtkDefs::lookup_child_property, "child property");
+}
+
########################################
### we have certain macros we need to insert at end of statements
# void on_class($, $strClassCommand)
@@ -683,11 +702,12 @@ sub extract_bracketed_text($)
########################################
### breaks up a string by commas (smart)
-# @strings string_split_commas($string)
-sub string_split_commas($)
+# @strings string_split_commas($string [, $ignore_quotes])
+sub string_split_commas($;$)
{
- my ($in) = @_;
+ my ($in, $ignore_quotes) = @_;
+ $ignore_quotes = 2 unless defined $ignore_quotes;
my @out;
my $level = 0;
my $in_braces = 0;
@@ -701,10 +721,10 @@ sub string_split_commas($)
next if ($t eq "");
- # TODO: Delete the test for scalar(@out) >= 2 when we can stop accepting
+ # TODO: Delete the test for scalar(@out) >= $ignore_quotes when we can stop accepting
# .hg files with unpaired quotes, such as _WRAP_PROPERTY("text_column, int).
# See also TODO in extract_bracketed_text().
- $in_quotes = !$in_quotes if ($t eq '"' and scalar(@out) >= 2);
+ $in_quotes = !$in_quotes if ($t eq '"' and scalar(@out) >= $ignore_quotes);
if (!$in_quotes)
{
$in_braces++ if ($t eq "{");
@@ -931,6 +951,7 @@ sub on_wrap_method($)
$$objCfunc{constversion} = 0;
$$objCfunc{deprecated} = "";
my $deprecation_docs = "";
+ my $newin = "";
my $ifdef;
while($#args >= 2) # If the optional ref/err/deprecated arguments are there.
{
@@ -957,6 +978,10 @@ sub on_wrap_method($)
$deprecation_docs = string_unquote(string_trim($1));
}
}
+ elsif($argRef =~ /^newin(.*)/) #If newin is at the start.
+ {
+ $newin = string_unquote(string_trim($1));
+ }
elsif($argRef =~ /^ifdef(.*)/) #If ifdef is at the start.
{
$ifdef = $1;
@@ -989,7 +1014,7 @@ sub on_wrap_method($)
else
{
$commentblock = DocsParser::lookup_documentation($argCFunctionName,
- $deprecation_docs, $objCppfunc);
+ $deprecation_docs, $newin, $objCppfunc);
}
$objOutputter->output_wrap_meth($filename, $line_num, $objCppfunc, $objCfunc, $argCppMethodDecl, $commentblock, $ifdef);
@@ -1007,7 +1032,7 @@ sub on_wrap_method_docs_only($)
my $line_num = $$self{line_num};
my $str = $self->extract_bracketed_text();
- my @args = string_split_commas($str);
+ my @args = string_split_commas($str, 1);
my $entity_type = "method";
@@ -1038,8 +1063,8 @@ sub on_wrap_method_docs_only($)
}
}
- # Extra ref needed?
$$objCfunc{throw_any_errors} = 0;
+ my $newin = "";
while($#args >= 1) # If the optional ref/err arguments are there.
{
my $argRef = string_trim(pop @args);
@@ -1047,11 +1072,14 @@ sub on_wrap_method_docs_only($)
{
$$objCfunc{throw_any_errors} = 1;
}
+ elsif($argRef =~ /^newin(.*)/) #If newin is at the start.
+ {
+ $newin = string_unquote(string_trim($1));
+ }
}
my $commentblock = "";
- $commentblock = DocsParser::lookup_documentation($argCFunctionName, "");
-
+ $commentblock = DocsParser::lookup_documentation($argCFunctionName, "", $newin);
$objOutputter->output_wrap_meth_docs_only($filename, $line_num, $commentblock);
}
@@ -1205,10 +1233,13 @@ sub on_wrap_signal($$)
my $bNoDefaultHandler = 0;
my $bCustomCCallback = 0;
my $bRefreturn = 0;
- my $ifdef;
+ my $ifdef = "";
my $argDeprecated = "";
my $deprecation_docs = "";
+ my $newin = "";
my $exceptionHandler = "";
+ my $detail_name = "";
+ my $bTwoSignalMethods = 0;
while($#args >= 2) # If optional arguments are there.
{
@@ -1217,23 +1248,19 @@ sub on_wrap_signal($$)
{
$bCustomDefaultHandler = 1;
}
-
- if($argRef eq "no_default_handler")
+ elsif($argRef eq "no_default_handler")
{
$bNoDefaultHandler = 1;
}
-
- if($argRef eq "custom_c_callback")
+ elsif($argRef eq "custom_c_callback")
{
$bCustomCCallback = 1;
}
-
- if($argRef eq "refreturn")
+ elsif($argRef eq "refreturn")
{
$bRefreturn = 1;
}
-
- if($argRef =~ /^deprecated(.*)/) #If deprecated is at the start.
+ elsif($argRef =~ /^deprecated(.*)/) #If deprecated is at the start.
{
$argDeprecated = "deprecated";
@@ -1242,21 +1269,36 @@ sub on_wrap_signal($$)
$deprecation_docs = string_unquote(string_trim($1));
}
}
-
+ elsif($argRef =~ /^newin(.*)/) #If newin is at the start.
+ {
+ $newin = string_unquote(string_trim($1));
+ }
elsif($argRef =~ /^ifdef(.*)/) #If ifdef is at the start.
{
$ifdef = $1;
}
-
elsif($argRef =~ /^exception_handler\s+(.*)/) #If exception_handler at the start.
{
- $exceptionHandler = $1;
+ $exceptionHandler = $1;
+ }
+ elsif($argRef =~ /^detail_name\s+(.+)/) #If detail_name at the start.
+ {
+ $detail_name = $1;
+ }
+ elsif($argRef eq "two_signal_methods")
+ {
+ $bTwoSignalMethods = 1;
+ }
+ else
+ {
+ $self->error("_WRAP_SIGNAL: Invalid option '$argRef'.\n");
}
}
$self->output_wrap_signal($argCppDecl, $argCName, $$self{filename}, $$self{line_num},
$bCustomDefaultHandler, $bNoDefaultHandler, $bCustomCCallback,
- $bRefreturn, $ifdef, $commentblock, $argDeprecated, $deprecation_docs, $exceptionHandler);
+ $bRefreturn, $ifdef, $commentblock, $argDeprecated, $deprecation_docs,
+ $newin, $exceptionHandler, $detail_name, $bTwoSignalMethods);
}
# void on_wrap_vfunc()
@@ -1279,6 +1321,7 @@ sub on_wrap_vfunc($)
$argCName = string_unquote($argCName);
my $refreturn = 0;
+ my $keep_return = 0;
my $refreturn_ctype = 0;
my $returnValue = "";
my $exceptionHandler = "";
@@ -1299,6 +1342,12 @@ sub on_wrap_vfunc($)
{
$refreturn = 1;
}
+ # Must a copy of the return value be kept, because the caller does not
+ # get its own copy?
+ elsif($argRef eq "keep_return")
+ {
+ $keep_return = 1;
+ }
elsif($argRef eq "refreturn_ctype")
{
$refreturn_ctype = 1;
@@ -1354,7 +1403,7 @@ sub on_wrap_vfunc($)
}
$self->output_wrap_vfunc($argCppDecl, $argCName, $$self{filename}, $$self{line_num},
- $refreturn, $refreturn_ctype, $custom_vfunc,
+ $refreturn, $keep_return, $refreturn_ctype, $custom_vfunc,
$custom_vfunc_callback, $ifdef, $errthrow,
$slot_name, $slot_callback, $no_slot_copy, $returnValue, $exceptionHandler);
}
@@ -1452,6 +1501,7 @@ sub on_wrap_any_property($)
#TODO: Reduce duplication with on_wrap_method():
my $argDeprecated = "";
my $deprecation_docs = "";
+ my $newin = "";
while($#args >= 2) # If the optional arguments are there.
{
my $argRef = string_trim(pop @args);
@@ -1465,9 +1515,14 @@ sub on_wrap_any_property($)
$deprecation_docs = string_unquote(string_trim($1));
}
}
+ elsif($argRef =~ /^newin(.*)/) #If newin is at the start.
+ {
+ $newin = string_unquote(string_trim($1));
+ }
}
- return ($filename, $line_num, $argPropertyName, $argCppType, $argDeprecated, $deprecation_docs);
+ return ($filename, $line_num, $argPropertyName, $argCppType,
+ $argDeprecated, $deprecation_docs, $newin);
}
sub on_wrap_property($)
@@ -1477,9 +1532,11 @@ sub on_wrap_property($)
return unless ($self->check_for_eof());
- my ($filename, $line_num, $argPropertyName, $argCppType, $argDeprecated, $deprecation_docs) = $self->on_wrap_any_property();
+ my ($filename, $line_num, $argPropertyName, $argCppType, $argDeprecated,
+ $deprecation_docs, $newin) = $self->on_wrap_any_property();
- $objOutputter->output_wrap_property($filename, $line_num, $argPropertyName, $argCppType, $$self{c_class}, $argDeprecated, $deprecation_docs);
+ $objOutputter->output_wrap_property($filename, $line_num, $argPropertyName,
+ $argCppType, $$self{c_class}, $argDeprecated, $deprecation_docs, $newin);
}
sub on_wrap_child_property($)
@@ -1489,9 +1546,11 @@ sub on_wrap_child_property($)
return unless ($self->check_for_eof());
- my ($filename, $line_num, $argPropertyName, $argCppType, $argDeprecated, $deprecation_docs) = $self->on_wrap_any_property();
+ my ($filename, $line_num, $argPropertyName, $argCppType, $argDeprecated,
+ $deprecation_docs, $newin) = $self->on_wrap_any_property();
- $objOutputter->output_wrap_child_property($filename, $line_num, $argPropertyName, $argCppType, $$self{c_class}, $argDeprecated, $deprecation_docs);
+ $objOutputter->output_wrap_child_property($filename, $line_num, $argPropertyName,
+ $argCppType, $$self{c_class}, $argDeprecated, $deprecation_docs, $newin);
}
sub output_wrap_check($$$$$$)
@@ -1515,12 +1574,14 @@ sub output_wrap_check($$$$$$)
# void output_wrap($CppDecl, $signal_name, $filename, $line_num, $bCustomDefaultHandler,
# $bNoDefaultHandler, $bCustomCCallback, $bRefreturn, $ifdef,
-# $commentblock, $deprecated, $deprecation_docs, $exceptionHandler)
-sub output_wrap_signal($$$$$$$$$$$$)
+# $commentblock, $deprecated, $deprecation_docs, $newin, $exceptionHandler,
+# $detail_name, $bTwoSignalMethods)
+sub output_wrap_signal($$$$$$$$$$$$$$$$$)
{
my ($self, $CppDecl, $signal_name, $filename, $line_num, $bCustomDefaultHandler,
$bNoDefaultHandler, $bCustomCCallback, $bRefreturn, $ifdef,
- $commentblock, $deprecated, $deprecation_docs, $exceptionHandler) = @_;
+ $commentblock, $deprecated, $deprecation_docs, $newin, $exceptionHandler,
+ $detail_name, $bTwoSignalMethods) = @_;
#Some checks:
return if ($self->output_wrap_check($CppDecl, $signal_name,
@@ -1554,7 +1615,8 @@ sub output_wrap_signal($$$$$$$$$$$$)
$objOutputter->output_wrap_sig_decl($filename, $line_num, $objCSignal, $objCppSignal,
$signal_name, $bCustomCCallback, $ifdef, $commentblock,
- $deprecated, $deprecation_docs, $exceptionHandler);
+ $deprecated, $deprecation_docs, $newin, $exceptionHandler,
+ $detail_name, $bTwoSignalMethods);
if($bNoDefaultHandler eq 0)
{
@@ -1570,12 +1632,12 @@ sub output_wrap_signal($$$$$$$$$$$$)
}
# void output_wrap_vfunc($CppDecl, $vfunc_name, $filename, $line_num,
-# $refreturn, $refreturn_ctype,
+# $refreturn, $keep_return, $refreturn_ctype,
# $custom_vfunc, $custom_vfunc_callback, $ifdef, $errthrow,
# $slot_name, $slot_callback, $no_slot_copy, $returnValue, $exceptionHandler)
-sub output_wrap_vfunc($$$$$$$$$$$$$$)
+sub output_wrap_vfunc($$$$$$$$$$$$$$$$$)
{
- my ($self, $CppDecl, $vfunc_name, $filename, $line_num, $refreturn, $refreturn_ctype,
+ my ($self, $CppDecl, $vfunc_name, $filename, $line_num, $refreturn, $keep_return, $refreturn_ctype,
$custom_vfunc, $custom_vfunc_callback, $ifdef, $errthrow,
$slot_name, $slot_callback, $no_slot_copy, $returnValue, $exceptionHandler) = @_;
@@ -1608,6 +1670,7 @@ sub output_wrap_vfunc($$$$$$$$$$$$$$)
# These macros are defined in vfunc.m4:
$$objCppVfunc{rettype_needs_ref} = $refreturn;
+ $$objCppVfunc{keep_return} = $keep_return;
$$objCppVfunc{return_value} = $returnValue;
$$objCppVfunc{exception_handler} = $exceptionHandler;
$$objCppVfunc{name} .= "_vfunc"; #All vfuncs should have the "_vfunc" suffix, and a separate easily-named invoker method.
diff --git a/tools/test_scripts/testheaders.sh b/tools/test_scripts/testheaders.sh
index b6de3976..150ada4e 100755
--- a/tools/test_scripts/testheaders.sh
+++ b/tools/test_scripts/testheaders.sh
@@ -75,11 +75,11 @@ do
for headerfile in $i/${i}mm/*.h
do
echo "=== $headerfile"
- g++ -c -x c++ -o /dev/null $headerfile $CFLAGS
+ g++ -c -x c++ -std=c++11 -o /dev/null $headerfile $CFLAGS
done
else
echo "=== $i"
- g++ -c -x c++ -o /dev/null $i $CFLAGS
+ g++ -c -x c++ -std=c++11 -o /dev/null $i $CFLAGS
fi
done