/**
- * GOsxAppInfo:
- *
- * Information about an installed application from a NSBundle.
- */
-
-
-/**
* GPermission:
*
* #GPermission is an opaque data structure and can only be accessed
*
* If %TRUE, forces 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 modern TLS handshake.
- *
- * Despite the property name, the fallback version is usually not
- * SSL 3.0, because SSL 3.0 is generally disabled by the #GTlsBackend.
- * #GTlsClientConnection will use the next-highest available version
- * as the fallback version.
+ * to use. See g_tls_client_connection_set_use_ssl3().
*
* Since: 2.28
* Deprecated: 2.56: SSL 3.0 is insecure, and this property does not
/**
- * GXdpDocuments:
- *
- * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link>.
- */
-
-
-/**
- * GXdpDocuments::handle-add:
- * @object: A #GXdpDocuments.
- * @invocation: A #GDBusMethodInvocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @arg_o_path_fd: Argument passed by remote caller.
- * @arg_reuse_existing: Argument passed by remote caller.
- * @arg_persistent: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Add">Add()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_add() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpDocuments::handle-add-full:
- * @object: A #GXdpDocuments.
- * @invocation: A #GDBusMethodInvocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @arg_o_path_fds: Argument passed by remote caller.
- * @arg_flags: Argument passed by remote caller.
- * @arg_app_id: Argument passed by remote caller.
- * @arg_permissions: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddFull">AddFull()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_add_full() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpDocuments::handle-add-named:
- * @object: A #GXdpDocuments.
- * @invocation: A #GDBusMethodInvocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @arg_o_path_parent_fd: Argument passed by remote caller.
- * @arg_filename: Argument passed by remote caller.
- * @arg_reuse_existing: Argument passed by remote caller.
- * @arg_persistent: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamed">AddNamed()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_add_named() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpDocuments::handle-delete:
- * @object: A #GXdpDocuments.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_doc_id: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Delete">Delete()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_delete() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpDocuments::handle-get-mount-point:
- * @object: A #GXdpDocuments.
- * @invocation: A #GDBusMethodInvocation.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GetMountPoint">GetMountPoint()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_get_mount_point() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpDocuments::handle-grant-permissions:
- * @object: A #GXdpDocuments.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_doc_id: Argument passed by remote caller.
- * @arg_app_id: Argument passed by remote caller.
- * @arg_permissions: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GrantPermissions">GrantPermissions()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_grant_permissions() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpDocuments::handle-info:
- * @object: A #GXdpDocuments.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_doc_id: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Info">Info()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_info() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpDocuments::handle-list:
- * @object: A #GXdpDocuments.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_app_id: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.List">List()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_list() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpDocuments::handle-lookup:
- * @object: A #GXdpDocuments.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_filename: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Lookup">Lookup()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_lookup() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpDocuments::handle-revoke-permissions:
- * @object: A #GXdpDocuments.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_doc_id: Argument passed by remote caller.
- * @arg_app_id: Argument passed by remote caller.
- * @arg_permissions: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.RevokePermissions">RevokePermissions()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_revoke_permissions() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpDocuments:version:
- *
- * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-portal-Documents.version">"version"</link>.
- *
- * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
- */
-
-
-/**
- * GXdpDocumentsIface:
- * @parent_iface: The parent interface.
- * @handle_add: Handler for the #GXdpDocuments::handle-add signal.
- * @handle_add_full: Handler for the #GXdpDocuments::handle-add-full signal.
- * @handle_add_named: Handler for the #GXdpDocuments::handle-add-named signal.
- * @handle_delete: Handler for the #GXdpDocuments::handle-delete signal.
- * @handle_get_mount_point: Handler for the #GXdpDocuments::handle-get-mount-point signal.
- * @handle_grant_permissions: Handler for the #GXdpDocuments::handle-grant-permissions signal.
- * @handle_info: Handler for the #GXdpDocuments::handle-info signal.
- * @handle_list: Handler for the #GXdpDocuments::handle-list signal.
- * @handle_lookup: Handler for the #GXdpDocuments::handle-lookup signal.
- * @handle_revoke_permissions: Handler for the #GXdpDocuments::handle-revoke-permissions signal.
- * @get_version: Getter for the #GXdpDocuments:version property.
- *
- * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link>.
- */
-
-
-/**
- * GXdpDocumentsProxy:
- *
- * The #GXdpDocumentsProxy structure contains only private data and should only be accessed using the provided API.
- */
-
-
-/**
- * GXdpDocumentsProxyClass:
- * @parent_class: The parent class.
- *
- * Class structure for #GXdpDocumentsProxy.
- */
-
-
-/**
- * GXdpDocumentsSkeleton:
- *
- * The #GXdpDocumentsSkeleton structure contains only private data and should only be accessed using the provided API.
- */
-
-
-/**
- * GXdpDocumentsSkeletonClass:
- * @parent_class: The parent class.
- *
- * Class structure for #GXdpDocumentsSkeleton.
- */
-
-
-/**
- * GXdpNetworkMonitor:
- *
- * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-NetworkMonitor.top_of_page">org.freedesktop.portal.NetworkMonitor</link>.
- */
-
-
-/**
- * GXdpNetworkMonitor::changed:
- * @object: A #GXdpNetworkMonitor.
- * @arg_available: Argument.
- *
- * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-freedesktop-portal-NetworkMonitor.changed">"changed"</link> is received.
- *
- * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
- */
-
-
-/**
- * GXdpNetworkMonitor:available:
- *
- * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-portal-NetworkMonitor.available">"available"</link>.
- *
- * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
- */
-
-
-/**
- * GXdpNetworkMonitor:connectivity:
- *
- * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-portal-NetworkMonitor.connectivity">"connectivity"</link>.
- *
- * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
- */
-
-
-/**
- * GXdpNetworkMonitor:metered:
- *
- * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-portal-NetworkMonitor.metered">"metered"</link>.
- *
- * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
- */
-
-
-/**
- * GXdpNetworkMonitorIface:
- * @parent_iface: The parent interface.
- * @get_available: Getter for the #GXdpNetworkMonitor:available property.
- * @get_connectivity: Getter for the #GXdpNetworkMonitor:connectivity property.
- * @get_metered: Getter for the #GXdpNetworkMonitor:metered property.
- * @changed: Handler for the #GXdpNetworkMonitor::changed signal.
- *
- * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-NetworkMonitor.top_of_page">org.freedesktop.portal.NetworkMonitor</link>.
- */
-
-
-/**
- * GXdpNetworkMonitorProxy:
- *
- * The #GXdpNetworkMonitorProxy structure contains only private data and should only be accessed using the provided API.
- */
-
-
-/**
- * GXdpNetworkMonitorProxyClass:
- * @parent_class: The parent class.
- *
- * Class structure for #GXdpNetworkMonitorProxy.
- */
-
-
-/**
- * GXdpNetworkMonitorSkeleton:
- *
- * The #GXdpNetworkMonitorSkeleton structure contains only private data and should only be accessed using the provided API.
- */
-
-
-/**
- * GXdpNetworkMonitorSkeletonClass:
- * @parent_class: The parent class.
- *
- * Class structure for #GXdpNetworkMonitorSkeleton.
- */
-
-
-/**
- * GXdpOpenURI:
- *
- * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link>.
- */
-
-
-/**
- * GXdpOpenURI::handle-open-file:
- * @object: A #GXdpOpenURI.
- * @invocation: A #GDBusMethodInvocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @arg_parent_window: Argument passed by remote caller.
- * @arg_fd: Argument passed by remote caller.
- * @arg_options: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenFile">OpenFile()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_open_uri_complete_open_file() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpOpenURI::handle-open-uri:
- * @object: A #GXdpOpenURI.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_parent_window: Argument passed by remote caller.
- * @arg_uri: Argument passed by remote caller.
- * @arg_options: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenURI">OpenURI()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_open_uri_complete_open_uri() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpOpenURI:version:
- *
- * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-portal-OpenURI.version">"version"</link>.
- *
- * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
- */
-
-
-/**
- * GXdpOpenURIIface:
- * @parent_iface: The parent interface.
- * @handle_open_file: Handler for the #GXdpOpenURI::handle-open-file signal.
- * @handle_open_uri: Handler for the #GXdpOpenURI::handle-open-uri signal.
- * @get_version: Getter for the #GXdpOpenURI:version property.
- *
- * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link>.
- */
-
-
-/**
- * GXdpOpenURIProxy:
- *
- * The #GXdpOpenURIProxy structure contains only private data and should only be accessed using the provided API.
- */
-
-
-/**
- * GXdpOpenURIProxyClass:
- * @parent_class: The parent class.
- *
- * Class structure for #GXdpOpenURIProxy.
- */
-
-
-/**
- * GXdpOpenURISkeleton:
- *
- * The #GXdpOpenURISkeleton structure contains only private data and should only be accessed using the provided API.
- */
-
-
-/**
- * GXdpOpenURISkeletonClass:
- * @parent_class: The parent class.
- *
- * Class structure for #GXdpOpenURISkeleton.
- */
-
-
-/**
- * GXdpProxyResolver:
- *
- * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link>.
- */
-
-
-/**
- * GXdpProxyResolver::handle-lookup:
- * @object: A #GXdpProxyResolver.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_uri: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-ProxyResolver.Lookup">Lookup()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_proxy_resolver_complete_lookup() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * GXdpProxyResolverIface:
- * @parent_iface: The parent interface.
- * @handle_lookup: Handler for the #GXdpProxyResolver::handle-lookup signal.
- *
- * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link>.
- */
-
-
-/**
- * GXdpProxyResolverProxy:
- *
- * The #GXdpProxyResolverProxy structure contains only private data and should only be accessed using the provided API.
- */
-
-
-/**
- * GXdpProxyResolverProxyClass:
- * @parent_class: The parent class.
- *
- * Class structure for #GXdpProxyResolverProxy.
- */
-
-
-/**
- * GXdpProxyResolverSkeleton:
- *
- * The #GXdpProxyResolverSkeleton structure contains only private data and should only be accessed using the provided API.
- */
-
-
-/**
- * GXdpProxyResolverSkeletonClass:
- * @parent_class: The parent class.
- *
- * Class structure for #GXdpProxyResolverSkeleton.
- */
-
-
-/**
* GZlibCompressor:
*
* Zlib decompression
/**
- * SECTION:GXdpDocuments
- * @title: GXdpDocuments
- * @short_description: Generated C code for the org.freedesktop.portal.Documents D-Bus interface
- *
- * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link> D-Bus interface in C.
- */
-
-
-/**
- * SECTION:GXdpNetworkMonitor
- * @title: GXdpNetworkMonitor
- * @short_description: Generated C code for the org.freedesktop.portal.NetworkMonitor D-Bus interface
- *
- * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-portal-NetworkMonitor.top_of_page">org.freedesktop.portal.NetworkMonitor</link> D-Bus interface in C.
- */
-
-
-/**
- * SECTION:GXdpOpenURI
- * @title: GXdpOpenURI
- * @short_description: Generated C code for the org.freedesktop.portal.OpenURI D-Bus interface
- *
- * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link> D-Bus interface in C.
- */
-
-
-/**
- * SECTION:GXdpProxyResolver
- * @title: GXdpProxyResolver
- * @short_description: Generated C code for the org.freedesktop.portal.ProxyResolver D-Bus interface
- *
- * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link> D-Bus interface in C.
- */
-
-
-/**
- * SECTION:_GFreedesktopDBus
- * @title: _GFreedesktopDBus
- * @short_description: Generated C code for the org.freedesktop.DBus D-Bus interface
- *
- * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link> D-Bus interface in C.
- */
-
-
-/**
* SECTION:extensionpoints
* @short_description: Extension Points
* @include: gio.h
/**
- * SECTION:gosxappinfo
- * @title: GOsxAppInfo
- * @short_description: Application information from NSBundles
- * @include: gio/gosxappinfo.h
- *
- * #GOsxAppInfo is an implementation of #GAppInfo based on NSBundle information.
- *
- * Note that `<gio/gosxappinfo.h>` is unique to OSX.
- */
-
-
-/**
* SECTION:goutputstream
* @short_description: Base class for implementing streaming output
* @include: gio/gio.h
* where it was created (waiting until the next iteration of the main
* loop first, if necessary). The caller will pass the #GTask back to
* the operation's finish function (as a #GAsyncResult), and you can
- * can use g_task_propagate_pointer() or the like to extract the
+ * use g_task_propagate_pointer() or the like to extract the
* return value.
*
* Here is an example for using GTask as a GAsyncResult:
/**
- * _GFreedesktopDBus:
- *
- * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link>.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-add-match:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_rule: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.AddMatch">AddMatch()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_add_match() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-get-connection-selinux-security-context:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_name: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionSELinuxSecurityContext">GetConnectionSELinuxSecurityContext()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_get_connection_selinux_security_context() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-get-connection-unix-process-id:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_name: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixProcessID">GetConnectionUnixProcessID()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_get_connection_unix_process_id() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-get-connection-unix-user:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_name: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixUser">GetConnectionUnixUser()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_get_connection_unix_user() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-get-id:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.GetId">GetId()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_get_id() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-get-name-owner:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_name: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.GetNameOwner">GetNameOwner()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_get_name_owner() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-hello:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.Hello">Hello()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_hello() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-list-activatable-names:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.ListActivatableNames">ListActivatableNames()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_list_activatable_names() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-list-names:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.ListNames">ListNames()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_list_names() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-list-queued-owners:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_name: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.ListQueuedOwners">ListQueuedOwners()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_list_queued_owners() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-name-has-owner:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_name: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.NameHasOwner">NameHasOwner()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_name_has_owner() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-release-name:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_name: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.ReleaseName">ReleaseName()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_release_name() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-reload-config:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.ReloadConfig">ReloadConfig()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_reload_config() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-remove-match:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_rule: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.RemoveMatch">RemoveMatch()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_remove_match() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-request-name:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_name: Argument passed by remote caller.
- * @arg_flags: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.RequestName">RequestName()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_request_name() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-start-service-by-name:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_name: Argument passed by remote caller.
- * @arg_flags: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.StartServiceByName">StartServiceByName()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_start_service_by_name() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::handle-update-activation-environment:
- * @object: A #_GFreedesktopDBus.
- * @invocation: A #GDBusMethodInvocation.
- * @arg_environment: Argument passed by remote caller.
- *
- * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.UpdateActivationEnvironment">UpdateActivationEnvironment()</link> D-Bus method.
- *
- * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_update_activation_environment() 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.
- *
- * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
- */
-
-
-/**
- * _GFreedesktopDBus::name-acquired:
- * @object: A #_GFreedesktopDBus.
- * @arg_name: Argument.
- *
- * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-freedesktop-DBus.NameAcquired">"NameAcquired"</link> is received.
- *
- * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
- */
-
-
-/**
- * _GFreedesktopDBus::name-lost:
- * @object: A #_GFreedesktopDBus.
- * @arg_name: Argument.
- *
- * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-freedesktop-DBus.NameLost">"NameLost"</link> is received.
- *
- * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
- */
-
-
-/**
- * _GFreedesktopDBus::name-owner-changed:
- * @object: A #_GFreedesktopDBus.
- * @arg_name: Argument.
- * @arg_old_owner: Argument.
- * @arg_new_owner: Argument.
- *
- * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-freedesktop-DBus.NameOwnerChanged">"NameOwnerChanged"</link> is received.
- *
- * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
- */
-
-
-/**
- * _GFreedesktopDBusIface:
- * @parent_iface: The parent interface.
- * @handle_add_match: Handler for the #_GFreedesktopDBus::handle-add-match signal.
- * @handle_get_connection_selinux_security_context: Handler for the #_GFreedesktopDBus::handle-get-connection-selinux-security-context signal.
- * @handle_get_connection_unix_process_id: Handler for the #_GFreedesktopDBus::handle-get-connection-unix-process-id signal.
- * @handle_get_connection_unix_user: Handler for the #_GFreedesktopDBus::handle-get-connection-unix-user signal.
- * @handle_get_id: Handler for the #_GFreedesktopDBus::handle-get-id signal.
- * @handle_get_name_owner: Handler for the #_GFreedesktopDBus::handle-get-name-owner signal.
- * @handle_hello: Handler for the #_GFreedesktopDBus::handle-hello signal.
- * @handle_list_activatable_names: Handler for the #_GFreedesktopDBus::handle-list-activatable-names signal.
- * @handle_list_names: Handler for the #_GFreedesktopDBus::handle-list-names signal.
- * @handle_list_queued_owners: Handler for the #_GFreedesktopDBus::handle-list-queued-owners signal.
- * @handle_name_has_owner: Handler for the #_GFreedesktopDBus::handle-name-has-owner signal.
- * @handle_release_name: Handler for the #_GFreedesktopDBus::handle-release-name signal.
- * @handle_reload_config: Handler for the #_GFreedesktopDBus::handle-reload-config signal.
- * @handle_remove_match: Handler for the #_GFreedesktopDBus::handle-remove-match signal.
- * @handle_request_name: Handler for the #_GFreedesktopDBus::handle-request-name signal.
- * @handle_start_service_by_name: Handler for the #_GFreedesktopDBus::handle-start-service-by-name signal.
- * @handle_update_activation_environment: Handler for the #_GFreedesktopDBus::handle-update-activation-environment signal.
- * @name_acquired: Handler for the #_GFreedesktopDBus::name-acquired signal.
- * @name_lost: Handler for the #_GFreedesktopDBus::name-lost signal.
- * @name_owner_changed: Handler for the #_GFreedesktopDBus::name-owner-changed signal.
- *
- * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link>.
- */
-
-
-/**
- * _GFreedesktopDBusProxy:
- *
- * The #_GFreedesktopDBusProxy structure contains only private data and should only be accessed using the provided API.
- */
-
-
-/**
- * _GFreedesktopDBusProxyClass:
- * @parent_class: The parent class.
- *
- * Class structure for #_GFreedesktopDBusProxy.
- */
-
-
-/**
- * _GFreedesktopDBusSkeleton:
- *
- * The #_GFreedesktopDBusSkeleton structure contains only private data and should only be accessed using the provided API.
- */
-
-
-/**
- * _GFreedesktopDBusSkeletonClass:
- * @parent_class: The parent class.
- *
- * Class structure for #_GFreedesktopDBusSkeleton.
- */
-
-
-/**
* _g_dbus_initialize:
*
* Does various one-time init things such as
/**
- * _g_freedesktop_dbus_call_add_match:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_rule: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * _g_io_module_extract_name:
+ * @filename: filename of a GIOModule
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.AddMatch">AddMatch()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_add_match_finish() to get the result of the operation.
+ * Extract the plugin name from its filename. It removes optional "lib" or
+ * "libgio" prefix, and removes everything after the first dot. For example:
+ * "libgiognutls.so" -> "gnutls".
*
- * See _g_freedesktop_dbus_call_add_match_sync() for the synchronous, blocking version of this method.
+ * Returns: (transfer full): the module's name
*/
/**
- * _g_freedesktop_dbus_call_add_match_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_add_match().
- * @error: Return location for error or %NULL.
+ * _g_io_module_get_default:
+ * @extension_point: the name of an extension point
+ * @envvar: (nullable): the name of an environment variable to
+ * override the default implementation.
+ * @verify_func: (nullable): a function to call to verify that
+ * a given implementation is usable in the current environment.
*
- * Finishes an operation started with _g_freedesktop_dbus_call_add_match().
+ * Retrieves the default object implementing @extension_point.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-
-
-/**
- * _g_freedesktop_dbus_call_add_match_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_rule: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * If @envvar is not %NULL, and the environment variable with that
+ * name is set, then the implementation it specifies will be tried
+ * first. After that, or if @envvar is not set, all other
+ * implementations will be tried in order of decreasing priority.
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.AddMatch">AddMatch()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * If an extension point implementation implements #GInitable, then
+ * that implementation will only be used if it initializes
+ * successfully. Otherwise, if @verify_func is not %NULL, then it will
+ * be called on each candidate implementation after construction, to
+ * check if it is actually usable or not.
*
- * See _g_freedesktop_dbus_call_add_match() for the asynchronous version of this method.
+ * The result is cached after it is generated the first time, and
+ * the function is thread-safe.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (transfer none): an object implementing
+ * @extension_point, or %NULL if there are no usable
+ * implementations.
*/
/**
- * _g_freedesktop_dbus_call_get_connection_selinux_security_context:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * _g_io_module_get_default_type:
+ * @extension_point: the name of an extension point
+ * @envvar: (nullable): the name of an environment variable to
+ * override the default implementation.
+ * @is_supported_offset: a vtable offset, or zero
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionSELinuxSecurityContext">GetConnectionSELinuxSecurityContext()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_get_connection_selinux_security_context_finish() to get the result of the operation.
+ * Retrieves the default class implementing @extension_point.
*
- * See _g_freedesktop_dbus_call_get_connection_selinux_security_context_sync() for the synchronous, blocking version of this method.
- */
-
-
-/**
- * _g_freedesktop_dbus_call_get_connection_selinux_security_context_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_security_context: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_get_connection_selinux_security_context().
- * @error: Return location for error or %NULL.
+ * If @envvar is not %NULL, and the environment variable with that
+ * name is set, then the implementation it specifies will be tried
+ * first. After that, or if @envvar is not set, all other
+ * implementations will be tried in order of decreasing priority.
+ *
+ * If @is_supported_offset is non-zero, then it is the offset into the
+ * class vtable at which there is a function that takes no arguments and
+ * returns a boolean. This function will be called on each candidate
+ * implementation to check if it is actually usable or not.
*
- * Finishes an operation started with _g_freedesktop_dbus_call_get_connection_selinux_security_context().
+ * The result is cached after it is generated the first time, and
+ * the function is thread-safe.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (transfer none): the type to instantiate to implement
+ * @extension_point, or %G_TYPE_INVALID if there are no usable
+ * implementations.
*/
/**
- * _g_freedesktop_dbus_call_get_connection_selinux_security_context_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @out_security_context: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionSELinuxSecurityContext">GetConnectionSELinuxSecurityContext()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * _g_poll_file_monitor_new:
+ * @file: a #GFile.
*
- * See _g_freedesktop_dbus_call_get_connection_selinux_security_context() for the asynchronous version of this method.
+ * Polls @file for changes.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: a new #GFileMonitor for the given #GFile.
*/
/**
- * _g_freedesktop_dbus_call_get_connection_unix_process_id:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_action_activate:
+ * @action: a #GAction
+ * @parameter: (nullable): the parameter to the activation
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixProcessID">GetConnectionUnixProcessID()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_get_connection_unix_process_id_finish() to get the result of the operation.
+ * Activates the action.
*
- * See _g_freedesktop_dbus_call_get_connection_unix_process_id_sync() for the synchronous, blocking version of this method.
- */
-
-
-/**
- * _g_freedesktop_dbus_call_get_connection_unix_process_id_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_pid: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_get_connection_unix_process_id().
- * @error: Return location for error or %NULL.
+ * @parameter must be the correct type of parameter for the action (ie:
+ * the parameter type given at construction time). If the parameter
+ * type was %NULL then @parameter must also be %NULL.
*
- * Finishes an operation started with _g_freedesktop_dbus_call_get_connection_unix_process_id().
+ * If the @parameter GVariant is floating, it is consumed.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_get_connection_unix_process_id_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @out_pid: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_action_change_state:
+ * @action: a #GAction
+ * @value: the new state
+ *
+ * Request for the state of @action to be changed to @value.
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixProcessID">GetConnectionUnixProcessID()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * The action must be stateful and @value must be of the correct type.
+ * See g_action_get_state_type().
+ *
+ * This call merely requests a change. The action may refuse to change
+ * its state or may change its state to something other than @value.
+ * See g_action_get_state_hint().
*
- * See _g_freedesktop_dbus_call_get_connection_unix_process_id() for the asynchronous version of this method.
+ * If the @value GVariant is floating, it is consumed.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Since: 2.30
*/
/**
- * _g_freedesktop_dbus_call_get_connection_unix_user:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_action_get_enabled:
+ * @action: a #GAction
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixUser">GetConnectionUnixUser()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_get_connection_unix_user_finish() to get the result of the operation.
+ * Checks if @action is currently enabled.
+ *
+ * An action must be enabled in order to be activated or in order to
+ * have its state changed from outside callers.
*
- * See _g_freedesktop_dbus_call_get_connection_unix_user_sync() for the synchronous, blocking version of this method.
+ * Returns: whether the action is enabled
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_get_connection_unix_user_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_uid: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_get_connection_unix_user().
- * @error: Return location for error or %NULL.
+ * g_action_get_name:
+ * @action: a #GAction
*
- * Finishes an operation started with _g_freedesktop_dbus_call_get_connection_unix_user().
+ * Queries the name of @action.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: the name of the action
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_get_connection_unix_user_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @out_uid: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_action_get_parameter_type:
+ * @action: a #GAction
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixUser">GetConnectionUnixUser()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Queries the type of the parameter that must be given when activating
+ * @action.
+ *
+ * When activating the action using g_action_activate(), the #GVariant
+ * given to that function must be of the type returned by this function.
*
- * See _g_freedesktop_dbus_call_get_connection_unix_user() for the asynchronous version of this method.
+ * In the case that this function returns %NULL, you must not give any
+ * #GVariant, but %NULL instead.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (nullable): the parameter type
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_get_id:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_action_get_state:
+ * @action: a #GAction
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetId">GetId()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_get_id_finish() to get the result of the operation.
+ * Queries the current state of @action.
*
- * See _g_freedesktop_dbus_call_get_id_sync() for the synchronous, blocking version of this method.
- */
-
-
-/**
- * _g_freedesktop_dbus_call_get_id_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_unique_id: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_get_id().
- * @error: Return location for error or %NULL.
+ * If the action is not stateful then %NULL will be returned. If the
+ * action is stateful then the type of the return value is the type
+ * given by g_action_get_state_type().
*
- * Finishes an operation started with _g_freedesktop_dbus_call_get_id().
+ * The return value (if non-%NULL) should be freed with
+ * g_variant_unref() when it is no longer required.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (transfer full): the current state of the action
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_get_id_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_unique_id: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_action_get_state_hint:
+ * @action: a #GAction
+ *
+ * Requests a hint about the valid range of values for the state of
+ * @action.
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetId">GetId()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * If %NULL is returned it either means that the action is not stateful
+ * or that there is no hint about the valid range of values for the
+ * state of the action.
*
- * See _g_freedesktop_dbus_call_get_id() for the asynchronous version of this method.
+ * If a #GVariant array is returned then each item in the array is a
+ * possible value for the state. If a #GVariant pair (ie: two-tuple) is
+ * returned then the tuple specifies the inclusive lower and upper bound
+ * of valid values for the state.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-
-
-/**
- * _g_freedesktop_dbus_call_get_name_owner:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * In any case, the information is merely a hint. It may be possible to
+ * have a state value outside of the hinted range and setting a value
+ * within the range may fail.
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetNameOwner">GetNameOwner()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_get_name_owner_finish() to get the result of the operation.
+ * The return value (if non-%NULL) should be freed with
+ * g_variant_unref() when it is no longer required.
*
- * See _g_freedesktop_dbus_call_get_name_owner_sync() for the synchronous, blocking version of this method.
+ * Returns: (nullable) (transfer full): the state range hint
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_get_name_owner_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_unique_name: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_get_name_owner().
- * @error: Return location for error or %NULL.
+ * g_action_get_state_type:
+ * @action: a #GAction
+ *
+ * Queries the type of the state of @action.
+ *
+ * If the action is stateful (e.g. created with
+ * g_simple_action_new_stateful()) then this function returns the
+ * #GVariantType of the state. This is the type of the initial value
+ * given as the state. All calls to g_action_change_state() must give a
+ * #GVariant of this type and g_action_get_state() will return a
+ * #GVariant of the same type.
*
- * Finishes an operation started with _g_freedesktop_dbus_call_get_name_owner().
+ * If the action is not stateful (e.g. created with g_simple_action_new())
+ * then this function will return %NULL. In that case, g_action_get_state()
+ * will return %NULL and you must not call g_action_change_state().
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (nullable): the state type, if the action is stateful
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_get_name_owner_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @out_unique_name: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_action_group_action_added:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of an action in the group
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetNameOwner">GetNameOwner()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Emits the #GActionGroup::action-added signal on @action_group.
*
- * See _g_freedesktop_dbus_call_get_name_owner() for the asynchronous version of this method.
+ * This function should only be called by #GActionGroup implementations.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_hello:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_action_group_action_enabled_changed:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of an action in the group
+ * @enabled: whether or not the action is now enabled
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.Hello">Hello()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_hello_finish() to get the result of the operation.
+ * Emits the #GActionGroup::action-enabled-changed signal on @action_group.
+ *
+ * This function should only be called by #GActionGroup implementations.
*
- * See _g_freedesktop_dbus_call_hello_sync() for the synchronous, blocking version of this method.
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_hello_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_assigned_name: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_hello().
- * @error: Return location for error or %NULL.
+ * g_action_group_action_removed:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of an action in the group
*
- * Finishes an operation started with _g_freedesktop_dbus_call_hello().
+ * Emits the #GActionGroup::action-removed signal on @action_group.
+ *
+ * This function should only be called by #GActionGroup implementations.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_hello_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_assigned_name: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_action_group_action_state_changed:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of an action in the group
+ * @state: the new state of the named action
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.Hello">Hello()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Emits the #GActionGroup::action-state-changed signal on @action_group.
*
- * See _g_freedesktop_dbus_call_hello() for the asynchronous version of this method.
+ * This function should only be called by #GActionGroup implementations.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_list_activatable_names:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_action_group_activate_action:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of the action to activate
+ * @parameter: (nullable): parameters to the activation
+ *
+ * Activate the named action within @action_group.
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListActivatableNames">ListActivatableNames()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_list_activatable_names_finish() to get the result of the operation.
+ * If the action is expecting a parameter, then the correct type of
+ * parameter must be given as @parameter. If the action is expecting no
+ * parameters then @parameter must be %NULL. See
+ * g_action_group_get_action_parameter_type().
*
- * See _g_freedesktop_dbus_call_list_activatable_names_sync() for the synchronous, blocking version of this method.
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_list_activatable_names_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_activatable_names: (out) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_list_activatable_names().
- * @error: Return location for error or %NULL.
+ * g_action_group_change_action_state:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of the action to request the change on
+ * @value: the new state
*
- * Finishes an operation started with _g_freedesktop_dbus_call_list_activatable_names().
+ * Request for the state of the named action within @action_group to be
+ * changed to @value.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-
-
-/**
- * _g_freedesktop_dbus_call_list_activatable_names_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_activatable_names: (out) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * The action must be stateful and @value must be of the correct type.
+ * See g_action_group_get_action_state_type().
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListActivatableNames">ListActivatableNames()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * This call merely requests a change. The action may refuse to change
+ * its state or may change its state to something other than @value.
+ * See g_action_group_get_action_state_hint().
*
- * See _g_freedesktop_dbus_call_list_activatable_names() for the asynchronous version of this method.
+ * If the @value GVariant is floating, it is consumed.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_list_names:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_action_group_get_action_enabled:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of the action to query
+ *
+ * Checks if the named action within @action_group is currently enabled.
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListNames">ListNames()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_list_names_finish() to get the result of the operation.
+ * An action must be enabled in order to be activated or in order to
+ * have its state changed from outside callers.
*
- * See _g_freedesktop_dbus_call_list_names_sync() for the synchronous, blocking version of this method.
+ * Returns: whether or not the action is currently enabled
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_list_names_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_names: (out) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_list_names().
- * @error: Return location for error or %NULL.
+ * g_action_group_get_action_parameter_type:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of the action to query
*
- * Finishes an operation started with _g_freedesktop_dbus_call_list_names().
+ * Queries the type of the parameter that must be given when activating
+ * the named action within @action_group.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-
-
-/**
- * _g_freedesktop_dbus_call_list_names_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_names: (out) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * When activating the action using g_action_group_activate_action(),
+ * the #GVariant given to that function must be of the type returned
+ * by this function.
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListNames">ListNames()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * In the case that this function returns %NULL, you must not give any
+ * #GVariant, but %NULL instead.
*
- * See _g_freedesktop_dbus_call_list_names() for the asynchronous version of this method.
+ * The parameter type of a particular action will never change but it is
+ * possible for an action to be removed and for a new action to be added
+ * with the same name but a different parameter type.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (nullable): the parameter type
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_list_queued_owners:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_action_group_get_action_state:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of the action to query
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListQueuedOwners">ListQueuedOwners()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_list_queued_owners_finish() to get the result of the operation.
+ * Queries the current state of the named action within @action_group.
*
- * See _g_freedesktop_dbus_call_list_queued_owners_sync() for the synchronous, blocking version of this method.
- */
-
-
-/**
- * _g_freedesktop_dbus_call_list_queued_owners_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_queued_owners: (out) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_list_queued_owners().
- * @error: Return location for error or %NULL.
+ * If the action is not stateful then %NULL will be returned. If the
+ * action is stateful then the type of the return value is the type
+ * given by g_action_group_get_action_state_type().
*
- * Finishes an operation started with _g_freedesktop_dbus_call_list_queued_owners().
+ * The return value (if non-%NULL) should be freed with
+ * g_variant_unref() when it is no longer required.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (nullable): the current state of the action
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_list_queued_owners_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @out_queued_owners: (out) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_action_group_get_action_state_hint:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of the action to query
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListQueuedOwners">ListQueuedOwners()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Requests a hint about the valid range of values for the state of the
+ * named action within @action_group.
*
- * See _g_freedesktop_dbus_call_list_queued_owners() for the asynchronous version of this method.
+ * If %NULL is returned it either means that the action is not stateful
+ * or that there is no hint about the valid range of values for the
+ * state of the action.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-
-
-/**
- * _g_freedesktop_dbus_call_name_has_owner:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * If a #GVariant array is returned then each item in the array is a
+ * possible value for the state. If a #GVariant pair (ie: two-tuple) is
+ * returned then the tuple specifies the inclusive lower and upper bound
+ * of valid values for the state.
+ *
+ * In any case, the information is merely a hint. It may be possible to
+ * have a state value outside of the hinted range and setting a value
+ * within the range may fail.
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.NameHasOwner">NameHasOwner()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_name_has_owner_finish() to get the result of the operation.
+ * The return value (if non-%NULL) should be freed with
+ * g_variant_unref() when it is no longer required.
*
- * See _g_freedesktop_dbus_call_name_has_owner_sync() for the synchronous, blocking version of this method.
+ * Returns: (nullable) (transfer full): the state range hint
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_name_has_owner_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_has_owner: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_name_has_owner().
- * @error: Return location for error or %NULL.
+ * g_action_group_get_action_state_type:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of the action to query
*
- * Finishes an operation started with _g_freedesktop_dbus_call_name_has_owner().
+ * Queries the type of the state of the named action within
+ * @action_group.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-
-
-/**
- * _g_freedesktop_dbus_call_name_has_owner_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @out_has_owner: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * If the action is stateful then this function returns the
+ * #GVariantType of the state. All calls to
+ * g_action_group_change_action_state() must give a #GVariant of this
+ * type and g_action_group_get_action_state() will return a #GVariant
+ * of the same type.
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.NameHasOwner">NameHasOwner()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * If the action is not stateful then this function will return %NULL.
+ * In that case, g_action_group_get_action_state() will return %NULL
+ * and you must not call g_action_group_change_action_state().
*
- * See _g_freedesktop_dbus_call_name_has_owner() for the asynchronous version of this method.
+ * The state type of a particular action will never change but it is
+ * possible for an action to be removed and for a new action to be added
+ * with the same name but a different state type.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (nullable): the state type, if the action is stateful
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_release_name:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_action_group_has_action:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of the action to check for
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ReleaseName">ReleaseName()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_release_name_finish() to get the result of the operation.
+ * Checks if the named action exists within @action_group.
*
- * See _g_freedesktop_dbus_call_release_name_sync() for the synchronous, blocking version of this method.
+ * Returns: whether the named action exists
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_release_name_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_value: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_release_name().
- * @error: Return location for error or %NULL.
+ * g_action_group_list_actions:
+ * @action_group: a #GActionGroup
+ *
+ * Lists the actions contained within @action_group.
*
- * Finishes an operation started with _g_freedesktop_dbus_call_release_name().
+ * The caller is responsible for freeing the list with g_strfreev() when
+ * it is no longer required.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (transfer full): a %NULL-terminated array of the names of the
+ * actions in the group
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_call_release_name_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @out_value: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_action_group_query_action:
+ * @action_group: a #GActionGroup
+ * @action_name: the name of an action in the group
+ * @enabled: (out): if the action is presently enabled
+ * @parameter_type: (out) (optional): the parameter type, or %NULL if none needed
+ * @state_type: (out) (optional): the state type, or %NULL if stateless
+ * @state_hint: (out) (optional): the state hint, or %NULL if none
+ * @state: (out) (optional): the current state, or %NULL if stateless
+ *
+ * Queries all aspects of the named action within an @action_group.
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ReleaseName">ReleaseName()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * This function acquires the information available from
+ * g_action_group_has_action(), g_action_group_get_action_enabled(),
+ * g_action_group_get_action_parameter_type(),
+ * g_action_group_get_action_state_type(),
+ * g_action_group_get_action_state_hint() and
+ * g_action_group_get_action_state() with a single function call.
*
- * See _g_freedesktop_dbus_call_release_name() for the asynchronous version of this method.
+ * This provides two main benefits.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-
-
-/**
- * _g_freedesktop_dbus_call_reload_config:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * The first is the improvement in efficiency that comes with not having
+ * to perform repeated lookups of the action in order to discover
+ * different things about it. The second is that implementing
+ * #GActionGroup can now be done by only overriding this one virtual
+ * function.
+ *
+ * The interface provides a default implementation of this function that
+ * calls the individual functions, as required, to fetch the
+ * information. The interface also provides default implementations of
+ * those functions that call this function. All implementations,
+ * therefore, must override either this function or all of the others.
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ReloadConfig">ReloadConfig()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_reload_config_finish() to get the result of the operation.
+ * If the action exists, %TRUE is returned and any of the requested
+ * fields (as indicated by having a non-%NULL reference passed in) are
+ * filled. If the action doesn't exist, %FALSE is returned and the
+ * fields may or may not have been modified.
*
- * See _g_freedesktop_dbus_call_reload_config_sync() for the synchronous, blocking version of this method.
+ * Returns: %TRUE if the action exists, else %FALSE
+ * Since: 2.32
*/
/**
- * _g_freedesktop_dbus_call_reload_config_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_reload_config().
- * @error: Return location for error or %NULL.
+ * g_action_map_add_action:
+ * @action_map: a #GActionMap
+ * @action: a #GAction
+ *
+ * Adds an action to the @action_map.
*
- * Finishes an operation started with _g_freedesktop_dbus_call_reload_config().
+ * If the action map already contains an action with the same name
+ * as @action then the old action is dropped from the action map.
+ *
+ * The action map takes its own reference on @action.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Since: 2.32
*/
/**
- * _g_freedesktop_dbus_call_reload_config_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_action_map_add_action_entries:
+ * @action_map: a #GActionMap
+ * @entries: (array length=n_entries) (element-type GActionEntry): a pointer to
+ * the first item in an array of #GActionEntry structs
+ * @n_entries: the length of @entries, or -1 if @entries is %NULL-terminated
+ * @user_data: the user data for signal connections
+ *
+ * A convenience function for creating multiple #GSimpleAction instances
+ * and adding them to a #GActionMap.
+ *
+ * Each action is constructed as per one #GActionEntry.
+ *
+ * |[<!-- language="C" -->
+ * static void
+ * activate_quit (GSimpleAction *simple,
+ * GVariant *parameter,
+ * gpointer user_data)
+ * {
+ * exit (0);
+ * }
+ *
+ * static void
+ * activate_print_string (GSimpleAction *simple,
+ * GVariant *parameter,
+ * gpointer user_data)
+ * {
+ * g_print ("%s\n", g_variant_get_string (parameter, NULL));
+ * }
+ *
+ * static GActionGroup *
+ * create_action_group (void)
+ * {
+ * const GActionEntry entries[] = {
+ * { "quit", activate_quit },
+ * { "print-string", activate_print_string, "s" }
+ * };
+ * GSimpleActionGroup *group;
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ReloadConfig">ReloadConfig()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * group = g_simple_action_group_new ();
+ * g_action_map_add_action_entries (G_ACTION_MAP (group), entries, G_N_ELEMENTS (entries), NULL);
*
- * See _g_freedesktop_dbus_call_reload_config() for the asynchronous version of this method.
+ * return G_ACTION_GROUP (group);
+ * }
+ * ]|
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Since: 2.32
*/
/**
- * _g_freedesktop_dbus_call_remove_match:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_rule: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_action_map_lookup_action:
+ * @action_map: a #GActionMap
+ * @action_name: the name of an action
+ *
+ * Looks up the action with the name @action_name in @action_map.
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.RemoveMatch">RemoveMatch()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_remove_match_finish() to get the result of the operation.
+ * If no such action exists, returns %NULL.
*
- * See _g_freedesktop_dbus_call_remove_match_sync() for the synchronous, blocking version of this method.
+ * Returns: (transfer none): a #GAction, or %NULL
+ * Since: 2.32
*/
/**
- * _g_freedesktop_dbus_call_remove_match_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_remove_match().
- * @error: Return location for error or %NULL.
+ * g_action_map_remove_action:
+ * @action_map: a #GActionMap
+ * @action_name: the name of the action
*
- * Finishes an operation started with _g_freedesktop_dbus_call_remove_match().
+ * Removes the named action from the action map.
+ *
+ * If no action of this name is in the map then nothing happens.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Since: 2.32
*/
/**
- * _g_freedesktop_dbus_call_remove_match_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_rule: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_action_name_is_valid:
+ * @action_name: an potential action name
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.RemoveMatch">RemoveMatch()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Checks if @action_name is valid.
+ *
+ * @action_name is valid if it consists only of alphanumeric characters,
+ * plus '-' and '.'. The empty string is not a valid action name.
*
- * See _g_freedesktop_dbus_call_remove_match() for the asynchronous version of this method.
+ * It is an error to call this function with a non-utf8 @action_name.
+ * @action_name must not be %NULL.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE if @action_name is valid
+ * Since: 2.38
*/
/**
- * _g_freedesktop_dbus_call_request_name:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @arg_flags: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_action_parse_detailed_name:
+ * @detailed_name: a detailed action name
+ * @action_name: (out): the action name
+ * @target_value: (out): the target value, or %NULL for no target
+ * @error: a pointer to a %NULL #GError, or %NULL
+ *
+ * Parses a detailed action name into its separate name and target
+ * components.
+ *
+ * Detailed action names can have three formats.
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.RequestName">RequestName()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_request_name_finish() to get the result of the operation.
+ * The first format is used to represent an action name with no target
+ * value and consists of just an action name containing no whitespace
+ * nor the characters ':', '(' or ')'. For example: "app.action".
+ *
+ * The second format is used to represent an action with a target value
+ * that is a non-empty string consisting only of alphanumerics, plus '-'
+ * and '.'. In that case, the action name and target value are
+ * separated by a double colon ("::"). For example:
+ * "app.action::target".
+ *
+ * The third format is used to represent an action with any type of
+ * target value, including strings. The target value follows the action
+ * name, surrounded in parens. For example: "app.action(42)". The
+ * target value is parsed using g_variant_parse(). If a tuple-typed
+ * value is desired, it must be specified in the same way, resulting in
+ * two sets of parens, for example: "app.action((1,2,3))". A string
+ * target can be specified this way as well: "app.action('target')".
+ * For strings, this third format must be used if * target value is
+ * empty or contains characters other than alphanumerics, '-' and '.'.
*
- * See _g_freedesktop_dbus_call_request_name_sync() for the synchronous, blocking version of this method.
+ * Returns: %TRUE if successful, else %FALSE with @error set
+ * Since: 2.38
*/
/**
- * _g_freedesktop_dbus_call_request_name_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_value: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_request_name().
- * @error: Return location for error or %NULL.
+ * g_action_print_detailed_name:
+ * @action_name: a valid action name
+ * @target_value: (nullable): a #GVariant target value, or %NULL
+ *
+ * Formats a detailed action name from @action_name and @target_value.
+ *
+ * It is an error to call this function with an invalid action name.
+ *
+ * This function is the opposite of g_action_parse_detailed_name().
+ * It will produce a string that can be parsed back to the @action_name
+ * and @target_value by that function.
*
- * Finishes an operation started with _g_freedesktop_dbus_call_request_name().
+ * See that function for the types of strings that will be printed by
+ * this function.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: a detailed format string
+ * Since: 2.38
*/
/**
- * _g_freedesktop_dbus_call_request_name_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @arg_flags: Argument to pass with the method invocation.
- * @out_value: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.RequestName">RequestName()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * g_app_info_add_supports_type:
+ * @appinfo: a #GAppInfo.
+ * @content_type: a string.
+ * @error: a #GError.
*
- * See _g_freedesktop_dbus_call_request_name() for the asynchronous version of this method.
+ * Adds a content type to the application information to indicate the
+ * application is capable of opening files with the given content type.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE on success, %FALSE on error.
*/
/**
- * _g_freedesktop_dbus_call_start_service_by_name:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @arg_flags: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_app_info_can_delete:
+ * @appinfo: a #GAppInfo
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.StartServiceByName">StartServiceByName()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_start_service_by_name_finish() to get the result of the operation.
+ * Obtains the information whether the #GAppInfo can be deleted.
+ * See g_app_info_delete().
*
- * See _g_freedesktop_dbus_call_start_service_by_name_sync() for the synchronous, blocking version of this method.
+ * Returns: %TRUE if @appinfo can be deleted
+ * Since: 2.20
*/
/**
- * _g_freedesktop_dbus_call_start_service_by_name_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @out_value: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_start_service_by_name().
- * @error: Return location for error or %NULL.
+ * g_app_info_can_remove_supports_type:
+ * @appinfo: a #GAppInfo.
*
- * Finishes an operation started with _g_freedesktop_dbus_call_start_service_by_name().
+ * Checks if a supported content type can be removed from an application.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE if it is possible to remove supported
+ * content types from a given @appinfo, %FALSE if not.
*/
/**
- * _g_freedesktop_dbus_call_start_service_by_name_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_name: Argument to pass with the method invocation.
- * @arg_flags: Argument to pass with the method invocation.
- * @out_value: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_app_info_create_from_commandline:
+ * @commandline: (type filename): the commandline to use
+ * @application_name: (nullable): the application name, or %NULL to use @commandline
+ * @flags: flags that can specify details of the created #GAppInfo
+ * @error: a #GError location to store the error occurring, %NULL to ignore.
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.StartServiceByName">StartServiceByName()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Creates a new #GAppInfo from the given information.
*
- * See _g_freedesktop_dbus_call_start_service_by_name() for the asynchronous version of this method.
+ * Note that for @commandline, the quoting rules of the Exec key of the
+ * [freedesktop.org Desktop Entry Specification](http://freedesktop.org/Standards/desktop-entry-spec)
+ * are applied. For example, if the @commandline contains
+ * percent-encoded URIs, the percent-character must be doubled in order to prevent it from
+ * being swallowed by Exec key unquoting. See the specification for exact quoting rules.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (transfer full): new #GAppInfo for given command.
*/
/**
- * _g_freedesktop_dbus_call_update_activation_environment:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_environment: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_app_info_delete: (virtual do_delete)
+ * @appinfo: a #GAppInfo
+ *
+ * Tries to delete a #GAppInfo.
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.UpdateActivationEnvironment">UpdateActivationEnvironment()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_call_update_activation_environment_finish() to get the result of the operation.
+ * On some platforms, there may be a difference between user-defined
+ * #GAppInfos which can be deleted, and system-wide ones which cannot.
+ * See g_app_info_can_delete().
*
- * See _g_freedesktop_dbus_call_update_activation_environment_sync() for the synchronous, blocking version of this method.
+ * Returns: %TRUE if @appinfo has been deleted
+ * Since: 2.20
*/
/**
- * _g_freedesktop_dbus_call_update_activation_environment_finish:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_update_activation_environment().
- * @error: Return location for error or %NULL.
+ * g_app_info_dup:
+ * @appinfo: a #GAppInfo.
*
- * Finishes an operation started with _g_freedesktop_dbus_call_update_activation_environment().
+ * Creates a duplicate of a #GAppInfo.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (transfer full): a duplicate of @appinfo.
*/
/**
- * _g_freedesktop_dbus_call_update_activation_environment_sync:
- * @proxy: A #_GFreedesktopDBusProxy.
- * @arg_environment: Argument to pass with the method invocation.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_app_info_equal:
+ * @appinfo1: the first #GAppInfo.
+ * @appinfo2: the second #GAppInfo.
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.UpdateActivationEnvironment">UpdateActivationEnvironment()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Checks if two #GAppInfos are equal.
*
- * See _g_freedesktop_dbus_call_update_activation_environment() for the asynchronous version of this method.
+ * Note that the check <emphasis>may not</emphasis> compare each individual
+ * field, and only does an identity check. In case detecting changes in the
+ * contents is needed, program code must additionally compare relevant fields.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE if @appinfo1 is equal to @appinfo2. %FALSE otherwise.
*/
/**
- * _g_freedesktop_dbus_complete_add_match:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * g_app_info_get_all:
+ *
+ * Gets a list of all of the applications currently registered
+ * on this system.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.AddMatch">AddMatch()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * For desktop files, this includes applications that have
+ * `NoDisplay=true` set or are excluded from display by means
+ * of `OnlyShowIn` or `NotShowIn`. See g_app_info_should_show().
+ * The returned list does not include applications which have
+ * the `Hidden` key set.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (element-type GAppInfo) (transfer full): a newly allocated #GList of references to #GAppInfos.
*/
/**
- * _g_freedesktop_dbus_complete_get_connection_selinux_security_context:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @security_context: Parameter to return.
+ * g_app_info_get_all_for_type:
+ * @content_type: the content type to find a #GAppInfo for
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionSELinuxSecurityContext">GetConnectionSELinuxSecurityContext()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets a list of all #GAppInfos for a given content type,
+ * including the recommended and fallback #GAppInfos. See
+ * g_app_info_get_recommended_for_type() and
+ * g_app_info_get_fallback_for_type().
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (element-type GAppInfo) (transfer full): #GList of #GAppInfos
+ * for given @content_type or %NULL on error.
*/
/**
- * _g_freedesktop_dbus_complete_get_connection_unix_process_id:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @pid: Parameter to return.
+ * g_app_info_get_commandline:
+ * @appinfo: a #GAppInfo
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixProcessID">GetConnectionUnixProcessID()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the commandline with which the application will be
+ * started.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (type filename): a string containing the @appinfo's commandline,
+ * or %NULL if this information is not available
+ * Since: 2.20
*/
/**
- * _g_freedesktop_dbus_complete_get_connection_unix_user:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @uid: Parameter to return.
+ * g_app_info_get_default_for_type:
+ * @content_type: the content type to find a #GAppInfo for
+ * @must_support_uris: if %TRUE, the #GAppInfo is expected to
+ * support URIs
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixUser">GetConnectionUnixUser()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the default #GAppInfo for a given content type.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (transfer full): #GAppInfo for given @content_type or
+ * %NULL on error.
*/
/**
- * _g_freedesktop_dbus_complete_get_id:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @unique_id: Parameter to return.
+ * g_app_info_get_default_for_uri_scheme:
+ * @uri_scheme: a string containing a URI scheme.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.GetId">GetId()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the default application for handling URIs with
+ * the given URI scheme. A URI scheme is the initial part
+ * of the URI, up to but not including the ':', e.g. "http",
+ * "ftp" or "sip".
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (transfer full): #GAppInfo for given @uri_scheme or %NULL on error.
*/
/**
- * _g_freedesktop_dbus_complete_get_name_owner:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @unique_name: Parameter to return.
+ * g_app_info_get_description:
+ * @appinfo: a #GAppInfo.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.GetNameOwner">GetNameOwner()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets a human-readable description of an installed application.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: a string containing a description of the
+ * application @appinfo, or %NULL if none.
*/
/**
- * _g_freedesktop_dbus_complete_hello:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @assigned_name: Parameter to return.
+ * g_app_info_get_display_name:
+ * @appinfo: a #GAppInfo.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.Hello">Hello()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the display name of the application. The display name is often more
+ * descriptive to the user than the name itself.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: the display name of the application for @appinfo, or the name if
+ * no display name is available.
+ * Since: 2.24
*/
/**
- * _g_freedesktop_dbus_complete_list_activatable_names:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @activatable_names: Parameter to return.
+ * g_app_info_get_executable:
+ * @appinfo: a #GAppInfo
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.ListActivatableNames">ListActivatableNames()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the executable's name for the installed application.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (type filename): a string containing the @appinfo's application
+ * binaries name
*/
/**
- * _g_freedesktop_dbus_complete_list_names:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @names: Parameter to return.
+ * g_app_info_get_fallback_for_type:
+ * @content_type: the content type to find a #GAppInfo for
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.ListNames">ListNames()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets a list of fallback #GAppInfos for a given content type, i.e.
+ * those applications which claim to support the given content type
+ * by MIME type subclassing and not directly.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (element-type GAppInfo) (transfer full): #GList of #GAppInfos
+ * for given @content_type or %NULL on error.
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_complete_list_queued_owners:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @queued_owners: Parameter to return.
+ * g_app_info_get_icon:
+ * @appinfo: a #GAppInfo.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.ListQueuedOwners">ListQueuedOwners()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the icon for the application.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (transfer none): the default #GIcon for @appinfo or %NULL
+ * if there is no default icon.
*/
/**
- * _g_freedesktop_dbus_complete_name_has_owner:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @has_owner: Parameter to return.
+ * g_app_info_get_id:
+ * @appinfo: a #GAppInfo.
+ *
+ * Gets the ID of an application. An id is a string that
+ * identifies the application. The exact format of the id is
+ * platform dependent. For instance, on Unix this is the
+ * desktop file id from the xdg menu specification.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.NameHasOwner">NameHasOwner()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Note that the returned ID may be %NULL, depending on how
+ * the @appinfo has been constructed.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: a string containing the application's ID.
*/
/**
- * _g_freedesktop_dbus_complete_release_name:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @value: Parameter to return.
+ * g_app_info_get_name:
+ * @appinfo: a #GAppInfo.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.ReleaseName">ReleaseName()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the installed name of the application.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: the name of the application for @appinfo.
*/
/**
- * _g_freedesktop_dbus_complete_reload_config:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * g_app_info_get_recommended_for_type:
+ * @content_type: the content type to find a #GAppInfo for
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.ReloadConfig">ReloadConfig()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets a list of recommended #GAppInfos for a given content type, i.e.
+ * those applications which claim to support the given content type exactly,
+ * and not by MIME type subclassing.
+ * Note that the first application of the list is the last used one, i.e.
+ * the last one for which g_app_info_set_as_last_used_for_type() has been
+ * called.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (element-type GAppInfo) (transfer full): #GList of #GAppInfos
+ * for given @content_type or %NULL on error.
+ * Since: 2.28
*/
/**
- * _g_freedesktop_dbus_complete_remove_match:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * g_app_info_get_supported_types:
+ * @appinfo: a #GAppInfo that can handle files
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.RemoveMatch">RemoveMatch()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Retrieves the list of content types that @app_info claims to support.
+ * If this information is not provided by the environment, this function
+ * will return %NULL.
+ * This function does not take in consideration associations added with
+ * g_app_info_add_supports_type(), but only those exported directly by
+ * the application.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (transfer none) (array zero-terminated=1) (element-type utf8):
+ * a list of content types.
+ * Since: 2.34
*/
/**
- * _g_freedesktop_dbus_complete_request_name:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @value: Parameter to return.
+ * g_app_info_launch:
+ * @appinfo: a #GAppInfo
+ * @files: (nullable) (element-type GFile): a #GList of #GFile objects
+ * @context: (nullable): a #GAppLaunchContext or %NULL
+ * @error: a #GError
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.RequestName">RequestName()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Launches the application. Passes @files to the launched application
+ * as arguments, using the optional @context to get information
+ * about the details of the launcher (like what screen it is on).
+ * On error, @error will be set accordingly.
*
- * This method will free @invocation, you cannot use it afterwards.
- */
-
-
-/**
- * _g_freedesktop_dbus_complete_start_service_by_name:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @value: Parameter to return.
+ * To launch the application without arguments pass a %NULL @files list.
+ *
+ * Note that even if the launch is successful the application launched
+ * can fail to start if it runs into problems during startup. There is
+ * no way to detect this.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.StartServiceByName">StartServiceByName()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Some URIs can be changed when passed through a GFile (for instance
+ * unsupported URIs with strange formats like mailto:), so if you have
+ * a textual URI you want to pass in as argument, consider using
+ * g_app_info_launch_uris() instead.
+ *
+ * The launched application inherits the environment of the launching
+ * process, but it can be modified with g_app_launch_context_setenv()
+ * and g_app_launch_context_unsetenv().
+ *
+ * On UNIX, this function sets the `GIO_LAUNCHED_DESKTOP_FILE`
+ * environment variable with the path of the launched desktop file and
+ * `GIO_LAUNCHED_DESKTOP_FILE_PID` to the process id of the launched
+ * process. This can be used to ignore `GIO_LAUNCHED_DESKTOP_FILE`,
+ * should it be inherited by further processes. The `DISPLAY` and
+ * `DESKTOP_STARTUP_ID` environment variables are also set, based
+ * on information provided in @context.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: %TRUE on successful launch, %FALSE otherwise.
*/
/**
- * _g_freedesktop_dbus_complete_update_activation_environment:
- * @object: A #_GFreedesktopDBus.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * g_app_info_launch_default_for_uri:
+ * @uri: the uri to show
+ * @context: (nullable): an optional #GAppLaunchContext
+ * @error: (nullable): return location for an error, or %NULL
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.UpdateActivationEnvironment">UpdateActivationEnvironment()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Utility function that launches the default application
+ * registered to handle the specified uri. Synchronous I/O
+ * is done on the uri to detect the type of the file if
+ * required.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: %TRUE on success, %FALSE on error.
*/
/**
- * _g_freedesktop_dbus_emit_name_acquired:
- * @object: A #_GFreedesktopDBus.
- * @arg_name: Argument to pass with the signal.
+ * g_app_info_launch_default_for_uri_async:
+ * @uri: the uri to show
+ * @context: (nullable): an optional #GAppLaunchContext
+ * @cancellable: (nullable): a #GCancellable
+ * @callback: (nullable): a #GASyncReadyCallback to call when the request is done
+ * @user_data: (nullable): data to pass to @callback
+ *
+ * Async version of g_app_info_launch_default_for_uri().
+ *
+ * This version is useful if you are interested in receiving
+ * error information in the case where the application is
+ * sandboxed and the portal may present an application chooser
+ * dialog to the user.
*
- * Emits the <link linkend="gdbus-signal-org-freedesktop-DBus.NameAcquired">"NameAcquired"</link> D-Bus signal.
+ * Since: 2.50
*/
/**
- * _g_freedesktop_dbus_emit_name_lost:
- * @object: A #_GFreedesktopDBus.
- * @arg_name: Argument to pass with the signal.
+ * g_app_info_launch_default_for_uri_finish:
+ * @result: a #GAsyncResult
+ * @error: (nullable): return location for an error, or %NULL
*
- * Emits the <link linkend="gdbus-signal-org-freedesktop-DBus.NameLost">"NameLost"</link> D-Bus signal.
+ * Finishes an asynchronous launch-default-for-uri operation.
+ *
+ * Returns: %TRUE if the launch was successful, %FALSE if @error is set
+ * Since: 2.50
*/
/**
- * _g_freedesktop_dbus_emit_name_owner_changed:
- * @object: A #_GFreedesktopDBus.
- * @arg_name: Argument to pass with the signal.
- * @arg_old_owner: Argument to pass with the signal.
- * @arg_new_owner: Argument to pass with the signal.
+ * g_app_info_launch_uris:
+ * @appinfo: a #GAppInfo
+ * @uris: (nullable) (element-type utf8): a #GList containing URIs to launch.
+ * @context: (nullable): a #GAppLaunchContext or %NULL
+ * @error: a #GError
+ *
+ * Launches the application. This passes the @uris to the launched application
+ * as arguments, using the optional @context to get information
+ * about the details of the launcher (like what screen it is on).
+ * On error, @error will be set accordingly.
+ *
+ * To launch the application without arguments pass a %NULL @uris list.
+ *
+ * Note that even if the launch is successful the application launched
+ * can fail to start if it runs into problems during startup. There is
+ * no way to detect this.
*
- * Emits the <link linkend="gdbus-signal-org-freedesktop-DBus.NameOwnerChanged">"NameOwnerChanged"</link> D-Bus signal.
+ * Returns: %TRUE on successful launch, %FALSE otherwise.
*/
/**
- * _g_freedesktop_dbus_interface_info:
+ * g_app_info_monitor_get:
*
- * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link> D-Bus interface.
+ * Gets the #GAppInfoMonitor for the current thread-default main
+ * context.
*
- * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ * The #GAppInfoMonitor will emit a "changed" signal in the
+ * thread-default main context whenever the list of installed
+ * applications (as reported by g_app_info_get_all()) may have changed.
+ *
+ * You must only call g_object_unref() on the return value from under
+ * the same main context as you created it.
+ *
+ * Returns: (transfer full): a reference to a #GAppInfoMonitor
+ * Since: 2.40
*/
/**
- * _g_freedesktop_dbus_override_properties:
- * @klass: The class structure for a #GObject derived class.
- * @property_id_begin: The property id to assign to the first overridden property.
+ * g_app_info_remove_supports_type:
+ * @appinfo: a #GAppInfo.
+ * @content_type: a string.
+ * @error: a #GError.
*
- * Overrides all #GObject properties in the #_GFreedesktopDBus interface for a concrete class.
- * The properties are overridden in the order they are defined.
+ * Removes a supported type from an application, if possible.
*
- * Returns: The last property id.
+ * Returns: %TRUE on success, %FALSE on error.
*/
/**
- * _g_freedesktop_dbus_proxy_new:
- * @connection: A #GDBusConnection.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: User data to pass to @callback.
- *
- * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link>. See g_dbus_proxy_new() for more details.
+ * g_app_info_reset_type_associations:
+ * @content_type: a content type
*
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_proxy_new_finish() to get the result of the operation.
+ * Removes all changes to the type associations done by
+ * g_app_info_set_as_default_for_type(),
+ * g_app_info_set_as_default_for_extension(),
+ * g_app_info_add_supports_type() or
+ * g_app_info_remove_supports_type().
*
- * See _g_freedesktop_dbus_proxy_new_sync() for the synchronous, blocking version of this constructor.
+ * Since: 2.20
*/
/**
- * _g_freedesktop_dbus_proxy_new_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_proxy_new().
- * @error: Return location for error or %NULL
+ * g_app_info_set_as_default_for_extension:
+ * @appinfo: a #GAppInfo.
+ * @extension: (type filename): a string containing the file extension
+ * (without the dot).
+ * @error: a #GError.
*
- * Finishes an operation started with _g_freedesktop_dbus_proxy_new().
+ * Sets the application as the default handler for the given file extension.
*
- * Returns: (transfer full) (type _GFreedesktopDBusProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: %TRUE on success, %FALSE on error.
*/
/**
- * _g_freedesktop_dbus_proxy_new_for_bus:
- * @bus_type: A #GBusType.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: User data to pass to @callback.
- *
- * Like _g_freedesktop_dbus_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ * g_app_info_set_as_default_for_type:
+ * @appinfo: a #GAppInfo.
+ * @content_type: the content type.
+ * @error: a #GError.
*
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call _g_freedesktop_dbus_proxy_new_for_bus_finish() to get the result of the operation.
+ * Sets the application as the default handler for a given type.
*
- * See _g_freedesktop_dbus_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ * Returns: %TRUE on success, %FALSE on error.
*/
/**
- * _g_freedesktop_dbus_proxy_new_for_bus_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_proxy_new_for_bus().
- * @error: Return location for error or %NULL
+ * g_app_info_set_as_last_used_for_type:
+ * @appinfo: a #GAppInfo.
+ * @content_type: the content type.
+ * @error: a #GError.
*
- * Finishes an operation started with _g_freedesktop_dbus_proxy_new_for_bus().
+ * Sets the application as the last used application for a given type.
+ * This will make the application appear as first in the list returned
+ * by g_app_info_get_recommended_for_type(), regardless of the default
+ * application for that content type.
*
- * Returns: (transfer full) (type _GFreedesktopDBusProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: %TRUE on success, %FALSE on error.
*/
/**
- * _g_freedesktop_dbus_proxy_new_for_bus_sync:
- * @bus_type: A #GBusType.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL
- *
- * Like _g_freedesktop_dbus_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
- *
- * The calling thread is blocked until a reply is received.
+ * g_app_info_should_show:
+ * @appinfo: a #GAppInfo.
*
- * See _g_freedesktop_dbus_proxy_new_for_bus() for the asynchronous version of this constructor.
+ * Checks if the application info should be shown in menus that
+ * list available applications.
*
- * Returns: (transfer full) (type _GFreedesktopDBusProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: %TRUE if the @appinfo should be shown, %FALSE otherwise.
*/
/**
- * _g_freedesktop_dbus_proxy_new_sync:
- * @connection: A #GDBusConnection.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL
- *
- * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link>. See g_dbus_proxy_new_sync() for more details.
- *
- * The calling thread is blocked until a reply is received.
+ * g_app_info_supports_files:
+ * @appinfo: a #GAppInfo.
*
- * See _g_freedesktop_dbus_proxy_new() for the asynchronous version of this constructor.
+ * Checks if the application accepts files as arguments.
*
- * Returns: (transfer full) (type _GFreedesktopDBusProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: %TRUE if the @appinfo supports files.
*/
/**
- * _g_freedesktop_dbus_skeleton_new:
+ * g_app_info_supports_uris:
+ * @appinfo: a #GAppInfo.
*
- * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link>.
+ * Checks if the application supports reading files and directories from URIs.
*
- * Returns: (transfer full) (type _GFreedesktopDBusSkeleton): The skeleton object.
+ * Returns: %TRUE if the @appinfo supports URIs.
*/
/**
- * _g_io_module_extract_name:
- * @filename: filename of a GIOModule
+ * g_app_launch_context_get_display:
+ * @context: a #GAppLaunchContext
+ * @info: a #GAppInfo
+ * @files: (element-type GFile): a #GList of #GFile objects
*
- * Extract the plugin name from its filename. It removes optional "lib" or
- * "libgio" prefix, and removes everything after the first dot. For example:
- * "libgiognutls.so" -> "gnutls".
+ * Gets the display string for the @context. This is used to ensure new
+ * applications are started on the same display as the launching
+ * application, by setting the `DISPLAY` environment variable.
*
- * Returns: (transfer full): the module's name
+ * Returns: a display string for the display.
*/
/**
- * _g_io_module_get_default:
- * @extension_point: the name of an extension point
- * @envvar: (nullable): the name of an environment variable to
- * override the default implementation.
- * @verify_func: (nullable): a function to call to verify that
- * a given implementation is usable in the current environment.
+ * g_app_launch_context_get_environment:
+ * @context: a #GAppLaunchContext
*
- * Retrieves the default object implementing @extension_point.
+ * Gets the complete environment variable list to be passed to
+ * the child process when @context is used to launch an application.
+ * This is a %NULL-terminated array of strings, where each string has
+ * the form `KEY=VALUE`.
*
- * If @envvar is not %NULL, and the environment variable with that
- * name is set, then the implementation it specifies will be tried
- * first. After that, or if @envvar is not set, all other
- * implementations will be tried in order of decreasing priority.
+ * Returns: (array zero-terminated=1) (element-type filename) (transfer full):
+ * the child's environment
+ * Since: 2.32
+ */
+
+
+/**
+ * g_app_launch_context_get_startup_notify_id:
+ * @context: a #GAppLaunchContext
+ * @info: a #GAppInfo
+ * @files: (element-type GFile): a #GList of of #GFile objects
*
- * If an extension point implementation implements #GInitable, then
- * that implementation will only be used if it initializes
- * successfully. Otherwise, if @verify_func is not %NULL, then it will
- * be called on each candidate implementation after construction, to
- * check if it is actually usable or not.
+ * Initiates startup notification for the application and returns the
+ * `DESKTOP_STARTUP_ID` for the launched operation, if supported.
*
- * The result is cached after it is generated the first time, and
- * the function is thread-safe.
+ * Startup notification IDs are defined in the
+ * [FreeDesktop.Org Startup Notifications standard](http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt").
*
- * Returns: (transfer none): an object implementing
- * @extension_point, or %NULL if there are no usable
- * implementations.
+ * Returns: a startup notification ID for the application, or %NULL if
+ * not supported.
*/
/**
- * _g_io_module_get_default_type:
- * @extension_point: the name of an extension point
- * @envvar: (nullable): the name of an environment variable to
- * override the default implementation.
- * @is_supported_offset: a vtable offset, or zero
+ * g_app_launch_context_launch_failed:
+ * @context: a #GAppLaunchContext.
+ * @startup_notify_id: the startup notification id that was returned by g_app_launch_context_get_startup_notify_id().
*
- * Retrieves the default class implementing @extension_point.
+ * Called when an application has failed to launch, so that it can cancel
+ * the application startup notification started in g_app_launch_context_get_startup_notify_id().
+ */
+
+
+/**
+ * g_app_launch_context_new:
*
- * If @envvar is not %NULL, and the environment variable with that
- * name is set, then the implementation it specifies will be tried
- * first. After that, or if @envvar is not set, all other
- * implementations will be tried in order of decreasing priority.
+ * Creates a new application launch context. This is not normally used,
+ * instead you instantiate a subclass of this, such as #GdkAppLaunchContext.
*
- * If @is_supported_offset is non-zero, then it is the offset into the
- * class vtable at which there is a function that takes no arguments and
- * returns a boolean. This function will be called on each candidate
- * implementation to check if it is actually usable or not.
+ * Returns: a #GAppLaunchContext.
+ */
+
+
+/**
+ * g_app_launch_context_setenv:
+ * @context: a #GAppLaunchContext
+ * @variable: (type filename): the environment variable to set
+ * @value: (type filename): the value for to set the variable to.
*
- * The result is cached after it is generated the first time, and
- * the function is thread-safe.
+ * Arranges for @variable to be set to @value in the child's
+ * environment when @context is used to launch an application.
*
- * Returns: (transfer none): the type to instantiate to implement
- * @extension_point, or %G_TYPE_INVALID if there are no usable
- * implementations.
+ * Since: 2.32
*/
/**
- * _g_poll_file_monitor_new:
- * @file: a #GFile.
+ * g_app_launch_context_unsetenv:
+ * @context: a #GAppLaunchContext
+ * @variable: (type filename): the environment variable to remove
*
- * Polls @file for changes.
+ * Arranges for @variable to be unset in the child's environment
+ * when @context is used to launch an application.
*
- * Returns: a new #GFileMonitor for the given #GFile.
+ * Since: 2.32
*/
/**
- * g_action_activate:
- * @action: a #GAction
- * @parameter: (nullable): the parameter to the activation
+ * g_application_activate:
+ * @application: a #GApplication
*
- * Activates the action.
+ * Activates the application.
*
- * @parameter must be the correct type of parameter for the action (ie:
- * the parameter type given at construction time). If the parameter
- * type was %NULL then @parameter must also be %NULL.
+ * In essence, this results in the #GApplication::activate signal being
+ * emitted in the primary instance.
*
- * If the @parameter GVariant is floating, it is consumed.
+ * The application must be registered before calling this function.
*
* Since: 2.28
*/
/**
- * g_action_change_state:
- * @action: a #GAction
- * @value: the new state
+ * g_application_add_main_option:
+ * @application: the #GApplication
+ * @long_name: the long name of an option used to specify it in a commandline
+ * @short_name: the short name of an option
+ * @flags: flags from #GOptionFlags
+ * @arg: the type of the option, as a #GOptionArg
+ * @description: the description for the option in `--help` output
+ * @arg_description: (nullable): the placeholder to use for the extra argument
+ * parsed by the option in `--help` output
*
- * Request for the state of @action to be changed to @value.
+ * Add an option to be handled by @application.
*
- * The action must be stateful and @value must be of the correct type.
- * See g_action_get_state_type().
+ * Calling this function is the equivalent of calling
+ * g_application_add_main_option_entries() with a single #GOptionEntry
+ * that has its arg_data member set to %NULL.
*
- * This call merely requests a change. The action may refuse to change
- * its state or may change its state to something other than @value.
- * See g_action_get_state_hint().
+ * The parsed arguments will be packed into a #GVariantDict which
+ * is passed to #GApplication::handle-local-options. If
+ * %G_APPLICATION_HANDLES_COMMAND_LINE is set, then it will also
+ * be sent to the primary instance. See
+ * g_application_add_main_option_entries() for more details.
*
- * If the @value GVariant is floating, it is consumed.
+ * See #GOptionEntry for more documentation of the arguments.
*
- * Since: 2.30
+ * Since: 2.42
*/
/**
- * g_action_get_enabled:
- * @action: a #GAction
+ * g_application_add_main_option_entries:
+ * @application: a #GApplication
+ * @entries: (array zero-terminated=1) (element-type GOptionEntry): a
+ * %NULL-terminated list of #GOptionEntrys
*
- * Checks if @action is currently enabled.
+ * Adds main option entries to be handled by @application.
*
- * An action must be enabled in order to be activated or in order to
- * have its state changed from outside callers.
+ * This function is comparable to g_option_context_add_main_entries().
*
- * Returns: whether the action is enabled
- * Since: 2.28
+ * After the commandline arguments are parsed, the
+ * #GApplication::handle-local-options signal will be emitted. At this
+ * point, the application can inspect the values pointed to by @arg_data
+ * in the given #GOptionEntrys.
+ *
+ * Unlike #GOptionContext, #GApplication supports giving a %NULL
+ * @arg_data for a non-callback #GOptionEntry. This results in the
+ * argument in question being packed into a #GVariantDict which is also
+ * passed to #GApplication::handle-local-options, where it can be
+ * inspected and modified. If %G_APPLICATION_HANDLES_COMMAND_LINE is
+ * set, then the resulting dictionary is sent to the primary instance,
+ * where g_application_command_line_get_options_dict() will return it.
+ * This "packing" is done according to the type of the argument --
+ * booleans for normal flags, strings for strings, bytestrings for
+ * filenames, etc. The packing only occurs if the flag is given (ie: we
+ * do not pack a "false" #GVariant in the case that a flag is missing).
+ *
+ * In general, it is recommended that all commandline arguments are
+ * parsed locally. The options dictionary should then be used to
+ * transmit the result of the parsing to the primary instance, where
+ * g_variant_dict_lookup() can be used. For local options, it is
+ * possible to either use @arg_data in the usual way, or to consult (and
+ * potentially remove) the option from the options dictionary.
+ *
+ * This function is new in GLib 2.40. Before then, the only real choice
+ * was to send all of the commandline arguments (options and all) to the
+ * primary instance for handling. #GApplication ignored them completely
+ * on the local side. Calling this function "opts in" to the new
+ * behaviour, and in particular, means that unrecognised options will be
+ * treated as errors. Unrecognised options have never been ignored when
+ * %G_APPLICATION_HANDLES_COMMAND_LINE is unset.
+ *
+ * If #GApplication::handle-local-options needs to see the list of
+ * filenames, then the use of %G_OPTION_REMAINING is recommended. If
+ * @arg_data is %NULL then %G_OPTION_REMAINING can be used as a key into
+ * the options dictionary. If you do use %G_OPTION_REMAINING then you
+ * need to handle these arguments for yourself because once they are
+ * consumed, they will no longer be visible to the default handling
+ * (which treats them as filenames to be opened).
+ *
+ * It is important to use the proper GVariant format when retrieving
+ * the options with g_variant_dict_lookup():
+ * - for %G_OPTION_ARG_NONE, use b
+ * - for %G_OPTION_ARG_STRING, use &s
+ * - for %G_OPTION_ARG_INT, use i
+ * - for %G_OPTION_ARG_INT64, use x
+ * - for %G_OPTION_ARG_DOUBLE, use d
+ * - for %G_OPTION_ARG_FILENAME, use ^ay
+ * - for %G_OPTION_ARG_STRING_ARRAY, use &as
+ * - for %G_OPTION_ARG_FILENAME_ARRAY, use ^aay
+ *
+ * Since: 2.40
*/
/**
- * g_action_get_name:
- * @action: a #GAction
+ * g_application_add_option_group:
+ * @application: the #GApplication
+ * @group: (transfer full): a #GOptionGroup
*
- * Queries the name of @action.
+ * Adds a #GOptionGroup to the commandline handling of @application.
*
- * Returns: the name of the action
- * Since: 2.28
+ * This function is comparable to g_option_context_add_group().
+ *
+ * Unlike g_application_add_main_option_entries(), this function does
+ * not deal with %NULL @arg_data and never transmits options to the
+ * primary instance.
+ *
+ * The reason for that is because, by the time the options arrive at the
+ * primary instance, it is typically too late to do anything with them.
+ * Taking the GTK option group as an example: GTK will already have been
+ * initialised by the time the #GApplication::command-line handler runs.
+ * In the case that this is not the first-running instance of the
+ * application, the existing instance may already have been running for
+ * a very long time.
+ *
+ * This means that the options from #GOptionGroup are only really usable
+ * in the case that the instance of the application being run is the
+ * first instance. Passing options like `--display=` or `--gdk-debug=`
+ * on future runs will have no effect on the existing primary instance.
+ *
+ * Calling this function will cause the options in the supplied option
+ * group to be parsed, but it does not cause you to be "opted in" to the
+ * new functionality whereby unrecognised options are rejected even if
+ * %G_APPLICATION_HANDLES_COMMAND_LINE was given.
+ *
+ * Since: 2.40
*/
/**
- * g_action_get_parameter_type:
- * @action: a #GAction
- *
- * Queries the type of the parameter that must be given when activating
- * @action.
+ * g_application_bind_busy_property:
+ * @application: a #GApplication
+ * @object: (type GObject.Object): a #GObject
+ * @property: the name of a boolean property of @object
*
- * When activating the action using g_action_activate(), the #GVariant
- * given to that function must be of the type returned by this function.
+ * Marks @application as busy (see g_application_mark_busy()) while
+ * @property on @object is %TRUE.
*
- * In the case that this function returns %NULL, you must not give any
- * #GVariant, but %NULL instead.
+ * The binding holds a reference to @application while it is active, but
+ * not to @object. Instead, the binding is destroyed when @object is
+ * finalized.
*
- * Returns: (nullable): the parameter type
- * Since: 2.28
+ * Since: 2.44
*/
/**
- * g_action_get_state:
- * @action: a #GAction
- *
- * Queries the current state of @action.
+ * g_application_command_line_create_file_for_arg:
+ * @cmdline: a #GApplicationCommandLine
+ * @arg: (type filename): an argument from @cmdline
*
- * If the action is not stateful then %NULL will be returned. If the
- * action is stateful then the type of the return value is the type
- * given by g_action_get_state_type().
+ * Creates a #GFile corresponding to a filename that was given as part
+ * of the invocation of @cmdline.
*
- * The return value (if non-%NULL) should be freed with
- * g_variant_unref() when it is no longer required.
+ * This differs from g_file_new_for_commandline_arg() in that it
+ * resolves relative pathnames using the current working directory of
+ * the invoking process rather than the local process.
*
- * Returns: (transfer full): the current state of the action
- * Since: 2.28
+ * Returns: (transfer full): a new #GFile
+ * Since: 2.36
*/
/**
- * g_action_get_state_hint:
- * @action: a #GAction
- *
- * Requests a hint about the valid range of values for the state of
- * @action.
+ * g_application_command_line_get_arguments:
+ * @cmdline: a #GApplicationCommandLine
+ * @argc: (out) (optional): the length of the arguments array, or %NULL
*
- * If %NULL is returned it either means that the action is not stateful
- * or that there is no hint about the valid range of values for the
- * state of the action.
+ * Gets the list of arguments that was passed on the command line.
*
- * If a #GVariant array is returned then each item in the array is a
- * possible value for the state. If a #GVariant pair (ie: two-tuple) is
- * returned then the tuple specifies the inclusive lower and upper bound
- * of valid values for the state.
+ * The strings in the array may contain non-UTF-8 data on UNIX (such as
+ * filenames or arguments given in the system locale) but are always in
+ * UTF-8 on Windows.
*
- * In any case, the information is merely a hint. It may be possible to
- * have a state value outside of the hinted range and setting a value
- * within the range may fail.
+ * If you wish to use the return value with #GOptionContext, you must
+ * use g_option_context_parse_strv().
*
- * The return value (if non-%NULL) should be freed with
- * g_variant_unref() when it is no longer required.
+ * The return value is %NULL-terminated and should be freed using
+ * g_strfreev().
*
- * Returns: (nullable) (transfer full): the state range hint
+ * Returns: (array length=argc) (element-type filename) (transfer full):
+ * the string array containing the arguments (the argv)
* Since: 2.28
*/
/**
- * g_action_get_state_type:
- * @action: a #GAction
+ * g_application_command_line_get_cwd:
+ * @cmdline: a #GApplicationCommandLine
*
- * Queries the type of the state of @action.
+ * Gets the working directory of the command line invocation.
+ * The string may contain non-utf8 data.
*
- * If the action is stateful (e.g. created with
- * g_simple_action_new_stateful()) then this function returns the
- * #GVariantType of the state. This is the type of the initial value
- * given as the state. All calls to g_action_change_state() must give a
- * #GVariant of this type and g_action_get_state() will return a
- * #GVariant of the same type.
+ * It is possible that the remote application did not send a working
+ * directory, so this may be %NULL.
*
- * If the action is not stateful (e.g. created with g_simple_action_new())
- * then this function will return %NULL. In that case, g_action_get_state()
- * will return %NULL and you must not call g_action_change_state().
+ * The return value should not be modified or freed and is valid for as
+ * long as @cmdline exists.
*
- * Returns: (nullable): the state type, if the action is stateful
+ * Returns: (nullable) (type filename): the current directory, or %NULL
* Since: 2.28
*/
/**
- * g_action_group_action_added:
- * @action_group: a #GActionGroup
- * @action_name: the name of an action in the group
+ * g_application_command_line_get_environ:
+ * @cmdline: a #GApplicationCommandLine
*
- * Emits the #GActionGroup::action-added signal on @action_group.
+ * Gets the contents of the 'environ' variable of the command line
+ * invocation, as would be returned by g_get_environ(), ie as a
+ * %NULL-terminated list of strings in the form 'NAME=VALUE'.
+ * The strings may contain non-utf8 data.
*
- * This function should only be called by #GActionGroup implementations.
+ * The remote application usually does not send an environment. Use
+ * %G_APPLICATION_SEND_ENVIRONMENT to affect that. Even with this flag
+ * set it is possible that the environment is still not available (due
+ * to invocation messages from other applications).
+ *
+ * The return value should not be modified or freed and is valid for as
+ * long as @cmdline exists.
+ *
+ * See g_application_command_line_getenv() if you are only interested
+ * in the value of a single environment variable.
*
+ * Returns: (array zero-terminated=1) (element-type filename) (transfer none):
+ * the environment strings, or %NULL if they were not sent
* Since: 2.28
*/
/**
- * g_action_group_action_enabled_changed:
- * @action_group: a #GActionGroup
- * @action_name: the name of an action in the group
- * @enabled: whether or not the action is now enabled
- *
- * Emits the #GActionGroup::action-enabled-changed signal on @action_group.
+ * g_application_command_line_get_exit_status:
+ * @cmdline: a #GApplicationCommandLine
*
- * This function should only be called by #GActionGroup implementations.
+ * Gets the exit status of @cmdline. See
+ * g_application_command_line_set_exit_status() for more information.
*
+ * Returns: the exit status
* Since: 2.28
*/
/**
- * g_action_group_action_removed:
- * @action_group: a #GActionGroup
- * @action_name: the name of an action in the group
- *
- * Emits the #GActionGroup::action-removed signal on @action_group.
+ * g_application_command_line_get_is_remote:
+ * @cmdline: a #GApplicationCommandLine
*
- * This function should only be called by #GActionGroup implementations.
+ * Determines if @cmdline represents a remote invocation.
*
+ * Returns: %TRUE if the invocation was remote
* Since: 2.28
*/
/**
- * g_action_group_action_state_changed:
- * @action_group: a #GActionGroup
- * @action_name: the name of an action in the group
- * @state: the new state of the named action
+ * g_application_command_line_get_options_dict:
+ * @cmdline: a #GApplicationCommandLine
*
- * Emits the #GActionGroup::action-state-changed signal on @action_group.
+ * Gets the options there were passed to g_application_command_line().
*
- * This function should only be called by #GActionGroup implementations.
- *
- * Since: 2.28
- */
-
-
-/**
- * g_action_group_activate_action:
- * @action_group: a #GActionGroup
- * @action_name: the name of the action to activate
- * @parameter: (nullable): parameters to the activation
- *
- * Activate the named action within @action_group.
+ * If you did not override local_command_line() then these are the same
+ * options that were parsed according to the #GOptionEntrys added to the
+ * application with g_application_add_main_option_entries() and possibly
+ * modified from your GApplication::handle-local-options handler.
*
- * If the action is expecting a parameter, then the correct type of
- * parameter must be given as @parameter. If the action is expecting no
- * parameters then @parameter must be %NULL. See
- * g_action_group_get_action_parameter_type().
+ * If no options were sent then an empty dictionary is returned so that
+ * you don't need to check for %NULL.
*
- * Since: 2.28
+ * Returns: (transfer none): a #GVariantDict with the options
+ * Since: 2.40
*/
/**
- * g_action_group_change_action_state:
- * @action_group: a #GActionGroup
- * @action_name: the name of the action to request the change on
- * @value: the new state
- *
- * Request for the state of the named action within @action_group to be
- * changed to @value.
+ * g_application_command_line_get_platform_data:
+ * @cmdline: #GApplicationCommandLine
*
- * The action must be stateful and @value must be of the correct type.
- * See g_action_group_get_action_state_type().
+ * Gets the platform data associated with the invocation of @cmdline.
*
- * This call merely requests a change. The action may refuse to change
- * its state or may change its state to something other than @value.
- * See g_action_group_get_action_state_hint().
+ * This is a #GVariant dictionary containing information about the
+ * context in which the invocation occurred. It typically contains
+ * information like the current working directory and the startup
+ * notification ID.
*
- * If the @value GVariant is floating, it is consumed.
+ * For local invocation, it will be %NULL.
*
+ * Returns: (nullable): the platform data, or %NULL
* Since: 2.28
*/
/**
- * g_action_group_get_action_enabled:
- * @action_group: a #GActionGroup
- * @action_name: the name of the action to query
+ * g_application_command_line_get_stdin:
+ * @cmdline: a #GApplicationCommandLine
*
- * Checks if the named action within @action_group is currently enabled.
+ * Gets the stdin of the invoking process.
*
- * An action must be enabled in order to be activated or in order to
- * have its state changed from outside callers.
+ * The #GInputStream can be used to read data passed to the standard
+ * input of the invoking process.
+ * This doesn't work on all platforms. Presently, it is only available
+ * on UNIX when using a DBus daemon capable of passing file descriptors.
+ * If stdin is not available then %NULL will be returned. In the
+ * future, support may be expanded to other platforms.
*
- * Returns: whether or not the action is currently enabled
- * Since: 2.28
+ * You must only call this function once per commandline invocation.
+ *
+ * Returns: (transfer full): a #GInputStream for stdin
+ * Since: 2.34
*/
/**
- * g_action_group_get_action_parameter_type:
- * @action_group: a #GActionGroup
- * @action_name: the name of the action to query
- *
- * Queries the type of the parameter that must be given when activating
- * the named action within @action_group.
+ * g_application_command_line_getenv:
+ * @cmdline: a #GApplicationCommandLine
+ * @name: (type filename): the environment variable to get
*
- * When activating the action using g_action_group_activate_action(),
- * the #GVariant given to that function must be of the type returned
- * by this function.
+ * Gets the value of a particular environment variable of the command
+ * line invocation, as would be returned by g_getenv(). The strings may
+ * contain non-utf8 data.
*
- * In the case that this function returns %NULL, you must not give any
- * #GVariant, but %NULL instead.
+ * The remote application usually does not send an environment. Use
+ * %G_APPLICATION_SEND_ENVIRONMENT to affect that. Even with this flag
+ * set it is possible that the environment is still not available (due
+ * to invocation messages from other applications).
*
- * The parameter type of a particular action will never change but it is
- * possible for an action to be removed and for a new action to be added
- * with the same name but a different parameter type.
+ * The return value should not be modified or freed and is valid for as
+ * long as @cmdline exists.
*
- * Returns: (nullable): the parameter type
+ * Returns: the value of the variable, or %NULL if unset or unsent
* Since: 2.28
*/
/**
- * g_action_group_get_action_state:
- * @action_group: a #GActionGroup
- * @action_name: the name of the action to query
- *
- * Queries the current state of the named action within @action_group.
+ * g_application_command_line_print:
+ * @cmdline: a #GApplicationCommandLine
+ * @format: a printf-style format string
+ * @...: arguments, as per @format
*
- * If the action is not stateful then %NULL will be returned. If the
- * action is stateful then the type of the return value is the type
- * given by g_action_group_get_action_state_type().
+ * Formats a message and prints it using the stdout print handler in the
+ * invoking process.
*
- * The return value (if non-%NULL) should be freed with
- * g_variant_unref() when it is no longer required.
+ * If @cmdline is a local invocation then this is exactly equivalent to
+ * g_print(). If @cmdline is remote then this is equivalent to calling
+ * g_print() in the invoking process.
*
- * Returns: (nullable): the current state of the action
* Since: 2.28
*/
/**
- * g_action_group_get_action_state_hint:
- * @action_group: a #GActionGroup
- * @action_name: the name of the action to query
- *
- * Requests a hint about the valid range of values for the state of the
- * named action within @action_group.
- *
- * If %NULL is returned it either means that the action is not stateful
- * or that there is no hint about the valid range of values for the
- * state of the action.
- *
- * If a #GVariant array is returned then each item in the array is a
- * possible value for the state. If a #GVariant pair (ie: two-tuple) is
- * returned then the tuple specifies the inclusive lower and upper bound
- * of valid values for the state.
+ * g_application_command_line_printerr:
+ * @cmdline: a #GApplicationCommandLine
+ * @format: a printf-style format string
+ * @...: arguments, as per @format
*
- * In any case, the information is merely a hint. It may be possible to
- * have a state value outside of the hinted range and setting a value
- * within the range may fail.
+ * Formats a message and prints it using the stderr print handler in the
+ * invoking process.
*
- * The return value (if non-%NULL) should be freed with
- * g_variant_unref() when it is no longer required.
+ * If @cmdline is a local invocation then this is exactly equivalent to
+ * g_printerr(). If @cmdline is remote then this is equivalent to
+ * calling g_printerr() in the invoking process.
*
- * Returns: (nullable) (transfer full): the state range hint
* Since: 2.28
*/
/**
- * g_action_group_get_action_state_type:
- * @action_group: a #GActionGroup
- * @action_name: the name of the action to query
+ * g_application_command_line_set_exit_status:
+ * @cmdline: a #GApplicationCommandLine
+ * @exit_status: the exit status
*
- * Queries the type of the state of the named action within
- * @action_group.
+ * Sets the exit status that will be used when the invoking process
+ * exits.
*
- * If the action is stateful then this function returns the
- * #GVariantType of the state. All calls to
- * g_action_group_change_action_state() must give a #GVariant of this
- * type and g_action_group_get_action_state() will return a #GVariant
- * of the same type.
+ * The return value of the #GApplication::command-line signal is
+ * passed to this function when the handler returns. This is the usual
+ * way of setting the exit status.
*
- * If the action is not stateful then this function will return %NULL.
- * In that case, g_action_group_get_action_state() will return %NULL
- * and you must not call g_action_group_change_action_state().
+ * In the event that you want the remote invocation to continue running
+ * and want to decide on the exit status in the future, you can use this
+ * call. For the case of a remote invocation, the remote process will
+ * typically exit when the last reference is dropped on @cmdline. The
+ * exit status of the remote process will be equal to the last value
+ * that was set with this function.
*
- * The state type of a particular action will never change but it is
- * possible for an action to be removed and for a new action to be added
- * with the same name but a different state type.
+ * In the case that the commandline invocation is local, the situation
+ * is slightly more complicated. If the commandline invocation results
+ * in the mainloop running (ie: because the use-count of the application
+ * increased to a non-zero value) then the application is considered to
+ * have been 'successful' in a certain sense, and the exit status is
+ * always zero. If the application use count is zero, though, the exit
+ * status of the local #GApplicationCommandLine is used.
*
- * Returns: (nullable): the state type, if the action is stateful
* Since: 2.28
*/
/**
- * g_action_group_has_action:
- * @action_group: a #GActionGroup
- * @action_name: the name of the action to check for
+ * g_application_get_application_id:
+ * @application: a #GApplication
*
- * Checks if the named action exists within @action_group.
+ * Gets the unique identifier for @application.
*
- * Returns: whether the named action exists
+ * Returns: the identifier for @application, owned by @application
* Since: 2.28
*/
/**
- * g_action_group_list_actions:
- * @action_group: a #GActionGroup
+ * g_application_get_dbus_connection:
+ * @application: a #GApplication
*
- * Lists the actions contained within @action_group.
+ * Gets the #GDBusConnection being used by the application, or %NULL.
*
- * The caller is responsible for freeing the list with g_strfreev() when
- * it is no longer required.
+ * If #GApplication is using its D-Bus backend then this function will
+ * return the #GDBusConnection being used for uniqueness and
+ * communication with the desktop environment and other instances of the
+ * application.
*
- * Returns: (transfer full): a %NULL-terminated array of the names of the
- * actions in the group
- * Since: 2.28
+ * If #GApplication is not using D-Bus then this function will return
+ * %NULL. This includes the situation where the D-Bus backend would
+ * normally be in use but we were unable to connect to the bus.
+ *
+ * This function must not be called before the application has been
+ * registered. See g_application_get_is_registered().
+ *
+ * Returns: (transfer none): a #GDBusConnection, or %NULL
+ * Since: 2.34
*/
/**
- * g_action_group_query_action:
- * @action_group: a #GActionGroup
- * @action_name: the name of an action in the group
- * @enabled: (out): if the action is presently enabled
- * @parameter_type: (out) (optional): the parameter type, or %NULL if none needed
- * @state_type: (out) (optional): the state type, or %NULL if stateless
- * @state_hint: (out) (optional): the state hint, or %NULL if none
- * @state: (out) (optional): the current state, or %NULL if stateless
- *
- * Queries all aspects of the named action within an @action_group.
- *
- * This function acquires the information available from
- * g_action_group_has_action(), g_action_group_get_action_enabled(),
- * g_action_group_get_action_parameter_type(),
- * g_action_group_get_action_state_type(),
- * g_action_group_get_action_state_hint() and
- * g_action_group_get_action_state() with a single function call.
+ * g_application_get_dbus_object_path:
+ * @application: a #GApplication
*
- * This provides two main benefits.
+ * Gets the D-Bus object path being used by the application, or %NULL.
*
- * The first is the improvement in efficiency that comes with not having
- * to perform repeated lookups of the action in order to discover
- * different things about it. The second is that implementing
- * #GActionGroup can now be done by only overriding this one virtual
- * function.
+ * If #GApplication is using its D-Bus backend then this function will
+ * return the D-Bus object path that #GApplication is using. If the
+ * application is the primary instance then there is an object published
+ * at this path. If the application is not the primary instance then
+ * the result of this function is undefined.
*
- * The interface provides a default implementation of this function that
- * calls the individual functions, as required, to fetch the
- * information. The interface also provides default implementations of
- * those functions that call this function. All implementations,
- * therefore, must override either this function or all of the others.
+ * If #GApplication is not using D-Bus then this function will return
+ * %NULL. This includes the situation where the D-Bus backend would
+ * normally be in use but we were unable to connect to the bus.
*
- * If the action exists, %TRUE is returned and any of the requested
- * fields (as indicated by having a non-%NULL reference passed in) are
- * filled. If the action doesn't exist, %FALSE is returned and the
- * fields may or may not have been modified.
+ * This function must not be called before the application has been
+ * registered. See g_application_get_is_registered().
*
- * Returns: %TRUE if the action exists, else %FALSE
- * Since: 2.32
+ * Returns: the object path, or %NULL
+ * Since: 2.34
*/
/**
- * g_action_map_add_action:
- * @action_map: a #GActionMap
- * @action: a #GAction
+ * g_application_get_default:
*
- * Adds an action to the @action_map.
+ * Returns the default #GApplication instance for this process.
*
- * If the action map already contains an action with the same name
- * as @action then the old action is dropped from the action map.
+ * Normally there is only one #GApplication per process and it becomes
+ * the default when it is created. You can exercise more control over
+ * this by using g_application_set_default().
*
- * The action map takes its own reference on @action.
+ * If there is no default application then %NULL is returned.
*
+ * Returns: (transfer none): the default application for this process, or %NULL
* Since: 2.32
*/
/**
- * g_action_map_add_action_entries:
- * @action_map: a #GActionMap
- * @entries: (array length=n_entries) (element-type GActionEntry): a pointer to
- * the first item in an array of #GActionEntry structs
- * @n_entries: the length of @entries, or -1 if @entries is %NULL-terminated
- * @user_data: the user data for signal connections
- *
- * A convenience function for creating multiple #GSimpleAction instances
- * and adding them to a #GActionMap.
- *
- * Each action is constructed as per one #GActionEntry.
- *
- * |[<!-- language="C" -->
- * static void
- * activate_quit (GSimpleAction *simple,
- * GVariant *parameter,
- * gpointer user_data)
- * {
- * exit (0);
- * }
- *
- * static void
- * activate_print_string (GSimpleAction *simple,
- * GVariant *parameter,
- * gpointer user_data)
- * {
- * g_print ("%s\n", g_variant_get_string (parameter, NULL));
- * }
- *
- * static GActionGroup *
- * create_action_group (void)
- * {
- * const GActionEntry entries[] = {
- * { "quit", activate_quit },
- * { "print-string", activate_print_string, "s" }
- * };
- * GSimpleActionGroup *group;
+ * g_application_get_flags:
+ * @application: a #GApplication
*
- * group = g_simple_action_group_new ();
- * g_action_map_add_action_entries (G_ACTION_MAP (group), entries, G_N_ELEMENTS (entries), NULL);
+ * Gets the flags for @application.
*
- * return G_ACTION_GROUP (group);
- * }
- * ]|
+ * See #GApplicationFlags.
*
- * Since: 2.32
+ * Returns: the flags for @application
+ * Since: 2.28
*/
/**
- * g_action_map_lookup_action:
- * @action_map: a #GActionMap
- * @action_name: the name of an action
+ * g_application_get_inactivity_timeout:
+ * @application: a #GApplication
*
- * Looks up the action with the name @action_name in @action_map.
+ * Gets the current inactivity timeout for the application.
*
- * If no such action exists, returns %NULL.
+ * This is the amount of time (in milliseconds) after the last call to
+ * g_application_release() before the application stops running.
*
- * Returns: (transfer none): a #GAction, or %NULL
- * Since: 2.32
+ * Returns: the timeout, in milliseconds
+ * Since: 2.28
*/
/**
- * g_action_map_remove_action:
- * @action_map: a #GActionMap
- * @action_name: the name of the action
- *
- * Removes the named action from the action map.
+ * g_application_get_is_busy:
+ * @application: a #GApplication
*
- * If no action of this name is in the map then nothing happens.
+ * Gets the application's current busy state, as set through
+ * g_application_mark_busy() or g_application_bind_busy_property().
*
- * Since: 2.32
+ * Returns: %TRUE if @application is currenty marked as busy
+ * Since: 2.44
*/
/**
- * g_action_name_is_valid:
- * @action_name: an potential action name
- *
- * Checks if @action_name is valid.
+ * g_application_get_is_registered:
+ * @application: a #GApplication
*
- * @action_name is valid if it consists only of alphanumeric characters,
- * plus '-' and '.'. The empty string is not a valid action name.
+ * Checks if @application is registered.
*
- * It is an error to call this function with a non-utf8 @action_name.
- * @action_name must not be %NULL.
+ * An application is registered if g_application_register() has been
+ * successfully called.
*
- * Returns: %TRUE if @action_name is valid
- * Since: 2.38
+ * Returns: %TRUE if @application is registered
+ * Since: 2.28
*/
/**
- * g_action_parse_detailed_name:
- * @detailed_name: a detailed action name
- * @action_name: (out): the action name
- * @target_value: (out): the target value, or %NULL for no target
- * @error: a pointer to a %NULL #GError, or %NULL
- *
- * Parses a detailed action name into its separate name and target
- * components.
- *
- * Detailed action names can have three formats.
+ * g_application_get_is_remote:
+ * @application: a #GApplication
*
- * The first format is used to represent an action name with no target
- * value and consists of just an action name containing no whitespace
- * nor the characters ':', '(' or ')'. For example: "app.action".
+ * Checks if @application is remote.
*
- * The second format is used to represent an action with a target value
- * that is a non-empty string consisting only of alphanumerics, plus '-'
- * and '.'. In that case, the action name and target value are
- * separated by a double colon ("::"). For example:
- * "app.action::target".
+ * If @application is remote then it means that another instance of
+ * application already exists (the 'primary' instance). Calls to
+ * perform actions on @application will result in the actions being
+ * performed by the primary instance.
*
- * The third format is used to represent an action with any type of
- * target value, including strings. The target value follows the action
- * name, surrounded in parens. For example: "app.action(42)". The
- * target value is parsed using g_variant_parse(). If a tuple-typed
- * value is desired, it must be specified in the same way, resulting in
- * two sets of parens, for example: "app.action((1,2,3))". A string
- * target can be specified this way as well: "app.action('target')".
- * For strings, this third format must be used if * target value is
- * empty or contains characters other than alphanumerics, '-' and '.'.
+ * The value of this property cannot be accessed before
+ * g_application_register() has been called. See
+ * g_application_get_is_registered().
*
- * Returns: %TRUE if successful, else %FALSE with @error set
- * Since: 2.38
+ * Returns: %TRUE if @application is remote
+ * Since: 2.28
*/
/**
- * g_action_print_detailed_name:
- * @action_name: a valid action name
- * @target_value: (nullable): a #GVariant target value, or %NULL
- *
- * Formats a detailed action name from @action_name and @target_value.
- *
- * It is an error to call this function with an invalid action name.
+ * g_application_get_resource_base_path:
+ * @application: a #GApplication
*
- * This function is the opposite of g_action_parse_detailed_name().
- * It will produce a string that can be parsed back to the @action_name
- * and @target_value by that function.
+ * Gets the resource base path of @application.
*
- * See that function for the types of strings that will be printed by
- * this function.
+ * See g_application_set_resource_base_path() for more information.
*
- * Returns: a detailed format string
- * Since: 2.38
+ * Returns: (nullable): the base resource path, if one is set
+ * Since: 2.42
*/
/**
- * g_app_info_add_supports_type:
- * @appinfo: a #GAppInfo.
- * @content_type: a string.
- * @error: a #GError.
- *
- * Adds a content type to the application information to indicate the
- * application is capable of opening files with the given content type.
+ * g_application_hold:
+ * @application: a #GApplication
*
- * Returns: %TRUE on success, %FALSE on error.
- */
-
-
-/**
- * g_app_info_can_delete:
- * @appinfo: a #GAppInfo
+ * Increases the use count of @application.
*
- * Obtains the information whether the #GAppInfo can be deleted.
- * See g_app_info_delete().
+ * Use this function to indicate that the application has a reason to
+ * continue to run. For example, g_application_hold() is called by GTK+
+ * when a toplevel window is on the screen.
*
- * Returns: %TRUE if @appinfo can be deleted
- * Since: 2.20
+ * To cancel the hold, call g_application_release().
*/
/**
- * g_app_info_can_remove_supports_type:
- * @appinfo: a #GAppInfo.
+ * g_application_id_is_valid:
+ * @application_id: a potential application identifier
*
- * Checks if a supported content type can be removed from an application.
+ * Checks if @application_id is a valid application identifier.
*
- * Returns: %TRUE if it is possible to remove supported
- * content types from a given @appinfo, %FALSE if not.
- */
-
-
-/**
- * g_app_info_create_from_commandline:
- * @commandline: (type filename): the commandline to use
- * @application_name: (nullable): the application name, or %NULL to use @commandline
- * @flags: flags that can specify details of the created #GAppInfo
- * @error: a #GError location to store the error occurring, %NULL to ignore.
+ * A valid ID is required for calls to g_application_new() and
+ * g_application_set_application_id().
*
- * Creates a new #GAppInfo from the given information.
+ * Application identifiers follow the same format as
+ * [D-Bus well-known bus names](https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names-bus).
+ * For convenience, the restrictions on application identifiers are
+ * reproduced here:
*
- * Note that for @commandline, the quoting rules of the Exec key of the
- * [freedesktop.org Desktop Entry Specification](http://freedesktop.org/Standards/desktop-entry-spec)
- * are applied. For example, if the @commandline contains
- * percent-encoded URIs, the percent-character must be doubled in order to prevent it from
- * being swallowed by Exec key unquoting. See the specification for exact quoting rules.
+ * - Application identifiers are composed of 1 or more elements separated by a
+ * period (`.`) character. All elements must contain at least one character.
*
- * Returns: (transfer full): new #GAppInfo for given command.
- */
-
-
-/**
- * g_app_info_delete: (virtual do_delete)
- * @appinfo: a #GAppInfo
+ * - Each element must only contain the ASCII characters `[A-Z][a-z][0-9]_-`,
+ * with `-` discouraged in new application identifiers. Each element must not
+ * begin with a digit.
*
- * Tries to delete a #GAppInfo.
+ * - Application identifiers must contain at least one `.` (period) character
+ * (and thus at least two elements).
*
- * On some platforms, there may be a difference between user-defined
- * #GAppInfos which can be deleted, and system-wide ones which cannot.
- * See g_app_info_can_delete().
+ * - Application identifiers must not begin with a `.` (period) character.
*
- * Returns: %TRUE if @appinfo has been deleted
- * Since: 2.20
- */
-
-
-/**
- * g_app_info_dup:
- * @appinfo: a #GAppInfo.
+ * - Application identifiers must not exceed 255 characters.
*
- * Creates a duplicate of a #GAppInfo.
+ * Note that the hyphen (`-`) character is allowed in application identifiers,
+ * but is problematic or not allowed in various specifications and APIs that
+ * refer to D-Bus, such as
+ * [Flatpak application IDs](http://docs.flatpak.org/en/latest/introduction.html#identifiers),
+ * the
+ * [`DBusActivatable` interface in the Desktop Entry Specification](https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#dbus),
+ * and the convention that an application's "main" interface and object path
+ * resemble its application identifier and bus name. To avoid situations that
+ * require special-case handling, it is recommended that new application
+ * identifiers consistently replace hyphens with underscores.
*
- * Returns: (transfer full): a duplicate of @appinfo.
+ * Like D-Bus interface names, application identifiers should start with the
+ * reversed DNS domain name of the author of the interface (in lower-case), and
+ * it is conventional for the rest of the application identifier to consist of
+ * words run together, with initial capital letters.
+ *
+ * As with D-Bus interface names, if the author's DNS domain name contains
+ * hyphen/minus characters they should be replaced by underscores, and if it
+ * contains leading digits they should be escaped by prepending an underscore.
+ * For example, if the owner of 7-zip.org used an application identifier for an
+ * archiving application, it might be named `org._7_zip.Archiver`.
+ *
+ * Returns: %TRUE if @application_id is valid
*/
/**
- * g_app_info_equal:
- * @appinfo1: the first #GAppInfo.
- * @appinfo2: the second #GAppInfo.
+ * g_application_mark_busy:
+ * @application: a #GApplication
*
- * Checks if two #GAppInfos are equal.
+ * Increases the busy count of @application.
*
- * Note that the check <emphasis>may not</emphasis> compare each individual
- * field, and only does an identity check. In case detecting changes in the
- * contents is needed, program code must additionally compare relevant fields.
+ * Use this function to indicate that the application is busy, for instance
+ * while a long running operation is pending.
*
- * Returns: %TRUE if @appinfo1 is equal to @appinfo2. %FALSE otherwise.
+ * The busy state will be exposed to other processes, so a session shell will
+ * use that information to indicate the state to the user (e.g. with a
+ * spinner).
+ *
+ * To cancel the busy indication, use g_application_unmark_busy().
+ *
+ * Since: 2.38
*/
/**
- * g_app_info_get_all:
+ * g_application_new:
+ * @application_id: (nullable): the application id
+ * @flags: the application flags
*
- * Gets a list of all of the applications currently registered
- * on this system.
+ * Creates a new #GApplication instance.
*
- * For desktop files, this includes applications that have
- * `NoDisplay=true` set or are excluded from display by means
- * of `OnlyShowIn` or `NotShowIn`. See g_app_info_should_show().
- * The returned list does not include applications which have
- * the `Hidden` key set.
+ * If non-%NULL, the application id must be valid. See
+ * g_application_id_is_valid().
*
- * Returns: (element-type GAppInfo) (transfer full): a newly allocated #GList of references to #GAppInfos.
+ * If no application ID is given then some features of #GApplication
+ * (most notably application uniqueness) will be disabled.
+ *
+ * Returns: a new #GApplication instance
*/
/**
- * g_app_info_get_all_for_type:
- * @content_type: the content type to find a #GAppInfo for
+ * g_application_open:
+ * @application: a #GApplication
+ * @files: (array length=n_files): an array of #GFiles to open
+ * @n_files: the length of the @files array
+ * @hint: a hint (or ""), but never %NULL
*
- * Gets a list of all #GAppInfos for a given content type,
- * including the recommended and fallback #GAppInfos. See
- * g_app_info_get_recommended_for_type() and
- * g_app_info_get_fallback_for_type().
+ * Opens the given files.
*
- * Returns: (element-type GAppInfo) (transfer full): #GList of #GAppInfos
- * for given @content_type or %NULL on error.
- */
-
-
-/**
- * g_app_info_get_commandline:
- * @appinfo: a #GAppInfo
+ * In essence, this results in the #GApplication::open signal being emitted
+ * in the primary instance.
*
- * Gets the commandline with which the application will be
- * started.
+ * @n_files must be greater than zero.
*
- * Returns: (type filename): a string containing the @appinfo's commandline,
- * or %NULL if this information is not available
- * Since: 2.20
- */
-
-
-/**
- * g_app_info_get_default_for_type:
- * @content_type: the content type to find a #GAppInfo for
- * @must_support_uris: if %TRUE, the #GAppInfo is expected to
- * support URIs
+ * @hint is simply passed through to the ::open signal. It is
+ * intended to be used by applications that have multiple modes for
+ * opening files (eg: "view" vs "edit", etc). Unless you have a need
+ * for this functionality, you should use "".
*
- * Gets the default #GAppInfo for a given content type.
+ * The application must be registered before calling this function
+ * and it must have the %G_APPLICATION_HANDLES_OPEN flag set.
*
- * Returns: (transfer full): #GAppInfo for given @content_type or
- * %NULL on error.
+ * Since: 2.28
*/
/**
- * g_app_info_get_default_for_uri_scheme:
- * @uri_scheme: a string containing a URI scheme.
+ * g_application_quit:
+ * @application: a #GApplication
*
- * Gets the default application for handling URIs with
- * the given URI scheme. A URI scheme is the initial part
- * of the URI, up to but not including the ':', e.g. "http",
- * "ftp" or "sip".
+ * Immediately quits the application.
*
- * Returns: (transfer full): #GAppInfo for given @uri_scheme or %NULL on error.
- */
-
-
-/**
- * g_app_info_get_description:
- * @appinfo: a #GAppInfo.
+ * Upon return to the mainloop, g_application_run() will return,
+ * calling only the 'shutdown' function before doing so.
*
- * Gets a human-readable description of an installed application.
+ * The hold count is ignored.
+ * Take care if your code has called g_application_hold() on the application and
+ * is therefore still expecting it to exist.
+ * (Note that you may have called g_application_hold() indirectly, for example
+ * through gtk_application_add_window().)
*
- * Returns: a string containing a description of the
- * application @appinfo, or %NULL if none.
+ * The result of calling g_application_run() again after it returns is
+ * unspecified.
+ *
+ * Since: 2.32
*/
/**
- * g_app_info_get_display_name:
- * @appinfo: a #GAppInfo.
+ * g_application_register:
+ * @application: a #GApplication
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a pointer to a NULL #GError, or %NULL
*
- * Gets the display name of the application. The display name is often more
- * descriptive to the user than the name itself.
+ * Attempts registration of the application.
*
- * Returns: the display name of the application for @appinfo, or the name if
- * no display name is available.
- * Since: 2.24
- */
-
-
-/**
- * g_app_info_get_executable:
- * @appinfo: a #GAppInfo
+ * This is the point at which the application discovers if it is the
+ * primary instance or merely acting as a remote for an already-existing
+ * primary instance. This is implemented by attempting to acquire the
+ * application identifier as a unique bus name on the session bus using
+ * GDBus.
*
- * Gets the executable's name for the installed application.
+ * If there is no application ID or if %G_APPLICATION_NON_UNIQUE was
+ * given, then this process will always become the primary instance.
*
- * Returns: (type filename): a string containing the @appinfo's application
- * binaries name
- */
-
-
-/**
- * g_app_info_get_fallback_for_type:
- * @content_type: the content type to find a #GAppInfo for
+ * Due to the internal architecture of GDBus, method calls can be
+ * dispatched at any time (even if a main loop is not running). For
+ * this reason, you must ensure that any object paths that you wish to
+ * register are registered before calling this function.
*
- * Gets a list of fallback #GAppInfos for a given content type, i.e.
- * those applications which claim to support the given content type
- * by MIME type subclassing and not directly.
+ * If the application has already been registered then %TRUE is
+ * returned with no work performed.
*
- * Returns: (element-type GAppInfo) (transfer full): #GList of #GAppInfos
- * for given @content_type or %NULL on error.
+ * The #GApplication::startup signal is emitted if registration succeeds
+ * and @application is the primary instance (including the non-unique
+ * case).
+ *
+ * In the event of an error (such as @cancellable being cancelled, or a
+ * failure to connect to the session bus), %FALSE is returned and @error
+ * is set appropriately.
+ *
+ * Note: the return value of this function is not an indicator that this
+ * instance is or is not the primary instance of the application. See
+ * g_application_get_is_remote() for that.
+ *
+ * Returns: %TRUE if registration succeeded
* Since: 2.28
*/
/**
- * g_app_info_get_icon:
- * @appinfo: a #GAppInfo.
+ * g_application_release:
+ * @application: a #GApplication
*
- * Gets the icon for the application.
+ * Decrease the use count of @application.
*
- * Returns: (transfer none): the default #GIcon for @appinfo or %NULL
- * if there is no default icon.
+ * When the use count reaches zero, the application will stop running.
+ *
+ * Never call this function except to cancel the effect of a previous
+ * call to g_application_hold().
*/
/**
- * g_app_info_get_id:
- * @appinfo: a #GAppInfo.
+ * g_application_run:
+ * @application: a #GApplication
+ * @argc: the argc from main() (or 0 if @argv is %NULL)
+ * @argv: (array length=argc) (element-type filename) (nullable):
+ * the argv from main(), or %NULL
*
- * Gets the ID of an application. An id is a string that
- * identifies the application. The exact format of the id is
- * platform dependent. For instance, on Unix this is the
- * desktop file id from the xdg menu specification.
+ * Runs the application.
*
- * Note that the returned ID may be %NULL, depending on how
- * the @appinfo has been constructed.
+ * This function is intended to be run from main() and its return value
+ * is intended to be returned by main(). Although you are expected to pass
+ * the @argc, @argv parameters from main() to this function, it is possible
+ * to pass %NULL if @argv is not available or commandline handling is not
+ * required. Note that on Windows, @argc and @argv are ignored, and
+ * g_win32_get_command_line() is called internally (for proper support
+ * of Unicode commandline arguments).
*
- * Returns: a string containing the application's ID.
- */
-
-
-/**
- * g_app_info_get_name:
- * @appinfo: a #GAppInfo.
+ * #GApplication will attempt to parse the commandline arguments. You
+ * can add commandline flags to the list of recognised options by way of
+ * g_application_add_main_option_entries(). After this, the
+ * #GApplication::handle-local-options signal is emitted, from which the
+ * application can inspect the values of its #GOptionEntrys.
*
- * Gets the installed name of the application.
+ * #GApplication::handle-local-options is a good place to handle options
+ * such as `--version`, where an immediate reply from the local process is
+ * desired (instead of communicating with an already-running instance).
+ * A #GApplication::handle-local-options handler can stop further processing
+ * by returning a non-negative value, which then becomes the exit status of
+ * the process.
*
- * Returns: the name of the application for @appinfo.
- */
-
-
-/**
- * g_app_info_get_recommended_for_type:
- * @content_type: the content type to find a #GAppInfo for
+ * What happens next depends on the flags: if
+ * %G_APPLICATION_HANDLES_COMMAND_LINE was specified then the remaining
+ * commandline arguments are sent to the primary instance, where a
+ * #GApplication::command-line signal is emitted. Otherwise, the
+ * remaining commandline arguments are assumed to be a list of files.
+ * If there are no files listed, the application is activated via the
+ * #GApplication::activate signal. If there are one or more files, and
+ * %G_APPLICATION_HANDLES_OPEN was specified then the files are opened
+ * via the #GApplication::open signal.
*
- * Gets a list of recommended #GAppInfos for a given content type, i.e.
- * those applications which claim to support the given content type exactly,
- * and not by MIME type subclassing.
- * Note that the first application of the list is the last used one, i.e.
- * the last one for which g_app_info_set_as_last_used_for_type() has been
- * called.
+ * If you are interested in doing more complicated local handling of the
+ * commandline then you should implement your own #GApplication subclass
+ * and override local_command_line(). In this case, you most likely want
+ * to return %TRUE from your local_command_line() implementation to
+ * suppress the default handling. See
+ * [gapplication-example-cmdline2.c][gapplication-example-cmdline2]
+ * for an example.
*
- * Returns: (element-type GAppInfo) (transfer full): #GList of #GAppInfos
- * for given @content_type or %NULL on error.
- * Since: 2.28
- */
-
-
-/**
- * g_app_info_get_supported_types:
- * @appinfo: a #GAppInfo that can handle files
+ * If, after the above is done, the use count of the application is zero
+ * then the exit status is returned immediately. If the use count is
+ * non-zero then the default main context is iterated until the use count
+ * falls to zero, at which point 0 is returned.
*
- * Retrieves the list of content types that @app_info claims to support.
- * If this information is not provided by the environment, this function
- * will return %NULL.
- * This function does not take in consideration associations added with
- * g_app_info_add_supports_type(), but only those exported directly by
- * the application.
+ * If the %G_APPLICATION_IS_SERVICE flag is set, then the service will
+ * run for as much as 10 seconds with a use count of zero while waiting
+ * for the message that caused the activation to arrive. After that,
+ * if the use count falls to zero the application will exit immediately,
+ * except in the case that g_application_set_inactivity_timeout() is in
+ * use.
*
- * Returns: (transfer none) (array zero-terminated=1) (element-type utf8):
- * a list of content types.
- * Since: 2.34
+ * This function sets the prgname (g_set_prgname()), if not already set,
+ * to the basename of argv[0].
+ *
+ * Much like g_main_loop_run(), this function will acquire the main context
+ * for the duration that the application is running.
+ *
+ * Since 2.40, applications that are not explicitly flagged as services
+ * or launchers (ie: neither %G_APPLICATION_IS_SERVICE or
+ * %G_APPLICATION_IS_LAUNCHER are given as flags) will check (from the
+ * default handler for local_command_line) if "--gapplication-service"
+ * was given in the command line. If this flag is present then normal
+ * commandline processing is interrupted and the
+ * %G_APPLICATION_IS_SERVICE flag is set. This provides a "compromise"
+ * solution whereby running an application directly from the commandline
+ * will invoke it in the normal way (which can be useful for debugging)
+ * while still allowing applications to be D-Bus activated in service
+ * mode. The D-Bus service file should invoke the executable with
+ * "--gapplication-service" as the sole commandline argument. This
+ * approach is suitable for use by most graphical applications but
+ * should not be used from applications like editors that need precise
+ * control over when processes invoked via the commandline will exit and
+ * what their exit status will be.
+ *
+ * Returns: the exit status
+ * Since: 2.28
*/
/**
- * g_app_info_launch:
- * @appinfo: a #GAppInfo
- * @files: (nullable) (element-type GFile): a #GList of #GFile objects
- * @context: (nullable): a #GAppLaunchContext or %NULL
- * @error: a #GError
+ * g_application_send_notification:
+ * @application: a #GApplication
+ * @id: (nullable): id of the notification, or %NULL
+ * @notification: the #GNotification to send
*
- * Launches the application. Passes @files to the launched application
- * as arguments, using the optional @context to get information
- * about the details of the launcher (like what screen it is on).
- * On error, @error will be set accordingly.
+ * Sends a notification on behalf of @application to the desktop shell.
+ * There is no guarantee that the notification is displayed immediately,
+ * or even at all.
*
- * To launch the application without arguments pass a %NULL @files list.
+ * Notifications may persist after the application exits. It will be
+ * D-Bus-activated when the notification or one of its actions is
+ * activated.
*
- * Note that even if the launch is successful the application launched
- * can fail to start if it runs into problems during startup. There is
- * no way to detect this.
+ * Modifying @notification after this call has no effect. However, the
+ * object can be reused for a later call to this function.
*
- * Some URIs can be changed when passed through a GFile (for instance
- * unsupported URIs with strange formats like mailto:), so if you have
- * a textual URI you want to pass in as argument, consider using
- * g_app_info_launch_uris() instead.
+ * @id may be any string that uniquely identifies the event for the
+ * application. It does not need to be in any special format. For
+ * example, "new-message" might be appropriate for a notification about
+ * new messages.
*
- * The launched application inherits the environment of the launching
- * process, but it can be modified with g_app_launch_context_setenv()
- * and g_app_launch_context_unsetenv().
+ * If a previous notification was sent with the same @id, it will be
+ * replaced with @notification and shown again as if it was a new
+ * notification. This works even for notifications sent from a previous
+ * execution of the application, as long as @id is the same string.
*
- * On UNIX, this function sets the `GIO_LAUNCHED_DESKTOP_FILE`
- * environment variable with the path of the launched desktop file and
- * `GIO_LAUNCHED_DESKTOP_FILE_PID` to the process id of the launched
- * process. This can be used to ignore `GIO_LAUNCHED_DESKTOP_FILE`,
- * should it be inherited by further processes. The `DISPLAY` and
- * `DESKTOP_STARTUP_ID` environment variables are also set, based
- * on information provided in @context.
+ * @id may be %NULL, but it is impossible to replace or withdraw
+ * notifications without an id.
*
- * Returns: %TRUE on successful launch, %FALSE otherwise.
+ * If @notification is no longer relevant, it can be withdrawn with
+ * g_application_withdraw_notification().
+ *
+ * Since: 2.40
*/
/**
- * g_app_info_launch_default_for_uri:
- * @uri: the uri to show
- * @context: (nullable): an optional #GAppLaunchContext
- * @error: (nullable): return location for an error, or %NULL
+ * g_application_set_action_group:
+ * @application: a #GApplication
+ * @action_group: (nullable): a #GActionGroup, or %NULL
*
- * Utility function that launches the default application
- * registered to handle the specified uri. Synchronous I/O
- * is done on the uri to detect the type of the file if
- * required.
+ * This used to be how actions were associated with a #GApplication.
+ * Now there is #GActionMap for that.
*
- * Returns: %TRUE on success, %FALSE on error.
+ * Since: 2.28
+ * Deprecated: 2.32: Use the #GActionMap interface instead. Never ever
+ * mix use of this API with use of #GActionMap on the same @application
+ * or things will go very badly wrong. This function is known to
+ * introduce buggy behaviour (ie: signals not emitted on changes to the
+ * action group), so you should really use #GActionMap instead.
*/
/**
- * g_app_info_launch_default_for_uri_async:
- * @uri: the uri to show
- * @context: (nullable): an optional #GAppLaunchContext
- * @cancellable: (nullable): a #GCancellable
- * @callback: (nullable): a #GASyncReadyCallback to call when the request is done
- * @user_data: (nullable): data to pass to @callback
+ * g_application_set_application_id:
+ * @application: a #GApplication
+ * @application_id: (nullable): the identifier for @application
*
- * Async version of g_app_info_launch_default_for_uri().
+ * Sets the unique identifier for @application.
*
- * This version is useful if you are interested in receiving
- * error information in the case where the application is
- * sandboxed and the portal may present an application chooser
- * dialog to the user.
+ * The application id can only be modified if @application has not yet
+ * been registered.
*
- * Since: 2.50
+ * If non-%NULL, the application id must be valid. See
+ * g_application_id_is_valid().
+ *
+ * Since: 2.28
*/
/**
- * g_app_info_launch_default_for_uri_finish:
- * @result: a #GAsyncResult
- * @error: (nullable): return location for an error, or %NULL
+ * g_application_set_default:
+ * @application: (nullable): the application to set as default, or %NULL
*
- * Finishes an asynchronous launch-default-for-uri operation.
+ * Sets or unsets the default application for the process, as returned
+ * by g_application_get_default().
*
- * Returns: %TRUE if the launch was successful, %FALSE if @error is set
- * Since: 2.50
+ * This function does not take its own reference on @application. If
+ * @application is destroyed then the default application will revert
+ * back to %NULL.
+ *
+ * Since: 2.32
*/
/**
- * g_app_info_launch_uris:
- * @appinfo: a #GAppInfo
- * @uris: (nullable) (element-type utf8): a #GList containing URIs to launch.
- * @context: (nullable): a #GAppLaunchContext or %NULL
- * @error: a #GError
+ * g_application_set_flags:
+ * @application: a #GApplication
+ * @flags: the flags for @application
*
- * Launches the application. This passes the @uris to the launched application
- * as arguments, using the optional @context to get information
- * about the details of the launcher (like what screen it is on).
- * On error, @error will be set accordingly.
+ * Sets the flags for @application.
*
- * To launch the application without arguments pass a %NULL @uris list.
+ * The flags can only be modified if @application has not yet been
+ * registered.
*
- * Note that even if the launch is successful the application launched
- * can fail to start if it runs into problems during startup. There is
- * no way to detect this.
+ * See #GApplicationFlags.
*
- * Returns: %TRUE on successful launch, %FALSE otherwise.
+ * Since: 2.28
*/
/**
- * g_app_info_monitor_get:
+ * g_application_set_inactivity_timeout:
+ * @application: a #GApplication
+ * @inactivity_timeout: the timeout, in milliseconds
*
- * Gets the #GAppInfoMonitor for the current thread-default main
- * context.
+ * Sets the current inactivity timeout for the application.
*
- * The #GAppInfoMonitor will emit a "changed" signal in the
- * thread-default main context whenever the list of installed
- * applications (as reported by g_app_info_get_all()) may have changed.
+ * This is the amount of time (in milliseconds) after the last call to
+ * g_application_release() before the application stops running.
*
- * You must only call g_object_unref() on the return value from under
- * the same main context as you created it.
+ * This call has no side effects of its own. The value set here is only
+ * used for next time g_application_release() drops the use count to
+ * zero. Any timeouts currently in progress are not impacted.
*
- * Returns: (transfer full): a reference to a #GAppInfoMonitor
- * Since: 2.40
+ * Since: 2.28
*/
/**
- * g_app_info_remove_supports_type:
- * @appinfo: a #GAppInfo.
- * @content_type: a string.
- * @error: a #GError.
+ * g_application_set_option_context_description:
+ * @application: the #GApplication
+ * @description: (nullable): a string to be shown in `--help` output
+ * after the list of options, or %NULL
*
- * Removes a supported type from an application, if possible.
+ * Adds a description to the @application option context.
*
- * Returns: %TRUE on success, %FALSE on error.
+ * See g_option_context_set_description() for more information.
+ *
+ * Since: 2.56
*/
/**
- * g_app_info_reset_type_associations:
- * @content_type: a content type
+ * g_application_set_option_context_parameter_string:
+ * @application: the #GApplication
+ * @parameter_string: (nullable): a string which is displayed
+ * in the first line of `--help` output, after the usage summary `programname [OPTION...]`.
*
- * Removes all changes to the type associations done by
- * g_app_info_set_as_default_for_type(),
- * g_app_info_set_as_default_for_extension(),
- * g_app_info_add_supports_type() or
- * g_app_info_remove_supports_type().
+ * Sets the parameter string to be used by the commandline handling of @application.
*
- * Since: 2.20
+ * This function registers the argument to be passed to g_option_context_new()
+ * when the internal #GOptionContext of @application is created.
+ *
+ * See g_option_context_new() for more information about @parameter_string.
+ *
+ * Since: 2.56
*/
/**
- * g_app_info_set_as_default_for_extension:
- * @appinfo: a #GAppInfo.
- * @extension: (type filename): a string containing the file extension
- * (without the dot).
- * @error: a #GError.
+ * g_application_set_option_context_summary:
+ * @application: the #GApplication
+ * @summary: (nullable): a string to be shown in `--help` output
+ * before the list of options, or %NULL
*
- * Sets the application as the default handler for the given file extension.
+ * Adds a summary to the @application option context.
*
- * Returns: %TRUE on success, %FALSE on error.
+ * See g_option_context_set_summary() for more information.
+ *
+ * Since: 2.56
*/
/**
- * g_app_info_set_as_default_for_type:
- * @appinfo: a #GAppInfo.
- * @content_type: the content type.
- * @error: a #GError.
+ * g_application_set_resource_base_path:
+ * @application: a #GApplication
+ * @resource_path: (nullable): the resource path to use
*
- * Sets the application as the default handler for a given type.
+ * Sets (or unsets) the base resource path of @application.
*
- * Returns: %TRUE on success, %FALSE on error.
+ * The path is used to automatically load various [application
+ * resources][gresource] such as menu layouts and action descriptions.
+ * The various types of resources will be found at fixed names relative
+ * to the given base path.
+ *
+ * By default, the resource base path is determined from the application
+ * ID by prefixing '/' and replacing each '.' with '/'. This is done at
+ * the time that the #GApplication object is constructed. Changes to
+ * the application ID after that point will not have an impact on the
+ * resource base path.
+ *
+ * As an example, if the application has an ID of "org.example.app" then
+ * the default resource base path will be "/org/example/app". If this
+ * is a #GtkApplication (and you have not manually changed the path)
+ * then Gtk will then search for the menus of the application at
+ * "/org/example/app/gtk/menus.ui".
+ *
+ * See #GResource for more information about adding resources to your
+ * application.
+ *
+ * You can disable automatic resource loading functionality by setting
+ * the path to %NULL.
+ *
+ * Changing the resource base path once the application is running is
+ * not recommended. The point at which the resource path is consulted
+ * for forming paths for various purposes is unspecified. When writing
+ * a sub-class of #GApplication you should either set the
+ * #GApplication:resource-base-path property at construction time, or call
+ * this function during the instance initialization. Alternatively, you
+ * can call this function in the #GApplicationClass.startup virtual function,
+ * before chaining up to the parent implementation.
+ *
+ * Since: 2.42
*/
/**
- * g_app_info_set_as_last_used_for_type:
- * @appinfo: a #GAppInfo.
- * @content_type: the content type.
- * @error: a #GError.
+ * g_application_unbind_busy_property:
+ * @application: a #GApplication
+ * @object: (type GObject.Object): a #GObject
+ * @property: the name of a boolean property of @object
*
- * Sets the application as the last used application for a given type.
- * This will make the application appear as first in the list returned
- * by g_app_info_get_recommended_for_type(), regardless of the default
- * application for that content type.
+ * Destroys a binding between @property and the busy state of
+ * @application that was previously created with
+ * g_application_bind_busy_property().
*
- * Returns: %TRUE on success, %FALSE on error.
+ * Since: 2.44
*/
/**
- * g_app_info_should_show:
- * @appinfo: a #GAppInfo.
+ * g_application_unmark_busy:
+ * @application: a #GApplication
*
- * Checks if the application info should be shown in menus that
- * list available applications.
+ * Decreases the busy count of @application.
*
- * Returns: %TRUE if the @appinfo should be shown, %FALSE otherwise.
+ * When the busy count reaches zero, the new state will be propagated
+ * to other processes.
+ *
+ * This function must only be called to cancel the effect of a previous
+ * call to g_application_mark_busy().
+ *
+ * Since: 2.38
*/
/**
- * g_app_info_supports_files:
- * @appinfo: a #GAppInfo.
+ * g_application_withdraw_notification:
+ * @application: a #GApplication
+ * @id: id of a previously sent notification
*
- * Checks if the application accepts files as arguments.
+ * Withdraws a notification that was sent with
+ * g_application_send_notification().
*
- * Returns: %TRUE if the @appinfo supports files.
+ * This call does nothing if a notification with @id doesn't exist or
+ * the notification was never sent.
+ *
+ * This function works even for notifications sent in previous
+ * executions of this application, as long @id is the same as it was for
+ * the sent notification.
+ *
+ * Note that notifications are dismissed when the user clicks on one
+ * of the buttons in a notification or triggers its default action, so
+ * there is no need to explicitly withdraw the notification in that case.
+ *
+ * Since: 2.40
*/
/**
- * g_app_info_supports_uris:
- * @appinfo: a #GAppInfo.
+ * g_async_initable_init_async:
+ * @initable: a #GAsyncInitable.
+ * @io_priority: the [I/O priority][io-priority] of the operation
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @callback: a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
- * Checks if the application supports reading files and directories from URIs.
+ * Starts asynchronous initialization of the object implementing the
+ * interface. This must be done before any real use of the object after
+ * initial construction. If the object also implements #GInitable you can
+ * optionally call g_initable_init() instead.
*
- * Returns: %TRUE if the @appinfo supports URIs.
+ * This method is intended for language bindings. If writing in C,
+ * g_async_initable_new_async() should typically be used instead.
+ *
+ * When the initialization is finished, @callback will be called. You can
+ * then call g_async_initable_init_finish() to get the result of the
+ * initialization.
+ *
+ * Implementations may also support cancellation. If @cancellable is not
+ * %NULL, then initialization can be cancelled by triggering the cancellable
+ * object from another thread. If the operation was cancelled, the error
+ * %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL, and
+ * the object doesn't support cancellable initialization, the error
+ * %G_IO_ERROR_NOT_SUPPORTED will be returned.
+ *
+ * As with #GInitable, if the object is not initialized, or initialization
+ * returns with an error, then all operations on the object except
+ * g_object_ref() and g_object_unref() are considered to be invalid, and
+ * have undefined behaviour. They will often fail with g_critical() or
+ * g_warning(), but this must not be relied on.
+ *
+ * Callers should not assume that a class which implements #GAsyncInitable can
+ * be initialized multiple times; for more information, see g_initable_init().
+ * If a class explicitly supports being initialized multiple times,
+ * implementation requires yielding all subsequent calls to init_async() on the
+ * results of the first call.
+ *
+ * For classes that also support the #GInitable interface, the default
+ * implementation of this method will run the g_initable_init() function
+ * in a thread, so if you want to support asynchronous initialization via
+ * threads, just implement the #GAsyncInitable interface without overriding
+ * any interface methods.
+ *
+ * Since: 2.22
*/
/**
- * g_app_launch_context_get_display:
- * @context: a #GAppLaunchContext
- * @info: a #GAppInfo
- * @files: (element-type GFile): a #GList of #GFile objects
+ * g_async_initable_init_finish:
+ * @initable: a #GAsyncInitable.
+ * @res: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Gets the display string for the @context. This is used to ensure new
- * applications are started on the same display as the launching
- * application, by setting the `DISPLAY` environment variable.
+ * Finishes asynchronous initialization and returns the result.
+ * See g_async_initable_init_async().
*
- * Returns: a display string for the display.
+ * Returns: %TRUE if successful. If an error has occurred, this function
+ * will return %FALSE and set @error appropriately if present.
+ * Since: 2.22
*/
/**
- * g_app_launch_context_get_environment:
- * @context: a #GAppLaunchContext
+ * g_async_initable_new_async:
+ * @object_type: a #GType supporting #GAsyncInitable.
+ * @io_priority: the [I/O priority][io-priority] of the operation
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @callback: a #GAsyncReadyCallback to call when the initialization is
+ * finished
+ * @user_data: the data to pass to callback function
+ * @first_property_name: (nullable): the name of the first property, or %NULL if no
+ * properties
+ * @...: the value of the first property, followed by other property
+ * value pairs, and ended by %NULL.
*
- * Gets the complete environment variable list to be passed to
- * the child process when @context is used to launch an application.
- * This is a %NULL-terminated array of strings, where each string has
- * the form `KEY=VALUE`.
+ * Helper function for constructing #GAsyncInitable object. This is
+ * similar to g_object_new() but also initializes the object asynchronously.
*
- * Returns: (array zero-terminated=1) (element-type filename) (transfer full):
- * the child's environment
- * Since: 2.32
+ * When the initialization is finished, @callback will be called. You can
+ * then call g_async_initable_new_finish() to get the new object and check
+ * for any errors.
+ *
+ * Since: 2.22
*/
/**
- * g_app_launch_context_get_startup_notify_id:
- * @context: a #GAppLaunchContext
- * @info: a #GAppInfo
- * @files: (element-type GFile): a #GList of of #GFile objects
- *
- * Initiates startup notification for the application and returns the
- * `DESKTOP_STARTUP_ID` for the launched operation, if supported.
+ * g_async_initable_new_finish:
+ * @initable: the #GAsyncInitable from the callback
+ * @res: the #GAsyncResult from the callback
+ * @error: return location for errors, or %NULL to ignore
*
- * Startup notification IDs are defined in the
- * [FreeDesktop.Org Startup Notifications standard](http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt").
+ * Finishes the async construction for the various g_async_initable_new
+ * calls, returning the created object or %NULL on error.
*
- * Returns: a startup notification ID for the application, or %NULL if
- * not supported.
+ * Returns: (type GObject.Object) (transfer full): a newly created #GObject,
+ * or %NULL on error. Free with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_app_launch_context_launch_failed:
- * @context: a #GAppLaunchContext.
- * @startup_notify_id: the startup notification id that was returned by g_app_launch_context_get_startup_notify_id().
+ * g_async_initable_new_valist_async:
+ * @object_type: a #GType supporting #GAsyncInitable.
+ * @first_property_name: the name of the first property, followed by
+ * the value, and other property value pairs, and ended by %NULL.
+ * @var_args: The var args list generated from @first_property_name.
+ * @io_priority: the [I/O priority][io-priority] of the operation
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @callback: a #GAsyncReadyCallback to call when the initialization is
+ * finished
+ * @user_data: the data to pass to callback function
*
- * Called when an application has failed to launch, so that it can cancel
- * the application startup notification started in g_app_launch_context_get_startup_notify_id().
+ * Helper function for constructing #GAsyncInitable object. This is
+ * similar to g_object_new_valist() but also initializes the object
+ * asynchronously.
+ *
+ * When the initialization is finished, @callback will be called. You can
+ * then call g_async_initable_new_finish() to get the new object and check
+ * for any errors.
+ *
+ * Since: 2.22
*/
/**
- * g_app_launch_context_new:
+ * g_async_initable_newv_async:
+ * @object_type: a #GType supporting #GAsyncInitable.
+ * @n_parameters: the number of parameters in @parameters
+ * @parameters: the parameters to use to construct the object
+ * @io_priority: the [I/O priority][io-priority] of the operation
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @callback: a #GAsyncReadyCallback to call when the initialization is
+ * finished
+ * @user_data: the data to pass to callback function
*
- * Creates a new application launch context. This is not normally used,
- * instead you instantiate a subclass of this, such as #GdkAppLaunchContext.
+ * Helper function for constructing #GAsyncInitable object. This is
+ * similar to g_object_newv() but also initializes the object asynchronously.
*
- * Returns: a #GAppLaunchContext.
+ * When the initialization is finished, @callback will be called. You can
+ * then call g_async_initable_new_finish() to get the new object and check
+ * for any errors.
+ *
+ * Since: 2.22
+ * Deprecated: 2.54: Use g_object_new_with_properties() and
+ * g_async_initable_init_async() instead. See #GParameter for more information.
*/
/**
- * g_app_launch_context_setenv:
- * @context: a #GAppLaunchContext
- * @variable: (type filename): the environment variable to set
- * @value: (type filename): the value for to set the variable to.
+ * g_async_result_get_source_object:
+ * @res: a #GAsyncResult
*
- * Arranges for @variable to be set to @value in the child's
- * environment when @context is used to launch an application.
+ * Gets the source object from a #GAsyncResult.
*
- * Since: 2.32
+ * Returns: (transfer full) (nullable): a new reference to the source
+ * object for the @res, or %NULL if there is none.
*/
/**
- * g_app_launch_context_unsetenv:
- * @context: a #GAppLaunchContext
- * @variable: (type filename): the environment variable to remove
+ * g_async_result_get_user_data:
+ * @res: a #GAsyncResult.
*
- * Arranges for @variable to be unset in the child's environment
- * when @context is used to launch an application.
+ * Gets the user data from a #GAsyncResult.
*
- * Since: 2.32
+ * Returns: (transfer full): the user data for @res.
*/
/**
- * g_application_activate:
- * @application: a #GApplication
- *
- * Activates the application.
- *
- * In essence, this results in the #GApplication::activate signal being
- * emitted in the primary instance.
+ * g_async_result_is_tagged:
+ * @res: a #GAsyncResult
+ * @source_tag: an application-defined tag
*
- * The application must be registered before calling this function.
+ * Checks if @res has the given @source_tag (generally a function
+ * pointer indicating the function @res was created by).
*
- * Since: 2.28
+ * Returns: %TRUE if @res has the indicated @source_tag, %FALSE if
+ * not.
+ * Since: 2.34
*/
/**
- * g_application_add_main_option:
- * @application: the #GApplication
- * @long_name: the long name of an option used to specify it in a commandline
- * @short_name: the short name of an option
- * @flags: flags from #GOptionFlags
- * @arg: the type of the option, as a #GOptionArg
- * @description: the description for the option in `--help` output
- * @arg_description: (nullable): the placeholder to use for the extra argument
- * parsed by the option in `--help` output
- *
- * Add an option to be handled by @application.
- *
- * Calling this function is the equivalent of calling
- * g_application_add_main_option_entries() with a single #GOptionEntry
- * that has its arg_data member set to %NULL.
+ * g_async_result_legacy_propagate_error:
+ * @res: a #GAsyncResult
+ * @error: (out): a location to propagate the error to.
*
- * The parsed arguments will be packed into a #GVariantDict which
- * is passed to #GApplication::handle-local-options. If
- * %G_APPLICATION_HANDLES_COMMAND_LINE is set, then it will also
- * be sent to the primary instance. See
- * g_application_add_main_option_entries() for more details.
+ * If @res is a #GSimpleAsyncResult, this is equivalent to
+ * g_simple_async_result_propagate_error(). Otherwise it returns
+ * %FALSE.
*
- * See #GOptionEntry for more documentation of the arguments.
+ * This can be used for legacy error handling in async *_finish()
+ * wrapper functions that traditionally handled #GSimpleAsyncResult
+ * error returns themselves rather than calling into the virtual method.
+ * This should not be used in new code; #GAsyncResult errors that are
+ * set by virtual methods should also be extracted by virtual methods,
+ * to enable subclasses to chain up correctly.
*
- * Since: 2.42
+ * Returns: %TRUE if @error is has been filled in with an error from
+ * @res, %FALSE if not.
+ * Since: 2.34
*/
/**
- * g_application_add_main_option_entries:
- * @application: a #GApplication
- * @entries: (array zero-terminated=1) (element-type GOptionEntry): a
- * %NULL-terminated list of #GOptionEntrys
- *
- * Adds main option entries to be handled by @application.
+ * g_buffered_input_stream_fill:
+ * @stream: a #GBufferedInputStream
+ * @count: the number of bytes that will be read from the stream
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * This function is comparable to g_option_context_add_main_entries().
+ * Tries to read @count bytes from the stream into the buffer.
+ * Will block during this read.
*
- * After the commandline arguments are parsed, the
- * #GApplication::handle-local-options signal will be emitted. At this
- * point, the application can inspect the values pointed to by @arg_data
- * in the given #GOptionEntrys.
+ * If @count is zero, returns zero and does nothing. A value of @count
+ * larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
*
- * Unlike #GOptionContext, #GApplication supports giving a %NULL
- * @arg_data for a non-callback #GOptionEntry. This results in the
- * argument in question being packed into a #GVariantDict which is also
- * passed to #GApplication::handle-local-options, where it can be
- * inspected and modified. If %G_APPLICATION_HANDLES_COMMAND_LINE is
- * set, then the resulting dictionary is sent to the primary instance,
- * where g_application_command_line_get_options_dict() will return it.
- * This "packing" is done according to the type of the argument --
- * booleans for normal flags, strings for strings, bytestrings for
- * filenames, etc. The packing only occurs if the flag is given (ie: we
- * do not pack a "false" #GVariant in the case that a flag is missing).
+ * On success, the number of bytes read into the buffer is returned.
+ * 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. Zero is returned on end of file
+ * (or if @count is zero), but never otherwise.
*
- * In general, it is recommended that all commandline arguments are
- * parsed locally. The options dictionary should then be used to
- * transmit the result of the parsing to the primary instance, where
- * g_variant_dict_lookup() can be used. For local options, it is
- * possible to either use @arg_data in the usual way, or to consult (and
- * potentially remove) the option from the options dictionary.
+ * If @count is -1 then the attempted read size is equal to the number of
+ * bytes that are required to fill the buffer.
*
- * This function is new in GLib 2.40. Before then, the only real choice
- * was to send all of the commandline arguments (options and all) to the
- * primary instance for handling. #GApplication ignored them completely
- * on the local side. Calling this function "opts in" to the new
- * behaviour, and in particular, means that unrecognised options will be
- * treated as errors. Unrecognised options have never been ignored when
- * %G_APPLICATION_HANDLES_COMMAND_LINE is unset.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
+ * operation was partially finished when the operation was cancelled the
+ * partial result will be returned, without an error.
*
- * If #GApplication::handle-local-options needs to see the list of
- * filenames, then the use of %G_OPTION_REMAINING is recommended. If
- * @arg_data is %NULL then %G_OPTION_REMAINING can be used as a key into
- * the options dictionary. If you do use %G_OPTION_REMAINING then you
- * need to handle these arguments for yourself because once they are
- * consumed, they will no longer be visible to the default handling
- * (which treats them as filenames to be opened).
+ * On error -1 is returned and @error is set accordingly.
*
- * It is important to use the proper GVariant format when retrieving
- * the options with g_variant_dict_lookup():
- * - for %G_OPTION_ARG_NONE, use b
- * - for %G_OPTION_ARG_STRING, use &s
- * - for %G_OPTION_ARG_INT, use i
- * - for %G_OPTION_ARG_INT64, use x
- * - for %G_OPTION_ARG_DOUBLE, use d
- * - for %G_OPTION_ARG_FILENAME, use ^ay
- * - for %G_OPTION_ARG_STRING_ARRAY, use &as
- * - for %G_OPTION_ARG_FILENAME_ARRAY, use ^aay
+ * For the asynchronous, non-blocking, version of this function, see
+ * g_buffered_input_stream_fill_async().
*
- * Since: 2.40
+ * Returns: the number of bytes read into @stream's buffer, up to @count,
+ * or -1 on error.
*/
/**
- * g_application_add_option_group:
- * @application: the #GApplication
- * @group: (transfer full): a #GOptionGroup
- *
- * Adds a #GOptionGroup to the commandline handling of @application.
- *
- * This function is comparable to g_option_context_add_group().
- *
- * Unlike g_application_add_main_option_entries(), this function does
- * not deal with %NULL @arg_data and never transmits options to the
- * primary instance.
+ * g_buffered_input_stream_fill_async:
+ * @stream: a #GBufferedInputStream
+ * @count: the number of bytes that will be read from the stream
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): a #gpointer
*
- * The reason for that is because, by the time the options arrive at the
- * primary instance, it is typically too late to do anything with them.
- * Taking the GTK option group as an example: GTK will already have been
- * initialised by the time the #GApplication::command-line handler runs.
- * In the case that this is not the first-running instance of the
- * application, the existing instance may already have been running for
- * a very long time.
+ * Reads data into @stream's buffer asynchronously, up to @count size.
+ * @io_priority can be used to prioritize reads. For the synchronous
+ * version of this function, see g_buffered_input_stream_fill().
*
- * This means that the options from #GOptionGroup are only really usable
- * in the case that the instance of the application being run is the
- * first instance. Passing options like `--display=` or `--gdk-debug=`
- * on future runs will have no effect on the existing primary instance.
+ * If @count is -1 then the attempted read size is equal to the number
+ * of bytes that are required to fill the buffer.
+ */
+
+
+/**
+ * g_buffered_input_stream_fill_finish:
+ * @stream: a #GBufferedInputStream
+ * @result: a #GAsyncResult
+ * @error: a #GError
*
- * Calling this function will cause the options in the supplied option
- * group to be parsed, but it does not cause you to be "opted in" to the
- * new functionality whereby unrecognised options are rejected even if
- * %G_APPLICATION_HANDLES_COMMAND_LINE was given.
+ * Finishes an asynchronous read.
*
- * Since: 2.40
+ * Returns: a #gssize of the read stream, or `-1` on an error.
*/
/**
- * g_application_bind_busy_property:
- * @application: a #GApplication
- * @object: (type GObject.Object): a #GObject
- * @property: the name of a boolean property of @object
- *
- * Marks @application as busy (see g_application_mark_busy()) while
- * @property on @object is %TRUE.
+ * g_buffered_input_stream_get_available:
+ * @stream: #GBufferedInputStream
*
- * The binding holds a reference to @application while it is active, but
- * not to @object. Instead, the binding is destroyed when @object is
- * finalized.
+ * Gets the size of the available data within the stream.
*
- * Since: 2.44
+ * Returns: size of the available stream.
*/
/**
- * g_application_command_line_create_file_for_arg:
- * @cmdline: a #GApplicationCommandLine
- * @arg: (type filename): an argument from @cmdline
- *
- * Creates a #GFile corresponding to a filename that was given as part
- * of the invocation of @cmdline.
+ * g_buffered_input_stream_get_buffer_size:
+ * @stream: a #GBufferedInputStream
*
- * This differs from g_file_new_for_commandline_arg() in that it
- * resolves relative pathnames using the current working directory of
- * the invoking process rather than the local process.
+ * Gets the size of the input buffer.
*
- * Returns: (transfer full): a new #GFile
- * Since: 2.36
+ * Returns: the current buffer size.
*/
/**
- * g_application_command_line_get_arguments:
- * @cmdline: a #GApplicationCommandLine
- * @argc: (out) (optional): the length of the arguments array, or %NULL
- *
- * Gets the list of arguments that was passed on the command line.
- *
- * The strings in the array may contain non-UTF-8 data on UNIX (such as
- * filenames or arguments given in the system locale) but are always in
- * UTF-8 on Windows.
- *
- * If you wish to use the return value with #GOptionContext, you must
- * use g_option_context_parse_strv().
+ * g_buffered_input_stream_new:
+ * @base_stream: a #GInputStream
*
- * The return value is %NULL-terminated and should be freed using
- * g_strfreev().
+ * Creates a new #GInputStream from the given @base_stream, with
+ * a buffer set to the default size (4 kilobytes).
*
- * Returns: (array length=argc) (element-type filename) (transfer full):
- * the string array containing the arguments (the argv)
- * Since: 2.28
+ * Returns: a #GInputStream for the given @base_stream.
*/
/**
- * g_application_command_line_get_cwd:
- * @cmdline: a #GApplicationCommandLine
- *
- * Gets the working directory of the command line invocation.
- * The string may contain non-utf8 data.
- *
- * It is possible that the remote application did not send a working
- * directory, so this may be %NULL.
+ * g_buffered_input_stream_new_sized:
+ * @base_stream: a #GInputStream
+ * @size: a #gsize
*
- * The return value should not be modified or freed and is valid for as
- * long as @cmdline exists.
+ * Creates a new #GBufferedInputStream from the given @base_stream,
+ * with a buffer set to @size.
*
- * Returns: (nullable) (type filename): the current directory, or %NULL
- * Since: 2.28
+ * Returns: a #GInputStream.
*/
/**
- * g_application_command_line_get_environ:
- * @cmdline: a #GApplicationCommandLine
- *
- * Gets the contents of the 'environ' variable of the command line
- * invocation, as would be returned by g_get_environ(), ie as a
- * %NULL-terminated list of strings in the form 'NAME=VALUE'.
- * The strings may contain non-utf8 data.
- *
- * The remote application usually does not send an environment. Use
- * %G_APPLICATION_SEND_ENVIRONMENT to affect that. Even with this flag
- * set it is possible that the environment is still not available (due
- * to invocation messages from other applications).
- *
- * The return value should not be modified or freed and is valid for as
- * long as @cmdline exists.
+ * g_buffered_input_stream_peek:
+ * @stream: a #GBufferedInputStream
+ * @buffer: (array length=count) (element-type guint8): a pointer to
+ * an allocated chunk of memory
+ * @offset: a #gsize
+ * @count: a #gsize
*
- * See g_application_command_line_getenv() if you are only interested
- * in the value of a single environment variable.
+ * Peeks in the buffer, copying data of size @count into @buffer,
+ * offset @offset bytes.
*
- * Returns: (array zero-terminated=1) (element-type filename) (transfer none):
- * the environment strings, or %NULL if they were not sent
- * Since: 2.28
+ * Returns: a #gsize of the number of bytes peeked, or -1 on error.
*/
/**
- * g_application_command_line_get_exit_status:
- * @cmdline: a #GApplicationCommandLine
+ * g_buffered_input_stream_peek_buffer:
+ * @stream: a #GBufferedInputStream
+ * @count: (out): a #gsize to get the number of bytes available in the buffer
*
- * Gets the exit status of @cmdline. See
- * g_application_command_line_set_exit_status() for more information.
+ * Returns the buffer with the currently available bytes. The returned
+ * buffer must not be modified and will become invalid when reading from
+ * the stream or filling the buffer.
*
- * Returns: the exit status
- * Since: 2.28
+ * Returns: (array length=count) (element-type guint8) (transfer none):
+ * read-only buffer
*/
/**
- * g_application_command_line_get_is_remote:
- * @cmdline: a #GApplicationCommandLine
- *
- * Determines if @cmdline represents a remote invocation.
+ * g_buffered_input_stream_read_byte:
+ * @stream: a #GBufferedInputStream
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Returns: %TRUE if the invocation was remote
- * Since: 2.28
- */
-
-
-/**
- * g_application_command_line_get_options_dict:
- * @cmdline: a #GApplicationCommandLine
+ * Tries to read a single byte from the stream or the buffer. Will block
+ * during this read.
*
- * Gets the options there were passed to g_application_command_line().
+ * On success, the byte read from the stream is returned. On end of stream
+ * -1 is returned but it's not an exceptional error and @error is not set.
*
- * If you did not override local_command_line() then these are the same
- * options that were parsed according to the #GOptionEntrys added to the
- * application with g_application_add_main_option_entries() and possibly
- * modified from your GApplication::handle-local-options handler.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
+ * operation was partially finished when the operation was cancelled the
+ * partial result will be returned, without an error.
*
- * If no options were sent then an empty dictionary is returned so that
- * you don't need to check for %NULL.
+ * On error -1 is returned and @error is set accordingly.
*
- * Returns: (transfer none): a #GVariantDict with the options
- * Since: 2.40
+ * Returns: the byte read from the @stream, or -1 on end of stream or error.
*/
/**
- * g_application_command_line_get_platform_data:
- * @cmdline: #GApplicationCommandLine
- *
- * Gets the platform data associated with the invocation of @cmdline.
- *
- * This is a #GVariant dictionary containing information about the
- * context in which the invocation occurred. It typically contains
- * information like the current working directory and the startup
- * notification ID.
- *
- * For local invocation, it will be %NULL.
+ * g_buffered_input_stream_set_buffer_size:
+ * @stream: a #GBufferedInputStream
+ * @size: a #gsize
*
- * Returns: (nullable): the platform data, or %NULL
- * Since: 2.28
+ * Sets the size of the internal buffer of @stream to @size, or to the
+ * size of the contents of the buffer. The buffer can never be resized
+ * smaller than its current contents.
*/
/**
- * g_application_command_line_get_stdin:
- * @cmdline: a #GApplicationCommandLine
- *
- * Gets the stdin of the invoking process.
- *
- * The #GInputStream can be used to read data passed to the standard
- * input of the invoking process.
- * This doesn't work on all platforms. Presently, it is only available
- * on UNIX when using a DBus daemon capable of passing file descriptors.
- * If stdin is not available then %NULL will be returned. In the
- * future, support may be expanded to other platforms.
+ * g_buffered_output_stream_get_auto_grow:
+ * @stream: a #GBufferedOutputStream.
*
- * You must only call this function once per commandline invocation.
+ * Checks if the buffer automatically grows as data is added.
*
- * Returns: (transfer full): a #GInputStream for stdin
- * Since: 2.34
+ * Returns: %TRUE if the @stream's buffer automatically grows,
+ * %FALSE otherwise.
*/
/**
- * g_application_command_line_getenv:
- * @cmdline: a #GApplicationCommandLine
- * @name: (type filename): the environment variable to get
- *
- * Gets the value of a particular environment variable of the command
- * line invocation, as would be returned by g_getenv(). The strings may
- * contain non-utf8 data.
- *
- * The remote application usually does not send an environment. Use
- * %G_APPLICATION_SEND_ENVIRONMENT to affect that. Even with this flag
- * set it is possible that the environment is still not available (due
- * to invocation messages from other applications).
+ * g_buffered_output_stream_get_buffer_size:
+ * @stream: a #GBufferedOutputStream.
*
- * The return value should not be modified or freed and is valid for as
- * long as @cmdline exists.
+ * Gets the size of the buffer in the @stream.
*
- * Returns: the value of the variable, or %NULL if unset or unsent
- * Since: 2.28
+ * Returns: the current size of the buffer.
*/
/**
- * g_application_command_line_print:
- * @cmdline: a #GApplicationCommandLine
- * @format: a printf-style format string
- * @...: arguments, as per @format
- *
- * Formats a message and prints it using the stdout print handler in the
- * invoking process.
+ * g_buffered_output_stream_new:
+ * @base_stream: a #GOutputStream.
*
- * If @cmdline is a local invocation then this is exactly equivalent to
- * g_print(). If @cmdline is remote then this is equivalent to calling
- * g_print() in the invoking process.
+ * Creates a new buffered output stream for a base stream.
*
- * Since: 2.28
+ * Returns: a #GOutputStream for the given @base_stream.
*/
/**
- * g_application_command_line_printerr:
- * @cmdline: a #GApplicationCommandLine
- * @format: a printf-style format string
- * @...: arguments, as per @format
- *
- * Formats a message and prints it using the stderr print handler in the
- * invoking process.
+ * g_buffered_output_stream_new_sized:
+ * @base_stream: a #GOutputStream.
+ * @size: a #gsize.
*
- * If @cmdline is a local invocation then this is exactly equivalent to
- * g_printerr(). If @cmdline is remote then this is equivalent to
- * calling g_printerr() in the invoking process.
+ * Creates a new buffered output stream with a given buffer size.
*
- * Since: 2.28
+ * Returns: a #GOutputStream with an internal buffer set to @size.
*/
/**
- * g_application_command_line_set_exit_status:
- * @cmdline: a #GApplicationCommandLine
- * @exit_status: the exit status
- *
- * Sets the exit status that will be used when the invoking process
- * exits.
- *
- * The return value of the #GApplication::command-line signal is
- * passed to this function when the handler returns. This is the usual
- * way of setting the exit status.
- *
- * In the event that you want the remote invocation to continue running
- * and want to decide on the exit status in the future, you can use this
- * call. For the case of a remote invocation, the remote process will
- * typically exit when the last reference is dropped on @cmdline. The
- * exit status of the remote process will be equal to the last value
- * that was set with this function.
- *
- * In the case that the commandline invocation is local, the situation
- * is slightly more complicated. If the commandline invocation results
- * in the mainloop running (ie: because the use-count of the application
- * increased to a non-zero value) then the application is considered to
- * have been 'successful' in a certain sense, and the exit status is
- * always zero. If the application use count is zero, though, the exit
- * status of the local #GApplicationCommandLine is used.
+ * g_buffered_output_stream_set_auto_grow:
+ * @stream: a #GBufferedOutputStream.
+ * @auto_grow: a #gboolean.
*
- * Since: 2.28
+ * Sets whether or not the @stream's buffer should automatically grow.
+ * If @auto_grow is true, then each write will just make the buffer
+ * larger, and you must manually flush the buffer to actually write out
+ * the data to the underlying stream.
*/
/**
- * g_application_get_application_id:
- * @application: a #GApplication
- *
- * Gets the unique identifier for @application.
+ * g_buffered_output_stream_set_buffer_size:
+ * @stream: a #GBufferedOutputStream.
+ * @size: a #gsize.
*
- * Returns: the identifier for @application, owned by @application
- * Since: 2.28
+ * Sets the size of the internal buffer to @size.
*/
/**
- * g_application_get_dbus_connection:
- * @application: a #GApplication
- *
- * Gets the #GDBusConnection being used by the application, or %NULL.
+ * g_bus_get:
+ * @bus_type: a #GBusType
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @callback: a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: the data to pass to @callback
*
- * If #GApplication is using its D-Bus backend then this function will
- * return the #GDBusConnection being used for uniqueness and
- * communication with the desktop environment and other instances of the
- * application.
+ * Asynchronously connects to the message bus specified by @bus_type.
*
- * If #GApplication is not using D-Bus then this function will return
- * %NULL. This includes the situation where the D-Bus backend would
- * normally be in use but we were unable to connect to the bus.
+ * When the operation is finished, @callback will be invoked. You can
+ * then call g_bus_get_finish() to get the result of the operation.
*
- * This function must not be called before the application has been
- * registered. See g_application_get_is_registered().
+ * This is a asynchronous failable function. See g_bus_get_sync() for
+ * the synchronous version.
*
- * Returns: (transfer none): a #GDBusConnection, or %NULL
- * Since: 2.34
+ * Since: 2.26
*/
/**
- * g_application_get_dbus_object_path:
- * @application: a #GApplication
- *
- * Gets the D-Bus object path being used by the application, or %NULL.
+ * g_bus_get_finish:
+ * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed
+ * to g_bus_get()
+ * @error: return location for error or %NULL
*
- * If #GApplication is using its D-Bus backend then this function will
- * return the D-Bus object path that #GApplication is using. If the
- * application is the primary instance then there is an object published
- * at this path. If the application is not the primary instance then
- * the result of this function is undefined.
+ * Finishes an operation started with g_bus_get().
*
- * If #GApplication is not using D-Bus then this function will return
- * %NULL. This includes the situation where the D-Bus backend would
- * normally be in use but we were unable to connect to the bus.
+ * The returned object is a singleton, that is, shared with other
+ * callers of g_bus_get() and g_bus_get_sync() for @bus_type. In the
+ * event that you need a private message bus connection, use
+ * g_dbus_address_get_for_bus_sync() and
+ * g_dbus_connection_new_for_address().
*
- * This function must not be called before the application has been
- * registered. See g_application_get_is_registered().
+ * Note that the returned #GDBusConnection object will (usually) have
+ * the #GDBusConnection:exit-on-close property set to %TRUE.
*
- * Returns: the object path, or %NULL
- * Since: 2.34
+ * Returns: (transfer full): a #GDBusConnection or %NULL if @error is set.
+ * Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_application_get_default:
+ * g_bus_get_sync:
+ * @bus_type: a #GBusType
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @error: return location for error or %NULL
*
- * Returns the default #GApplication instance for this process.
+ * Synchronously connects to the message bus specified by @bus_type.
+ * Note that the returned object may shared with other callers,
+ * e.g. if two separate parts of a process calls this function with
+ * the same @bus_type, they will share the same object.
*
- * Normally there is only one #GApplication per process and it becomes
- * the default when it is created. You can exercise more control over
- * this by using g_application_set_default().
+ * This is a synchronous failable function. See g_bus_get() and
+ * g_bus_get_finish() for the asynchronous version.
*
- * If there is no default application then %NULL is returned.
+ * The returned object is a singleton, that is, shared with other
+ * callers of g_bus_get() and g_bus_get_sync() for @bus_type. In the
+ * event that you need a private message bus connection, use
+ * g_dbus_address_get_for_bus_sync() and
+ * g_dbus_connection_new_for_address().
*
- * Returns: (transfer none): the default application for this process, or %NULL
- * Since: 2.32
+ * Note that the returned #GDBusConnection object will (usually) have
+ * the #GDBusConnection:exit-on-close property set to %TRUE.
+ *
+ * Returns: (transfer full): a #GDBusConnection or %NULL if @error is set.
+ * Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_application_get_flags:
- * @application: a #GApplication
+ * g_bus_own_name:
+ * @bus_type: the type of bus to own a name on
+ * @name: the well-known name to own
+ * @flags: a set of flags from the #GBusNameOwnerFlags enumeration
+ * @bus_acquired_handler: (nullable): handler to invoke when connected to the bus of type @bus_type or %NULL
+ * @name_acquired_handler: (nullable): handler to invoke when @name is acquired or %NULL
+ * @name_lost_handler: (nullable): handler to invoke when @name is lost or %NULL
+ * @user_data: user data to pass to handlers
+ * @user_data_free_func: (nullable): function for freeing @user_data or %NULL
*
- * Gets the flags for @application.
+ * Starts acquiring @name on the bus specified by @bus_type and calls
+ * @name_acquired_handler and @name_lost_handler when the name is
+ * acquired respectively lost. Callbacks will be invoked in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread you are calling this function from.
*
- * See #GApplicationFlags.
+ * You are guaranteed that one of the @name_acquired_handler and @name_lost_handler
+ * callbacks will be invoked after calling this function - there are three
+ * possible cases:
*
- * Returns: the flags for @application
- * Since: 2.28
- */
-
-
-/**
- * g_application_get_inactivity_timeout:
- * @application: a #GApplication
+ * - @name_lost_handler with a %NULL connection (if a connection to the bus
+ * can't be made).
*
- * Gets the current inactivity timeout for the application.
+ * - @bus_acquired_handler then @name_lost_handler (if the name can't be
+ * obtained)
*
- * This is the amount of time (in milliseconds) after the last call to
- * g_application_release() before the application stops running.
+ * - @bus_acquired_handler then @name_acquired_handler (if the name was
+ * obtained).
*
- * Returns: the timeout, in milliseconds
- * Since: 2.28
+ * When you are done owning the name, just call g_bus_unown_name()
+ * with the owner id this function returns.
+ *
+ * If the name is acquired or lost (for example another application
+ * could acquire the name if you allow replacement or the application
+ * currently owning the name exits), the handlers are also invoked.
+ * If the #GDBusConnection that is used for attempting to own the name
+ * closes, then @name_lost_handler is invoked since it is no longer
+ * possible for other processes to access the process.
+ *
+ * You cannot use g_bus_own_name() several times for the same name (unless
+ * interleaved with calls to g_bus_unown_name()) - only the first call
+ * will work.
+ *
+ * Another guarantee is that invocations of @name_acquired_handler
+ * and @name_lost_handler are guaranteed to alternate; that
+ * is, if @name_acquired_handler is invoked then you are
+ * guaranteed that the next time one of the handlers is invoked, it
+ * will be @name_lost_handler. The reverse is also true.
+ *
+ * If you plan on exporting objects (using e.g.
+ * g_dbus_connection_register_object()), note that it is generally too late
+ * to export the objects in @name_acquired_handler. Instead, you can do this
+ * in @bus_acquired_handler since you are guaranteed that this will run
+ * before @name is requested from the bus.
+ *
+ * This behavior makes it very simple to write applications that wants
+ * to [own names][gdbus-owning-names] and export objects.
+ * Simply register objects to be exported in @bus_acquired_handler and
+ * unregister the objects (if any) in @name_lost_handler.
+ *
+ * Returns: an identifier (never 0) that an be used with
+ * g_bus_unown_name() to stop owning the name.
+ * Since: 2.26
*/
/**
- * g_application_get_is_busy:
- * @application: a #GApplication
+ * g_bus_own_name_on_connection:
+ * @connection: a #GDBusConnection
+ * @name: the well-known name to own
+ * @flags: a set of flags from the #GBusNameOwnerFlags enumeration
+ * @name_acquired_handler: (nullable): handler to invoke when @name is acquired or %NULL
+ * @name_lost_handler: (nullable): handler to invoke when @name is lost or %NULL
+ * @user_data: user data to pass to handlers
+ * @user_data_free_func: (nullable): function for freeing @user_data or %NULL
*
- * Gets the application's current busy state, as set through
- * g_application_mark_busy() or g_application_bind_busy_property().
+ * Like g_bus_own_name() but takes a #GDBusConnection instead of a
+ * #GBusType.
*
- * Returns: %TRUE if @application is currenty marked as busy
- * Since: 2.44
+ * Returns: an identifier (never 0) that an be used with
+ * g_bus_unown_name() to stop owning the name
+ * Since: 2.26
*/
/**
- * g_application_get_is_registered:
- * @application: a #GApplication
- *
- * Checks if @application is registered.
+ * g_bus_own_name_on_connection_with_closures: (rename-to g_bus_own_name_on_connection)
+ * @connection: a #GDBusConnection
+ * @name: the well-known name to own
+ * @flags: a set of flags from the #GBusNameOwnerFlags enumeration
+ * @name_acquired_closure: (nullable): #GClosure to invoke when @name is
+ * acquired or %NULL
+ * @name_lost_closure: (nullable): #GClosure to invoke when @name is lost
+ * or %NULL
*
- * An application is registered if g_application_register() has been
- * successfully called.
+ * Version of g_bus_own_name_on_connection() using closures instead of
+ * callbacks for easier binding in other languages.
*
- * Returns: %TRUE if @application is registered
- * Since: 2.28
+ * Returns: an identifier (never 0) that an be used with
+ * g_bus_unown_name() to stop owning the name.
+ * Since: 2.26
*/
/**
- * g_application_get_is_remote:
- * @application: a #GApplication
- *
- * Checks if @application is remote.
- *
- * If @application is remote then it means that another instance of
- * application already exists (the 'primary' instance). Calls to
- * perform actions on @application will result in the actions being
- * performed by the primary instance.
+ * g_bus_own_name_with_closures: (rename-to g_bus_own_name)
+ * @bus_type: the type of bus to own a name on
+ * @name: the well-known name to own
+ * @flags: a set of flags from the #GBusNameOwnerFlags enumeration
+ * @bus_acquired_closure: (nullable): #GClosure to invoke when connected to
+ * the bus of type @bus_type or %NULL
+ * @name_acquired_closure: (nullable): #GClosure to invoke when @name is
+ * acquired or %NULL
+ * @name_lost_closure: (nullable): #GClosure to invoke when @name is lost or
+ * %NULL
*
- * The value of this property cannot be accessed before
- * g_application_register() has been called. See
- * g_application_get_is_registered().
+ * Version of g_bus_own_name() using closures instead of callbacks for
+ * easier binding in other languages.
*
- * Returns: %TRUE if @application is remote
- * Since: 2.28
+ * Returns: an identifier (never 0) that an be used with
+ * g_bus_unown_name() to stop owning the name.
+ * Since: 2.26
*/
/**
- * g_application_get_resource_base_path:
- * @application: a #GApplication
- *
- * Gets the resource base path of @application.
+ * g_bus_unown_name:
+ * @owner_id: an identifier obtained from g_bus_own_name()
*
- * See g_application_set_resource_base_path() for more information.
+ * Stops owning a name.
*
- * Returns: (nullable): the base resource path, if one is set
- * Since: 2.42
+ * Since: 2.26
*/
/**
- * g_application_hold:
- * @application: a #GApplication
- *
- * Increases the use count of @application.
+ * g_bus_unwatch_name:
+ * @watcher_id: An identifier obtained from g_bus_watch_name()
*
- * Use this function to indicate that the application has a reason to
- * continue to run. For example, g_application_hold() is called by GTK+
- * when a toplevel window is on the screen.
+ * Stops watching a name.
*
- * To cancel the hold, call g_application_release().
+ * Since: 2.26
*/
/**
- * g_application_id_is_valid:
- * @application_id: a potential application identifier
- *
- * Checks if @application_id is a valid application identifier.
- *
- * A valid ID is required for calls to g_application_new() and
- * g_application_set_application_id().
- *
- * Application identifiers follow the same format as
- * [D-Bus well-known bus names](https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names-bus).
- * For convenience, the restrictions on application identifiers are
- * reproduced here:
- *
- * - Application identifiers are composed of 1 or more elements separated by a
- * period (`.`) character. All elements must contain at least one character.
- *
- * - Each element must only contain the ASCII characters `[A-Z][a-z][0-9]_-`,
- * with `-` discouraged in new application identifiers. Each element must not
- * begin with a digit.
- *
- * - Application identifiers must contain at least one `.` (period) character
- * (and thus at least two elements).
+ * g_bus_watch_name:
+ * @bus_type: The type of bus to watch a name on.
+ * @name: The name (well-known or unique) to watch.
+ * @flags: Flags from the #GBusNameWatcherFlags enumeration.
+ * @name_appeared_handler: (nullable): Handler to invoke when @name is known to exist or %NULL.
+ * @name_vanished_handler: (nullable): Handler to invoke when @name is known to not exist or %NULL.
+ * @user_data: User data to pass to handlers.
+ * @user_data_free_func: (nullable): Function for freeing @user_data or %NULL.
*
- * - Application identifiers must not begin with a `.` (period) character.
+ * Starts watching @name on the bus specified by @bus_type and calls
+ * @name_appeared_handler and @name_vanished_handler when the name is
+ * known to have a owner respectively known to lose its
+ * owner. Callbacks will be invoked in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread you are calling this function from.
*
- * - Application identifiers must not exceed 255 characters.
+ * You are guaranteed that one of the handlers will be invoked after
+ * calling this function. When you are done watching the name, just
+ * call g_bus_unwatch_name() with the watcher id this function
+ * returns.
*
- * Note that the hyphen (`-`) character is allowed in application identifiers,
- * but is problematic or not allowed in various specifications and APIs that
- * refer to D-Bus, such as
- * [Flatpak application IDs](http://docs.flatpak.org/en/latest/introduction.html#identifiers),
- * the
- * [`DBusActivatable` interface in the Desktop Entry Specification](https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#dbus),
- * and the convention that an application's "main" interface and object path
- * resemble its application identifier and bus name. To avoid situations that
- * require special-case handling, it is recommended that new application
- * identifiers consistently replace hyphens with underscores.
+ * If the name vanishes or appears (for example the application owning
+ * the name could restart), the handlers are also invoked. If the
+ * #GDBusConnection that is used for watching the name disconnects, then
+ * @name_vanished_handler is invoked since it is no longer
+ * possible to access the name.
*
- * Like D-Bus interface names, application identifiers should start with the
- * reversed DNS domain name of the author of the interface (in lower-case), and
- * it is conventional for the rest of the application identifier to consist of
- * words run together, with initial capital letters.
+ * Another guarantee is that invocations of @name_appeared_handler
+ * and @name_vanished_handler are guaranteed to alternate; that
+ * is, if @name_appeared_handler is invoked then you are
+ * guaranteed that the next time one of the handlers is invoked, it
+ * will be @name_vanished_handler. The reverse is also true.
*
- * As with D-Bus interface names, if the author's DNS domain name contains
- * hyphen/minus characters they should be replaced by underscores, and if it
- * contains leading digits they should be escaped by prepending an underscore.
- * For example, if the owner of 7-zip.org used an application identifier for an
- * archiving application, it might be named `org._7_zip.Archiver`.
+ * This behavior makes it very simple to write applications that want
+ * to take action when a certain [name exists][gdbus-watching-names].
+ * Basically, the application should create object proxies in
+ * @name_appeared_handler and destroy them again (if any) in
+ * @name_vanished_handler.
*
- * Returns: %TRUE if @application_id is valid
+ * Returns: An identifier (never 0) that an be used with
+ * g_bus_unwatch_name() to stop watching the name.
+ * Since: 2.26
*/
/**
- * g_application_mark_busy:
- * @application: a #GApplication
- *
- * Increases the busy count of @application.
- *
- * Use this function to indicate that the application is busy, for instance
- * while a long running operation is pending.
- *
- * The busy state will be exposed to other processes, so a session shell will
- * use that information to indicate the state to the user (e.g. with a
- * spinner).
+ * g_bus_watch_name_on_connection:
+ * @connection: A #GDBusConnection.
+ * @name: The name (well-known or unique) to watch.
+ * @flags: Flags from the #GBusNameWatcherFlags enumeration.
+ * @name_appeared_handler: (nullable): Handler to invoke when @name is known to exist or %NULL.
+ * @name_vanished_handler: (nullable): Handler to invoke when @name is known to not exist or %NULL.
+ * @user_data: User data to pass to handlers.
+ * @user_data_free_func: (nullable): Function for freeing @user_data or %NULL.
*
- * To cancel the busy indication, use g_application_unmark_busy().
+ * Like g_bus_watch_name() but takes a #GDBusConnection instead of a
+ * #GBusType.
*
- * Since: 2.38
+ * Returns: An identifier (never 0) that an be used with
+ * g_bus_unwatch_name() to stop watching the name.
+ * Since: 2.26
*/
/**
- * g_application_new:
- * @application_id: (nullable): the application id
- * @flags: the application flags
- *
- * Creates a new #GApplication instance.
- *
- * If non-%NULL, the application id must be valid. See
- * g_application_id_is_valid().
+ * g_bus_watch_name_on_connection_with_closures: (rename-to g_bus_watch_name_on_connection)
+ * @connection: A #GDBusConnection.
+ * @name: The name (well-known or unique) to watch.
+ * @flags: Flags from the #GBusNameWatcherFlags enumeration.
+ * @name_appeared_closure: (nullable): #GClosure to invoke when @name is known
+ * to exist or %NULL.
+ * @name_vanished_closure: (nullable): #GClosure to invoke when @name is known
+ * to not exist or %NULL.
*
- * If no application ID is given then some features of #GApplication
- * (most notably application uniqueness) will be disabled.
+ * Version of g_bus_watch_name_on_connection() using closures instead of callbacks for
+ * easier binding in other languages.
*
- * Returns: a new #GApplication instance
+ * Returns: An identifier (never 0) that an be used with
+ * g_bus_unwatch_name() to stop watching the name.
+ * Since: 2.26
*/
/**
- * g_application_open:
- * @application: a #GApplication
- * @files: (array length=n_files): an array of #GFiles to open
- * @n_files: the length of the @files array
- * @hint: a hint (or ""), but never %NULL
- *
- * Opens the given files.
- *
- * In essence, this results in the #GApplication::open signal being emitted
- * in the primary instance.
- *
- * @n_files must be greater than zero.
- *
- * @hint is simply passed through to the ::open signal. It is
- * intended to be used by applications that have multiple modes for
- * opening files (eg: "view" vs "edit", etc). Unless you have a need
- * for this functionality, you should use "".
+ * g_bus_watch_name_with_closures: (rename-to g_bus_watch_name)
+ * @bus_type: The type of bus to watch a name on.
+ * @name: The name (well-known or unique) to watch.
+ * @flags: Flags from the #GBusNameWatcherFlags enumeration.
+ * @name_appeared_closure: (nullable): #GClosure to invoke when @name is known
+ * to exist or %NULL.
+ * @name_vanished_closure: (nullable): #GClosure to invoke when @name is known
+ * to not exist or %NULL.
*
- * The application must be registered before calling this function
- * and it must have the %G_APPLICATION_HANDLES_OPEN flag set.
+ * Version of g_bus_watch_name() using closures instead of callbacks for
+ * easier binding in other languages.
*
- * Since: 2.28
+ * Returns: An identifier (never 0) that an be used with
+ * g_bus_unwatch_name() to stop watching the name.
+ * Since: 2.26
*/
/**
- * g_application_quit:
- * @application: a #GApplication
- *
- * Immediately quits the application.
- *
- * Upon return to the mainloop, g_application_run() will return,
- * calling only the 'shutdown' function before doing so.
- *
- * The hold count is ignored.
- * Take care if your code has called g_application_hold() on the application and
- * is therefore still expecting it to exist.
- * (Note that you may have called g_application_hold() indirectly, for example
- * through gtk_application_add_window().)
+ * g_bytes_icon_get_bytes:
+ * @icon: a #GIcon.
*
- * The result of calling g_application_run() again after it returns is
- * unspecified.
+ * Gets the #GBytes associated with the given @icon.
*
- * Since: 2.32
+ * Returns: (transfer none): a #GBytes, or %NULL.
+ * Since: 2.38
*/
/**
- * g_application_register:
- * @application: a #GApplication
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a pointer to a NULL #GError, or %NULL
- *
- * Attempts registration of the application.
- *
- * This is the point at which the application discovers if it is the
- * primary instance or merely acting as a remote for an already-existing
- * primary instance. This is implemented by attempting to acquire the
- * application identifier as a unique bus name on the session bus using
- * GDBus.
- *
- * If there is no application ID or if %G_APPLICATION_NON_UNIQUE was
- * given, then this process will always become the primary instance.
- *
- * Due to the internal architecture of GDBus, method calls can be
- * dispatched at any time (even if a main loop is not running). For
- * this reason, you must ensure that any object paths that you wish to
- * register are registered before calling this function.
- *
- * If the application has already been registered then %TRUE is
- * returned with no work performed.
- *
- * The #GApplication::startup signal is emitted if registration succeeds
- * and @application is the primary instance (including the non-unique
- * case).
- *
- * In the event of an error (such as @cancellable being cancelled, or a
- * failure to connect to the session bus), %FALSE is returned and @error
- * is set appropriately.
+ * g_bytes_icon_new:
+ * @bytes: a #GBytes.
*
- * Note: the return value of this function is not an indicator that this
- * instance is or is not the primary instance of the application. See
- * g_application_get_is_remote() for that.
+ * Creates a new icon for a bytes.
*
- * Returns: %TRUE if registration succeeded
- * Since: 2.28
+ * Returns: (transfer full) (type GBytesIcon): a #GIcon for the given
+ * @bytes, or %NULL on error.
+ * Since: 2.38
*/
/**
- * g_application_release:
- * @application: a #GApplication
+ * g_cancellable_cancel:
+ * @cancellable: (nullable): a #GCancellable object.
*
- * Decrease the use count of @application.
+ * Will set @cancellable to cancelled, and will emit the
+ * #GCancellable::cancelled signal. (However, see the warning about
+ * race conditions in the documentation for that signal if you are
+ * planning to connect to it.)
*
- * When the use count reaches zero, the application will stop running.
+ * 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.
*
- * Never call this function except to cancel the effect of a previous
- * call to g_application_hold().
+ * 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
+ * the application returns to the main loop.
*/
/**
- * g_application_run:
- * @application: a #GApplication
- * @argc: the argc from main() (or 0 if @argv is %NULL)
- * @argv: (array length=argc) (element-type filename) (nullable):
- * the argv from main(), or %NULL
- *
- * Runs the application.
- *
- * This function is intended to be run from main() and its return value
- * is intended to be returned by main(). Although you are expected to pass
- * the @argc, @argv parameters from main() to this function, it is possible
- * to pass %NULL if @argv is not available or commandline handling is not
- * required. Note that on Windows, @argc and @argv are ignored, and
- * g_win32_get_command_line() is called internally (for proper support
- * of Unicode commandline arguments).
- *
- * #GApplication will attempt to parse the commandline arguments. You
- * can add commandline flags to the list of recognised options by way of
- * g_application_add_main_option_entries(). After this, the
- * #GApplication::handle-local-options signal is emitted, from which the
- * application can inspect the values of its #GOptionEntrys.
- *
- * #GApplication::handle-local-options is a good place to handle options
- * such as `--version`, where an immediate reply from the local process is
- * desired (instead of communicating with an already-running instance).
- * A #GApplication::handle-local-options handler can stop further processing
- * by returning a non-negative value, which then becomes the exit status of
- * the process.
- *
- * What happens next depends on the flags: if
- * %G_APPLICATION_HANDLES_COMMAND_LINE was specified then the remaining
- * commandline arguments are sent to the primary instance, where a
- * #GApplication::command-line signal is emitted. Otherwise, the
- * remaining commandline arguments are assumed to be a list of files.
- * If there are no files listed, the application is activated via the
- * #GApplication::activate signal. If there are one or more files, and
- * %G_APPLICATION_HANDLES_OPEN was specified then the files are opened
- * via the #GApplication::open signal.
- *
- * If you are interested in doing more complicated local handling of the
- * commandline then you should implement your own #GApplication subclass
- * and override local_command_line(). In this case, you most likely want
- * to return %TRUE from your local_command_line() implementation to
- * suppress the default handling. See
- * [gapplication-example-cmdline2.c][gapplication-example-cmdline2]
- * for an example.
+ * g_cancellable_connect:
+ * @cancellable: A #GCancellable.
+ * @callback: The #GCallback to connect.
+ * @data: Data to pass to @callback.
+ * @data_destroy_func: (nullable): Free function for @data or %NULL.
*
- * If, after the above is done, the use count of the application is zero
- * then the exit status is returned immediately. If the use count is
- * non-zero then the default main context is iterated until the use count
- * falls to zero, at which point 0 is returned.
+ * Convenience function to connect to the #GCancellable::cancelled
+ * signal. Also handles the race condition that may happen
+ * if the cancellable is cancelled right before connecting.
*
- * If the %G_APPLICATION_IS_SERVICE flag is set, then the service will
- * run for as much as 10 seconds with a use count of zero while waiting
- * for the message that caused the activation to arrive. After that,
- * if the use count falls to zero the application will exit immediately,
- * except in the case that g_application_set_inactivity_timeout() is in
- * use.
+ * @callback is called at most once, either directly at the
+ * time of the connect if @cancellable is already cancelled,
+ * or when @cancellable is cancelled in some thread.
*
- * This function sets the prgname (g_set_prgname()), if not already set,
- * to the basename of argv[0].
+ * @data_destroy_func will be called when the handler is
+ * disconnected, or immediately if the cancellable is already
+ * cancelled.
*
- * Much like g_main_loop_run(), this function will acquire the main context
- * for the duration that the application is running.
+ * See #GCancellable::cancelled for details on how to use this.
*
- * Since 2.40, applications that are not explicitly flagged as services
- * or launchers (ie: neither %G_APPLICATION_IS_SERVICE or
- * %G_APPLICATION_IS_LAUNCHER are given as flags) will check (from the
- * default handler for local_command_line) if "--gapplication-service"
- * was given in the command line. If this flag is present then normal
- * commandline processing is interrupted and the
- * %G_APPLICATION_IS_SERVICE flag is set. This provides a "compromise"
- * solution whereby running an application directly from the commandline
- * will invoke it in the normal way (which can be useful for debugging)
- * while still allowing applications to be D-Bus activated in service
- * mode. The D-Bus service file should invoke the executable with
- * "--gapplication-service" as the sole commandline argument. This
- * approach is suitable for use by most graphical applications but
- * should not be used from applications like editors that need precise
- * control over when processes invoked via the commandline will exit and
- * what their exit status will be.
+ * Since GLib 2.40, the lock protecting @cancellable is not held when
+ * @callback is invoked. This lifts a restriction in place for
+ * earlier GLib versions which now makes it easier to write cleanup
+ * code that unconditionally invokes e.g. g_cancellable_cancel().
*
- * Returns: the exit status
- * Since: 2.28
+ * Returns: The id of the signal handler or 0 if @cancellable has already
+ * been cancelled.
+ * Since: 2.22
*/
/**
- * g_application_send_notification:
- * @application: a #GApplication
- * @id: (nullable): id of the notification, or %NULL
- * @notification: the #GNotification to send
- *
- * Sends a notification on behalf of @application to the desktop shell.
- * There is no guarantee that the notification is displayed immediately,
- * or even at all.
- *
- * Notifications may persist after the application exits. It will be
- * D-Bus-activated when the notification or one of its actions is
- * activated.
- *
- * Modifying @notification after this call has no effect. However, the
- * object can be reused for a later call to this function.
- *
- * @id may be any string that uniquely identifies the event for the
- * application. It does not need to be in any special format. For
- * example, "new-message" might be appropriate for a notification about
- * new messages.
+ * g_cancellable_disconnect:
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @handler_id: Handler id of the handler to be disconnected, or `0`.
*
- * If a previous notification was sent with the same @id, it will be
- * replaced with @notification and shown again as if it was a new
- * notification. This works even for notifications sent from a previous
- * execution of the application, as long as @id is the same string.
+ * Disconnects a handler from a cancellable instance similar to
+ * g_signal_handler_disconnect(). Additionally, in the event that a
+ * signal handler is currently running, this call will block until the
+ * handler has finished. Calling this function from a
+ * #GCancellable::cancelled signal handler will therefore result in a
+ * deadlock.
*
- * @id may be %NULL, but it is impossible to replace or withdraw
- * notifications without an id.
+ * This avoids a race condition where a thread cancels at the
+ * same time as the cancellable operation is finished and the
+ * signal handler is removed. See #GCancellable::cancelled for
+ * details on how to use this.
*
- * If @notification is no longer relevant, it can be withdrawn with
- * g_application_withdraw_notification().
+ * If @cancellable is %NULL or @handler_id is `0` this function does
+ * nothing.
*
- * Since: 2.40
+ * Since: 2.22
*/
/**
- * g_application_set_action_group:
- * @application: a #GApplication
- * @action_group: (nullable): a #GActionGroup, or %NULL
+ * g_cancellable_get_current:
*
- * This used to be how actions were associated with a #GApplication.
- * Now there is #GActionMap for that.
+ * Gets the top cancellable from the stack.
*
- * Since: 2.28
- * Deprecated: 2.32: Use the #GActionMap interface instead. Never ever
- * mix use of this API with use of #GActionMap on the same @application
- * or things will go very badly wrong. This function is known to
- * introduce buggy behaviour (ie: signals not emitted on changes to the
- * action group), so you should really use #GActionMap instead.
+ * Returns: (nullable) (transfer none): a #GCancellable from the top
+ * of the stack, or %NULL if the stack is empty.
*/
/**
- * g_application_set_application_id:
- * @application: a #GApplication
- * @application_id: (nullable): the identifier for @application
+ * g_cancellable_get_fd:
+ * @cancellable: a #GCancellable.
*
- * Sets the unique identifier for @application.
+ * Gets the file descriptor for a cancellable job. This can be used to
+ * implement cancellable operations on Unix systems. The returned fd will
+ * turn readable when @cancellable is cancelled.
*
- * The application id can only be modified if @application has not yet
- * been registered.
+ * You are not supposed to read from the fd yourself, just check for
+ * readable status. Reading to unset the readable status is done
+ * with g_cancellable_reset().
*
- * If non-%NULL, the application id must be valid. See
- * g_application_id_is_valid().
+ * After a successful return from this function, you should use
+ * g_cancellable_release_fd() to free up resources allocated for
+ * the returned file descriptor.
*
- * Since: 2.28
+ * See also g_cancellable_make_pollfd().
+ *
+ * Returns: A valid file descriptor. %-1 if the file descriptor
+ * is not supported, or on errors.
*/
/**
- * g_application_set_default:
- * @application: (nullable): the application to set as default, or %NULL
- *
- * Sets or unsets the default application for the process, as returned
- * by g_application_get_default().
+ * g_cancellable_is_cancelled:
+ * @cancellable: (nullable): a #GCancellable or %NULL
*
- * This function does not take its own reference on @application. If
- * @application is destroyed then the default application will revert
- * back to %NULL.
+ * Checks if a cancellable job has been cancelled.
*
- * Since: 2.32
+ * Returns: %TRUE if @cancellable is cancelled,
+ * FALSE if called with %NULL or if item is not cancelled.
*/
/**
- * g_application_set_flags:
- * @application: a #GApplication
- * @flags: the flags for @application
+ * g_cancellable_make_pollfd:
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @pollfd: a pointer to a #GPollFD
*
- * Sets the flags for @application.
+ * Creates a #GPollFD corresponding to @cancellable; this can be passed
+ * to g_poll() and used to poll for cancellation. This is useful both
+ * for unix systems without a native poll and for portability to
+ * windows.
*
- * The flags can only be modified if @application has not yet been
- * registered.
+ * When this function returns %TRUE, you should use
+ * g_cancellable_release_fd() to free up resources allocated for the
+ * @pollfd. After a %FALSE return, do not call g_cancellable_release_fd().
*
- * See #GApplicationFlags.
+ * If this function returns %FALSE, either no @cancellable was given or
+ * resource limits prevent this function from allocating the necessary
+ * structures for polling. (On Linux, you will likely have reached
+ * the maximum number of file descriptors.) The suggested way to handle
+ * these cases is to ignore the @cancellable.
*
- * Since: 2.28
+ * You are not supposed to read from the fd yourself, just check for
+ * readable status. Reading to unset the readable status is done
+ * with g_cancellable_reset().
+ *
+ * Returns: %TRUE if @pollfd was successfully initialized, %FALSE on
+ * failure to prepare the cancellable.
+ * Since: 2.22
*/
/**
- * g_application_set_inactivity_timeout:
- * @application: a #GApplication
- * @inactivity_timeout: the timeout, in milliseconds
+ * g_cancellable_new:
*
- * Sets the current inactivity timeout for the application.
+ * Creates a new #GCancellable object.
*
- * This is the amount of time (in milliseconds) after the last call to
- * g_application_release() before the application stops running.
+ * Applications that want to start one or more operations
+ * that should be cancellable should create a #GCancellable
+ * and pass it to the operations.
*
- * This call has no side effects of its own. The value set here is only
- * used for next time g_application_release() drops the use count to
- * zero. Any timeouts currently in progress are not impacted.
+ * One #GCancellable can be used in multiple consecutive
+ * operations or in multiple concurrent operations.
*
- * Since: 2.28
+ * Returns: a #GCancellable.
*/
/**
- * g_application_set_option_context_description:
- * @application: the #GApplication
- * @description: (nullable): a string to be shown in `--help` output
- * after the list of options, or %NULL
- *
- * Adds a description to the @application option context.
- *
- * See g_option_context_set_description() for more information.
+ * g_cancellable_pop_current:
+ * @cancellable: a #GCancellable object
*
- * Since: 2.56
+ * Pops @cancellable off the cancellable stack (verifying that @cancellable
+ * is on the top of the stack).
*/
/**
- * g_application_set_option_context_parameter_string:
- * @application: the #GApplication
- * @parameter_string: (nullable): a string which is displayed
- * in the first line of `--help` output, after the usage summary `programname [OPTION...]`.
+ * g_cancellable_push_current:
+ * @cancellable: a #GCancellable object
*
- * Sets the parameter string to be used by the commandline handling of @application.
+ * Pushes @cancellable onto the cancellable stack. The current
+ * cancellable can then be received using g_cancellable_get_current().
*
- * This function registers the argument to be passed to g_option_context_new()
- * when the internal #GOptionContext of @application is created.
+ * This is useful when implementing cancellable operations in
+ * code that does not allow you to pass down the cancellable object.
*
- * See g_option_context_new() for more information about @parameter_string.
- *
- * Since: 2.56
+ * This is typically called automatically by e.g. #GFile operations,
+ * so you rarely have to call this yourself.
*/
/**
- * g_application_set_option_context_summary:
- * @application: the #GApplication
- * @summary: (nullable): a string to be shown in `--help` output
- * before the list of options, or %NULL
+ * g_cancellable_release_fd:
+ * @cancellable: a #GCancellable
*
- * Adds a summary to the @application option context.
+ * Releases a resources previously allocated by g_cancellable_get_fd()
+ * or g_cancellable_make_pollfd().
*
- * See g_option_context_set_summary() for more information.
+ * For compatibility reasons with older releases, calling this function
+ * is not strictly required, the resources will be automatically freed
+ * when the @cancellable is finalized. However, the @cancellable will
+ * block scarce file descriptors until it is finalized if this function
+ * is not called. This can cause the application to run out of file
+ * descriptors when many #GCancellables are used at the same time.
*
- * Since: 2.56
+ * Since: 2.22
*/
/**
- * g_application_set_resource_base_path:
- * @application: a #GApplication
- * @resource_path: (nullable): the resource path to use
- *
- * Sets (or unsets) the base resource path of @application.
- *
- * The path is used to automatically load various [application
- * resources][gresource] such as menu layouts and action descriptions.
- * The various types of resources will be found at fixed names relative
- * to the given base path.
- *
- * By default, the resource base path is determined from the application
- * ID by prefixing '/' and replacing each '.' with '/'. This is done at
- * the time that the #GApplication object is constructed. Changes to
- * the application ID after that point will not have an impact on the
- * resource base path.
- *
- * As an example, if the application has an ID of "org.example.app" then
- * the default resource base path will be "/org/example/app". If this
- * is a #GtkApplication (and you have not manually changed the path)
- * then Gtk will then search for the menus of the application at
- * "/org/example/app/gtk/menus.ui".
- *
- * See #GResource for more information about adding resources to your
- * application.
+ * g_cancellable_reset:
+ * @cancellable: a #GCancellable object.
*
- * You can disable automatic resource loading functionality by setting
- * the path to %NULL.
+ * Resets @cancellable to its uncancelled state.
*
- * Changing the resource base path once the application is running is
- * not recommended. The point at which the resource path is consulted
- * for forming paths for various purposes is unspecified. When writing
- * a sub-class of #GApplication you should either set the
- * #GApplication:resource-base-path property at construction time, or call
- * this function during the instance initialization. Alternatively, you
- * can call this function in the #GApplicationClass.startup virtual function,
- * before chaining up to the parent implementation.
+ * If cancellable is currently in use by any cancellable operation
+ * then the behavior of this function is undefined.
*
- * Since: 2.42
+ * 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.
*/
/**
- * g_application_unbind_busy_property:
- * @application: a #GApplication
- * @object: (type GObject.Object): a #GObject
- * @property: the name of a boolean property of @object
+ * g_cancellable_set_error_if_cancelled:
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @error: #GError to append error state to
*
- * Destroys a binding between @property and the busy state of
- * @application that was previously created with
- * g_application_bind_busy_property().
+ * If the @cancellable is cancelled, sets the error to notify
+ * that the operation was cancelled.
*
- * Since: 2.44
+ * Returns: %TRUE if @cancellable was cancelled, %FALSE if it was not
*/
/**
- * g_application_unmark_busy:
- * @application: a #GApplication
+ * g_cancellable_source_new: (skip)
+ * @cancellable: (nullable): a #GCancellable, or %NULL
*
- * Decreases the busy count of @application.
+ * Creates a source that triggers if @cancellable is cancelled and
+ * calls its callback of type #GCancellableSourceFunc. This is
+ * primarily useful for attaching to another (non-cancellable) source
+ * with g_source_add_child_source() to add cancellability to it.
*
- * When the busy count reaches zero, the new state will be propagated
- * to other processes.
+ * For convenience, you can call this with a %NULL #GCancellable,
+ * in which case the source will never trigger.
*
- * This function must only be called to cancel the effect of a previous
- * call to g_application_mark_busy().
+ * The new #GSource will hold a reference to the #GCancellable.
*
- * Since: 2.38
+ * Returns: (transfer full): the new #GSource.
+ * Since: 2.28
*/
/**
- * g_application_withdraw_notification:
- * @application: a #GApplication
- * @id: id of a previously sent notification
- *
- * Withdraws a notification that was sent with
- * g_application_send_notification().
- *
- * This call does nothing if a notification with @id doesn't exist or
- * the notification was never sent.
- *
- * This function works even for notifications sent in previous
- * executions of this application, as long @id is the same as it was for
- * the sent notification.
+ * g_charset_converter_get_num_fallbacks:
+ * @converter: a #GCharsetConverter
*
- * Note that notifications are dismissed when the user clicks on one
- * of the buttons in a notification or triggers its default action, so
- * there is no need to explicitly withdraw the notification in that case.
+ * Gets the number of fallbacks that @converter has applied so far.
*
- * Since: 2.40
+ * Returns: the number of fallbacks that @converter has applied
+ * Since: 2.24
*/
/**
- * g_async_initable_init_async:
- * @initable: a #GAsyncInitable.
- * @io_priority: the [I/O priority][io-priority] of the operation
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
- *
- * Starts asynchronous initialization of the object implementing the
- * interface. This must be done before any real use of the object after
- * initial construction. If the object also implements #GInitable you can
- * optionally call g_initable_init() instead.
- *
- * This method is intended for language bindings. If writing in C,
- * g_async_initable_new_async() should typically be used instead.
- *
- * When the initialization is finished, @callback will be called. You can
- * then call g_async_initable_init_finish() to get the result of the
- * initialization.
- *
- * Implementations may also support cancellation. If @cancellable is not
- * %NULL, then initialization can be cancelled by triggering the cancellable
- * object from another thread. If the operation was cancelled, the error
- * %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL, and
- * the object doesn't support cancellable initialization, the error
- * %G_IO_ERROR_NOT_SUPPORTED will be returned.
- *
- * As with #GInitable, if the object is not initialized, or initialization
- * returns with an error, then all operations on the object except
- * g_object_ref() and g_object_unref() are considered to be invalid, and
- * have undefined behaviour. They will often fail with g_critical() or
- * g_warning(), but this must not be relied on.
- *
- * Callers should not assume that a class which implements #GAsyncInitable can
- * be initialized multiple times; for more information, see g_initable_init().
- * If a class explicitly supports being initialized multiple times,
- * implementation requires yielding all subsequent calls to init_async() on the
- * results of the first call.
+ * g_charset_converter_get_use_fallback:
+ * @converter: a #GCharsetConverter
*
- * For classes that also support the #GInitable interface, the default
- * implementation of this method will run the g_initable_init() function
- * in a thread, so if you want to support asynchronous initialization via
- * threads, just implement the #GAsyncInitable interface without overriding
- * any interface methods.
+ * Gets the #GCharsetConverter:use-fallback property.
*
- * Since: 2.22
+ * Returns: %TRUE if fallbacks are used by @converter
+ * Since: 2.24
*/
/**
- * g_async_initable_init_finish:
- * @initable: a #GAsyncInitable.
- * @res: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_charset_converter_new:
+ * @to_charset: destination charset
+ * @from_charset: source charset
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Finishes asynchronous initialization and returns the result.
- * See g_async_initable_init_async().
+ * Creates a new #GCharsetConverter.
*
- * Returns: %TRUE if successful. If an error has occurred, this function
- * will return %FALSE and set @error appropriately if present.
- * Since: 2.22
+ * Returns: a new #GCharsetConverter or %NULL on error.
+ * Since: 2.24
*/
/**
- * g_async_initable_new_async:
- * @object_type: a #GType supporting #GAsyncInitable.
- * @io_priority: the [I/O priority][io-priority] of the operation
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the initialization is
- * finished
- * @user_data: the data to pass to callback function
- * @first_property_name: (nullable): the name of the first property, or %NULL if no
- * properties
- * @...: the value of the first property, followed by other property
- * value pairs, and ended by %NULL.
- *
- * Helper function for constructing #GAsyncInitable object. This is
- * similar to g_object_new() but also initializes the object asynchronously.
+ * g_charset_converter_set_use_fallback:
+ * @converter: a #GCharsetConverter
+ * @use_fallback: %TRUE to use fallbacks
*
- * When the initialization is finished, @callback will be called. You can
- * then call g_async_initable_new_finish() to get the new object and check
- * for any errors.
+ * Sets the #GCharsetConverter:use-fallback property.
*
- * Since: 2.22
+ * Since: 2.24
*/
/**
- * g_async_initable_new_finish:
- * @initable: the #GAsyncInitable from the callback
- * @res: the #GAsyncResult from the callback
- * @error: return location for errors, or %NULL to ignore
+ * g_content_type_can_be_executable:
+ * @type: a content type string
*
- * Finishes the async construction for the various g_async_initable_new
- * calls, returning the created object or %NULL on error.
+ * Checks if a content type can be executable. Note that for instance
+ * things like text files can be executables (i.e. scripts and batch files).
*
- * Returns: (type GObject.Object) (transfer full): a newly created #GObject,
- * or %NULL on error. Free with g_object_unref().
- * Since: 2.22
+ * Returns: %TRUE if the file type corresponds to a type that
+ * can be executable, %FALSE otherwise.
*/
/**
- * g_async_initable_new_valist_async:
- * @object_type: a #GType supporting #GAsyncInitable.
- * @first_property_name: the name of the first property, followed by
- * the value, and other property value pairs, and ended by %NULL.
- * @var_args: The var args list generated from @first_property_name.
- * @io_priority: the [I/O priority][io-priority] of the operation
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the initialization is
- * finished
- * @user_data: the data to pass to callback function
- *
- * Helper function for constructing #GAsyncInitable object. This is
- * similar to g_object_new_valist() but also initializes the object
- * asynchronously.
+ * g_content_type_equals:
+ * @type1: a content type string
+ * @type2: a content type string
*
- * When the initialization is finished, @callback will be called. You can
- * then call g_async_initable_new_finish() to get the new object and check
- * for any errors.
+ * Compares two content types for equality.
*
- * Since: 2.22
+ * Returns: %TRUE if the two strings are identical or equivalent,
+ * %FALSE otherwise.
*/
/**
- * g_async_initable_newv_async:
- * @object_type: a #GType supporting #GAsyncInitable.
- * @n_parameters: the number of parameters in @parameters
- * @parameters: the parameters to use to construct the object
- * @io_priority: the [I/O priority][io-priority] of the operation
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the initialization is
- * finished
- * @user_data: the data to pass to callback function
- *
- * Helper function for constructing #GAsyncInitable object. This is
- * similar to g_object_newv() but also initializes the object asynchronously.
+ * g_content_type_from_mime_type:
+ * @mime_type: a mime type string
*
- * When the initialization is finished, @callback will be called. You can
- * then call g_async_initable_new_finish() to get the new object and check
- * for any errors.
+ * Tries to find a content type based on the mime type name.
*
- * Since: 2.22
- * Deprecated: 2.54: Use g_object_new_with_properties() and
- * g_async_initable_init_async() instead. See #GParameter for more information.
+ * Returns: (nullable): Newly allocated string with content type or
+ * %NULL. Free with g_free()
+ * Since: 2.18
*/
/**
- * g_async_result_get_source_object:
- * @res: a #GAsyncResult
+ * g_content_type_get_description:
+ * @type: a content type string
*
- * Gets the source object from a #GAsyncResult.
+ * Gets the human readable description of the content type.
*
- * Returns: (transfer full) (nullable): a new reference to the source
- * object for the @res, or %NULL if there is none.
+ * Returns: a short description of the content type @type. Free the
+ * returned string with g_free()
*/
/**
- * g_async_result_get_user_data:
- * @res: a #GAsyncResult.
- *
- * Gets the user data from a #GAsyncResult.
+ * g_content_type_get_generic_icon_name:
+ * @type: a content type string
*
- * Returns: (transfer full): the user data for @res.
- */
-
-
-/**
- * g_async_result_is_tagged:
- * @res: a #GAsyncResult
- * @source_tag: an application-defined tag
+ * Gets the generic icon name for a content type.
*
- * Checks if @res has the given @source_tag (generally a function
- * pointer indicating the function @res was created by).
+ * See the
+ * [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
+ * specification for more on the generic icon name.
*
- * Returns: %TRUE if @res has the indicated @source_tag, %FALSE if
- * not.
+ * Returns: (nullable): the registered generic icon name for the given @type,
+ * or %NULL if unknown. Free with g_free()
* Since: 2.34
*/
/**
- * g_async_result_legacy_propagate_error:
- * @res: a #GAsyncResult
- * @error: (out): a location to propagate the error to.
- *
- * If @res is a #GSimpleAsyncResult, this is equivalent to
- * g_simple_async_result_propagate_error(). Otherwise it returns
- * %FALSE.
+ * g_content_type_get_icon:
+ * @type: a content type string
*
- * This can be used for legacy error handling in async *_finish()
- * wrapper functions that traditionally handled #GSimpleAsyncResult
- * error returns themselves rather than calling into the virtual method.
- * This should not be used in new code; #GAsyncResult errors that are
- * set by virtual methods should also be extracted by virtual methods,
- * to enable subclasses to chain up correctly.
+ * Gets the icon for a content type.
*
- * Returns: %TRUE if @error is has been filled in with an error from
- * @res, %FALSE if not.
- * Since: 2.34
+ * Returns: (transfer full): #GIcon corresponding to the content type. Free the returned
+ * object with g_object_unref()
*/
/**
- * g_buffered_input_stream_fill:
- * @stream: a #GBufferedInputStream
- * @count: the number of bytes that will be read from the stream
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * Tries to read @count bytes from the stream into the buffer.
- * Will block during this read.
- *
- * If @count is zero, returns zero and does nothing. A value of @count
- * larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- *
- * On success, the number of bytes read into the buffer is returned.
- * 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. Zero is returned on end of file
- * (or if @count is zero), but never otherwise.
- *
- * If @count is -1 then the attempted read size is equal to the number of
- * bytes that are required to fill the buffer.
- *
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- * operation was partially finished when the operation was cancelled the
- * partial result will be returned, without an error.
- *
- * On error -1 is returned and @error is set accordingly.
+ * g_content_type_get_mime_type:
+ * @type: a content type string
*
- * For the asynchronous, non-blocking, version of this function, see
- * g_buffered_input_stream_fill_async().
+ * Gets the mime type for the content type, if one is registered.
*
- * Returns: the number of bytes read into @stream's buffer, up to @count,
- * or -1 on error.
+ * Returns: (nullable) (transfer full): the registered mime type for the
+ * given @type, or %NULL if unknown; free with g_free().
*/
/**
- * g_buffered_input_stream_fill_async:
- * @stream: a #GBufferedInputStream
- * @count: the number of bytes that will be read from the stream
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): a #gpointer
+ * g_content_type_get_symbolic_icon:
+ * @type: a content type string
*
- * Reads data into @stream's buffer asynchronously, up to @count size.
- * @io_priority can be used to prioritize reads. For the synchronous
- * version of this function, see g_buffered_input_stream_fill().
+ * Gets the symbolic icon for a content type.
*
- * If @count is -1 then the attempted read size is equal to the number
- * of bytes that are required to fill the buffer.
+ * Returns: (transfer full): symbolic #GIcon corresponding to the content type.
+ * Free the returned object with g_object_unref()
+ * Since: 2.34
*/
/**
- * g_buffered_input_stream_fill_finish:
- * @stream: a #GBufferedInputStream
- * @result: a #GAsyncResult
- * @error: a #GError
+ * g_content_type_guess:
+ * @filename: (nullable): a string, or %NULL
+ * @data: (nullable) (array length=data_size): a stream of data, or %NULL
+ * @data_size: the size of @data
+ * @result_uncertain: (out) (optional): return location for the certainty
+ * of the result, or %NULL
*
- * Finishes an asynchronous read.
+ * Guesses the content type based on example data. If the function is
+ * uncertain, @result_uncertain will be set to %TRUE. Either @filename
+ * or @data may be %NULL, in which case the guess will be based solely
+ * on the other argument.
*
- * Returns: a #gssize of the read stream, or `-1` on an error.
+ * Returns: a string indicating a guessed content type for the
+ * given data. Free with g_free()
*/
/**
- * g_buffered_input_stream_get_available:
- * @stream: #GBufferedInputStream
+ * g_content_type_guess_for_tree:
+ * @root: the root of the tree to guess a type for
*
- * Gets the size of the available data within the stream.
+ * Tries to guess the type of the tree with root @root, by
+ * looking at the files it contains. The result is an array
+ * of content types, with the best guess coming first.
*
- * Returns: size of the available stream.
- */
-
-
-/**
- * g_buffered_input_stream_get_buffer_size:
- * @stream: a #GBufferedInputStream
+ * The types returned all have the form x-content/foo, e.g.
+ * x-content/audio-cdda (for audio CDs) or x-content/image-dcf
+ * (for a camera memory card). See the
+ * [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
+ * specification for more on x-content types.
*
- * Gets the size of the input buffer.
+ * This function is useful in the implementation of
+ * g_mount_guess_content_type().
*
- * Returns: the current buffer size.
+ * Returns: (transfer full) (array zero-terminated=1): an %NULL-terminated
+ * array of zero or more content types. Free with g_strfreev()
+ * Since: 2.18
*/
/**
- * g_buffered_input_stream_new:
- * @base_stream: a #GInputStream
+ * g_content_type_is_a:
+ * @type: a content type string
+ * @supertype: a content type string
*
- * Creates a new #GInputStream from the given @base_stream, with
- * a buffer set to the default size (4 kilobytes).
+ * Determines if @type is a subset of @supertype.
*
- * Returns: a #GInputStream for the given @base_stream.
+ * Returns: %TRUE if @type is a kind of @supertype,
+ * %FALSE otherwise.
*/
/**
- * g_buffered_input_stream_new_sized:
- * @base_stream: a #GInputStream
- * @size: a #gsize
+ * g_content_type_is_mime_type:
+ * @type: a content type string
+ * @mime_type: a mime type string
*
- * Creates a new #GBufferedInputStream from the given @base_stream,
- * with a buffer set to @size.
+ * Determines if @type is a subset of @mime_type.
+ * Convenience wrapper around g_content_type_is_a().
*
- * Returns: a #GInputStream.
+ * Returns: %TRUE if @type is a kind of @mime_type,
+ * %FALSE otherwise.
+ * Since: 2.52
*/
/**
- * g_buffered_input_stream_peek:
- * @stream: a #GBufferedInputStream
- * @buffer: (array length=count) (element-type guint8): a pointer to
- * an allocated chunk of memory
- * @offset: a #gsize
- * @count: a #gsize
+ * g_content_type_is_unknown:
+ * @type: a content type string
*
- * Peeks in the buffer, copying data of size @count into @buffer,
- * offset @offset bytes.
+ * Checks if the content type is the generic "unknown" type.
+ * On UNIX this is the "application/octet-stream" mimetype,
+ * while on win32 it is "*" and on OSX it is a dynamic type
+ * or octet-stream.
*
- * Returns: a #gsize of the number of bytes peeked, or -1 on error.
+ * Returns: %TRUE if the type is the unknown type.
*/
/**
- * g_buffered_input_stream_peek_buffer:
- * @stream: a #GBufferedInputStream
- * @count: (out): a #gsize to get the number of bytes available in the buffer
+ * g_content_types_get_registered:
*
- * Returns the buffer with the currently available bytes. The returned
- * buffer must not be modified and will become invalid when reading from
- * the stream or filling the buffer.
+ * Gets a list of strings containing all the registered content types
+ * known to the system. The list and its data should be freed using
+ * g_list_free_full (list, g_free).
*
- * Returns: (array length=count) (element-type guint8) (transfer none):
- * read-only buffer
+ * Returns: (element-type utf8) (transfer full): list of the registered
+ * content types
*/
/**
- * g_buffered_input_stream_read_byte:
- * @stream: a #GBufferedInputStream
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * g_converter_convert:
+ * @converter: a #GConverter.
+ * @inbuf: (array length=inbuf_size) (element-type guint8): the buffer
+ * containing the data to convert.
+ * @inbuf_size: the number of bytes in @inbuf
+ * @outbuf: (element-type guint8) (array length=outbuf_size): a buffer to write
+ * converted data in.
+ * @outbuf_size: the number of bytes in @outbuf, must be at least one
+ * @flags: a #GConverterFlags controlling the conversion details
+ * @bytes_read: (out): will be set to the number of bytes read from @inbuf on success
+ * @bytes_written: (out): will be set to the number of bytes written to @outbuf on success
* @error: location to store the error occurring, or %NULL to ignore
*
- * Tries to read a single byte from the stream or the buffer. Will block
- * during this read.
+ * This is the main operation used when converting data. It is to be called
+ * multiple times in a loop, and each time it will do some work, i.e.
+ * producing some output (in @outbuf) or consuming some input (from @inbuf) or
+ * both. If its not possible to do any work an error is returned.
*
- * On success, the byte read from the stream is returned. On end of stream
- * -1 is returned but it's not an exceptional error and @error is not set.
+ * Note that a single call may not consume all input (or any input at all).
+ * Also a call may produce output even if given no input, due to state stored
+ * in the converter producing output.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- * operation was partially finished when the operation was cancelled the
- * partial result will be returned, without an error.
+ * If any data was either produced or consumed, and then an error happens, then
+ * only the successful conversion is reported and the error is returned on the
+ * next call.
*
- * On error -1 is returned and @error is set accordingly.
+ * A full conversion loop involves calling this method repeatedly, each time
+ * giving it new input and space output space. When there is no more input
+ * data after the data in @inbuf, the flag %G_CONVERTER_INPUT_AT_END must be set.
+ * The loop will be (unless some error happens) returning %G_CONVERTER_CONVERTED
+ * each time until all data is consumed and all output is produced, then
+ * %G_CONVERTER_FINISHED is returned instead. Note, that %G_CONVERTER_FINISHED
+ * may be returned even if %G_CONVERTER_INPUT_AT_END is not set, for instance
+ * in a decompression converter where the end of data is detectable from the
+ * data (and there might even be other data after the end of the compressed data).
*
- * Returns: the byte read from the @stream, or -1 on end of stream or error.
- */
-
-
-/**
- * g_buffered_input_stream_set_buffer_size:
- * @stream: a #GBufferedInputStream
- * @size: a #gsize
+ * When some data has successfully been converted @bytes_read and is set to
+ * the number of bytes read from @inbuf, and @bytes_written is set to indicate
+ * how many bytes was written to @outbuf. If there are more data to output
+ * or consume (i.e. unless the %G_CONVERTER_INPUT_AT_END is specified) then
+ * %G_CONVERTER_CONVERTED is returned, and if no more data is to be output
+ * then %G_CONVERTER_FINISHED is returned.
*
- * Sets the size of the internal buffer of @stream to @size, or to the
- * size of the contents of the buffer. The buffer can never be resized
- * smaller than its current contents.
- */
-
-
-/**
- * g_buffered_output_stream_get_auto_grow:
- * @stream: a #GBufferedOutputStream.
+ * On error %G_CONVERTER_ERROR is returned and @error is set accordingly.
+ * Some errors need special handling:
*
- * Checks if the buffer automatically grows as data is added.
+ * %G_IO_ERROR_NO_SPACE is returned if there is not enough space
+ * to write the resulting converted data, the application should
+ * call the function again with a larger @outbuf to continue.
*
- * Returns: %TRUE if the @stream's buffer automatically grows,
- * %FALSE otherwise.
+ * %G_IO_ERROR_PARTIAL_INPUT is returned if there is not enough
+ * input to fully determine what the conversion should produce,
+ * and the %G_CONVERTER_INPUT_AT_END flag is not set. This happens for
+ * example with an incomplete multibyte sequence when converting text,
+ * or when a regexp matches up to the end of the input (and may match
+ * further input). It may also happen when @inbuf_size is zero and
+ * there is no more data to produce.
+ *
+ * When this happens the application should read more input and then
+ * call the function again. If further input shows that there is no
+ * more data call the function again with the same data but with
+ * the %G_CONVERTER_INPUT_AT_END flag set. This may cause the conversion
+ * to finish as e.g. in the regexp match case (or, to fail again with
+ * %G_IO_ERROR_PARTIAL_INPUT in e.g. a charset conversion where the
+ * input is actually partial).
+ *
+ * After g_converter_convert() has returned %G_CONVERTER_FINISHED the
+ * converter object is in an invalid state where its not allowed
+ * to call g_converter_convert() anymore. At this time you can only
+ * free the object or call g_converter_reset() to reset it to the
+ * initial state.
+ *
+ * If the flag %G_CONVERTER_FLUSH is set then conversion is modified
+ * to try to write out all internal state to the output. The application
+ * has to call the function multiple times with the flag set, and when
+ * the available input has been consumed and all internal state has
+ * been produced then %G_CONVERTER_FLUSHED (or %G_CONVERTER_FINISHED if
+ * really at the end) is returned instead of %G_CONVERTER_CONVERTED.
+ * This is somewhat similar to what happens at the end of the input stream,
+ * but done in the middle of the data.
+ *
+ * This has different meanings for different conversions. For instance
+ * in a compression converter it would mean that we flush all the
+ * compression state into output such that if you uncompress the
+ * compressed data you get back all the input data. Doing this may
+ * make the final file larger due to padding though. Another example
+ * is a regexp conversion, where if you at the end of the flushed data
+ * have a match, but there is also a potential longer match. In the
+ * non-flushed case we would ask for more input, but when flushing we
+ * treat this as the end of input and do the match.
+ *
+ * Flushing is not always possible (like if a charset converter flushes
+ * at a partial multibyte sequence). Converters are supposed to try
+ * to produce as much output as possible and then return an error
+ * (typically %G_IO_ERROR_PARTIAL_INPUT).
+ *
+ * Returns: a #GConverterResult, %G_CONVERTER_ERROR on error.
+ * Since: 2.24
*/
/**
- * g_buffered_output_stream_get_buffer_size:
- * @stream: a #GBufferedOutputStream.
+ * g_converter_input_stream_get_converter:
+ * @converter_stream: a #GConverterInputStream
*
- * Gets the size of the buffer in the @stream.
+ * Gets the #GConverter that is used by @converter_stream.
*
- * Returns: the current size of the buffer.
+ * Returns: (transfer none): the converter of the converter input stream
+ * Since: 2.24
*/
/**
- * g_buffered_output_stream_new:
- * @base_stream: a #GOutputStream.
+ * g_converter_input_stream_new:
+ * @base_stream: a #GInputStream
+ * @converter: a #GConverter
*
- * Creates a new buffered output stream for a base stream.
+ * Creates a new converter input stream for the @base_stream.
*
- * Returns: a #GOutputStream for the given @base_stream.
+ * Returns: a new #GInputStream.
*/
/**
- * g_buffered_output_stream_new_sized:
- * @base_stream: a #GOutputStream.
- * @size: a #gsize.
+ * g_converter_output_stream_get_converter:
+ * @converter_stream: a #GConverterOutputStream
*
- * Creates a new buffered output stream with a given buffer size.
+ * Gets the #GConverter that is used by @converter_stream.
*
- * Returns: a #GOutputStream with an internal buffer set to @size.
+ * Returns: (transfer none): the converter of the converter output stream
+ * Since: 2.24
*/
/**
- * g_buffered_output_stream_set_auto_grow:
- * @stream: a #GBufferedOutputStream.
- * @auto_grow: a #gboolean.
+ * g_converter_output_stream_new:
+ * @base_stream: a #GOutputStream
+ * @converter: a #GConverter
*
- * Sets whether or not the @stream's buffer should automatically grow.
- * If @auto_grow is true, then each write will just make the buffer
- * larger, and you must manually flush the buffer to actually write out
- * the data to the underlying stream.
+ * Creates a new converter output stream for the @base_stream.
+ *
+ * Returns: a new #GOutputStream.
*/
/**
- * g_buffered_output_stream_set_buffer_size:
- * @stream: a #GBufferedOutputStream.
- * @size: a #gsize.
+ * g_converter_reset:
+ * @converter: a #GConverter.
*
- * Sets the size of the internal buffer to @size.
+ * Resets all internal state in the converter, making it behave
+ * as if it was just created. If the converter has any internal
+ * state that would produce output then that output is lost.
+ *
+ * Since: 2.24
*/
/**
- * g_bus_get:
- * @bus_type: a #GBusType
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to @callback
- *
- * Asynchronously connects to the message bus specified by @bus_type.
+ * g_credentials_get_native: (skip)
+ * @credentials: A #GCredentials.
+ * @native_type: The type of native credentials to get.
*
- * When the operation is finished, @callback will be invoked. You can
- * then call g_bus_get_finish() to get the result of the operation.
+ * Gets a pointer to native credentials of type @native_type from
+ * @credentials.
*
- * This is a asynchronous failable function. See g_bus_get_sync() for
- * the synchronous version.
+ * It is a programming error (which will cause an warning to be
+ * logged) to use this method if there is no #GCredentials support for
+ * the OS or if @native_type isn't supported by the OS.
*
+ * Returns: The pointer to native credentials or %NULL if the
+ * operation there is no #GCredentials support for the OS or if
+ * @native_type isn't supported by the OS. Do not free the returned
+ * data, it is owned by @credentials.
* Since: 2.26
*/
/**
- * g_bus_get_finish:
- * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed
- * to g_bus_get()
- * @error: return location for error or %NULL
- *
- * Finishes an operation started with g_bus_get().
+ * g_credentials_get_unix_pid:
+ * @credentials: A #GCredentials
+ * @error: Return location for error or %NULL.
*
- * The returned object is a singleton, that is, shared with other
- * callers of g_bus_get() and g_bus_get_sync() for @bus_type. In the
- * event that you need a private message bus connection, use
- * g_dbus_address_get_for_bus_sync() and
- * g_dbus_connection_new_for_address().
+ * Tries to get the UNIX process identifier from @credentials. This
+ * method is only available on UNIX platforms.
*
- * Note that the returned #GDBusConnection object will (usually) have
- * the #GDBusConnection:exit-on-close property set to %TRUE.
+ * This operation can fail if #GCredentials is not supported on the
+ * OS or if the native credentials type does not contain information
+ * about the UNIX process ID.
*
- * Returns: (transfer full): a #GDBusConnection or %NULL if @error is set.
- * Free with g_object_unref().
- * Since: 2.26
+ * Returns: The UNIX process ID, or -1 if @error is set.
+ * Since: 2.36
*/
/**
- * g_bus_get_sync:
- * @bus_type: a #GBusType
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @error: return location for error or %NULL
- *
- * Synchronously connects to the message bus specified by @bus_type.
- * Note that the returned object may shared with other callers,
- * e.g. if two separate parts of a process calls this function with
- * the same @bus_type, they will share the same object.
- *
- * This is a synchronous failable function. See g_bus_get() and
- * g_bus_get_finish() for the asynchronous version.
+ * g_credentials_get_unix_user:
+ * @credentials: A #GCredentials
+ * @error: Return location for error or %NULL.
*
- * The returned object is a singleton, that is, shared with other
- * callers of g_bus_get() and g_bus_get_sync() for @bus_type. In the
- * event that you need a private message bus connection, use
- * g_dbus_address_get_for_bus_sync() and
- * g_dbus_connection_new_for_address().
+ * Tries to get the UNIX user identifier from @credentials. This
+ * method is only available on UNIX platforms.
*
- * Note that the returned #GDBusConnection object will (usually) have
- * the #GDBusConnection:exit-on-close property set to %TRUE.
+ * This operation can fail if #GCredentials is not supported on the
+ * OS or if the native credentials type does not contain information
+ * about the UNIX user.
*
- * Returns: (transfer full): a #GDBusConnection or %NULL if @error is set.
- * Free with g_object_unref().
+ * Returns: The UNIX user identifier or -1 if @error is set.
* Since: 2.26
*/
/**
- * g_bus_own_name:
- * @bus_type: the type of bus to own a name on
- * @name: the well-known name to own
- * @flags: a set of flags from the #GBusNameOwnerFlags enumeration
- * @bus_acquired_handler: (nullable): handler to invoke when connected to the bus of type @bus_type or %NULL
- * @name_acquired_handler: (nullable): handler to invoke when @name is acquired or %NULL
- * @name_lost_handler: (nullable): handler to invoke when @name is lost or %NULL
- * @user_data: user data to pass to handlers
- * @user_data_free_func: (nullable): function for freeing @user_data or %NULL
- *
- * Starts acquiring @name on the bus specified by @bus_type and calls
- * @name_acquired_handler and @name_lost_handler when the name is
- * acquired respectively lost. Callbacks will be invoked in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread you are calling this function from.
- *
- * You are guaranteed that one of the @name_acquired_handler and @name_lost_handler
- * callbacks will be invoked after calling this function - there are three
- * possible cases:
- *
- * - @name_lost_handler with a %NULL connection (if a connection to the bus
- * can't be made).
- *
- * - @bus_acquired_handler then @name_lost_handler (if the name can't be
- * obtained)
- *
- * - @bus_acquired_handler then @name_acquired_handler (if the name was
- * obtained).
- *
- * When you are done owning the name, just call g_bus_unown_name()
- * with the owner id this function returns.
- *
- * If the name is acquired or lost (for example another application
- * could acquire the name if you allow replacement or the application
- * currently owning the name exits), the handlers are also invoked.
- * If the #GDBusConnection that is used for attempting to own the name
- * closes, then @name_lost_handler is invoked since it is no longer
- * possible for other processes to access the process.
- *
- * You cannot use g_bus_own_name() several times for the same name (unless
- * interleaved with calls to g_bus_unown_name()) - only the first call
- * will work.
- *
- * Another guarantee is that invocations of @name_acquired_handler
- * and @name_lost_handler are guaranteed to alternate; that
- * is, if @name_acquired_handler is invoked then you are
- * guaranteed that the next time one of the handlers is invoked, it
- * will be @name_lost_handler. The reverse is also true.
+ * g_credentials_is_same_user:
+ * @credentials: A #GCredentials.
+ * @other_credentials: A #GCredentials.
+ * @error: Return location for error or %NULL.
*
- * If you plan on exporting objects (using e.g.
- * g_dbus_connection_register_object()), note that it is generally too late
- * to export the objects in @name_acquired_handler. Instead, you can do this
- * in @bus_acquired_handler since you are guaranteed that this will run
- * before @name is requested from the bus.
+ * Checks if @credentials and @other_credentials is the same user.
*
- * This behavior makes it very simple to write applications that wants
- * to [own names][gdbus-owning-names] and export objects.
- * Simply register objects to be exported in @bus_acquired_handler and
- * unregister the objects (if any) in @name_lost_handler.
+ * This operation can fail if #GCredentials is not supported on the
+ * the OS.
*
- * Returns: an identifier (never 0) that an be used with
- * g_bus_unown_name() to stop owning the name.
+ * Returns: %TRUE if @credentials and @other_credentials has the same
+ * user, %FALSE otherwise or if @error is set.
* Since: 2.26
*/
/**
- * g_bus_own_name_on_connection:
- * @connection: a #GDBusConnection
- * @name: the well-known name to own
- * @flags: a set of flags from the #GBusNameOwnerFlags enumeration
- * @name_acquired_handler: (nullable): handler to invoke when @name is acquired or %NULL
- * @name_lost_handler: (nullable): handler to invoke when @name is lost or %NULL
- * @user_data: user data to pass to handlers
- * @user_data_free_func: (nullable): function for freeing @user_data or %NULL
+ * g_credentials_new:
*
- * Like g_bus_own_name() but takes a #GDBusConnection instead of a
- * #GBusType.
+ * Creates a new #GCredentials object with credentials matching the
+ * the current process.
*
- * Returns: an identifier (never 0) that an be used with
- * g_bus_unown_name() to stop owning the name
+ * Returns: A #GCredentials. Free with g_object_unref().
* Since: 2.26
*/
/**
- * g_bus_own_name_on_connection_with_closures: (rename-to g_bus_own_name_on_connection)
- * @connection: a #GDBusConnection
- * @name: the well-known name to own
- * @flags: a set of flags from the #GBusNameOwnerFlags enumeration
- * @name_acquired_closure: (nullable): #GClosure to invoke when @name is
- * acquired or %NULL
- * @name_lost_closure: (nullable): #GClosure to invoke when @name is lost
- * or %NULL
+ * g_credentials_set_native:
+ * @credentials: A #GCredentials.
+ * @native_type: The type of native credentials to set.
+ * @native: (not nullable): A pointer to native credentials.
*
- * Version of g_bus_own_name_on_connection() using closures instead of
- * callbacks for easier binding in other languages.
+ * Copies the native credentials of type @native_type from @native
+ * into @credentials.
+ *
+ * It is a programming error (which will cause an warning to be
+ * logged) to use this method if there is no #GCredentials support for
+ * the OS or if @native_type isn't supported by the OS.
*
- * Returns: an identifier (never 0) that an be used with
- * g_bus_unown_name() to stop owning the name.
* Since: 2.26
*/
/**
- * g_bus_own_name_with_closures: (rename-to g_bus_own_name)
- * @bus_type: the type of bus to own a name on
- * @name: the well-known name to own
- * @flags: a set of flags from the #GBusNameOwnerFlags enumeration
- * @bus_acquired_closure: (nullable): #GClosure to invoke when connected to
- * the bus of type @bus_type or %NULL
- * @name_acquired_closure: (nullable): #GClosure to invoke when @name is
- * acquired or %NULL
- * @name_lost_closure: (nullable): #GClosure to invoke when @name is lost or
- * %NULL
+ * g_credentials_set_unix_user:
+ * @credentials: A #GCredentials.
+ * @uid: The UNIX user identifier to set.
+ * @error: Return location for error or %NULL.
*
- * Version of g_bus_own_name() using closures instead of callbacks for
- * easier binding in other languages.
+ * Tries to set the UNIX user identifier on @credentials. This method
+ * is only available on UNIX platforms.
*
- * Returns: an identifier (never 0) that an be used with
- * g_bus_unown_name() to stop owning the name.
+ * This operation can fail if #GCredentials is not supported on the
+ * OS or if the native credentials type does not contain information
+ * about the UNIX user. It can also fail if the OS does not allow the
+ * use of "spoofed" credentials.
+ *
+ * Returns: %TRUE if @uid was set, %FALSE if error is set.
* Since: 2.26
*/
/**
- * g_bus_unown_name:
- * @owner_id: an identifier obtained from g_bus_own_name()
+ * g_credentials_to_string:
+ * @credentials: A #GCredentials object.
*
- * Stops owning a name.
+ * Creates a human-readable textual representation of @credentials
+ * that can be used in logging and debug messages. The format of the
+ * returned string may change in future GLib release.
*
+ * Returns: A string that should be freed with g_free().
* Since: 2.26
*/
/**
- * g_bus_unwatch_name:
- * @watcher_id: An identifier obtained from g_bus_watch_name()
+ * g_data_input_stream_get_byte_order:
+ * @stream: a given #GDataInputStream.
*
- * Stops watching a name.
+ * Gets the byte order for the data input stream.
*
- * Since: 2.26
+ * Returns: the @stream's current #GDataStreamByteOrder.
*/
/**
- * g_bus_watch_name:
- * @bus_type: The type of bus to watch a name on.
- * @name: The name (well-known or unique) to watch.
- * @flags: Flags from the #GBusNameWatcherFlags enumeration.
- * @name_appeared_handler: (nullable): Handler to invoke when @name is known to exist or %NULL.
- * @name_vanished_handler: (nullable): Handler to invoke when @name is known to not exist or %NULL.
- * @user_data: User data to pass to handlers.
- * @user_data_free_func: (nullable): Function for freeing @user_data or %NULL.
- *
- * Starts watching @name on the bus specified by @bus_type and calls
- * @name_appeared_handler and @name_vanished_handler when the name is
- * known to have a owner respectively known to lose its
- * owner. Callbacks will be invoked in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread you are calling this function from.
- *
- * You are guaranteed that one of the handlers will be invoked after
- * calling this function. When you are done watching the name, just
- * call g_bus_unwatch_name() with the watcher id this function
- * returns.
- *
- * If the name vanishes or appears (for example the application owning
- * the name could restart), the handlers are also invoked. If the
- * #GDBusConnection that is used for watching the name disconnects, then
- * @name_vanished_handler is invoked since it is no longer
- * possible to access the name.
- *
- * Another guarantee is that invocations of @name_appeared_handler
- * and @name_vanished_handler are guaranteed to alternate; that
- * is, if @name_appeared_handler is invoked then you are
- * guaranteed that the next time one of the handlers is invoked, it
- * will be @name_vanished_handler. The reverse is also true.
+ * g_data_input_stream_get_newline_type:
+ * @stream: a given #GDataInputStream.
*
- * This behavior makes it very simple to write applications that want
- * to take action when a certain [name exists][gdbus-watching-names].
- * Basically, the application should create object proxies in
- * @name_appeared_handler and destroy them again (if any) in
- * @name_vanished_handler.
+ * Gets the current newline type for the @stream.
*
- * Returns: An identifier (never 0) that an be used with
- * g_bus_unwatch_name() to stop watching the name.
- * Since: 2.26
+ * Returns: #GDataStreamNewlineType for the given @stream.
*/
/**
- * g_bus_watch_name_on_connection:
- * @connection: A #GDBusConnection.
- * @name: The name (well-known or unique) to watch.
- * @flags: Flags from the #GBusNameWatcherFlags enumeration.
- * @name_appeared_handler: (nullable): Handler to invoke when @name is known to exist or %NULL.
- * @name_vanished_handler: (nullable): Handler to invoke when @name is known to not exist or %NULL.
- * @user_data: User data to pass to handlers.
- * @user_data_free_func: (nullable): Function for freeing @user_data or %NULL.
+ * g_data_input_stream_new:
+ * @base_stream: a #GInputStream.
*
- * Like g_bus_watch_name() but takes a #GDBusConnection instead of a
- * #GBusType.
+ * Creates a new data input stream for the @base_stream.
*
- * Returns: An identifier (never 0) that an be used with
- * g_bus_unwatch_name() to stop watching the name.
- * Since: 2.26
+ * Returns: a new #GDataInputStream.
*/
/**
- * g_bus_watch_name_on_connection_with_closures: (rename-to g_bus_watch_name_on_connection)
- * @connection: A #GDBusConnection.
- * @name: The name (well-known or unique) to watch.
- * @flags: Flags from the #GBusNameWatcherFlags enumeration.
- * @name_appeared_closure: (nullable): #GClosure to invoke when @name is known
- * to exist or %NULL.
- * @name_vanished_closure: (nullable): #GClosure to invoke when @name is known
- * to not exist or %NULL.
+ * g_data_input_stream_read_byte:
+ * @stream: a given #GDataInputStream.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting.
*
- * Version of g_bus_watch_name_on_connection() using closures instead of callbacks for
- * easier binding in other languages.
+ * Reads an unsigned 8-bit/1-byte value from @stream.
*
- * Returns: An identifier (never 0) that an be used with
- * g_bus_unwatch_name() to stop watching the name.
- * Since: 2.26
+ * Returns: an unsigned 8-bit/1-byte value read from the @stream or %0
+ * if an error occurred.
*/
/**
- * g_bus_watch_name_with_closures: (rename-to g_bus_watch_name)
- * @bus_type: The type of bus to watch a name on.
- * @name: The name (well-known or unique) to watch.
- * @flags: Flags from the #GBusNameWatcherFlags enumeration.
- * @name_appeared_closure: (nullable): #GClosure to invoke when @name is known
- * to exist or %NULL.
- * @name_vanished_closure: (nullable): #GClosure to invoke when @name is known
- * to not exist or %NULL.
+ * g_data_input_stream_read_int16:
+ * @stream: a given #GDataInputStream.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting.
*
- * Version of g_bus_watch_name() using closures instead of callbacks for
- * easier binding in other languages.
+ * Reads a 16-bit/2-byte value from @stream.
*
- * Returns: An identifier (never 0) that an be used with
- * g_bus_unwatch_name() to stop watching the name.
- * Since: 2.26
+ * In order to get the correct byte order for this read operation,
+ * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
+ *
+ * Returns: a signed 16-bit/2-byte value read from @stream or %0 if
+ * an error occurred.
*/
/**
- * g_bytes_icon_get_bytes:
- * @icon: a #GIcon.
+ * g_data_input_stream_read_int32:
+ * @stream: a given #GDataInputStream.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting.
*
- * Gets the #GBytes associated with the given @icon.
+ * Reads a signed 32-bit/4-byte value from @stream.
*
- * Returns: (transfer none): a #GBytes, or %NULL.
- * Since: 2.38
- */
-
-
-/**
- * g_bytes_icon_new:
- * @bytes: a #GBytes.
+ * In order to get the correct byte order for this read operation,
+ * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
*
- * Creates a new icon for a bytes.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: (transfer full) (type GBytesIcon): a #GIcon for the given
- * @bytes, or %NULL on error.
- * Since: 2.38
+ * Returns: a signed 32-bit/4-byte value read from the @stream or %0 if
+ * an error occurred.
*/
/**
- * g_cancellable_cancel:
- * @cancellable: (nullable): a #GCancellable object.
+ * g_data_input_stream_read_int64:
+ * @stream: a given #GDataInputStream.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting.
*
- * Will set @cancellable to cancelled, and will emit the
- * #GCancellable::cancelled signal. (However, see the warning about
- * race conditions in the documentation for that signal if you are
- * planning to connect to it.)
+ * Reads a 64-bit/8-byte value from @stream.
*
- * 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.
+ * In order to get the correct byte order for this read operation,
+ * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
*
- * If @cancellable is %NULL, this function returns immediately for convenience.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * 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
- * the application returns to the main loop.
+ * Returns: a signed 64-bit/8-byte value read from @stream or %0 if
+ * an error occurred.
*/
/**
- * g_cancellable_connect:
- * @cancellable: A #GCancellable.
- * @callback: The #GCallback to connect.
- * @data: Data to pass to @callback.
- * @data_destroy_func: (nullable): Free function for @data or %NULL.
- *
- * Convenience function to connect to the #GCancellable::cancelled
- * signal. Also handles the race condition that may happen
- * if the cancellable is cancelled right before connecting.
- *
- * @callback is called at most once, either directly at the
- * time of the connect if @cancellable is already cancelled,
- * or when @cancellable is cancelled in some thread.
- *
- * @data_destroy_func will be called when the handler is
- * disconnected, or immediately if the cancellable is already
- * cancelled.
+ * g_data_input_stream_read_line:
+ * @stream: a given #GDataInputStream.
+ * @length: (out) (optional): a #gsize to get the length of the data read in.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting.
*
- * See #GCancellable::cancelled for details on how to use this.
+ * Reads a line from the data input stream. Note that no encoding
+ * checks or conversion is performed; the input is not guaranteed to
+ * be UTF-8, and may in fact have embedded NUL characters.
*
- * Since GLib 2.40, the lock protecting @cancellable is not held when
- * @callback is invoked. This lifts a restriction in place for
- * earlier GLib versions which now makes it easier to write cleanup
- * code that unconditionally invokes e.g. g_cancellable_cancel().
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: The id of the signal handler or 0 if @cancellable has already
- * been cancelled.
- * Since: 2.22
+ * Returns: (nullable) (transfer full) (array zero-terminated=1) (element-type guint8):
+ * a NUL terminated byte array with the line that was read in
+ * (without the newlines). Set @length to a #gsize to get the length
+ * of the read line. On an error, it will return %NULL and @error
+ * will be set. If there's no content to read, it will still return
+ * %NULL, but @error won't be set.
*/
/**
- * g_cancellable_disconnect:
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @handler_id: Handler id of the handler to be disconnected, or `0`.
- *
- * Disconnects a handler from a cancellable instance similar to
- * g_signal_handler_disconnect(). Additionally, in the event that a
- * signal handler is currently running, this call will block until the
- * handler has finished. Calling this function from a
- * #GCancellable::cancelled signal handler will therefore result in a
- * deadlock.
+ * g_data_input_stream_read_line_async:
+ * @stream: a given #GDataInputStream.
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied.
+ * @user_data: (closure): the data to pass to callback function.
*
- * This avoids a race condition where a thread cancels at the
- * same time as the cancellable operation is finished and the
- * signal handler is removed. See #GCancellable::cancelled for
- * details on how to use this.
+ * The asynchronous version of g_data_input_stream_read_line(). It is
+ * an error to have two outstanding calls to this function.
*
- * If @cancellable is %NULL or @handler_id is `0` this function does
- * nothing.
+ * When the operation is finished, @callback will be called. You
+ * can then call g_data_input_stream_read_line_finish() to get
+ * the result of the operation.
*
- * Since: 2.22
+ * Since: 2.20
*/
/**
- * g_cancellable_get_current:
+ * g_data_input_stream_read_line_finish:
+ * @stream: a given #GDataInputStream.
+ * @result: the #GAsyncResult that was provided to the callback.
+ * @length: (out) (optional): a #gsize to get the length of the data read in.
+ * @error: #GError for error reporting.
*
- * Gets the top cancellable from the stack.
+ * Finish an asynchronous call started by
+ * g_data_input_stream_read_line_async(). Note the warning about
+ * string encoding in g_data_input_stream_read_line() applies here as
+ * well.
*
- * Returns: (nullable) (transfer none): a #GCancellable from the top
- * of the stack, or %NULL if the stack is empty.
+ * Returns: (nullable) (transfer full) (array zero-terminated=1) (element-type guint8):
+ * a NUL-terminated byte array with the line that was read in
+ * (without the newlines). Set @length to a #gsize to get the length
+ * of the read line. On an error, it will return %NULL and @error
+ * will be set. If there's no content to read, it will still return
+ * %NULL, but @error won't be set.
+ * Since: 2.20
*/
/**
- * g_cancellable_get_fd:
- * @cancellable: a #GCancellable.
- *
- * Gets the file descriptor for a cancellable job. This can be used to
- * implement cancellable operations on Unix systems. The returned fd will
- * turn readable when @cancellable is cancelled.
- *
- * You are not supposed to read from the fd yourself, just check for
- * readable status. Reading to unset the readable status is done
- * with g_cancellable_reset().
- *
- * After a successful return from this function, you should use
- * g_cancellable_release_fd() to free up resources allocated for
- * the returned file descriptor.
+ * g_data_input_stream_read_line_finish_utf8:
+ * @stream: a given #GDataInputStream.
+ * @result: the #GAsyncResult that was provided to the callback.
+ * @length: (out) (optional): a #gsize to get the length of the data read in.
+ * @error: #GError for error reporting.
*
- * See also g_cancellable_make_pollfd().
+ * Finish an asynchronous call started by
+ * g_data_input_stream_read_line_async().
*
- * Returns: A valid file descriptor. %-1 if the file descriptor
- * is not supported, or on errors.
+ * Returns: (nullable) (transfer full): a string with the line that
+ * was read in (without the newlines). Set @length to a #gsize to
+ * get the length of the read line. On an error, it will return
+ * %NULL and @error will be set. For UTF-8 conversion errors, the set
+ * error domain is %G_CONVERT_ERROR. If there's no content to read,
+ * it will still return %NULL, but @error won't be set.
+ * Since: 2.30
*/
/**
- * g_cancellable_is_cancelled:
- * @cancellable: (nullable): a #GCancellable or %NULL
+ * g_data_input_stream_read_line_utf8:
+ * @stream: a given #GDataInputStream.
+ * @length: (out) (optional): a #gsize to get the length of the data read in.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting.
*
- * Checks if a cancellable job has been cancelled.
+ * Reads a UTF-8 encoded line from the data input stream.
*
- * Returns: %TRUE if @cancellable is cancelled,
- * FALSE if called with %NULL or if item is not cancelled.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * Returns: (nullable) (transfer full): a NUL terminated UTF-8 string
+ * with the line that was read in (without the newlines). Set
+ * @length to a #gsize to get the length of the read line. On an
+ * error, it will return %NULL and @error will be set. For UTF-8
+ * conversion errors, the set error domain is %G_CONVERT_ERROR. If
+ * there's no content to read, it will still return %NULL, but @error
+ * won't be set.
+ * Since: 2.30
*/
/**
- * g_cancellable_make_pollfd:
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @pollfd: a pointer to a #GPollFD
- *
- * Creates a #GPollFD corresponding to @cancellable; this can be passed
- * to g_poll() and used to poll for cancellation. This is useful both
- * for unix systems without a native poll and for portability to
- * windows.
- *
- * When this function returns %TRUE, you should use
- * g_cancellable_release_fd() to free up resources allocated for the
- * @pollfd. After a %FALSE return, do not call g_cancellable_release_fd().
+ * g_data_input_stream_read_uint16:
+ * @stream: a given #GDataInputStream.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting.
*
- * If this function returns %FALSE, either no @cancellable was given or
- * resource limits prevent this function from allocating the necessary
- * structures for polling. (On Linux, you will likely have reached
- * the maximum number of file descriptors.) The suggested way to handle
- * these cases is to ignore the @cancellable.
+ * Reads an unsigned 16-bit/2-byte value from @stream.
*
- * You are not supposed to read from the fd yourself, just check for
- * readable status. Reading to unset the readable status is done
- * with g_cancellable_reset().
+ * In order to get the correct byte order for this read operation,
+ * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
*
- * Returns: %TRUE if @pollfd was successfully initialized, %FALSE on
- * failure to prepare the cancellable.
- * Since: 2.22
+ * Returns: an unsigned 16-bit/2-byte value read from the @stream or %0 if
+ * an error occurred.
*/
/**
- * g_cancellable_new:
+ * g_data_input_stream_read_uint32:
+ * @stream: a given #GDataInputStream.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting.
*
- * Creates a new #GCancellable object.
+ * Reads an unsigned 32-bit/4-byte value from @stream.
*
- * Applications that want to start one or more operations
- * that should be cancellable should create a #GCancellable
- * and pass it to the operations.
+ * In order to get the correct byte order for this read operation,
+ * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
*
- * One #GCancellable can be used in multiple consecutive
- * operations or in multiple concurrent operations.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: a #GCancellable.
+ * Returns: an unsigned 32-bit/4-byte value read from the @stream or %0 if
+ * an error occurred.
*/
/**
- * g_cancellable_pop_current:
- * @cancellable: a #GCancellable object
+ * g_data_input_stream_read_uint64:
+ * @stream: a given #GDataInputStream.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting.
*
- * Pops @cancellable off the cancellable stack (verifying that @cancellable
- * is on the top of the stack).
+ * Reads an unsigned 64-bit/8-byte value from @stream.
+ *
+ * In order to get the correct byte order for this read operation,
+ * see g_data_input_stream_get_byte_order().
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * Returns: an unsigned 64-bit/8-byte read from @stream or %0 if
+ * an error occurred.
*/
/**
- * g_cancellable_push_current:
- * @cancellable: a #GCancellable object
+ * g_data_input_stream_read_until:
+ * @stream: a given #GDataInputStream.
+ * @stop_chars: characters to terminate the read.
+ * @length: (out) (optional): a #gsize to get the length of the data read in.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting.
*
- * Pushes @cancellable onto the cancellable stack. The current
- * cancellable can then be received using g_cancellable_get_current().
+ * Reads a string from the data input stream, up to the first
+ * occurrence of any of the stop characters.
*
- * This is useful when implementing cancellable operations in
- * code that does not allow you to pass down the cancellable object.
+ * Note that, in contrast to g_data_input_stream_read_until_async(),
+ * this function consumes the stop character that it finds.
*
- * This is typically called automatically by e.g. #GFile operations,
- * so you rarely have to call this yourself.
+ * Don't use this function in new code. Its functionality is
+ * inconsistent with g_data_input_stream_read_until_async(). Both
+ * functions will be marked as deprecated in a future release. Use
+ * g_data_input_stream_read_upto() instead, but note that that function
+ * does not consume the stop character.
+ *
+ * Returns: (transfer full): a string with the data that was read
+ * before encountering any of the stop characters. Set @length to
+ * a #gsize to get the length of the string. This function will
+ * return %NULL on an error.
+ * Deprecated: 2.56: Use g_data_input_stream_read_upto() instead, which has more
+ * consistent behaviour regarding the stop character.
*/
/**
- * g_cancellable_release_fd:
- * @cancellable: a #GCancellable
+ * g_data_input_stream_read_until_async:
+ * @stream: a given #GDataInputStream.
+ * @stop_chars: characters to terminate the read.
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied.
+ * @user_data: (closure): the data to pass to callback function.
*
- * Releases a resources previously allocated by g_cancellable_get_fd()
- * or g_cancellable_make_pollfd().
+ * The asynchronous version of g_data_input_stream_read_until().
+ * It is an error to have two outstanding calls to this function.
*
- * For compatibility reasons with older releases, calling this function
- * is not strictly required, the resources will be automatically freed
- * when the @cancellable is finalized. However, the @cancellable will
- * block scarce file descriptors until it is finalized if this function
- * is not called. This can cause the application to run out of file
- * descriptors when many #GCancellables are used at the same time.
+ * Note that, in contrast to g_data_input_stream_read_until(),
+ * this function does not consume the stop character that it finds. You
+ * must read it for yourself.
*
- * Since: 2.22
+ * When the operation is finished, @callback will be called. You
+ * can then call g_data_input_stream_read_until_finish() to get
+ * the result of the operation.
+ *
+ * Don't use this function in new code. Its functionality is
+ * inconsistent with g_data_input_stream_read_until(). Both functions
+ * will be marked as deprecated in a future release. Use
+ * g_data_input_stream_read_upto_async() instead.
+ *
+ * Since: 2.20
+ * Deprecated: 2.56: Use g_data_input_stream_read_upto_async() instead, which
+ * has more consistent behaviour regarding the stop character.
*/
/**
- * g_cancellable_reset:
- * @cancellable: a #GCancellable object.
- *
- * Resets @cancellable to its uncancelled state.
+ * g_data_input_stream_read_until_finish:
+ * @stream: a given #GDataInputStream.
+ * @result: the #GAsyncResult that was provided to the callback.
+ * @length: (out) (optional): a #gsize to get the length of the data read in.
+ * @error: #GError for error reporting.
*
- * If cancellable is currently in use by any cancellable operation
- * then the behavior of this function is undefined.
+ * Finish an asynchronous call started by
+ * g_data_input_stream_read_until_async().
*
- * 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.
+ * Since: 2.20
+ * Returns: (transfer full): a string with the data that was read
+ * before encountering any of the stop characters. Set @length to
+ * a #gsize to get the length of the string. This function will
+ * return %NULL on an error.
+ * Deprecated: 2.56: Use g_data_input_stream_read_upto_finish() instead, which
+ * has more consistent behaviour regarding the stop character.
*/
/**
- * g_cancellable_set_error_if_cancelled:
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @error: #GError to append error state to
+ * g_data_input_stream_read_upto:
+ * @stream: a #GDataInputStream
+ * @stop_chars: characters to terminate the read
+ * @stop_chars_len: length of @stop_chars. May be -1 if @stop_chars is
+ * nul-terminated
+ * @length: (out) (optional): a #gsize to get the length of the data read in
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @error: #GError for error reporting
*
- * If the @cancellable is cancelled, sets the error to notify
- * that the operation was cancelled.
+ * Reads a string from the data input stream, up to the first
+ * occurrence of any of the stop characters.
*
- * Returns: %TRUE if @cancellable was cancelled, %FALSE if it was not
+ * In contrast to g_data_input_stream_read_until(), this function
+ * does not consume the stop character. You have to use
+ * g_data_input_stream_read_byte() to get it before calling
+ * g_data_input_stream_read_upto() again.
+ *
+ * Note that @stop_chars may contain '\0' if @stop_chars_len is
+ * specified.
+ *
+ * The returned string will always be nul-terminated on success.
+ *
+ * Returns: (transfer full): a string with the data that was read
+ * before encountering any of the stop characters. Set @length to
+ * a #gsize to get the length of the string. This function will
+ * return %NULL on an error
+ * Since: 2.26
*/
/**
- * g_cancellable_source_new: (skip)
- * @cancellable: (nullable): a #GCancellable, or %NULL
+ * g_data_input_stream_read_upto_async:
+ * @stream: a #GDataInputStream
+ * @stop_chars: characters to terminate the read
+ * @stop_chars_len: length of @stop_chars. May be -1 if @stop_chars is
+ * nul-terminated
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Creates a source that triggers if @cancellable is cancelled and
- * calls its callback of type #GCancellableSourceFunc. This is
- * primarily useful for attaching to another (non-cancellable) source
- * with g_source_add_child_source() to add cancellability to it.
+ * The asynchronous version of g_data_input_stream_read_upto().
+ * It is an error to have two outstanding calls to this function.
*
- * For convenience, you can call this with a %NULL #GCancellable,
- * in which case the source will never trigger.
+ * In contrast to g_data_input_stream_read_until(), this function
+ * does not consume the stop character. You have to use
+ * g_data_input_stream_read_byte() to get it before calling
+ * g_data_input_stream_read_upto() again.
*
- * The new #GSource will hold a reference to the #GCancellable.
+ * Note that @stop_chars may contain '\0' if @stop_chars_len is
+ * specified.
*
- * Returns: (transfer full): the new #GSource.
- * Since: 2.28
+ * When the operation is finished, @callback will be called. You
+ * can then call g_data_input_stream_read_upto_finish() to get
+ * the result of the operation.
+ *
+ * Since: 2.26
*/
/**
- * g_charset_converter_get_num_fallbacks:
- * @converter: a #GCharsetConverter
+ * g_data_input_stream_read_upto_finish:
+ * @stream: a #GDataInputStream
+ * @result: the #GAsyncResult that was provided to the callback
+ * @length: (out) (optional): a #gsize to get the length of the data read in
+ * @error: #GError for error reporting
*
- * Gets the number of fallbacks that @converter has applied so far.
+ * Finish an asynchronous call started by
+ * g_data_input_stream_read_upto_async().
*
- * Returns: the number of fallbacks that @converter has applied
+ * Note that this function does not consume the stop character. You
+ * have to use g_data_input_stream_read_byte() to get it before calling
+ * g_data_input_stream_read_upto_async() again.
+ *
+ * The returned string will always be nul-terminated on success.
+ *
+ * Returns: (transfer full): a string with the data that was read
+ * before encountering any of the stop characters. Set @length to
+ * a #gsize to get the length of the string. This function will
+ * return %NULL on an error.
* Since: 2.24
*/
/**
- * g_charset_converter_get_use_fallback:
- * @converter: a #GCharsetConverter
- *
- * Gets the #GCharsetConverter:use-fallback property.
+ * g_data_input_stream_set_byte_order:
+ * @stream: a given #GDataInputStream.
+ * @order: a #GDataStreamByteOrder to set.
*
- * Returns: %TRUE if fallbacks are used by @converter
- * Since: 2.24
+ * This function sets the byte order for the given @stream. All subsequent
+ * reads from the @stream will be read in the given @order.
*/
/**
- * g_charset_converter_new:
- * @to_charset: destination charset
- * @from_charset: source charset
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_data_input_stream_set_newline_type:
+ * @stream: a #GDataInputStream.
+ * @type: the type of new line return as #GDataStreamNewlineType.
*
- * Creates a new #GCharsetConverter.
+ * Sets the newline type for the @stream.
*
- * Returns: a new #GCharsetConverter or %NULL on error.
- * Since: 2.24
+ * Note that using G_DATA_STREAM_NEWLINE_TYPE_ANY is slightly unsafe. If a read
+ * chunk ends in "CR" we must read an additional byte to know if this is "CR" or
+ * "CR LF", and this might block if there is no more data available.
*/
/**
- * g_charset_converter_set_use_fallback:
- * @converter: a #GCharsetConverter
- * @use_fallback: %TRUE to use fallbacks
+ * g_data_output_stream_get_byte_order:
+ * @stream: a #GDataOutputStream.
*
- * Sets the #GCharsetConverter:use-fallback property.
+ * Gets the byte order for the stream.
*
- * Since: 2.24
+ * Returns: the #GDataStreamByteOrder for the @stream.
*/
/**
- * g_content_type_can_be_executable:
- * @type: a content type string
+ * g_data_output_stream_new:
+ * @base_stream: a #GOutputStream.
*
- * Checks if a content type can be executable. Note that for instance
- * things like text files can be executables (i.e. scripts and batch files).
+ * Creates a new data output stream for @base_stream.
*
- * Returns: %TRUE if the file type corresponds to a type that
- * can be executable, %FALSE otherwise.
+ * Returns: #GDataOutputStream.
*/
/**
- * g_content_type_equals:
- * @type1: a content type string
- * @type2: a content type string
+ * g_data_output_stream_put_byte:
+ * @stream: a #GDataOutputStream.
+ * @data: a #guchar.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError, %NULL to ignore.
*
- * Compares two content types for equality.
+ * Puts a byte into the output stream.
*
- * Returns: %TRUE if the two strings are identical or equivalent,
- * %FALSE otherwise.
+ * Returns: %TRUE if @data was successfully added to the @stream.
*/
/**
- * g_content_type_from_mime_type:
- * @mime_type: a mime type string
+ * g_data_output_stream_put_int16:
+ * @stream: a #GDataOutputStream.
+ * @data: a #gint16.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError, %NULL to ignore.
*
- * Tries to find a content type based on the mime type name.
+ * Puts a signed 16-bit integer into the output stream.
*
- * Returns: (nullable): Newly allocated string with content type or
- * %NULL. Free with g_free()
- * Since: 2.18
+ * Returns: %TRUE if @data was successfully added to the @stream.
*/
/**
- * g_content_type_get_description:
- * @type: a content type string
+ * g_data_output_stream_put_int32:
+ * @stream: a #GDataOutputStream.
+ * @data: a #gint32.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError, %NULL to ignore.
*
- * Gets the human readable description of the content type.
+ * Puts a signed 32-bit integer into the output stream.
*
- * Returns: a short description of the content type @type. Free the
- * returned string with g_free()
+ * Returns: %TRUE if @data was successfully added to the @stream.
*/
/**
- * g_content_type_get_generic_icon_name:
- * @type: a content type string
- *
- * Gets the generic icon name for a content type.
+ * g_data_output_stream_put_int64:
+ * @stream: a #GDataOutputStream.
+ * @data: a #gint64.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError, %NULL to ignore.
*
- * See the
- * [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
- * specification for more on the generic icon name.
+ * Puts a signed 64-bit integer into the stream.
*
- * Returns: (nullable): the registered generic icon name for the given @type,
- * or %NULL if unknown. Free with g_free()
- * Since: 2.34
+ * Returns: %TRUE if @data was successfully added to the @stream.
*/
/**
- * g_content_type_get_icon:
- * @type: a content type string
+ * g_data_output_stream_put_string:
+ * @stream: a #GDataOutputStream.
+ * @str: a string.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError, %NULL to ignore.
*
- * Gets the icon for a content type.
+ * Puts a string into the output stream.
*
- * Returns: (transfer full): #GIcon corresponding to the content type. Free the returned
- * object with g_object_unref()
+ * Returns: %TRUE if @string was successfully added to the @stream.
*/
/**
- * g_content_type_get_mime_type:
- * @type: a content type string
+ * g_data_output_stream_put_uint16:
+ * @stream: a #GDataOutputStream.
+ * @data: a #guint16.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError, %NULL to ignore.
*
- * Gets the mime type for the content type, if one is registered.
+ * Puts an unsigned 16-bit integer into the output stream.
*
- * Returns: (nullable) (transfer full): the registered mime type for the
- * given @type, or %NULL if unknown; free with g_free().
+ * Returns: %TRUE if @data was successfully added to the @stream.
*/
/**
- * g_content_type_get_symbolic_icon:
- * @type: a content type string
+ * g_data_output_stream_put_uint32:
+ * @stream: a #GDataOutputStream.
+ * @data: a #guint32.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError, %NULL to ignore.
*
- * Gets the symbolic icon for a content type.
+ * Puts an unsigned 32-bit integer into the stream.
*
- * Returns: (transfer full): symbolic #GIcon corresponding to the content type.
- * Free the returned object with g_object_unref()
- * Since: 2.34
+ * Returns: %TRUE if @data was successfully added to the @stream.
*/
/**
- * g_content_type_guess:
- * @filename: (nullable): a string, or %NULL
- * @data: (nullable) (array length=data_size): a stream of data, or %NULL
- * @data_size: the size of @data
- * @result_uncertain: (out) (optional): return location for the certainty
- * of the result, or %NULL
+ * g_data_output_stream_put_uint64:
+ * @stream: a #GDataOutputStream.
+ * @data: a #guint64.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError, %NULL to ignore.
*
- * Guesses the content type based on example data. If the function is
- * uncertain, @result_uncertain will be set to %TRUE. Either @filename
- * or @data may be %NULL, in which case the guess will be based solely
- * on the other argument.
+ * Puts an unsigned 64-bit integer into the stream.
*
- * Returns: a string indicating a guessed content type for the
- * given data. Free with g_free()
+ * Returns: %TRUE if @data was successfully added to the @stream.
*/
/**
- * g_content_type_guess_for_tree:
- * @root: the root of the tree to guess a type for
- *
- * Tries to guess the type of the tree with root @root, by
- * looking at the files it contains. The result is an array
- * of content types, with the best guess coming first.
- *
- * The types returned all have the form x-content/foo, e.g.
- * x-content/audio-cdda (for audio CDs) or x-content/image-dcf
- * (for a camera memory card). See the
- * [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
- * specification for more on x-content types.
- *
- * This function is useful in the implementation of
- * g_mount_guess_content_type().
+ * g_data_output_stream_set_byte_order:
+ * @stream: a #GDataOutputStream.
+ * @order: a %GDataStreamByteOrder.
*
- * Returns: (transfer full) (array zero-terminated=1): an %NULL-terminated
- * array of zero or more content types. Free with g_strfreev()
- * Since: 2.18
+ * Sets the byte order of the data output stream to @order.
*/
/**
- * g_content_type_is_a:
- * @type: a content type string
- * @supertype: a content type string
+ * g_datagram_based_condition_check:
+ * @datagram_based: a #GDatagramBased
+ * @condition: a #GIOCondition mask to check
*
- * Determines if @type is a subset of @supertype.
+ * Checks on the readiness of @datagram_based to perform operations. The
+ * operations specified in @condition are checked for and masked against the
+ * currently-satisfied conditions on @datagram_based. The result is returned.
*
- * Returns: %TRUE if @type is a kind of @supertype,
- * %FALSE otherwise.
- */
-
-
-/**
- * g_content_type_is_mime_type:
- * @type: a content type string
- * @mime_type: a mime type string
+ * %G_IO_IN will be set in the return value if data is available to read with
+ * g_datagram_based_receive_messages(), or if the connection is closed remotely
+ * (EOS); and if the datagram_based has not been closed locally using some
+ * implementation-specific method (such as g_socket_close() or
+ * g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket).
*
- * Determines if @type is a subset of @mime_type.
- * Convenience wrapper around g_content_type_is_a().
+ * If the connection is shut down or closed (by calling g_socket_close() or
+ * g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket, for
+ * example), all calls to this function will return %G_IO_ERROR_CLOSED.
*
- * Returns: %TRUE if @type is a kind of @mime_type,
- * %FALSE otherwise.
- * Since: 2.52
+ * %G_IO_OUT will be set if it is expected that at least one byte can be sent
+ * using g_datagram_based_send_messages() without blocking. It will not be set
+ * if the datagram_based has been closed locally.
+ *
+ * %G_IO_HUP will be set if the connection has been closed locally.
+ *
+ * %G_IO_ERR will be set if there was an asynchronous error in transmitting data
+ * previously enqueued using g_datagram_based_send_messages().
+ *
+ * Note that on Windows, it is possible for an operation to return
+ * %G_IO_ERROR_WOULD_BLOCK even immediately after
+ * g_datagram_based_condition_check() has claimed that the #GDatagramBased is
+ * ready for writing. Rather than calling g_datagram_based_condition_check() and
+ * then writing to the #GDatagramBased if it succeeds, it is generally better to
+ * simply try writing right away, and try again later if the initial attempt
+ * returns %G_IO_ERROR_WOULD_BLOCK.
+ *
+ * It is meaningless to specify %G_IO_ERR or %G_IO_HUP in @condition; these
+ * conditions will always be set in the output if they are true. Apart from
+ * these flags, the output is guaranteed to be masked by @condition.
+ *
+ * This call never blocks.
+ *
+ * Returns: the #GIOCondition mask of the current state
+ * Since: 2.48
*/
/**
- * g_content_type_is_unknown:
- * @type: a content type string
+ * g_datagram_based_condition_wait:
+ * @datagram_based: a #GDatagramBased
+ * @condition: a #GIOCondition mask to wait for
+ * @timeout: the maximum time (in microseconds) to wait, 0 to not block, or -1
+ * to block indefinitely
+ * @cancellable: (nullable): a #GCancellable
+ * @error: return location for a #GError
*
- * Checks if the content type is the generic "unknown" type.
- * On UNIX this is the "application/octet-stream" mimetype,
- * while on win32 it is "*" and on OSX it is a dynamic type
- * or octet-stream.
+ * Waits for up to @timeout microseconds for condition to become true on
+ * @datagram_based. If the condition is met, %TRUE is returned.
*
- * Returns: %TRUE if the type is the unknown type.
+ * If @cancellable is cancelled before the condition is met, or if @timeout is
+ * reached before the condition is met, then %FALSE is returned and @error is
+ * set appropriately (%G_IO_ERROR_CANCELLED or %G_IO_ERROR_TIMED_OUT).
+ *
+ * Returns: %TRUE if the condition was met, %FALSE otherwise
+ * Since: 2.48
*/
/**
- * g_content_types_get_registered:
+ * g_datagram_based_create_source:
+ * @datagram_based: a #GDatagramBased
+ * @condition: a #GIOCondition mask to monitor
+ * @cancellable: (nullable): a #GCancellable
*
- * Gets a list of strings containing all the registered content types
- * known to the system. The list and its data should be freed using
- * g_list_free_full (list, g_free).
+ * Creates a #GSource that can be attached to a #GMainContext to monitor for
+ * the availability of the specified @condition on the #GDatagramBased. The
+ * #GSource keeps a reference to the @datagram_based.
*
- * Returns: (element-type utf8) (transfer full): list of the registered
- * content types
+ * The callback on the source is of the #GDatagramBasedSourceFunc type.
+ *
+ * It is meaningless to specify %G_IO_ERR or %G_IO_HUP in @condition; these
+ * conditions will always be reported in the callback if they are true.
+ *
+ * If non-%NULL, @cancellable can be used to cancel the source, which will
+ * cause the source to trigger, reporting the current condition (which is
+ * likely 0 unless cancellation happened at the same time as a condition
+ * change). You can check for this in the callback using
+ * g_cancellable_is_cancelled().
+ *
+ * Returns: (transfer full): a newly allocated #GSource
+ * Since: 2.48
*/
/**
- * g_converter_convert:
- * @converter: a #GConverter.
- * @inbuf: (array length=inbuf_size) (element-type guint8): the buffer
- * containing the data to convert.
- * @inbuf_size: the number of bytes in @inbuf
- * @outbuf: (element-type guint8) (array length=outbuf_size): a buffer to write
- * converted data in.
- * @outbuf_size: the number of bytes in @outbuf, must be at least one
- * @flags: a #GConverterFlags controlling the conversion details
- * @bytes_read: (out): will be set to the number of bytes read from @inbuf on success
- * @bytes_written: (out): will be set to the number of bytes written to @outbuf on success
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * This is the main operation used when converting data. It is to be called
- * multiple times in a loop, and each time it will do some work, i.e.
- * producing some output (in @outbuf) or consuming some input (from @inbuf) or
- * both. If its not possible to do any work an error is returned.
- *
- * Note that a single call may not consume all input (or any input at all).
- * Also a call may produce output even if given no input, due to state stored
- * in the converter producing output.
+ * g_datagram_based_receive_messages:
+ * @datagram_based: a #GDatagramBased
+ * @messages: (array length=num_messages): an array of #GInputMessage structs
+ * @num_messages: the number of elements in @messages
+ * @flags: an int containing #GSocketMsgFlags flags for the overall operation
+ * @timeout: the maximum time (in microseconds) to wait, 0 to not block, or -1
+ * to block indefinitely
+ * @cancellable: (nullable): a %GCancellable
+ * @error: return location for a #GError
*
- * If any data was either produced or consumed, and then an error happens, then
- * only the successful conversion is reported and the error is returned on the
- * next call.
+ * Receive one or more data messages from @datagram_based in one go.
*
- * A full conversion loop involves calling this method repeatedly, each time
- * giving it new input and space output space. When there is no more input
- * data after the data in @inbuf, the flag %G_CONVERTER_INPUT_AT_END must be set.
- * The loop will be (unless some error happens) returning %G_CONVERTER_CONVERTED
- * each time until all data is consumed and all output is produced, then
- * %G_CONVERTER_FINISHED is returned instead. Note, that %G_CONVERTER_FINISHED
- * may be returned even if %G_CONVERTER_INPUT_AT_END is not set, for instance
- * in a decompression converter where the end of data is detectable from the
- * data (and there might even be other data after the end of the compressed data).
+ * @messages must point to an array of #GInputMessage structs and
+ * @num_messages must be the length of this array. Each #GInputMessage
+ * contains a pointer to an array of #GInputVector structs describing the
+ * buffers that the data received in each message will be written to.
*
- * When some data has successfully been converted @bytes_read and is set to
- * the number of bytes read from @inbuf, and @bytes_written is set to indicate
- * how many bytes was written to @outbuf. If there are more data to output
- * or consume (i.e. unless the %G_CONVERTER_INPUT_AT_END is specified) then
- * %G_CONVERTER_CONVERTED is returned, and if no more data is to be output
- * then %G_CONVERTER_FINISHED is returned.
+ * @flags modify how all messages are received. 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. These
+ * flags affect the overall receive operation. Flags affecting individual
+ * messages are returned in #GInputMessage.flags.
*
- * On error %G_CONVERTER_ERROR is returned and @error is set accordingly.
- * Some errors need special handling:
+ * The other members of #GInputMessage are treated as described in its
+ * documentation.
*
- * %G_IO_ERROR_NO_SPACE is returned if there is not enough space
- * to write the resulting converted data, the application should
- * call the function again with a larger @outbuf to continue.
+ * If @timeout is negative the call will block until @num_messages have been
+ * received, the connection is closed remotely (EOS), @cancellable is cancelled,
+ * or an error occurs.
*
- * %G_IO_ERROR_PARTIAL_INPUT is returned if there is not enough
- * input to fully determine what the conversion should produce,
- * and the %G_CONVERTER_INPUT_AT_END flag is not set. This happens for
- * example with an incomplete multibyte sequence when converting text,
- * or when a regexp matches up to the end of the input (and may match
- * further input). It may also happen when @inbuf_size is zero and
- * there is no more data to produce.
+ * If @timeout is 0 the call will return up to @num_messages without blocking,
+ * or %G_IO_ERROR_WOULD_BLOCK if no messages are queued in the operating system
+ * to be received.
*
- * When this happens the application should read more input and then
- * call the function again. If further input shows that there is no
- * more data call the function again with the same data but with
- * the %G_CONVERTER_INPUT_AT_END flag set. This may cause the conversion
- * to finish as e.g. in the regexp match case (or, to fail again with
- * %G_IO_ERROR_PARTIAL_INPUT in e.g. a charset conversion where the
- * input is actually partial).
+ * If @timeout is positive the call will block on the same conditions as if
+ * @timeout were negative. If the timeout is reached
+ * before any messages are received, %G_IO_ERROR_TIMED_OUT is returned,
+ * otherwise it will return the number of messages received before timing out.
+ * (Note: This is effectively the behaviour of `MSG_WAITFORONE` with
+ * recvmmsg().)
*
- * After g_converter_convert() has returned %G_CONVERTER_FINISHED the
- * converter object is in an invalid state where its not allowed
- * to call g_converter_convert() anymore. At this time you can only
- * free the object or call g_converter_reset() to reset it to the
- * initial state.
+ * To be notified when messages are available, wait for the %G_IO_IN condition.
+ * Note though that you may still receive %G_IO_ERROR_WOULD_BLOCK from
+ * g_datagram_based_receive_messages() even if you were previously notified of a
+ * %G_IO_IN condition.
*
- * If the flag %G_CONVERTER_FLUSH is set then conversion is modified
- * to try to write out all internal state to the output. The application
- * has to call the function multiple times with the flag set, and when
- * the available input has been consumed and all internal state has
- * been produced then %G_CONVERTER_FLUSHED (or %G_CONVERTER_FINISHED if
- * really at the end) is returned instead of %G_CONVERTER_CONVERTED.
- * This is somewhat similar to what happens at the end of the input stream,
- * but done in the middle of the data.
+ * If the remote peer closes the connection, any messages queued in the
+ * underlying receive buffer will be returned, and subsequent calls to
+ * g_datagram_based_receive_messages() will return 0 (with no error set).
*
- * This has different meanings for different conversions. For instance
- * in a compression converter it would mean that we flush all the
- * compression state into output such that if you uncompress the
- * compressed data you get back all the input data. Doing this may
- * make the final file larger due to padding though. Another example
- * is a regexp conversion, where if you at the end of the flushed data
- * have a match, but there is also a potential longer match. In the
- * non-flushed case we would ask for more input, but when flushing we
- * treat this as the end of input and do the match.
+ * If the connection is shut down or closed (by calling g_socket_close() or
+ * g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket, for
+ * example), all calls to this function will return %G_IO_ERROR_CLOSED.
*
- * Flushing is not always possible (like if a charset converter flushes
- * at a partial multibyte sequence). Converters are supposed to try
- * to produce as much output as possible and then return an error
- * (typically %G_IO_ERROR_PARTIAL_INPUT).
+ * On error -1 is returned and @error is set accordingly. An error will only
+ * be returned if zero messages could be received; otherwise the number of
+ * messages successfully received before the error will be returned. If
+ * @cancellable is cancelled, %G_IO_ERROR_CANCELLED is returned as with any
+ * other error.
*
- * Returns: a #GConverterResult, %G_CONVERTER_ERROR on error.
- * Since: 2.24
+ * Returns: number of messages received, or -1 on error. Note that the number
+ * of messages received may be smaller than @num_messages if @timeout is
+ * zero or positive, if the peer closed the connection, or if @num_messages
+ * was larger than `UIO_MAXIOV` (1024), in which case the caller may re-try
+ * to receive the remaining messages.
+ * Since: 2.48
*/
/**
- * g_converter_input_stream_get_converter:
- * @converter_stream: a #GConverterInputStream
+ * g_datagram_based_send_messages:
+ * @datagram_based: a #GDatagramBased
+ * @messages: (array length=num_messages): an array of #GOutputMessage structs
+ * @num_messages: the number of elements in @messages
+ * @flags: an int containing #GSocketMsgFlags flags
+ * @timeout: the maximum time (in microseconds) to wait, 0 to not block, or -1
+ * to block indefinitely
+ * @cancellable: (nullable): a %GCancellable
+ * @error: return location for a #GError
*
- * Gets the #GConverter that is used by @converter_stream.
+ * Send one or more data messages from @datagram_based in one go.
*
- * Returns: (transfer none): the converter of the converter input stream
- * Since: 2.24
- */
-
-
-/**
- * g_converter_input_stream_new:
- * @base_stream: a #GInputStream
- * @converter: a #GConverter
+ * @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.
*
- * Creates a new converter input stream for the @base_stream.
+ * @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.
*
- * Returns: a new #GInputStream.
- */
-
-
-/**
- * g_converter_output_stream_get_converter:
- * @converter_stream: a #GConverterOutputStream
+ * The other members of #GOutputMessage are treated as described in its
+ * documentation.
*
- * Gets the #GConverter that is used by @converter_stream.
+ * If @timeout is negative the call will block until @num_messages have been
+ * sent, @cancellable is cancelled, or an error occurs.
*
- * Returns: (transfer none): the converter of the converter output stream
- * Since: 2.24
+ * If @timeout is 0 the call will send up to @num_messages without blocking,
+ * or will return %G_IO_ERROR_WOULD_BLOCK if there is no space to send messages.
+ *
+ * If @timeout is positive the call will block on the same conditions as if
+ * @timeout were negative. If the timeout is reached before any messages are
+ * sent, %G_IO_ERROR_TIMED_OUT is returned, otherwise it will return the number
+ * of messages sent before timing out.
+ *
+ * To be notified when messages can be sent, wait for the %G_IO_OUT condition.
+ * Note though that you may still receive %G_IO_ERROR_WOULD_BLOCK from
+ * g_datagram_based_send_messages() 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.)
+ *
+ * If the connection is shut down or closed (by calling g_socket_close() or
+ * g_socket_shutdown() with @shutdown_write set, if it’s a #GSocket, for
+ * example), all calls to this function will return %G_IO_ERROR_CLOSED.
+ *
+ * On error -1 is returned and @error is set accordingly. An error will only
+ * be returned if zero messages could be sent; otherwise the number of messages
+ * successfully sent before the error will be returned. If @cancellable is
+ * cancelled, %G_IO_ERROR_CANCELLED is returned as with any other error.
+ *
+ * Returns: number of messages sent, or -1 on error. Note that the number of
+ * messages sent may be smaller than @num_messages if @timeout is zero
+ * or positive, or if @num_messages was larger than `UIO_MAXIOV` (1024), in
+ * which case the caller may re-try to send the remaining messages.
+ * Since: 2.48
*/
/**
- * g_converter_output_stream_new:
- * @base_stream: a #GOutputStream
- * @converter: a #GConverter
+ * g_dbus_action_group_get:
+ * @connection: A #GDBusConnection
+ * @bus_name: (nullable): the bus name which exports the action
+ * group or %NULL if @connection is not a message bus connection
+ * @object_path: the object path at which the action group is exported
*
- * Creates a new converter output stream for the @base_stream.
+ * Obtains a #GDBusActionGroup for the action group which is exported at
+ * the given @bus_name and @object_path.
*
- * Returns: a new #GOutputStream.
+ * The thread default main context is taken at the time of this call.
+ * All signals on the menu model (and any linked models) are reported
+ * with respect to this context. All calls on the returned menu model
+ * (and linked models) must also originate from this same context, with
+ * the thread default main context unchanged.
+ *
+ * This call is non-blocking. The returned action group may or may not
+ * already be filled in. The correct thing to do is connect the signals
+ * for the action group to monitor for changes and then to call
+ * g_action_group_list_actions() to get the initial list.
+ *
+ * Returns: (transfer full): a #GDBusActionGroup
+ * Since: 2.32
*/
/**
- * g_converter_reset:
- * @converter: a #GConverter.
+ * g_dbus_address_escape_value:
+ * @string: an unescaped string to be included in a D-Bus address
+ * as the value in a key-value pair
*
- * Resets all internal state in the converter, making it behave
- * as if it was just created. If the converter has any internal
- * state that would produce output then that output is lost.
+ * Escape @string so it can appear in a D-Bus address as the value
+ * part of a key-value pair.
*
- * Since: 2.24
+ * For instance, if @string is `/run/bus-for-:0`,
+ * this function would return `/run/bus-for-%3A0`,
+ * which could be used in a D-Bus address like
+ * `unix:nonce-tcp:host=127.0.0.1,port=42,noncefile=/run/bus-for-%3A0`.
+ *
+ * Returns: (transfer full): a copy of @string with all
+ * non-optionally-escaped bytes escaped
+ * Since: 2.36
*/
/**
- * g_credentials_get_native: (skip)
- * @credentials: A #GCredentials.
- * @native_type: The type of native credentials to get.
+ * g_dbus_address_get_for_bus_sync:
+ * @bus_type: a #GBusType
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @error: return location for error or %NULL
*
- * Gets a pointer to native credentials of type @native_type from
- * @credentials.
+ * Synchronously looks up the D-Bus address for the well-known message
+ * bus instance specified by @bus_type. This may involve using various
+ * platform specific mechanisms.
*
- * It is a programming error (which will cause an warning to be
- * logged) to use this method if there is no #GCredentials support for
- * the OS or if @native_type isn't supported by the OS.
+ * The returned address will be in the
+ * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
*
- * Returns: The pointer to native credentials or %NULL if the
- * operation there is no #GCredentials support for the OS or if
- * @native_type isn't supported by the OS. Do not free the returned
- * data, it is owned by @credentials.
+ * Returns: a valid D-Bus address string for @bus_type or %NULL if
+ * @error is set
* Since: 2.26
*/
/**
- * g_credentials_get_unix_pid:
- * @credentials: A #GCredentials
- * @error: Return location for error or %NULL.
+ * g_dbus_address_get_stream:
+ * @address: A valid D-Bus address.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: Data to pass to @callback.
*
- * Tries to get the UNIX process identifier from @credentials. This
- * method is only available on UNIX platforms.
+ * Asynchronously connects to an endpoint specified by @address and
+ * sets up the connection so it is in a state to run the client-side
+ * of the D-Bus authentication conversation. @address must be in the
+ * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
*
- * This operation can fail if #GCredentials is not supported on the
- * OS or if the native credentials type does not contain information
- * about the UNIX process ID.
+ * When the operation is finished, @callback will be invoked. You can
+ * then call g_dbus_address_get_stream_finish() to get the result of
+ * the operation.
*
- * Returns: The UNIX process ID, or -1 if @error is set.
- * Since: 2.36
+ * This is an asynchronous failable function. See
+ * g_dbus_address_get_stream_sync() for the synchronous version.
+ *
+ * Since: 2.26
*/
/**
- * g_credentials_get_unix_user:
- * @credentials: A #GCredentials
+ * g_dbus_address_get_stream_finish:
+ * @res: A #GAsyncResult obtained from the GAsyncReadyCallback passed to g_dbus_address_get_stream().
+ * @out_guid: (optional) (out): %NULL or return location to store the GUID extracted from @address, if any.
* @error: Return location for error or %NULL.
*
- * Tries to get the UNIX user identifier from @credentials. This
- * method is only available on UNIX platforms.
- *
- * This operation can fail if #GCredentials is not supported on the
- * OS or if the native credentials type does not contain information
- * about the UNIX user.
+ * Finishes an operation started with g_dbus_address_get_stream().
*
- * Returns: The UNIX user identifier or -1 if @error is set.
+ * Returns: (transfer full): A #GIOStream or %NULL if @error is set.
* Since: 2.26
*/
/**
- * g_credentials_is_same_user:
- * @credentials: A #GCredentials.
- * @other_credentials: A #GCredentials.
+ * g_dbus_address_get_stream_sync:
+ * @address: A valid D-Bus address.
+ * @out_guid: (optional) (out): %NULL or return location to store the GUID extracted from @address, if any.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
* @error: Return location for error or %NULL.
*
- * Checks if @credentials and @other_credentials is the same user.
+ * Synchronously connects to an endpoint specified by @address and
+ * sets up the connection so it is in a state to run the client-side
+ * of the D-Bus authentication conversation. @address must be in the
+ * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
*
- * This operation can fail if #GCredentials is not supported on the
- * the OS.
+ * This is a synchronous failable function. See
+ * g_dbus_address_get_stream() for the asynchronous version.
*
- * Returns: %TRUE if @credentials and @other_credentials has the same
- * user, %FALSE otherwise or if @error is set.
+ * Returns: (transfer full): A #GIOStream or %NULL if @error is set.
* Since: 2.26
*/
/**
- * g_credentials_new:
+ * g_dbus_annotation_info_lookup:
+ * @annotations: (array zero-terminated=1) (nullable): A %NULL-terminated array of annotations or %NULL.
+ * @name: The name of the annotation to look up.
*
- * Creates a new #GCredentials object with credentials matching the
- * the current process.
+ * Looks up the value of an annotation.
*
- * Returns: A #GCredentials. Free with g_object_unref().
+ * The cost of this function is O(n) in number of annotations.
+ *
+ * Returns: The value or %NULL if not found. Do not free, it is owned by @annotations.
* Since: 2.26
*/
/**
- * g_credentials_set_native:
- * @credentials: A #GCredentials.
- * @native_type: The type of native credentials to set.
- * @native: (not nullable): A pointer to native credentials.
- *
- * Copies the native credentials of type @native_type from @native
- * into @credentials.
+ * g_dbus_annotation_info_ref:
+ * @info: A #GDBusNodeInfo
*
- * It is a programming error (which will cause an warning to be
- * logged) to use this method if there is no #GCredentials support for
- * the OS or if @native_type isn't supported by the OS.
+ * If @info is statically allocated does nothing. Otherwise increases
+ * the reference count.
*
+ * Returns: The same @info.
* Since: 2.26
*/
/**
- * g_credentials_set_unix_user:
- * @credentials: A #GCredentials.
- * @uid: The UNIX user identifier to set.
- * @error: Return location for error or %NULL.
- *
- * Tries to set the UNIX user identifier on @credentials. This method
- * is only available on UNIX platforms.
+ * g_dbus_annotation_info_unref:
+ * @info: A #GDBusAnnotationInfo.
*
- * This operation can fail if #GCredentials is not supported on the
- * OS or if the native credentials type does not contain information
- * about the UNIX user. It can also fail if the OS does not allow the
- * use of "spoofed" credentials.
+ * If @info is statically allocated, does nothing. Otherwise decreases
+ * the reference count of @info. When its reference count drops to 0,
+ * the memory used is freed.
*
- * Returns: %TRUE if @uid was set, %FALSE if error is set.
* Since: 2.26
*/
/**
- * g_credentials_to_string:
- * @credentials: A #GCredentials object.
+ * g_dbus_arg_info_ref:
+ * @info: A #GDBusArgInfo
*
- * Creates a human-readable textual representation of @credentials
- * that can be used in logging and debug messages. The format of the
- * returned string may change in future GLib release.
+ * If @info is statically allocated does nothing. Otherwise increases
+ * the reference count.
*
- * Returns: A string that should be freed with g_free().
+ * Returns: The same @info.
* Since: 2.26
*/
/**
- * g_data_input_stream_get_byte_order:
- * @stream: a given #GDataInputStream.
+ * g_dbus_arg_info_unref:
+ * @info: A #GDBusArgInfo.
*
- * Gets the byte order for the data input stream.
+ * If @info is statically allocated, does nothing. Otherwise decreases
+ * the reference count of @info. When its reference count drops to 0,
+ * the memory used is freed.
*
- * Returns: the @stream's current #GDataStreamByteOrder.
+ * Since: 2.26
*/
/**
- * g_data_input_stream_get_newline_type:
- * @stream: a given #GDataInputStream.
+ * g_dbus_auth_observer_allow_mechanism:
+ * @observer: A #GDBusAuthObserver.
+ * @mechanism: The name of the mechanism, e.g. `DBUS_COOKIE_SHA1`.
*
- * Gets the current newline type for the @stream.
+ * Emits the #GDBusAuthObserver::allow-mechanism signal on @observer.
*
- * Returns: #GDataStreamNewlineType for the given @stream.
+ * Returns: %TRUE if @mechanism can be used to authenticate the other peer, %FALSE if not.
+ * Since: 2.34
*/
/**
- * g_data_input_stream_new:
- * @base_stream: a #GInputStream.
+ * g_dbus_auth_observer_authorize_authenticated_peer:
+ * @observer: A #GDBusAuthObserver.
+ * @stream: A #GIOStream for the #GDBusConnection.
+ * @credentials: (nullable): Credentials received from the peer or %NULL.
*
- * Creates a new data input stream for the @base_stream.
+ * Emits the #GDBusAuthObserver::authorize-authenticated-peer signal on @observer.
*
- * Returns: a new #GDataInputStream.
+ * Returns: %TRUE if the peer is authorized, %FALSE if not.
+ * Since: 2.26
*/
/**
- * g_data_input_stream_read_byte:
- * @stream: a given #GDataInputStream.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting.
+ * g_dbus_auth_observer_new:
*
- * Reads an unsigned 8-bit/1-byte value from @stream.
+ * Creates a new #GDBusAuthObserver object.
*
- * Returns: an unsigned 8-bit/1-byte value read from the @stream or %0
- * if an error occurred.
+ * Returns: A #GDBusAuthObserver. Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_data_input_stream_read_int16:
- * @stream: a given #GDataInputStream.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting.
+ * g_dbus_connection_add_filter:
+ * @connection: a #GDBusConnection
+ * @filter_function: a filter function
+ * @user_data: user data to pass to @filter_function
+ * @user_data_free_func: function to free @user_data with when filter
+ * is removed or %NULL
*
- * Reads a 16-bit/2-byte value from @stream.
+ * Adds a message filter. Filters are handlers that are run on all
+ * incoming and outgoing messages, prior to standard dispatch. Filters
+ * are run in the order that they were added. The same handler can be
+ * added as a filter more than once, in which case it will be run more
+ * than once. Filters added during a filter callback won't be run on
+ * the message being processed. Filter functions are allowed to modify
+ * and even drop messages.
*
- * In order to get the correct byte order for this read operation,
- * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
+ * Note that filters are run in a dedicated message handling thread so
+ * they can't block and, generally, can't do anything but signal a
+ * worker thread. Also note that filters are rarely needed - use API
+ * such as g_dbus_connection_send_message_with_reply(),
+ * g_dbus_connection_signal_subscribe() or g_dbus_connection_call() instead.
*
- * Returns: a signed 16-bit/2-byte value read from @stream or %0 if
- * an error occurred.
+ * If a filter consumes an incoming message the message is not
+ * dispatched anywhere else - not even the standard dispatch machinery
+ * (that API such as g_dbus_connection_signal_subscribe() and
+ * g_dbus_connection_send_message_with_reply() relies on) will see the
+ * message. Similary, if a filter consumes an outgoing message, the
+ * message will not be sent to the other peer.
+ *
+ * If @user_data_free_func is non-%NULL, it will be called (in the
+ * thread-default main context of the thread you are calling this
+ * method from) at some point after @user_data is no longer
+ * needed. (It is not guaranteed to be called synchronously when the
+ * filter is removed, and may be called after @connection has been
+ * destroyed.)
+ *
+ * Returns: a filter identifier that can be used with
+ * g_dbus_connection_remove_filter()
+ * Since: 2.26
*/
/**
- * g_data_input_stream_read_int32:
- * @stream: a given #GDataInputStream.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting.
- *
- * Reads a signed 32-bit/4-byte value from @stream.
+ * g_dbus_connection_call:
+ * @connection: a #GDBusConnection
+ * @bus_name: (nullable): a unique or well-known bus name or %NULL if
+ * @connection is not a message bus connection
+ * @object_path: path of remote object
+ * @interface_name: D-Bus interface to invoke method on
+ * @method_name: the name of the method to invoke
+ * @parameters: (nullable): a #GVariant tuple with parameters for the method
+ * or %NULL if not passing parameters
+ * @reply_type: (nullable): the expected type of the reply (which will be a
+ * tuple), or %NULL
+ * @flags: flags from the #GDBusCallFlags enumeration
+ * @timeout_msec: the timeout in milliseconds, -1 to use the default
+ * timeout or %G_MAXINT for no timeout
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @callback: (nullable): a #GAsyncReadyCallback to call when the request
+ * is satisfied or %NULL if you don't care about the result of the
+ * method invocation
+ * @user_data: the data to pass to @callback
*
- * In order to get the correct byte order for this read operation,
- * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
+ * Asynchronously invokes the @method_name method on the
+ * @interface_name D-Bus interface on the remote object at
+ * @object_path owned by @bus_name.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * If @connection is closed then the operation will fail with
+ * %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will
+ * fail with %G_IO_ERROR_CANCELLED. If @parameters contains a value
+ * not compatible with the D-Bus protocol, the operation fails with
+ * %G_IO_ERROR_INVALID_ARGUMENT.
*
- * Returns: a signed 32-bit/4-byte value read from the @stream or %0 if
- * an error occurred.
- */
-
-
-/**
- * g_data_input_stream_read_int64:
- * @stream: a given #GDataInputStream.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting.
+ * If @reply_type is non-%NULL then the reply will be checked for having this type and an
+ * error will be raised if it does not match. Said another way, if you give a @reply_type
+ * then any non-%NULL return value will be of this type. Unless it’s
+ * %G_VARIANT_TYPE_UNIT, the @reply_type will be a tuple containing one or more
+ * values.
*
- * Reads a 64-bit/8-byte value from @stream.
+ * If the @parameters #GVariant is floating, it is consumed. This allows
+ * convenient 'inline' use of g_variant_new(), e.g.:
+ * |[<!-- language="C" -->
+ * g_dbus_connection_call (connection,
+ * "org.freedesktop.StringThings",
+ * "/org/freedesktop/StringThings",
+ * "org.freedesktop.StringThings",
+ * "TwoStrings",
+ * g_variant_new ("(ss)",
+ * "Thing One",
+ * "Thing Two"),
+ * NULL,
+ * G_DBUS_CALL_FLAGS_NONE,
+ * -1,
+ * NULL,
+ * (GAsyncReadyCallback) two_strings_done,
+ * NULL);
+ * ]|
*
- * In order to get the correct byte order for this read operation,
- * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
+ * This is an asynchronous method. When the operation is finished,
+ * @callback will be invoked in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread you are calling this method from. You can then call
+ * g_dbus_connection_call_finish() to get the result of the operation.
+ * See g_dbus_connection_call_sync() for the synchronous version of this
+ * function.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * If @callback is %NULL then the D-Bus method call message will be sent with
+ * the %G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED flag set.
*
- * Returns: a signed 64-bit/8-byte value read from @stream or %0 if
- * an error occurred.
+ * Since: 2.26
*/
/**
- * g_data_input_stream_read_line:
- * @stream: a given #GDataInputStream.
- * @length: (out) (optional): a #gsize to get the length of the data read in.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting.
- *
- * Reads a line from the data input stream. Note that no encoding
- * checks or conversion is performed; the input is not guaranteed to
- * be UTF-8, and may in fact have embedded NUL characters.
+ * g_dbus_connection_call_finish:
+ * @connection: a #GDBusConnection
+ * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_connection_call()
+ * @error: return location for error or %NULL
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Finishes an operation started with g_dbus_connection_call().
*
- * Returns: (nullable) (transfer full) (array zero-terminated=1) (element-type guint8):
- * a NUL terminated byte array with the line that was read in
- * (without the newlines). Set @length to a #gsize to get the length
- * of the read line. On an error, it will return %NULL and @error
- * will be set. If there's no content to read, it will still return
- * %NULL, but @error won't be set.
+ * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
+ * return values. Free with g_variant_unref().
+ * Since: 2.26
*/
/**
- * g_data_input_stream_read_line_async:
- * @stream: a given #GDataInputStream.
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied.
- * @user_data: (closure): the data to pass to callback function.
+ * g_dbus_connection_call_sync:
+ * @connection: a #GDBusConnection
+ * @bus_name: (nullable): a unique or well-known bus name or %NULL if
+ * @connection is not a message bus connection
+ * @object_path: path of remote object
+ * @interface_name: D-Bus interface to invoke method on
+ * @method_name: the name of the method to invoke
+ * @parameters: (nullable): a #GVariant tuple with parameters for the method
+ * or %NULL if not passing parameters
+ * @reply_type: (nullable): the expected type of the reply, or %NULL
+ * @flags: flags from the #GDBusCallFlags enumeration
+ * @timeout_msec: the timeout in milliseconds, -1 to use the default
+ * timeout or %G_MAXINT for no timeout
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @error: return location for error or %NULL
*
- * The asynchronous version of g_data_input_stream_read_line(). It is
- * an error to have two outstanding calls to this function.
+ * Synchronously invokes the @method_name method on the
+ * @interface_name D-Bus interface on the remote object at
+ * @object_path owned by @bus_name.
*
- * When the operation is finished, @callback will be called. You
- * can then call g_data_input_stream_read_line_finish() to get
- * the result of the operation.
+ * If @connection is closed then the operation will fail with
+ * %G_IO_ERROR_CLOSED. If @cancellable is canceled, the
+ * operation will fail with %G_IO_ERROR_CANCELLED. If @parameters
+ * contains a value not compatible with the D-Bus protocol, the operation
+ * fails with %G_IO_ERROR_INVALID_ARGUMENT.
*
- * Since: 2.20
- */
-
-
-/**
- * g_data_input_stream_read_line_finish:
- * @stream: a given #GDataInputStream.
- * @result: the #GAsyncResult that was provided to the callback.
- * @length: (out) (optional): a #gsize to get the length of the data read in.
- * @error: #GError for error reporting.
+ * If @reply_type is non-%NULL then the reply will be checked for having
+ * this type and an error will be raised if it does not match. Said
+ * another way, if you give a @reply_type then any non-%NULL return
+ * value will be of this type.
*
- * Finish an asynchronous call started by
- * g_data_input_stream_read_line_async(). Note the warning about
- * string encoding in g_data_input_stream_read_line() applies here as
- * well.
+ * If the @parameters #GVariant is floating, it is consumed.
+ * This allows convenient 'inline' use of g_variant_new(), e.g.:
+ * |[<!-- language="C" -->
+ * g_dbus_connection_call_sync (connection,
+ * "org.freedesktop.StringThings",
+ * "/org/freedesktop/StringThings",
+ * "org.freedesktop.StringThings",
+ * "TwoStrings",
+ * g_variant_new ("(ss)",
+ * "Thing One",
+ * "Thing Two"),
+ * NULL,
+ * G_DBUS_CALL_FLAGS_NONE,
+ * -1,
+ * NULL,
+ * &error);
+ * ]|
*
- * Returns: (nullable) (transfer full) (array zero-terminated=1) (element-type guint8):
- * a NUL-terminated byte array with the line that was read in
- * (without the newlines). Set @length to a #gsize to get the length
- * of the read line. On an error, it will return %NULL and @error
- * will be set. If there's no content to read, it will still return
- * %NULL, but @error won't be set.
- * Since: 2.20
+ * The calling thread is blocked until a reply is received. See
+ * g_dbus_connection_call() for the asynchronous version of
+ * this method.
+ *
+ * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
+ * return values. Free with g_variant_unref().
+ * Since: 2.26
*/
/**
- * g_data_input_stream_read_line_finish_utf8:
- * @stream: a given #GDataInputStream.
- * @result: the #GAsyncResult that was provided to the callback.
- * @length: (out) (optional): a #gsize to get the length of the data read in.
- * @error: #GError for error reporting.
+ * g_dbus_connection_call_with_unix_fd_list:
+ * @connection: a #GDBusConnection
+ * @bus_name: (nullable): a unique or well-known bus name or %NULL if
+ * @connection is not a message bus connection
+ * @object_path: path of remote object
+ * @interface_name: D-Bus interface to invoke method on
+ * @method_name: the name of the method to invoke
+ * @parameters: (nullable): a #GVariant tuple with parameters for the method
+ * or %NULL if not passing parameters
+ * @reply_type: (nullable): the expected type of the reply, or %NULL
+ * @flags: flags from the #GDBusCallFlags enumeration
+ * @timeout_msec: the timeout in milliseconds, -1 to use the default
+ * timeout or %G_MAXINT for no timeout
+ * @fd_list: (nullable): a #GUnixFDList or %NULL
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @callback: (nullable): a #GAsyncReadyCallback to call when the request is
+ * satisfied or %NULL if you don't * care about the result of the
+ * method invocation
+ * @user_data: The data to pass to @callback.
*
- * Finish an asynchronous call started by
- * g_data_input_stream_read_line_async().
+ * Like g_dbus_connection_call() but also takes a #GUnixFDList object.
+ *
+ * This method is only available on UNIX.
*
- * Returns: (nullable) (transfer full): a string with the line that
- * was read in (without the newlines). Set @length to a #gsize to
- * get the length of the read line. On an error, it will return
- * %NULL and @error will be set. For UTF-8 conversion errors, the set
- * error domain is %G_CONVERT_ERROR. If there's no content to read,
- * it will still return %NULL, but @error won't be set.
* Since: 2.30
*/
/**
- * g_data_input_stream_read_line_utf8:
- * @stream: a given #GDataInputStream.
- * @length: (out) (optional): a #gsize to get the length of the data read in.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting.
- *
- * Reads a UTF-8 encoded line from the data input stream.
+ * g_dbus_connection_call_with_unix_fd_list_finish:
+ * @connection: a #GDBusConnection
+ * @out_fd_list: (out) (optional): return location for a #GUnixFDList or %NULL
+ * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed to
+ * g_dbus_connection_call_with_unix_fd_list()
+ * @error: return location for error or %NULL
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Finishes an operation started with g_dbus_connection_call_with_unix_fd_list().
*
- * Returns: (nullable) (transfer full): a NUL terminated UTF-8 string
- * with the line that was read in (without the newlines). Set
- * @length to a #gsize to get the length of the read line. On an
- * error, it will return %NULL and @error will be set. For UTF-8
- * conversion errors, the set error domain is %G_CONVERT_ERROR. If
- * there's no content to read, it will still return %NULL, but @error
- * won't be set.
+ * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
+ * return values. Free with g_variant_unref().
* Since: 2.30
*/
/**
- * g_data_input_stream_read_uint16:
- * @stream: a given #GDataInputStream.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting.
+ * g_dbus_connection_call_with_unix_fd_list_sync:
+ * @connection: a #GDBusConnection
+ * @bus_name: (nullable): a unique or well-known bus name or %NULL
+ * if @connection is not a message bus connection
+ * @object_path: path of remote object
+ * @interface_name: D-Bus interface to invoke method on
+ * @method_name: the name of the method to invoke
+ * @parameters: (nullable): a #GVariant tuple with parameters for
+ * the method or %NULL if not passing parameters
+ * @reply_type: (nullable): the expected type of the reply, or %NULL
+ * @flags: flags from the #GDBusCallFlags enumeration
+ * @timeout_msec: the timeout in milliseconds, -1 to use the default
+ * timeout or %G_MAXINT for no timeout
+ * @fd_list: (nullable): a #GUnixFDList or %NULL
+ * @out_fd_list: (out) (optional): return location for a #GUnixFDList or %NULL
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @error: return location for error or %NULL
*
- * Reads an unsigned 16-bit/2-byte value from @stream.
+ * Like g_dbus_connection_call_sync() but also takes and returns #GUnixFDList objects.
*
- * In order to get the correct byte order for this read operation,
- * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
+ * This method is only available on UNIX.
*
- * Returns: an unsigned 16-bit/2-byte value read from the @stream or %0 if
- * an error occurred.
+ * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
+ * return values. Free with g_variant_unref().
+ * Since: 2.30
*/
/**
- * g_data_input_stream_read_uint32:
- * @stream: a given #GDataInputStream.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting.
+ * g_dbus_connection_close:
+ * @connection: a #GDBusConnection
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @callback: (nullable): a #GAsyncReadyCallback to call when the request is
+ * satisfied or %NULL if you don't care about the result
+ * @user_data: The data to pass to @callback
*
- * Reads an unsigned 32-bit/4-byte value from @stream.
+ * Closes @connection. Note that this never causes the process to
+ * exit (this might only happen if the other end of a shared message
+ * bus connection disconnects, see #GDBusConnection:exit-on-close).
*
- * In order to get the correct byte order for this read operation,
- * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
+ * Once the connection is closed, operations such as sending a message
+ * will return with the error %G_IO_ERROR_CLOSED. Closing a connection
+ * will not automatically flush the connection so queued messages may
+ * be lost. Use g_dbus_connection_flush() if you need such guarantees.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * If @connection is already closed, this method fails with
+ * %G_IO_ERROR_CLOSED.
*
- * Returns: an unsigned 32-bit/4-byte value read from the @stream or %0 if
- * an error occurred.
+ * When @connection has been closed, the #GDBusConnection::closed
+ * signal is emitted in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread that @connection was constructed in.
+ *
+ * This is an asynchronous method. When the operation is finished,
+ * @callback will be invoked in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread you are calling this method from. You can
+ * then call g_dbus_connection_close_finish() to get the result of the
+ * operation. See g_dbus_connection_close_sync() for the synchronous
+ * version.
+ *
+ * Since: 2.26
*/
/**
- * g_data_input_stream_read_uint64:
- * @stream: a given #GDataInputStream.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting.
- *
- * Reads an unsigned 64-bit/8-byte value from @stream.
- *
- * In order to get the correct byte order for this read operation,
- * see g_data_input_stream_get_byte_order().
+ * g_dbus_connection_close_finish:
+ * @connection: a #GDBusConnection
+ * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed
+ * to g_dbus_connection_close()
+ * @error: return location for error or %NULL
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Finishes an operation started with g_dbus_connection_close().
*
- * Returns: an unsigned 64-bit/8-byte read from @stream or %0 if
- * an error occurred.
+ * Returns: %TRUE if the operation succeeded, %FALSE if @error is set
+ * Since: 2.26
*/
/**
- * g_data_input_stream_read_until:
- * @stream: a given #GDataInputStream.
- * @stop_chars: characters to terminate the read.
- * @length: (out) (optional): a #gsize to get the length of the data read in.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting.
- *
- * Reads a string from the data input stream, up to the first
- * occurrence of any of the stop characters.
- *
- * Note that, in contrast to g_data_input_stream_read_until_async(),
- * this function consumes the stop character that it finds.
+ * g_dbus_connection_close_sync:
+ * @connection: a #GDBusConnection
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @error: return location for error or %NULL
*
- * Don't use this function in new code. Its functionality is
- * inconsistent with g_data_input_stream_read_until_async(). Both
- * functions will be marked as deprecated in a future release. Use
- * g_data_input_stream_read_upto() instead, but note that that function
- * does not consume the stop character.
+ * Synchronously closes @connection. The calling thread is blocked
+ * until this is done. See g_dbus_connection_close() for the
+ * asynchronous version of this method and more details about what it
+ * does.
*
- * Returns: (transfer full): a string with the data that was read
- * before encountering any of the stop characters. Set @length to
- * a #gsize to get the length of the string. This function will
- * return %NULL on an error.
- * Deprecated: 2.56: Use g_data_input_stream_read_upto() instead, which has more
- * consistent behaviour regarding the stop character.
+ * Returns: %TRUE if the operation succeeded, %FALSE if @error is set
+ * Since: 2.26
*/
/**
- * g_data_input_stream_read_until_async:
- * @stream: a given #GDataInputStream.
- * @stop_chars: characters to terminate the read.
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied.
- * @user_data: (closure): the data to pass to callback function.
- *
- * The asynchronous version of g_data_input_stream_read_until().
- * It is an error to have two outstanding calls to this function.
+ * g_dbus_connection_emit_signal:
+ * @connection: a #GDBusConnection
+ * @destination_bus_name: (nullable): the unique bus name for the destination
+ * for the signal or %NULL to emit to all listeners
+ * @object_path: path of remote object
+ * @interface_name: D-Bus interface to emit a signal on
+ * @signal_name: the name of the signal to emit
+ * @parameters: (nullable): a #GVariant tuple with parameters for the signal
+ * or %NULL if not passing parameters
+ * @error: Return location for error or %NULL
*
- * Note that, in contrast to g_data_input_stream_read_until(),
- * this function does not consume the stop character that it finds. You
- * must read it for yourself.
+ * Emits a signal.
*
- * When the operation is finished, @callback will be called. You
- * can then call g_data_input_stream_read_until_finish() to get
- * the result of the operation.
+ * If the parameters GVariant is floating, it is consumed.
*
- * Don't use this function in new code. Its functionality is
- * inconsistent with g_data_input_stream_read_until(). Both functions
- * will be marked as deprecated in a future release. Use
- * g_data_input_stream_read_upto_async() instead.
+ * This can only fail if @parameters is not compatible with the D-Bus protocol
+ * (%G_IO_ERROR_INVALID_ARGUMENT), or if @connection has been closed
+ * (%G_IO_ERROR_CLOSED).
*
- * Since: 2.20
- * Deprecated: 2.56: Use g_data_input_stream_read_upto_async() instead, which
- * has more consistent behaviour regarding the stop character.
+ * Returns: %TRUE unless @error is set
+ * Since: 2.26
*/
/**
- * g_data_input_stream_read_until_finish:
- * @stream: a given #GDataInputStream.
- * @result: the #GAsyncResult that was provided to the callback.
- * @length: (out) (optional): a #gsize to get the length of the data read in.
- * @error: #GError for error reporting.
- *
- * Finish an asynchronous call started by
- * g_data_input_stream_read_until_async().
+ * g_dbus_connection_export_action_group:
+ * @connection: a #GDBusConnection
+ * @object_path: a D-Bus object path
+ * @action_group: a #GActionGroup
+ * @error: a pointer to a %NULL #GError, or %NULL
*
- * Since: 2.20
- * Returns: (transfer full): a string with the data that was read
- * before encountering any of the stop characters. Set @length to
- * a #gsize to get the length of the string. This function will
- * return %NULL on an error.
- * Deprecated: 2.56: Use g_data_input_stream_read_upto_finish() instead, which
- * has more consistent behaviour regarding the stop character.
- */
-
-
-/**
- * g_data_input_stream_read_upto:
- * @stream: a #GDataInputStream
- * @stop_chars: characters to terminate the read
- * @stop_chars_len: length of @stop_chars. May be -1 if @stop_chars is
- * nul-terminated
- * @length: (out) (optional): a #gsize to get the length of the data read in
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @error: #GError for error reporting
+ * Exports @action_group on @connection at @object_path.
*
- * Reads a string from the data input stream, up to the first
- * occurrence of any of the stop characters.
+ * The implemented D-Bus API should be considered private. It is
+ * subject to change in the future.
*
- * In contrast to g_data_input_stream_read_until(), this function
- * does not consume the stop character. You have to use
- * g_data_input_stream_read_byte() to get it before calling
- * g_data_input_stream_read_upto() again.
+ * A given object path can only have one action group exported on it.
+ * If this constraint is violated, the export will fail and 0 will be
+ * returned (with @error set accordingly).
*
- * Note that @stop_chars may contain '\0' if @stop_chars_len is
- * specified.
+ * You can unexport the action group using
+ * g_dbus_connection_unexport_action_group() with the return value of
+ * this function.
*
- * The returned string will always be nul-terminated on success.
+ * The thread default main context is taken at the time of this call.
+ * All incoming action activations and state change requests are
+ * reported from this context. Any changes on the action group that
+ * cause it to emit signals must also come from this same context.
+ * Since incoming action activations and state change requests are
+ * rather likely to cause changes on the action group, this effectively
+ * limits a given action group to being exported from only one main
+ * context.
*
- * Returns: (transfer full): a string with the data that was read
- * before encountering any of the stop characters. Set @length to
- * a #gsize to get the length of the string. This function will
- * return %NULL on an error
- * Since: 2.26
+ * Returns: the ID of the export (never zero), or 0 in case of failure
+ * Since: 2.32
*/
/**
- * g_data_input_stream_read_upto_async:
- * @stream: a #GDataInputStream
- * @stop_chars: characters to terminate the read
- * @stop_chars_len: length of @stop_chars. May be -1 if @stop_chars is
- * nul-terminated
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_dbus_connection_export_menu_model:
+ * @connection: a #GDBusConnection
+ * @object_path: a D-Bus object path
+ * @menu: a #GMenuModel
+ * @error: return location for an error, or %NULL
*
- * The asynchronous version of g_data_input_stream_read_upto().
- * It is an error to have two outstanding calls to this function.
+ * Exports @menu on @connection at @object_path.
*
- * In contrast to g_data_input_stream_read_until(), this function
- * does not consume the stop character. You have to use
- * g_data_input_stream_read_byte() to get it before calling
- * g_data_input_stream_read_upto() again.
+ * The implemented D-Bus API should be considered private.
+ * It is subject to change in the future.
*
- * Note that @stop_chars may contain '\0' if @stop_chars_len is
- * specified.
+ * An object path can only have one menu model exported on it. If this
+ * constraint is violated, the export will fail and 0 will be
+ * returned (with @error set accordingly).
*
- * When the operation is finished, @callback will be called. You
- * can then call g_data_input_stream_read_upto_finish() to get
- * the result of the operation.
+ * You can unexport the menu model using
+ * g_dbus_connection_unexport_menu_model() with the return value of
+ * this function.
*
- * Since: 2.26
+ * Returns: the ID of the export (never zero), or 0 in case of failure
+ * Since: 2.32
*/
/**
- * g_data_input_stream_read_upto_finish:
- * @stream: a #GDataInputStream
- * @result: the #GAsyncResult that was provided to the callback
- * @length: (out) (optional): a #gsize to get the length of the data read in
- * @error: #GError for error reporting
- *
- * Finish an asynchronous call started by
- * g_data_input_stream_read_upto_async().
+ * g_dbus_connection_flush:
+ * @connection: a #GDBusConnection
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @callback: (nullable): a #GAsyncReadyCallback to call when the
+ * request is satisfied or %NULL if you don't care about the result
+ * @user_data: The data to pass to @callback
*
- * Note that this function does not consume the stop character. You
- * have to use g_data_input_stream_read_byte() to get it before calling
- * g_data_input_stream_read_upto_async() again.
+ * Asynchronously flushes @connection, that is, writes all queued
+ * outgoing message to the transport and then flushes the transport
+ * (using g_output_stream_flush_async()). This is useful in programs
+ * that wants to emit a D-Bus signal and then exit immediately. Without
+ * flushing the connection, there is no guaranteed that the message has
+ * been sent to the networking buffers in the OS kernel.
*
- * The returned string will always be nul-terminated on success.
+ * This is an asynchronous method. When the operation is finished,
+ * @callback will be invoked in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread you are calling this method from. You can
+ * then call g_dbus_connection_flush_finish() to get the result of the
+ * operation. See g_dbus_connection_flush_sync() for the synchronous
+ * version.
*
- * Returns: (transfer full): a string with the data that was read
- * before encountering any of the stop characters. Set @length to
- * a #gsize to get the length of the string. This function will
- * return %NULL on an error.
- * Since: 2.24
+ * Since: 2.26
*/
/**
- * g_data_input_stream_set_byte_order:
- * @stream: a given #GDataInputStream.
- * @order: a #GDataStreamByteOrder to set.
+ * g_dbus_connection_flush_finish:
+ * @connection: a #GDBusConnection
+ * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed
+ * to g_dbus_connection_flush()
+ * @error: return location for error or %NULL
*
- * This function sets the byte order for the given @stream. All subsequent
- * reads from the @stream will be read in the given @order.
+ * Finishes an operation started with g_dbus_connection_flush().
+ *
+ * Returns: %TRUE if the operation succeeded, %FALSE if @error is set
+ * Since: 2.26
*/
/**
- * g_data_input_stream_set_newline_type:
- * @stream: a #GDataInputStream.
- * @type: the type of new line return as #GDataStreamNewlineType.
+ * g_dbus_connection_flush_sync:
+ * @connection: a #GDBusConnection
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @error: return location for error or %NULL
*
- * Sets the newline type for the @stream.
+ * Synchronously flushes @connection. The calling thread is blocked
+ * until this is done. See g_dbus_connection_flush() for the
+ * asynchronous version of this method and more details about what it
+ * does.
*
- * Note that using G_DATA_STREAM_NEWLINE_TYPE_ANY is slightly unsafe. If a read
- * chunk ends in "CR" we must read an additional byte to know if this is "CR" or
- * "CR LF", and this might block if there is no more data available.
+ * Returns: %TRUE if the operation succeeded, %FALSE if @error is set
+ * Since: 2.26
*/
/**
- * g_data_output_stream_get_byte_order:
- * @stream: a #GDataOutputStream.
+ * g_dbus_connection_get_capabilities:
+ * @connection: a #GDBusConnection
*
- * Gets the byte order for the stream.
+ * Gets the capabilities negotiated with the remote peer
*
- * Returns: the #GDataStreamByteOrder for the @stream.
+ * Returns: zero or more flags from the #GDBusCapabilityFlags enumeration
+ * Since: 2.26
*/
/**
- * g_data_output_stream_new:
- * @base_stream: a #GOutputStream.
+ * g_dbus_connection_get_exit_on_close:
+ * @connection: a #GDBusConnection
*
- * Creates a new data output stream for @base_stream.
+ * Gets whether the process is terminated when @connection is
+ * closed by the remote peer. See
+ * #GDBusConnection:exit-on-close for more details.
*
- * Returns: #GDataOutputStream.
+ * Returns: whether the process is terminated when @connection is
+ * closed by the remote peer
+ * Since: 2.26
*/
/**
- * g_data_output_stream_put_byte:
- * @stream: a #GDataOutputStream.
- * @data: a #guchar.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError, %NULL to ignore.
+ * g_dbus_connection_get_guid:
+ * @connection: a #GDBusConnection
*
- * Puts a byte into the output stream.
+ * The GUID of the peer performing the role of server when
+ * authenticating. See #GDBusConnection:guid for more details.
*
- * Returns: %TRUE if @data was successfully added to the @stream.
+ * Returns: The GUID. Do not free this string, it is owned by
+ * @connection.
+ * Since: 2.26
*/
/**
- * g_data_output_stream_put_int16:
- * @stream: a #GDataOutputStream.
- * @data: a #gint16.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError, %NULL to ignore.
+ * g_dbus_connection_get_last_serial:
+ * @connection: a #GDBusConnection
*
- * Puts a signed 16-bit integer into the output stream.
+ * Retrieves the last serial number assigned to a #GDBusMessage on
+ * the current thread. This includes messages sent via both low-level
+ * API such as g_dbus_connection_send_message() as well as
+ * high-level API such as g_dbus_connection_emit_signal(),
+ * g_dbus_connection_call() or g_dbus_proxy_call().
*
- * Returns: %TRUE if @data was successfully added to the @stream.
+ * Returns: the last used serial or zero when no message has been sent
+ * within the current thread
+ * Since: 2.34
*/
/**
- * g_data_output_stream_put_int32:
- * @stream: a #GDataOutputStream.
- * @data: a #gint32.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError, %NULL to ignore.
+ * g_dbus_connection_get_peer_credentials:
+ * @connection: a #GDBusConnection
*
- * Puts a signed 32-bit integer into the output stream.
+ * Gets the credentials of the authenticated peer. This will always
+ * return %NULL unless @connection acted as a server
+ * (e.g. %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER was passed)
+ * when set up and the client passed credentials as part of the
+ * authentication process.
*
- * Returns: %TRUE if @data was successfully added to the @stream.
+ * In a message bus setup, the message bus is always the server and
+ * each application is a client. So this method will always return
+ * %NULL for message bus clients.
+ *
+ * Returns: (transfer none) (nullable): a #GCredentials or %NULL if not
+ * available. Do not free this object, it is owned by @connection.
+ * Since: 2.26
*/
/**
- * g_data_output_stream_put_int64:
- * @stream: a #GDataOutputStream.
- * @data: a #gint64.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError, %NULL to ignore.
+ * g_dbus_connection_get_stream:
+ * @connection: a #GDBusConnection
*
- * Puts a signed 64-bit integer into the stream.
+ * Gets the underlying stream used for IO.
*
- * Returns: %TRUE if @data was successfully added to the @stream.
+ * 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.
+ *
+ * Returns: (transfer none): the stream used for IO
+ * Since: 2.26
*/
/**
- * g_data_output_stream_put_string:
- * @stream: a #GDataOutputStream.
- * @str: a string.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError, %NULL to ignore.
+ * g_dbus_connection_get_unique_name:
+ * @connection: a #GDBusConnection
*
- * Puts a string into the output stream.
+ * Gets the unique name of @connection as assigned by the message
+ * bus. This can also be used to figure out if @connection is a
+ * message bus connection.
*
- * Returns: %TRUE if @string was successfully added to the @stream.
+ * Returns: the unique name or %NULL if @connection is not a message
+ * bus connection. Do not free this string, it is owned by
+ * @connection.
+ * Since: 2.26
*/
/**
- * g_data_output_stream_put_uint16:
- * @stream: a #GDataOutputStream.
- * @data: a #guint16.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError, %NULL to ignore.
+ * g_dbus_connection_is_closed:
+ * @connection: a #GDBusConnection
*
- * Puts an unsigned 16-bit integer into the output stream.
+ * Gets whether @connection is closed.
*
- * Returns: %TRUE if @data was successfully added to the @stream.
+ * Returns: %TRUE if the connection is closed, %FALSE otherwise
+ * Since: 2.26
*/
/**
- * g_data_output_stream_put_uint32:
- * @stream: a #GDataOutputStream.
- * @data: a #guint32.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError, %NULL to ignore.
+ * g_dbus_connection_new:
+ * @stream: a #GIOStream
+ * @guid: (nullable): the GUID to use if a authenticating as a server or %NULL
+ * @flags: flags describing how to make the connection
+ * @observer: (nullable): a #GDBusAuthObserver or %NULL
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @callback: a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: the data to pass to @callback
*
- * Puts an unsigned 32-bit integer into the stream.
+ * Asynchronously sets up a D-Bus connection for exchanging D-Bus messages
+ * with the end represented by @stream.
*
- * Returns: %TRUE if @data was successfully added to the @stream.
- */
-
-
-/**
- * g_data_output_stream_put_uint64:
- * @stream: a #GDataOutputStream.
- * @data: a #guint64.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError, %NULL to ignore.
+ * If @stream is a #GSocketConnection, then the corresponding #GSocket
+ * will be put into non-blocking mode.
*
- * Puts an unsigned 64-bit integer into the stream.
+ * The D-Bus connection will interact with @stream from a worker thread.
+ * As a result, the caller should not interact with @stream after this
+ * method has been called, except by calling g_object_unref() on it.
*
- * Returns: %TRUE if @data was successfully added to the @stream.
+ * If @observer is not %NULL it may be used to control the
+ * authentication process.
+ *
+ * When the operation is finished, @callback will be invoked. You can
+ * then call g_dbus_connection_new_finish() to get the result of the
+ * operation.
+ *
+ * This is a asynchronous failable constructor. See
+ * g_dbus_connection_new_sync() for the synchronous
+ * version.
+ *
+ * Since: 2.26
*/
/**
- * g_data_output_stream_set_byte_order:
- * @stream: a #GDataOutputStream.
- * @order: a %GDataStreamByteOrder.
+ * g_dbus_connection_new_finish:
+ * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback
+ * passed to g_dbus_connection_new().
+ * @error: return location for error or %NULL
*
- * Sets the byte order of the data output stream to @order.
+ * Finishes an operation started with g_dbus_connection_new().
+ *
+ * Returns: a #GDBusConnection or %NULL if @error is set. Free
+ * with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_datagram_based_condition_check:
- * @datagram_based: a #GDatagramBased
- * @condition: a #GIOCondition mask to check
- *
- * Checks on the readiness of @datagram_based to perform operations. The
- * operations specified in @condition are checked for and masked against the
- * currently-satisfied conditions on @datagram_based. The result is returned.
- *
- * %G_IO_IN will be set in the return value if data is available to read with
- * g_datagram_based_receive_messages(), or if the connection is closed remotely
- * (EOS); and if the datagram_based has not been closed locally using some
- * implementation-specific method (such as g_socket_close() or
- * g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket).
- *
- * If the connection is shut down or closed (by calling g_socket_close() or
- * g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket, for
- * example), all calls to this function will return %G_IO_ERROR_CLOSED.
- *
- * %G_IO_OUT will be set if it is expected that at least one byte can be sent
- * using g_datagram_based_send_messages() without blocking. It will not be set
- * if the datagram_based has been closed locally.
+ * g_dbus_connection_new_for_address:
+ * @address: a D-Bus address
+ * @flags: flags describing how to make the connection
+ * @observer: (nullable): a #GDBusAuthObserver or %NULL
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @callback: a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: the data to pass to @callback
*
- * %G_IO_HUP will be set if the connection has been closed locally.
+ * Asynchronously connects and sets up a D-Bus client connection for
+ * exchanging D-Bus messages with an endpoint specified by @address
+ * which must be in the
+ * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
*
- * %G_IO_ERR will be set if there was an asynchronous error in transmitting data
- * previously enqueued using g_datagram_based_send_messages().
+ * This constructor can only be used to initiate client-side
+ * connections - use g_dbus_connection_new() if you need to act as the
+ * server. In particular, @flags cannot contain the
+ * %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER or
+ * %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS flags.
*
- * Note that on Windows, it is possible for an operation to return
- * %G_IO_ERROR_WOULD_BLOCK even immediately after
- * g_datagram_based_condition_check() has claimed that the #GDatagramBased is
- * ready for writing. Rather than calling g_datagram_based_condition_check() and
- * then writing to the #GDatagramBased if it succeeds, it is generally better to
- * simply try writing right away, and try again later if the initial attempt
- * returns %G_IO_ERROR_WOULD_BLOCK.
+ * When the operation is finished, @callback will be invoked. You can
+ * then call g_dbus_connection_new_finish() to get the result of the
+ * operation.
*
- * It is meaningless to specify %G_IO_ERR or %G_IO_HUP in @condition; these
- * conditions will always be set in the output if they are true. Apart from
- * these flags, the output is guaranteed to be masked by @condition.
+ * If @observer is not %NULL it may be used to control the
+ * authentication process.
*
- * This call never blocks.
+ * This is a asynchronous failable constructor. See
+ * g_dbus_connection_new_for_address_sync() for the synchronous
+ * version.
*
- * Returns: the #GIOCondition mask of the current state
- * Since: 2.48
+ * Since: 2.26
*/
/**
- * g_datagram_based_condition_wait:
- * @datagram_based: a #GDatagramBased
- * @condition: a #GIOCondition mask to wait for
- * @timeout: the maximum time (in microseconds) to wait, 0 to not block, or -1
- * to block indefinitely
- * @cancellable: (nullable): a #GCancellable
- * @error: return location for a #GError
- *
- * Waits for up to @timeout microseconds for condition to become true on
- * @datagram_based. If the condition is met, %TRUE is returned.
+ * g_dbus_connection_new_for_address_finish:
+ * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed
+ * to g_dbus_connection_new()
+ * @error: return location for error or %NULL
*
- * If @cancellable is cancelled before the condition is met, or if @timeout is
- * reached before the condition is met, then %FALSE is returned and @error is
- * set appropriately (%G_IO_ERROR_CANCELLED or %G_IO_ERROR_TIMED_OUT).
+ * Finishes an operation started with g_dbus_connection_new_for_address().
*
- * Returns: %TRUE if the condition was met, %FALSE otherwise
- * Since: 2.48
+ * Returns: a #GDBusConnection or %NULL if @error is set. Free with
+ * g_object_unref().
+ * Since: 2.26
*/
/**
- * g_datagram_based_create_source:
- * @datagram_based: a #GDatagramBased
- * @condition: a #GIOCondition mask to monitor
- * @cancellable: (nullable): a #GCancellable
+ * g_dbus_connection_new_for_address_sync:
+ * @address: a D-Bus address
+ * @flags: flags describing how to make the connection
+ * @observer: (nullable): a #GDBusAuthObserver or %NULL
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @error: return location for error or %NULL
*
- * Creates a #GSource that can be attached to a #GMainContext to monitor for
- * the availability of the specified @condition on the #GDatagramBased. The
- * #GSource keeps a reference to the @datagram_based.
+ * Synchronously connects and sets up a D-Bus client connection for
+ * exchanging D-Bus messages with an endpoint specified by @address
+ * which must be in the
+ * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
*
- * The callback on the source is of the #GDatagramBasedSourceFunc type.
+ * This constructor can only be used to initiate client-side
+ * connections - use g_dbus_connection_new_sync() if you need to act
+ * as the server. In particular, @flags cannot contain the
+ * %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER or
+ * %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS flags.
*
- * It is meaningless to specify %G_IO_ERR or %G_IO_HUP in @condition; these
- * conditions will always be reported in the callback if they are true.
+ * This is a synchronous failable constructor. See
+ * g_dbus_connection_new_for_address() for the asynchronous version.
*
- * If non-%NULL, @cancellable can be used to cancel the source, which will
- * cause the source to trigger, reporting the current condition (which is
- * likely 0 unless cancellation happened at the same time as a condition
- * change). You can check for this in the callback using
- * g_cancellable_is_cancelled().
+ * If @observer is not %NULL it may be used to control the
+ * authentication process.
*
- * Returns: (transfer full): a newly allocated #GSource
- * Since: 2.48
+ * Returns: a #GDBusConnection or %NULL if @error is set. Free with
+ * g_object_unref().
+ * Since: 2.26
*/
/**
- * g_datagram_based_receive_messages:
- * @datagram_based: a #GDatagramBased
- * @messages: (array length=num_messages): an array of #GInputMessage structs
- * @num_messages: the number of elements in @messages
- * @flags: an int containing #GSocketMsgFlags flags for the overall operation
- * @timeout: the maximum time (in microseconds) to wait, 0 to not block, or -1
- * to block indefinitely
- * @cancellable: (nullable): a %GCancellable
- * @error: return location for a #GError
- *
- * Receive one or more data messages from @datagram_based in one go.
- *
- * @messages must point to an array of #GInputMessage structs and
- * @num_messages must be the length of this array. Each #GInputMessage
- * contains a pointer to an array of #GInputVector structs describing the
- * buffers that the data received in each message will be written to.
- *
- * @flags modify how all messages are received. 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. These
- * flags affect the overall receive operation. Flags affecting individual
- * messages are returned in #GInputMessage.flags.
- *
- * The other members of #GInputMessage are treated as described in its
- * documentation.
- *
- * If @timeout is negative the call will block until @num_messages have been
- * received, the connection is closed remotely (EOS), @cancellable is cancelled,
- * or an error occurs.
- *
- * If @timeout is 0 the call will return up to @num_messages without blocking,
- * or %G_IO_ERROR_WOULD_BLOCK if no messages are queued in the operating system
- * to be received.
+ * g_dbus_connection_new_sync:
+ * @stream: a #GIOStream
+ * @guid: (nullable): the GUID to use if a authenticating as a server or %NULL
+ * @flags: flags describing how to make the connection
+ * @observer: (nullable): a #GDBusAuthObserver or %NULL
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @error: return location for error or %NULL
*
- * If @timeout is positive the call will block on the same conditions as if
- * @timeout were negative. If the timeout is reached
- * before any messages are received, %G_IO_ERROR_TIMED_OUT is returned,
- * otherwise it will return the number of messages received before timing out.
- * (Note: This is effectively the behaviour of `MSG_WAITFORONE` with
- * recvmmsg().)
+ * Synchronously sets up a D-Bus connection for exchanging D-Bus messages
+ * with the end represented by @stream.
*
- * To be notified when messages are available, wait for the %G_IO_IN condition.
- * Note though that you may still receive %G_IO_ERROR_WOULD_BLOCK from
- * g_datagram_based_receive_messages() even if you were previously notified of a
- * %G_IO_IN condition.
+ * If @stream is a #GSocketConnection, then the corresponding #GSocket
+ * will be put into non-blocking mode.
*
- * If the remote peer closes the connection, any messages queued in the
- * underlying receive buffer will be returned, and subsequent calls to
- * g_datagram_based_receive_messages() will return 0 (with no error set).
+ * The D-Bus connection will interact with @stream from a worker thread.
+ * As a result, the caller should not interact with @stream after this
+ * method has been called, except by calling g_object_unref() on it.
*
- * If the connection is shut down or closed (by calling g_socket_close() or
- * g_socket_shutdown() with @shutdown_read set, if it’s a #GSocket, for
- * example), all calls to this function will return %G_IO_ERROR_CLOSED.
+ * If @observer is not %NULL it may be used to control the
+ * authentication process.
*
- * On error -1 is returned and @error is set accordingly. An error will only
- * be returned if zero messages could be received; otherwise the number of
- * messages successfully received before the error will be returned. If
- * @cancellable is cancelled, %G_IO_ERROR_CANCELLED is returned as with any
- * other error.
+ * This is a synchronous failable constructor. See
+ * g_dbus_connection_new() for the asynchronous version.
*
- * Returns: number of messages received, or -1 on error. Note that the number
- * of messages received may be smaller than @num_messages if @timeout is
- * zero or positive, if the peer closed the connection, or if @num_messages
- * was larger than `UIO_MAXIOV` (1024), in which case the caller may re-try
- * to receive the remaining messages.
- * Since: 2.48
+ * Returns: a #GDBusConnection or %NULL if @error is set. Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_datagram_based_send_messages:
- * @datagram_based: a #GDatagramBased
- * @messages: (array length=num_messages): an array of #GOutputMessage structs
- * @num_messages: the number of elements in @messages
- * @flags: an int containing #GSocketMsgFlags flags
- * @timeout: the maximum time (in microseconds) to wait, 0 to not block, or -1
- * to block indefinitely
- * @cancellable: (nullable): a %GCancellable
- * @error: return location for a #GError
- *
- * Send one or more data messages from @datagram_based in one go.
+ * g_dbus_connection_register_object:
+ * @connection: a #GDBusConnection
+ * @object_path: the object path to register at
+ * @interface_info: introspection data for the interface
+ * @vtable: (nullable): a #GDBusInterfaceVTable to call into or %NULL
+ * @user_data: (nullable): data to pass to functions in @vtable
+ * @user_data_free_func: function to call when the object path is unregistered
+ * @error: return location for error or %NULL
*
- * @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.
+ * Registers callbacks for exported objects at @object_path with the
+ * D-Bus interface that is described in @interface_info.
*
- * @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.
+ * Calls to functions in @vtable (and @user_data_free_func) will happen
+ * in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread you are calling this method from.
*
- * The other members of #GOutputMessage are treated as described in its
- * documentation.
+ * Note that all #GVariant values passed to functions in @vtable will match
+ * the signature given in @interface_info - if a remote caller passes
+ * incorrect values, the `org.freedesktop.DBus.Error.InvalidArgs`
+ * is returned to the remote caller.
*
- * If @timeout is negative the call will block until @num_messages have been
- * sent, @cancellable is cancelled, or an error occurs.
+ * Additionally, if the remote caller attempts to invoke methods or
+ * access properties not mentioned in @interface_info the
+ * `org.freedesktop.DBus.Error.UnknownMethod` resp.
+ * `org.freedesktop.DBus.Error.InvalidArgs` errors
+ * are returned to the caller.
*
- * If @timeout is 0 the call will send up to @num_messages without blocking,
- * or will return %G_IO_ERROR_WOULD_BLOCK if there is no space to send messages.
+ * It is considered a programming error if the
+ * #GDBusInterfaceGetPropertyFunc function in @vtable returns a
+ * #GVariant of incorrect type.
*
- * If @timeout is positive the call will block on the same conditions as if
- * @timeout were negative. If the timeout is reached before any messages are
- * sent, %G_IO_ERROR_TIMED_OUT is returned, otherwise it will return the number
- * of messages sent before timing out.
+ * If an existing callback is already registered at @object_path and
+ * @interface_name, then @error is set to #G_IO_ERROR_EXISTS.
*
- * To be notified when messages can be sent, wait for the %G_IO_OUT condition.
- * Note though that you may still receive %G_IO_ERROR_WOULD_BLOCK from
- * g_datagram_based_send_messages() 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.)
+ * GDBus automatically implements the standard D-Bus interfaces
+ * org.freedesktop.DBus.Properties, org.freedesktop.DBus.Introspectable
+ * and org.freedesktop.Peer, so you don't have to implement those for the
+ * objects you export. You can implement org.freedesktop.DBus.Properties
+ * yourself, e.g. to handle getting and setting of properties asynchronously.
*
- * If the connection is shut down or closed (by calling g_socket_close() or
- * g_socket_shutdown() with @shutdown_write set, if it’s a #GSocket, for
- * example), all calls to this function will return %G_IO_ERROR_CLOSED.
+ * Note that the reference count on @interface_info will be
+ * incremented by 1 (unless allocated statically, e.g. if the
+ * reference count is -1, see g_dbus_interface_info_ref()) for as long
+ * as the object is exported. Also note that @vtable will be copied.
*
- * On error -1 is returned and @error is set accordingly. An error will only
- * be returned if zero messages could be sent; otherwise the number of messages
- * successfully sent before the error will be returned. If @cancellable is
- * cancelled, %G_IO_ERROR_CANCELLED is returned as with any other error.
+ * See this [server][gdbus-server] for an example of how to use this method.
*
- * Returns: number of messages sent, or -1 on error. Note that the number of
- * messages sent may be smaller than @num_messages if @timeout is zero
- * or positive, or if @num_messages was larger than `UIO_MAXIOV` (1024), in
- * which case the caller may re-try to send the remaining messages.
- * Since: 2.48
+ * Returns: 0 if @error is set, otherwise a registration id (never 0)
+ * that can be used with g_dbus_connection_unregister_object()
+ * Since: 2.26
*/
/**
- * g_dbus_action_group_get:
- * @connection: A #GDBusConnection
- * @bus_name: (nullable): the bus name which exports the action
- * group or %NULL if @connection is not a message bus connection
- * @object_path: the object path at which the action group is exported
- *
- * Obtains a #GDBusActionGroup for the action group which is exported at
- * the given @bus_name and @object_path.
- *
- * The thread default main context is taken at the time of this call.
- * All signals on the menu model (and any linked models) are reported
- * with respect to this context. All calls on the returned menu model
- * (and linked models) must also originate from this same context, with
- * the thread default main context unchanged.
+ * g_dbus_connection_register_object_with_closures: (rename-to g_dbus_connection_register_object)
+ * @connection: A #GDBusConnection.
+ * @object_path: The object path to register at.
+ * @interface_info: Introspection data for the interface.
+ * @method_call_closure: (nullable): #GClosure for handling incoming method calls.
+ * @get_property_closure: (nullable): #GClosure for getting a property.
+ * @set_property_closure: (nullable): #GClosure for setting a property.
+ * @error: Return location for error or %NULL.
*
- * This call is non-blocking. The returned action group may or may not
- * already be filled in. The correct thing to do is connect the signals
- * for the action group to monitor for changes and then to call
- * g_action_group_list_actions() to get the initial list.
+ * Version of g_dbus_connection_register_object() using closures instead of a
+ * #GDBusInterfaceVTable for easier binding in other languages.
*
- * Returns: (transfer full): a #GDBusActionGroup
- * Since: 2.32
+ * Returns: 0 if @error is set, otherwise a registration id (never 0)
+ * that can be used with g_dbus_connection_unregister_object() .
+ * Since: 2.46
*/
/**
- * g_dbus_address_escape_value:
- * @string: an unescaped string to be included in a D-Bus address
- * as the value in a key-value pair
- *
- * Escape @string so it can appear in a D-Bus address as the value
- * part of a key-value pair.
+ * g_dbus_connection_register_subtree:
+ * @connection: a #GDBusConnection
+ * @object_path: the object path to register the subtree at
+ * @vtable: a #GDBusSubtreeVTable to enumerate, introspect and
+ * dispatch nodes in the subtree
+ * @flags: flags used to fine tune the behavior of the subtree
+ * @user_data: data to pass to functions in @vtable
+ * @user_data_free_func: function to call when the subtree is unregistered
+ * @error: return location for error or %NULL
*
- * For instance, if @string is `/run/bus-for-:0`,
- * this function would return `/run/bus-for-%3A0`,
- * which could be used in a D-Bus address like
- * `unix:nonce-tcp:host=127.0.0.1,port=42,noncefile=/run/bus-for-%3A0`.
+ * Registers a whole subtree of dynamic objects.
*
- * Returns: (transfer full): a copy of @string with all
- * non-optionally-escaped bytes escaped
- * Since: 2.36
- */
-
-
-/**
- * g_dbus_address_get_for_bus_sync:
- * @bus_type: a #GBusType
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @error: return location for error or %NULL
+ * The @enumerate and @introspection functions in @vtable are used to
+ * convey, to remote callers, what nodes exist in the subtree rooted
+ * by @object_path.
*
- * Synchronously looks up the D-Bus address for the well-known message
- * bus instance specified by @bus_type. This may involve using various
- * platform specific mechanisms.
+ * When handling remote calls into any node in the subtree, first the
+ * @enumerate function is used to check if the node exists. If the node exists
+ * or the #G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES flag is set
+ * the @introspection function is used to check if the node supports the
+ * requested method. If so, the @dispatch function is used to determine
+ * where to dispatch the call. The collected #GDBusInterfaceVTable and
+ * #gpointer will be used to call into the interface vtable for processing
+ * the request.
*
- * The returned address will be in the
- * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
+ * All calls into user-provided code will be invoked in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread you are calling this method from.
*
- * Returns: a valid D-Bus address string for @bus_type or %NULL if
- * @error is set
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_address_get_stream:
- * @address: A valid D-Bus address.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: Data to pass to @callback.
+ * If an existing subtree is already registered at @object_path or
+ * then @error is set to #G_IO_ERROR_EXISTS.
*
- * Asynchronously connects to an endpoint specified by @address and
- * sets up the connection so it is in a state to run the client-side
- * of the D-Bus authentication conversation. @address must be in the
- * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
+ * Note that it is valid to register regular objects (using
+ * g_dbus_connection_register_object()) in a subtree registered with
+ * g_dbus_connection_register_subtree() - if so, the subtree handler
+ * is tried as the last resort. One way to think about a subtree
+ * handler is to consider it a fallback handler for object paths not
+ * registered via g_dbus_connection_register_object() or other bindings.
*
- * When the operation is finished, @callback will be invoked. You can
- * then call g_dbus_address_get_stream_finish() to get the result of
- * the operation.
+ * Note that @vtable will be copied so you cannot change it after
+ * registration.
*
- * This is an asynchronous failable function. See
- * g_dbus_address_get_stream_sync() for the synchronous version.
+ * See this [server][gdbus-subtree-server] for an example of how to use
+ * this method.
*
+ * Returns: 0 if @error is set, otherwise a subtree registration id (never 0)
+ * that can be used with g_dbus_connection_unregister_subtree() .
* Since: 2.26
*/
/**
- * g_dbus_address_get_stream_finish:
- * @res: A #GAsyncResult obtained from the GAsyncReadyCallback passed to g_dbus_address_get_stream().
- * @out_guid: (optional) (out): %NULL or return location to store the GUID extracted from @address, if any.
- * @error: Return location for error or %NULL.
+ * g_dbus_connection_remove_filter:
+ * @connection: a #GDBusConnection
+ * @filter_id: an identifier obtained from g_dbus_connection_add_filter()
*
- * Finishes an operation started with g_dbus_address_get_stream().
+ * Removes a filter.
+ *
+ * Note that since filters run in a different thread, there is a race
+ * condition where it is possible that the filter will be running even
+ * after calling g_dbus_connection_remove_filter(), so you cannot just
+ * free data that the filter might be using. Instead, you should pass
+ * a #GDestroyNotify to g_dbus_connection_add_filter(), which will be
+ * called when it is guaranteed that the data is no longer needed.
*
- * Returns: (transfer full): A #GIOStream or %NULL if @error is set.
* Since: 2.26
*/
/**
- * g_dbus_address_get_stream_sync:
- * @address: A valid D-Bus address.
- * @out_guid: (optional) (out): %NULL or return location to store the GUID extracted from @address, if any.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_dbus_connection_send_message:
+ * @connection: a #GDBusConnection
+ * @message: a #GDBusMessage
+ * @flags: flags affecting how the message is sent
+ * @out_serial: (out) (optional): return location for serial number assigned
+ * to @message when sending it or %NULL
+ * @error: Return location for error or %NULL
*
- * Synchronously connects to an endpoint specified by @address and
- * sets up the connection so it is in a state to run the client-side
- * of the D-Bus authentication conversation. @address must be in the
- * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
+ * Asynchronously sends @message to the peer represented by @connection.
*
- * This is a synchronous failable function. See
- * g_dbus_address_get_stream() for the asynchronous version.
+ * Unless @flags contain the
+ * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number
+ * will be assigned by @connection and set on @message via
+ * g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
+ * serial number used will be written to this location prior to
+ * submitting the message to the underlying transport.
*
- * Returns: (transfer full): A #GIOStream or %NULL if @error is set.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_annotation_info_lookup:
- * @annotations: (array zero-terminated=1) (nullable): A %NULL-terminated array of annotations or %NULL.
- * @name: The name of the annotation to look up.
+ * If @connection is closed then the operation will fail with
+ * %G_IO_ERROR_CLOSED. If @message is not well-formed,
+ * the operation fails with %G_IO_ERROR_INVALID_ARGUMENT.
*
- * Looks up the value of an annotation.
+ * See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
+ * for an example of how to use this low-level API to send and receive
+ * UNIX file descriptors.
*
- * The cost of this function is O(n) in number of annotations.
+ * Note that @message must be unlocked, unless @flags contain the
+ * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag.
*
- * Returns: The value or %NULL if not found. Do not free, it is owned by @annotations.
+ * Returns: %TRUE if the message was well-formed and queued for
+ * transmission, %FALSE if @error is set
* Since: 2.26
*/
/**
- * g_dbus_annotation_info_ref:
- * @info: A #GDBusNodeInfo
+ * g_dbus_connection_send_message_with_reply:
+ * @connection: a #GDBusConnection
+ * @message: a #GDBusMessage
+ * @flags: flags affecting how the message is sent
+ * @timeout_msec: the timeout in milliseconds, -1 to use the default
+ * timeout or %G_MAXINT for no timeout
+ * @out_serial: (out) (optional): return location for serial number assigned
+ * to @message when sending it or %NULL
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @callback: (nullable): a #GAsyncReadyCallback to call when the request
+ * is satisfied or %NULL if you don't care about the result
+ * @user_data: The data to pass to @callback
*
- * If @info is statically allocated does nothing. Otherwise increases
- * the reference count.
+ * Asynchronously sends @message to the peer represented by @connection.
*
- * Returns: The same @info.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_annotation_info_unref:
- * @info: A #GDBusAnnotationInfo.
+ * Unless @flags contain the
+ * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number
+ * will be assigned by @connection and set on @message via
+ * g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
+ * serial number used will be written to this location prior to
+ * submitting the message to the underlying transport.
*
- * If @info is statically allocated, does nothing. Otherwise decreases
- * the reference count of @info. When its reference count drops to 0,
- * the memory used is freed.
+ * If @connection is closed then the operation will fail with
+ * %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will
+ * fail with %G_IO_ERROR_CANCELLED. If @message is not well-formed,
+ * the operation fails with %G_IO_ERROR_INVALID_ARGUMENT.
+ *
+ * This is an asynchronous method. When the operation is finished, @callback
+ * will be invoked in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread you are calling this method from. You can then call
+ * g_dbus_connection_send_message_with_reply_finish() to get the result of the operation.
+ * See g_dbus_connection_send_message_with_reply_sync() for the synchronous version.
+ *
+ * Note that @message must be unlocked, unless @flags contain the
+ * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag.
+ *
+ * See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
+ * for an example of how to use this low-level API to send and receive
+ * UNIX file descriptors.
*
* Since: 2.26
*/
/**
- * g_dbus_arg_info_ref:
- * @info: A #GDBusArgInfo
+ * g_dbus_connection_send_message_with_reply_finish:
+ * @connection: a #GDBusConnection
+ * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed to
+ * g_dbus_connection_send_message_with_reply()
+ * @error: teturn location for error or %NULL
*
- * If @info is statically allocated does nothing. Otherwise increases
- * the reference count.
+ * Finishes an operation started with g_dbus_connection_send_message_with_reply().
*
- * Returns: The same @info.
+ * Note that @error is only set if a local in-process error
+ * occurred. That is to say that the returned #GDBusMessage object may
+ * be of type %G_DBUS_MESSAGE_TYPE_ERROR. Use
+ * g_dbus_message_to_gerror() to transcode this to a #GError.
+ *
+ * See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
+ * for an example of how to use this low-level API to send and receive
+ * UNIX file descriptors.
+ *
+ * Returns: (transfer full): a locked #GDBusMessage or %NULL if @error is set
* Since: 2.26
*/
/**
- * g_dbus_arg_info_unref:
- * @info: A #GDBusArgInfo.
+ * g_dbus_connection_send_message_with_reply_sync:
+ * @connection: a #GDBusConnection
+ * @message: a #GDBusMessage
+ * @flags: flags affecting how the message is sent.
+ * @timeout_msec: the timeout in milliseconds, -1 to use the default
+ * timeout or %G_MAXINT for no timeout
+ * @out_serial: (out) (optional): return location for serial number
+ * assigned to @message when sending it or %NULL
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @error: return location for error or %NULL
*
- * If @info is statically allocated, does nothing. Otherwise decreases
- * the reference count of @info. When its reference count drops to 0,
- * the memory used is freed.
+ * Synchronously sends @message to the peer represented by @connection
+ * and blocks the calling thread until a reply is received or the
+ * timeout is reached. See g_dbus_connection_send_message_with_reply()
+ * for the asynchronous version of this method.
+ *
+ * Unless @flags contain the
+ * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number
+ * will be assigned by @connection and set on @message via
+ * g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
+ * serial number used will be written to this location prior to
+ * submitting the message to the underlying transport.
+ *
+ * If @connection is closed then the operation will fail with
+ * %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will
+ * fail with %G_IO_ERROR_CANCELLED. If @message is not well-formed,
+ * the operation fails with %G_IO_ERROR_INVALID_ARGUMENT.
+ *
+ * Note that @error is only set if a local in-process error
+ * occurred. That is to say that the returned #GDBusMessage object may
+ * be of type %G_DBUS_MESSAGE_TYPE_ERROR. Use
+ * g_dbus_message_to_gerror() to transcode this to a #GError.
+ *
+ * See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
+ * for an example of how to use this low-level API to send and receive
+ * UNIX file descriptors.
+ *
+ * Note that @message must be unlocked, unless @flags contain the
+ * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag.
*
+ * Returns: (transfer full): a locked #GDBusMessage that is the reply
+ * to @message or %NULL if @error is set
* Since: 2.26
*/
/**
- * g_dbus_auth_observer_allow_mechanism:
- * @observer: A #GDBusAuthObserver.
- * @mechanism: The name of the mechanism, e.g. `DBUS_COOKIE_SHA1`.
+ * g_dbus_connection_set_exit_on_close:
+ * @connection: a #GDBusConnection
+ * @exit_on_close: whether the process should be terminated
+ * when @connection is closed by the remote peer
*
- * Emits the #GDBusAuthObserver::allow-mechanism signal on @observer.
+ * Sets whether the process should be terminated when @connection is
+ * closed by the remote peer. See #GDBusConnection:exit-on-close for
+ * more details.
*
- * Returns: %TRUE if @mechanism can be used to authenticate the other peer, %FALSE if not.
- * Since: 2.34
+ * Note that this function should be used with care. Most modern UNIX
+ * desktops tie the notion of a user session the session bus, and expect
+ * all of a users applications to quit when their bus connection goes away.
+ * If you are setting @exit_on_close to %FALSE for the shared session
+ * bus connection, you should make sure that your application exits
+ * when the user session ends.
+ *
+ * Since: 2.26
*/
/**
- * g_dbus_auth_observer_authorize_authenticated_peer:
- * @observer: A #GDBusAuthObserver.
- * @stream: A #GIOStream for the #GDBusConnection.
- * @credentials: (nullable): Credentials received from the peer or %NULL.
- *
- * Emits the #GDBusAuthObserver::authorize-authenticated-peer signal on @observer.
- *
- * Returns: %TRUE if the peer is authorized, %FALSE if not.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_auth_observer_new:
- *
- * Creates a new #GDBusAuthObserver object.
- *
- * Returns: A #GDBusAuthObserver. Free with g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_add_filter:
- * @connection: a #GDBusConnection
- * @filter_function: a filter function
- * @user_data: user data to pass to @filter_function
- * @user_data_free_func: function to free @user_data with when filter
- * is removed or %NULL
- *
- * Adds a message filter. Filters are handlers that are run on all
- * incoming and outgoing messages, prior to standard dispatch. Filters
- * are run in the order that they were added. The same handler can be
- * added as a filter more than once, in which case it will be run more
- * than once. Filters added during a filter callback won't be run on
- * the message being processed. Filter functions are allowed to modify
- * and even drop messages.
- *
- * Note that filters are run in a dedicated message handling thread so
- * they can't block and, generally, can't do anything but signal a
- * worker thread. Also note that filters are rarely needed - use API
- * such as g_dbus_connection_send_message_with_reply(),
- * g_dbus_connection_signal_subscribe() or g_dbus_connection_call() instead.
- *
- * If a filter consumes an incoming message the message is not
- * dispatched anywhere else - not even the standard dispatch machinery
- * (that API such as g_dbus_connection_signal_subscribe() and
- * g_dbus_connection_send_message_with_reply() relies on) will see the
- * message. Similary, if a filter consumes an outgoing message, the
- * message will not be sent to the other peer.
- *
- * If @user_data_free_func is non-%NULL, it will be called (in the
- * thread-default main context of the thread you are calling this
- * method from) at some point after @user_data is no longer
- * needed. (It is not guaranteed to be called synchronously when the
- * filter is removed, and may be called after @connection has been
- * destroyed.)
- *
- * Returns: a filter identifier that can be used with
- * g_dbus_connection_remove_filter()
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_call:
- * @connection: a #GDBusConnection
- * @bus_name: (nullable): a unique or well-known bus name or %NULL if
- * @connection is not a message bus connection
- * @object_path: path of remote object
- * @interface_name: D-Bus interface to invoke method on
- * @method_name: the name of the method to invoke
- * @parameters: (nullable): a #GVariant tuple with parameters for the method
- * or %NULL if not passing parameters
- * @reply_type: (nullable): the expected type of the reply (which will be a
- * tuple), or %NULL
- * @flags: flags from the #GDBusCallFlags enumeration
- * @timeout_msec: the timeout in milliseconds, -1 to use the default
- * timeout or %G_MAXINT for no timeout
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @callback: (nullable): a #GAsyncReadyCallback to call when the request
- * is satisfied or %NULL if you don't care about the result of the
- * method invocation
- * @user_data: the data to pass to @callback
- *
- * Asynchronously invokes the @method_name method on the
- * @interface_name D-Bus interface on the remote object at
- * @object_path owned by @bus_name.
- *
- * If @connection is closed then the operation will fail with
- * %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will
- * fail with %G_IO_ERROR_CANCELLED. If @parameters contains a value
- * not compatible with the D-Bus protocol, the operation fails with
- * %G_IO_ERROR_INVALID_ARGUMENT.
- *
- * If @reply_type is non-%NULL then the reply will be checked for having this type and an
- * error will be raised if it does not match. Said another way, if you give a @reply_type
- * then any non-%NULL return value will be of this type. Unless it’s
- * %G_VARIANT_TYPE_UNIT, the @reply_type will be a tuple containing one or more
- * values.
- *
- * If the @parameters #GVariant is floating, it is consumed. This allows
- * convenient 'inline' use of g_variant_new(), e.g.:
- * |[<!-- language="C" -->
- * g_dbus_connection_call (connection,
- * "org.freedesktop.StringThings",
- * "/org/freedesktop/StringThings",
- * "org.freedesktop.StringThings",
- * "TwoStrings",
- * g_variant_new ("(ss)",
- * "Thing One",
- * "Thing Two"),
- * NULL,
- * G_DBUS_CALL_FLAGS_NONE,
- * -1,
- * NULL,
- * (GAsyncReadyCallback) two_strings_done,
- * NULL);
- * ]|
- *
- * This is an asynchronous method. When the operation is finished,
- * @callback will be invoked in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread you are calling this method from. You can then call
- * g_dbus_connection_call_finish() to get the result of the operation.
- * See g_dbus_connection_call_sync() for the synchronous version of this
- * function.
- *
- * If @callback is %NULL then the D-Bus method call message will be sent with
- * the %G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED flag set.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_call_finish:
- * @connection: a #GDBusConnection
- * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_connection_call()
- * @error: return location for error or %NULL
- *
- * Finishes an operation started with g_dbus_connection_call().
- *
- * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
- * return values. Free with g_variant_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_call_sync:
- * @connection: a #GDBusConnection
- * @bus_name: (nullable): a unique or well-known bus name or %NULL if
- * @connection is not a message bus connection
- * @object_path: path of remote object
- * @interface_name: D-Bus interface to invoke method on
- * @method_name: the name of the method to invoke
- * @parameters: (nullable): a #GVariant tuple with parameters for the method
- * or %NULL if not passing parameters
- * @reply_type: (nullable): the expected type of the reply, or %NULL
- * @flags: flags from the #GDBusCallFlags enumeration
- * @timeout_msec: the timeout in milliseconds, -1 to use the default
- * timeout or %G_MAXINT for no timeout
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @error: return location for error or %NULL
- *
- * Synchronously invokes the @method_name method on the
- * @interface_name D-Bus interface on the remote object at
- * @object_path owned by @bus_name.
- *
- * If @connection is closed then the operation will fail with
- * %G_IO_ERROR_CLOSED. If @cancellable is canceled, the
- * operation will fail with %G_IO_ERROR_CANCELLED. If @parameters
- * contains a value not compatible with the D-Bus protocol, the operation
- * fails with %G_IO_ERROR_INVALID_ARGUMENT.
- *
- * If @reply_type is non-%NULL then the reply will be checked for having
- * this type and an error will be raised if it does not match. Said
- * another way, if you give a @reply_type then any non-%NULL return
- * value will be of this type.
- *
- * If the @parameters #GVariant is floating, it is consumed.
- * This allows convenient 'inline' use of g_variant_new(), e.g.:
- * |[<!-- language="C" -->
- * g_dbus_connection_call_sync (connection,
- * "org.freedesktop.StringThings",
- * "/org/freedesktop/StringThings",
- * "org.freedesktop.StringThings",
- * "TwoStrings",
- * g_variant_new ("(ss)",
- * "Thing One",
- * "Thing Two"),
- * NULL,
- * G_DBUS_CALL_FLAGS_NONE,
- * -1,
- * NULL,
- * &error);
- * ]|
- *
- * The calling thread is blocked until a reply is received. See
- * g_dbus_connection_call() for the asynchronous version of
- * this method.
- *
- * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
- * return values. Free with g_variant_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_call_with_unix_fd_list:
- * @connection: a #GDBusConnection
- * @bus_name: (nullable): a unique or well-known bus name or %NULL if
- * @connection is not a message bus connection
- * @object_path: path of remote object
- * @interface_name: D-Bus interface to invoke method on
- * @method_name: the name of the method to invoke
- * @parameters: (nullable): a #GVariant tuple with parameters for the method
- * or %NULL if not passing parameters
- * @reply_type: (nullable): the expected type of the reply, or %NULL
- * @flags: flags from the #GDBusCallFlags enumeration
- * @timeout_msec: the timeout in milliseconds, -1 to use the default
- * timeout or %G_MAXINT for no timeout
- * @fd_list: (nullable): a #GUnixFDList or %NULL
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @callback: (nullable): a #GAsyncReadyCallback to call when the request is
- * satisfied or %NULL if you don't * care about the result of the
- * method invocation
- * @user_data: The data to pass to @callback.
- *
- * Like g_dbus_connection_call() but also takes a #GUnixFDList object.
- *
- * This method is only available on UNIX.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_connection_call_with_unix_fd_list_finish:
- * @connection: a #GDBusConnection
- * @out_fd_list: (out) (optional): return location for a #GUnixFDList or %NULL
- * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed to
- * g_dbus_connection_call_with_unix_fd_list()
- * @error: return location for error or %NULL
- *
- * Finishes an operation started with g_dbus_connection_call_with_unix_fd_list().
- *
- * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
- * return values. Free with g_variant_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_connection_call_with_unix_fd_list_sync:
- * @connection: a #GDBusConnection
- * @bus_name: (nullable): a unique or well-known bus name or %NULL
- * if @connection is not a message bus connection
- * @object_path: path of remote object
- * @interface_name: D-Bus interface to invoke method on
- * @method_name: the name of the method to invoke
- * @parameters: (nullable): a #GVariant tuple with parameters for
- * the method or %NULL if not passing parameters
- * @reply_type: (nullable): the expected type of the reply, or %NULL
- * @flags: flags from the #GDBusCallFlags enumeration
- * @timeout_msec: the timeout in milliseconds, -1 to use the default
- * timeout or %G_MAXINT for no timeout
- * @fd_list: (nullable): a #GUnixFDList or %NULL
- * @out_fd_list: (out) (optional): return location for a #GUnixFDList or %NULL
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @error: return location for error or %NULL
- *
- * Like g_dbus_connection_call_sync() but also takes and returns #GUnixFDList objects.
- *
- * This method is only available on UNIX.
- *
- * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
- * return values. Free with g_variant_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_connection_close:
- * @connection: a #GDBusConnection
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @callback: (nullable): a #GAsyncReadyCallback to call when the request is
- * satisfied or %NULL if you don't care about the result
- * @user_data: The data to pass to @callback
- *
- * Closes @connection. Note that this never causes the process to
- * exit (this might only happen if the other end of a shared message
- * bus connection disconnects, see #GDBusConnection:exit-on-close).
- *
- * Once the connection is closed, operations such as sending a message
- * will return with the error %G_IO_ERROR_CLOSED. Closing a connection
- * will not automatically flush the connection so queued messages may
- * be lost. Use g_dbus_connection_flush() if you need such guarantees.
- *
- * If @connection is already closed, this method fails with
- * %G_IO_ERROR_CLOSED.
- *
- * When @connection has been closed, the #GDBusConnection::closed
- * signal is emitted in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread that @connection was constructed in.
- *
- * This is an asynchronous method. When the operation is finished,
- * @callback will be invoked in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread you are calling this method from. You can
- * then call g_dbus_connection_close_finish() to get the result of the
- * operation. See g_dbus_connection_close_sync() for the synchronous
- * version.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_close_finish:
- * @connection: a #GDBusConnection
- * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed
- * to g_dbus_connection_close()
- * @error: return location for error or %NULL
- *
- * Finishes an operation started with g_dbus_connection_close().
- *
- * Returns: %TRUE if the operation succeeded, %FALSE if @error is set
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_close_sync:
- * @connection: a #GDBusConnection
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @error: return location for error or %NULL
- *
- * Synchronously closes @connection. The calling thread is blocked
- * until this is done. See g_dbus_connection_close() for the
- * asynchronous version of this method and more details about what it
- * does.
- *
- * Returns: %TRUE if the operation succeeded, %FALSE if @error is set
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_emit_signal:
- * @connection: a #GDBusConnection
- * @destination_bus_name: (nullable): the unique bus name for the destination
- * for the signal or %NULL to emit to all listeners
- * @object_path: path of remote object
- * @interface_name: D-Bus interface to emit a signal on
- * @signal_name: the name of the signal to emit
- * @parameters: (nullable): a #GVariant tuple with parameters for the signal
- * or %NULL if not passing parameters
- * @error: Return location for error or %NULL
- *
- * Emits a signal.
- *
- * If the parameters GVariant is floating, it is consumed.
- *
- * This can only fail if @parameters is not compatible with the D-Bus protocol
- * (%G_IO_ERROR_INVALID_ARGUMENT), or if @connection has been closed
- * (%G_IO_ERROR_CLOSED).
- *
- * Returns: %TRUE unless @error is set
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_export_action_group:
- * @connection: a #GDBusConnection
- * @object_path: a D-Bus object path
- * @action_group: a #GActionGroup
- * @error: a pointer to a %NULL #GError, or %NULL
- *
- * Exports @action_group on @connection at @object_path.
- *
- * The implemented D-Bus API should be considered private. It is
- * subject to change in the future.
- *
- * A given object path can only have one action group exported on it.
- * If this constraint is violated, the export will fail and 0 will be
- * returned (with @error set accordingly).
- *
- * You can unexport the action group using
- * g_dbus_connection_unexport_action_group() with the return value of
- * this function.
- *
- * The thread default main context is taken at the time of this call.
- * All incoming action activations and state change requests are
- * reported from this context. Any changes on the action group that
- * cause it to emit signals must also come from this same context.
- * Since incoming action activations and state change requests are
- * rather likely to cause changes on the action group, this effectively
- * limits a given action group to being exported from only one main
- * context.
- *
- * Returns: the ID of the export (never zero), or 0 in case of failure
- * Since: 2.32
- */
-
-
-/**
- * g_dbus_connection_export_menu_model:
- * @connection: a #GDBusConnection
- * @object_path: a D-Bus object path
- * @menu: a #GMenuModel
- * @error: return location for an error, or %NULL
- *
- * Exports @menu on @connection at @object_path.
- *
- * The implemented D-Bus API should be considered private.
- * It is subject to change in the future.
- *
- * An object path can only have one menu model exported on it. If this
- * constraint is violated, the export will fail and 0 will be
- * returned (with @error set accordingly).
- *
- * You can unexport the menu model using
- * g_dbus_connection_unexport_menu_model() with the return value of
- * this function.
- *
- * Returns: the ID of the export (never zero), or 0 in case of failure
- * Since: 2.32
- */
-
-
-/**
- * g_dbus_connection_flush:
- * @connection: a #GDBusConnection
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @callback: (nullable): a #GAsyncReadyCallback to call when the
- * request is satisfied or %NULL if you don't care about the result
- * @user_data: The data to pass to @callback
- *
- * Asynchronously flushes @connection, that is, writes all queued
- * outgoing message to the transport and then flushes the transport
- * (using g_output_stream_flush_async()). This is useful in programs
- * that wants to emit a D-Bus signal and then exit immediately. Without
- * flushing the connection, there is no guaranteed that the message has
- * been sent to the networking buffers in the OS kernel.
- *
- * This is an asynchronous method. When the operation is finished,
- * @callback will be invoked in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread you are calling this method from. You can
- * then call g_dbus_connection_flush_finish() to get the result of the
- * operation. See g_dbus_connection_flush_sync() for the synchronous
- * version.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_flush_finish:
- * @connection: a #GDBusConnection
- * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed
- * to g_dbus_connection_flush()
- * @error: return location for error or %NULL
- *
- * Finishes an operation started with g_dbus_connection_flush().
- *
- * Returns: %TRUE if the operation succeeded, %FALSE if @error is set
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_flush_sync:
- * @connection: a #GDBusConnection
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @error: return location for error or %NULL
- *
- * Synchronously flushes @connection. The calling thread is blocked
- * until this is done. See g_dbus_connection_flush() for the
- * asynchronous version of this method and more details about what it
- * does.
- *
- * Returns: %TRUE if the operation succeeded, %FALSE if @error is set
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_get_capabilities:
- * @connection: a #GDBusConnection
- *
- * Gets the capabilities negotiated with the remote peer
- *
- * Returns: zero or more flags from the #GDBusCapabilityFlags enumeration
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_get_exit_on_close:
- * @connection: a #GDBusConnection
- *
- * Gets whether the process is terminated when @connection is
- * closed by the remote peer. See
- * #GDBusConnection:exit-on-close for more details.
- *
- * Returns: whether the process is terminated when @connection is
- * closed by the remote peer
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_get_guid:
- * @connection: a #GDBusConnection
- *
- * The GUID of the peer performing the role of server when
- * authenticating. See #GDBusConnection:guid for more details.
- *
- * Returns: The GUID. Do not free this string, it is owned by
- * @connection.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_get_last_serial:
- * @connection: a #GDBusConnection
- *
- * Retrieves the last serial number assigned to a #GDBusMessage on
- * the current thread. This includes messages sent via both low-level
- * API such as g_dbus_connection_send_message() as well as
- * high-level API such as g_dbus_connection_emit_signal(),
- * g_dbus_connection_call() or g_dbus_proxy_call().
- *
- * Returns: the last used serial or zero when no message has been sent
- * within the current thread
- * Since: 2.34
- */
-
-
-/**
- * g_dbus_connection_get_peer_credentials:
- * @connection: a #GDBusConnection
- *
- * Gets the credentials of the authenticated peer. This will always
- * return %NULL unless @connection acted as a server
- * (e.g. %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER was passed)
- * when set up and the client passed credentials as part of the
- * authentication process.
- *
- * In a message bus setup, the message bus is always the server and
- * each application is a client. So this method will always return
- * %NULL for message bus clients.
- *
- * Returns: (transfer none) (nullable): a #GCredentials or %NULL if not
- * available. Do not free this object, it is owned by @connection.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_get_stream:
- * @connection: a #GDBusConnection
- *
- * Gets the underlying stream used for IO.
- *
- * 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.
- *
- * Returns: (transfer none): the stream used for IO
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_get_unique_name:
- * @connection: a #GDBusConnection
- *
- * Gets the unique name of @connection as assigned by the message
- * bus. This can also be used to figure out if @connection is a
- * message bus connection.
- *
- * Returns: the unique name or %NULL if @connection is not a message
- * bus connection. Do not free this string, it is owned by
- * @connection.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_is_closed:
- * @connection: a #GDBusConnection
- *
- * Gets whether @connection is closed.
- *
- * Returns: %TRUE if the connection is closed, %FALSE otherwise
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_new:
- * @stream: a #GIOStream
- * @guid: (nullable): the GUID to use if a authenticating as a server or %NULL
- * @flags: flags describing how to make the connection
- * @observer: (nullable): a #GDBusAuthObserver or %NULL
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to @callback
- *
- * Asynchronously sets up a D-Bus connection for exchanging D-Bus messages
- * with the end represented by @stream.
- *
- * If @stream is a #GSocketConnection, then the corresponding #GSocket
- * will be put into non-blocking mode.
- *
- * The D-Bus connection will interact with @stream from a worker thread.
- * As a result, the caller should not interact with @stream after this
- * method has been called, except by calling g_object_unref() on it.
- *
- * If @observer is not %NULL it may be used to control the
- * authentication process.
- *
- * When the operation is finished, @callback will be invoked. You can
- * then call g_dbus_connection_new_finish() to get the result of the
- * operation.
- *
- * This is a asynchronous failable constructor. See
- * g_dbus_connection_new_sync() for the synchronous
- * version.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_new_finish:
- * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback
- * passed to g_dbus_connection_new().
- * @error: return location for error or %NULL
- *
- * Finishes an operation started with g_dbus_connection_new().
- *
- * Returns: a #GDBusConnection or %NULL if @error is set. Free
- * with g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_new_for_address:
- * @address: a D-Bus address
- * @flags: flags describing how to make the connection
- * @observer: (nullable): a #GDBusAuthObserver or %NULL
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to @callback
- *
- * Asynchronously connects and sets up a D-Bus client connection for
- * exchanging D-Bus messages with an endpoint specified by @address
- * which must be in the
- * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
- *
- * This constructor can only be used to initiate client-side
- * connections - use g_dbus_connection_new() if you need to act as the
- * server. In particular, @flags cannot contain the
- * %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER or
- * %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS flags.
- *
- * When the operation is finished, @callback will be invoked. You can
- * then call g_dbus_connection_new_finish() to get the result of the
- * operation.
- *
- * If @observer is not %NULL it may be used to control the
- * authentication process.
- *
- * This is a asynchronous failable constructor. See
- * g_dbus_connection_new_for_address_sync() for the synchronous
- * version.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_new_for_address_finish:
- * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed
- * to g_dbus_connection_new()
- * @error: return location for error or %NULL
- *
- * Finishes an operation started with g_dbus_connection_new_for_address().
- *
- * Returns: a #GDBusConnection or %NULL if @error is set. Free with
- * g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_new_for_address_sync:
- * @address: a D-Bus address
- * @flags: flags describing how to make the connection
- * @observer: (nullable): a #GDBusAuthObserver or %NULL
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @error: return location for error or %NULL
- *
- * Synchronously connects and sets up a D-Bus client connection for
- * exchanging D-Bus messages with an endpoint specified by @address
- * which must be in the
- * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
- *
- * This constructor can only be used to initiate client-side
- * connections - use g_dbus_connection_new_sync() if you need to act
- * as the server. In particular, @flags cannot contain the
- * %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER or
- * %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS flags.
- *
- * This is a synchronous failable constructor. See
- * g_dbus_connection_new_for_address() for the asynchronous version.
- *
- * If @observer is not %NULL it may be used to control the
- * authentication process.
- *
- * Returns: a #GDBusConnection or %NULL if @error is set. Free with
- * g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_new_sync:
- * @stream: a #GIOStream
- * @guid: (nullable): the GUID to use if a authenticating as a server or %NULL
- * @flags: flags describing how to make the connection
- * @observer: (nullable): a #GDBusAuthObserver or %NULL
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @error: return location for error or %NULL
- *
- * Synchronously sets up a D-Bus connection for exchanging D-Bus messages
- * with the end represented by @stream.
- *
- * If @stream is a #GSocketConnection, then the corresponding #GSocket
- * will be put into non-blocking mode.
- *
- * The D-Bus connection will interact with @stream from a worker thread.
- * As a result, the caller should not interact with @stream after this
- * method has been called, except by calling g_object_unref() on it.
- *
- * If @observer is not %NULL it may be used to control the
- * authentication process.
- *
- * This is a synchronous failable constructor. See
- * g_dbus_connection_new() for the asynchronous version.
- *
- * Returns: a #GDBusConnection or %NULL if @error is set. Free with g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_register_object:
- * @connection: a #GDBusConnection
- * @object_path: the object path to register at
- * @interface_info: introspection data for the interface
- * @vtable: (nullable): a #GDBusInterfaceVTable to call into or %NULL
- * @user_data: (nullable): data to pass to functions in @vtable
- * @user_data_free_func: function to call when the object path is unregistered
- * @error: return location for error or %NULL
- *
- * Registers callbacks for exported objects at @object_path with the
- * D-Bus interface that is described in @interface_info.
- *
- * Calls to functions in @vtable (and @user_data_free_func) will happen
- * in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread you are calling this method from.
- *
- * Note that all #GVariant values passed to functions in @vtable will match
- * the signature given in @interface_info - if a remote caller passes
- * incorrect values, the `org.freedesktop.DBus.Error.InvalidArgs`
- * is returned to the remote caller.
- *
- * Additionally, if the remote caller attempts to invoke methods or
- * access properties not mentioned in @interface_info the
- * `org.freedesktop.DBus.Error.UnknownMethod` resp.
- * `org.freedesktop.DBus.Error.InvalidArgs` errors
- * are returned to the caller.
- *
- * It is considered a programming error if the
- * #GDBusInterfaceGetPropertyFunc function in @vtable returns a
- * #GVariant of incorrect type.
- *
- * If an existing callback is already registered at @object_path and
- * @interface_name, then @error is set to #G_IO_ERROR_EXISTS.
- *
- * GDBus automatically implements the standard D-Bus interfaces
- * org.freedesktop.DBus.Properties, org.freedesktop.DBus.Introspectable
- * and org.freedesktop.Peer, so you don't have to implement those for the
- * objects you export. You can implement org.freedesktop.DBus.Properties
- * yourself, e.g. to handle getting and setting of properties asynchronously.
- *
- * Note that the reference count on @interface_info will be
- * incremented by 1 (unless allocated statically, e.g. if the
- * reference count is -1, see g_dbus_interface_info_ref()) for as long
- * as the object is exported. Also note that @vtable will be copied.
- *
- * See this [server][gdbus-server] for an example of how to use this method.
- *
- * Returns: 0 if @error is set, otherwise a registration id (never 0)
- * that can be used with g_dbus_connection_unregister_object()
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_register_object_with_closures: (rename-to g_dbus_connection_register_object)
- * @connection: A #GDBusConnection.
- * @object_path: The object path to register at.
- * @interface_info: Introspection data for the interface.
- * @method_call_closure: (nullable): #GClosure for handling incoming method calls.
- * @get_property_closure: (nullable): #GClosure for getting a property.
- * @set_property_closure: (nullable): #GClosure for setting a property.
- * @error: Return location for error or %NULL.
- *
- * Version of g_dbus_connection_register_object() using closures instead of a
- * #GDBusInterfaceVTable for easier binding in other languages.
- *
- * Returns: 0 if @error is set, otherwise a registration id (never 0)
- * that can be used with g_dbus_connection_unregister_object() .
- * Since: 2.46
- */
-
-
-/**
- * g_dbus_connection_register_subtree:
- * @connection: a #GDBusConnection
- * @object_path: the object path to register the subtree at
- * @vtable: a #GDBusSubtreeVTable to enumerate, introspect and
- * dispatch nodes in the subtree
- * @flags: flags used to fine tune the behavior of the subtree
- * @user_data: data to pass to functions in @vtable
- * @user_data_free_func: function to call when the subtree is unregistered
- * @error: return location for error or %NULL
- *
- * Registers a whole subtree of dynamic objects.
- *
- * The @enumerate and @introspection functions in @vtable are used to
- * convey, to remote callers, what nodes exist in the subtree rooted
- * by @object_path.
- *
- * When handling remote calls into any node in the subtree, first the
- * @enumerate function is used to check if the node exists. If the node exists
- * or the #G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES flag is set
- * the @introspection function is used to check if the node supports the
- * requested method. If so, the @dispatch function is used to determine
- * where to dispatch the call. The collected #GDBusInterfaceVTable and
- * #gpointer will be used to call into the interface vtable for processing
- * the request.
- *
- * All calls into user-provided code will be invoked in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread you are calling this method from.
- *
- * If an existing subtree is already registered at @object_path or
- * then @error is set to #G_IO_ERROR_EXISTS.
- *
- * Note that it is valid to register regular objects (using
- * g_dbus_connection_register_object()) in a subtree registered with
- * g_dbus_connection_register_subtree() - if so, the subtree handler
- * is tried as the last resort. One way to think about a subtree
- * handler is to consider it a fallback handler for object paths not
- * registered via g_dbus_connection_register_object() or other bindings.
- *
- * Note that @vtable will be copied so you cannot change it after
- * registration.
- *
- * See this [server][gdbus-subtree-server] for an example of how to use
- * this method.
- *
- * Returns: 0 if @error is set, otherwise a subtree registration id (never 0)
- * that can be used with g_dbus_connection_unregister_subtree() .
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_remove_filter:
- * @connection: a #GDBusConnection
- * @filter_id: an identifier obtained from g_dbus_connection_add_filter()
- *
- * Removes a filter.
- *
- * Note that since filters run in a different thread, there is a race
- * condition where it is possible that the filter will be running even
- * after calling g_dbus_connection_remove_filter(), so you cannot just
- * free data that the filter might be using. Instead, you should pass
- * a #GDestroyNotify to g_dbus_connection_add_filter(), which will be
- * called when it is guaranteed that the data is no longer needed.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_send_message:
- * @connection: a #GDBusConnection
- * @message: a #GDBusMessage
- * @flags: flags affecting how the message is sent
- * @out_serial: (out) (optional): return location for serial number assigned
- * to @message when sending it or %NULL
- * @error: Return location for error or %NULL
- *
- * Asynchronously sends @message to the peer represented by @connection.
- *
- * Unless @flags contain the
- * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number
- * will be assigned by @connection and set on @message via
- * g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
- * serial number used will be written to this location prior to
- * submitting the message to the underlying transport.
- *
- * If @connection is closed then the operation will fail with
- * %G_IO_ERROR_CLOSED. If @message is not well-formed,
- * the operation fails with %G_IO_ERROR_INVALID_ARGUMENT.
- *
- * See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
- * for an example of how to use this low-level API to send and receive
- * UNIX file descriptors.
- *
- * Note that @message must be unlocked, unless @flags contain the
- * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag.
- *
- * Returns: %TRUE if the message was well-formed and queued for
- * transmission, %FALSE if @error is set
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_send_message_with_reply:
- * @connection: a #GDBusConnection
- * @message: a #GDBusMessage
- * @flags: flags affecting how the message is sent
- * @timeout_msec: the timeout in milliseconds, -1 to use the default
- * timeout or %G_MAXINT for no timeout
- * @out_serial: (out) (optional): return location for serial number assigned
- * to @message when sending it or %NULL
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @callback: (nullable): a #GAsyncReadyCallback to call when the request
- * is satisfied or %NULL if you don't care about the result
- * @user_data: The data to pass to @callback
- *
- * Asynchronously sends @message to the peer represented by @connection.
- *
- * Unless @flags contain the
- * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number
- * will be assigned by @connection and set on @message via
- * g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
- * serial number used will be written to this location prior to
- * submitting the message to the underlying transport.
- *
- * If @connection is closed then the operation will fail with
- * %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will
- * fail with %G_IO_ERROR_CANCELLED. If @message is not well-formed,
- * the operation fails with %G_IO_ERROR_INVALID_ARGUMENT.
- *
- * This is an asynchronous method. When the operation is finished, @callback
- * will be invoked in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread you are calling this method from. You can then call
- * g_dbus_connection_send_message_with_reply_finish() to get the result of the operation.
- * See g_dbus_connection_send_message_with_reply_sync() for the synchronous version.
- *
- * Note that @message must be unlocked, unless @flags contain the
- * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag.
- *
- * See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
- * for an example of how to use this low-level API to send and receive
- * UNIX file descriptors.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_send_message_with_reply_finish:
- * @connection: a #GDBusConnection
- * @res: a #GAsyncResult obtained from the #GAsyncReadyCallback passed to
- * g_dbus_connection_send_message_with_reply()
- * @error: teturn location for error or %NULL
- *
- * Finishes an operation started with g_dbus_connection_send_message_with_reply().
- *
- * Note that @error is only set if a local in-process error
- * occurred. That is to say that the returned #GDBusMessage object may
- * be of type %G_DBUS_MESSAGE_TYPE_ERROR. Use
- * g_dbus_message_to_gerror() to transcode this to a #GError.
- *
- * See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
- * for an example of how to use this low-level API to send and receive
- * UNIX file descriptors.
- *
- * Returns: (transfer full): a locked #GDBusMessage or %NULL if @error is set
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_send_message_with_reply_sync:
- * @connection: a #GDBusConnection
- * @message: a #GDBusMessage
- * @flags: flags affecting how the message is sent.
- * @timeout_msec: the timeout in milliseconds, -1 to use the default
- * timeout or %G_MAXINT for no timeout
- * @out_serial: (out) (optional): return location for serial number
- * assigned to @message when sending it or %NULL
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @error: return location for error or %NULL
- *
- * Synchronously sends @message to the peer represented by @connection
- * and blocks the calling thread until a reply is received or the
- * timeout is reached. See g_dbus_connection_send_message_with_reply()
- * for the asynchronous version of this method.
- *
- * Unless @flags contain the
- * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number
- * will be assigned by @connection and set on @message via
- * g_dbus_message_set_serial(). If @out_serial is not %NULL, then the
- * serial number used will be written to this location prior to
- * submitting the message to the underlying transport.
- *
- * If @connection is closed then the operation will fail with
- * %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will
- * fail with %G_IO_ERROR_CANCELLED. If @message is not well-formed,
- * the operation fails with %G_IO_ERROR_INVALID_ARGUMENT.
- *
- * Note that @error is only set if a local in-process error
- * occurred. That is to say that the returned #GDBusMessage object may
- * be of type %G_DBUS_MESSAGE_TYPE_ERROR. Use
- * g_dbus_message_to_gerror() to transcode this to a #GError.
- *
- * See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
- * for an example of how to use this low-level API to send and receive
- * UNIX file descriptors.
- *
- * Note that @message must be unlocked, unless @flags contain the
- * %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag.
- *
- * Returns: (transfer full): a locked #GDBusMessage that is the reply
- * to @message or %NULL if @error is set
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_set_exit_on_close:
- * @connection: a #GDBusConnection
- * @exit_on_close: whether the process should be terminated
- * when @connection is closed by the remote peer
- *
- * Sets whether the process should be terminated when @connection is
- * closed by the remote peer. See #GDBusConnection:exit-on-close for
- * more details.
- *
- * Note that this function should be used with care. Most modern UNIX
- * desktops tie the notion of a user session the session bus, and expect
- * all of a users applications to quit when their bus connection goes away.
- * If you are setting @exit_on_close to %FALSE for the shared session
- * bus connection, you should make sure that your application exits
- * when the user session ends.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_signal_subscribe:
- * @connection: a #GDBusConnection
- * @sender: (nullable): sender name to match on (unique or well-known name)
- * or %NULL to listen from all senders
- * @interface_name: (nullable): D-Bus interface name to match on or %NULL to
- * match on all interfaces
- * @member: (nullable): D-Bus signal name to match on or %NULL to match on
- * all signals
- * @object_path: (nullable): object path to match on or %NULL to match on
- * all object paths
- * @arg0: (nullable): contents of first string argument to match on or %NULL
- * to match on all kinds of arguments
- * @flags: #GDBusSignalFlags describing how arg0 is used in subscribing to the
- * signal
- * @callback: callback to invoke when there is a signal matching the requested data
- * @user_data: user data to pass to @callback
- * @user_data_free_func: (nullable): function to free @user_data with when
- * subscription is removed or %NULL
- *
- * Subscribes to signals on @connection and invokes @callback with a whenever
- * the signal is received. Note that @callback will be invoked in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread you are calling this method from.
- *
- * If @connection is not a message bus connection, @sender must be
- * %NULL.
- *
- * If @sender is a well-known name note that @callback is invoked with
- * the unique name for the owner of @sender, not the well-known name
- * as one would expect. This is because the message bus rewrites the
- * name. As such, to avoid certain race conditions, users should be
- * tracking the name owner of the well-known name and use that when
- * processing the received signal.
- *
- * If one of %G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE or
- * %G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH are given, @arg0 is
- * interpreted as part of a namespace or path. The first argument
- * of a signal is matched against that part as specified by D-Bus.
- *
- * If @user_data_free_func is non-%NULL, it will be called (in the
- * thread-default main context of the thread you are calling this
- * method from) at some point after @user_data is no longer
- * needed. (It is not guaranteed to be called synchronously when the
- * signal is unsubscribed from, and may be called after @connection
- * has been destroyed.)
- *
- * Returns: a subscription identifier that can be used with g_dbus_connection_signal_unsubscribe()
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_signal_unsubscribe:
- * @connection: a #GDBusConnection
- * @subscription_id: a subscription id obtained from
- * g_dbus_connection_signal_subscribe()
- *
- * Unsubscribes from signals.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_start_message_processing:
- * @connection: a #GDBusConnection
- *
- * If @connection was created with
- * %G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING, this method
- * starts processing messages. Does nothing on if @connection wasn't
- * created with this flag or if the method has already been called.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_unexport_action_group:
- * @connection: a #GDBusConnection
- * @export_id: the ID from g_dbus_connection_export_action_group()
- *
- * Reverses the effect of a previous call to
- * g_dbus_connection_export_action_group().
- *
- * It is an error to call this function with an ID that wasn't returned
- * from g_dbus_connection_export_action_group() or to call it with the
- * same ID more than once.
- *
- * Since: 2.32
- */
-
-
-/**
- * g_dbus_connection_unexport_menu_model:
- * @connection: a #GDBusConnection
- * @export_id: the ID from g_dbus_connection_export_menu_model()
- *
- * Reverses the effect of a previous call to
- * g_dbus_connection_export_menu_model().
- *
- * It is an error to call this function with an ID that wasn't returned
- * from g_dbus_connection_export_menu_model() or to call it with the
- * same ID more than once.
- *
- * Since: 2.32
- */
-
-
-/**
- * g_dbus_connection_unregister_object:
- * @connection: a #GDBusConnection
- * @registration_id: a registration id obtained from
- * g_dbus_connection_register_object()
- *
- * Unregisters an object.
- *
- * Returns: %TRUE if the object was unregistered, %FALSE otherwise
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_connection_unregister_subtree:
- * @connection: a #GDBusConnection
- * @registration_id: a subtree registration id obtained from
- * g_dbus_connection_register_subtree()
- *
- * Unregisters a subtree.
- *
- * Returns: %TRUE if the subtree was unregistered, %FALSE otherwise
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_error_encode_gerror:
- * @error: A #GError.
- *
- * Creates a D-Bus error name to use for @error. If @error matches
- * a registered error (cf. g_dbus_error_register_error()), the corresponding
- * D-Bus error name will be returned.
- *
- * Otherwise the a name of the form
- * `org.gtk.GDBus.UnmappedGError.Quark._ESCAPED_QUARK_NAME.Code_ERROR_CODE`
- * will be used. This allows other GDBus applications to map the error
- * on the wire back to a #GError using g_dbus_error_new_for_dbus_error().
- *
- * This function is typically only used in object mappings to put a
- * #GError on the wire. Regular applications should not use it.
- *
- * Returns: A D-Bus error name (never %NULL). Free with g_free().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_error_get_remote_error:
- * @error: a #GError
- *
- * Gets the D-Bus error name used for @error, if any.
- *
- * This function is guaranteed to return a D-Bus error name for all
- * #GErrors returned from functions handling remote method calls
- * (e.g. g_dbus_connection_call_finish()) unless
- * g_dbus_error_strip_remote_error() has been used on @error.
- *
- * Returns: an allocated string or %NULL if the D-Bus error name
- * could not be found. Free with g_free().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_error_is_remote_error:
- * @error: A #GError.
- *
- * Checks if @error represents an error received via D-Bus from a remote peer. If so,
- * use g_dbus_error_get_remote_error() to get the name of the error.
- *
- * Returns: %TRUE if @error represents an error from a remote peer,
- * %FALSE otherwise.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_error_new_for_dbus_error:
- * @dbus_error_name: D-Bus error name.
- * @dbus_error_message: D-Bus error message.
- *
- * Creates a #GError based on the contents of @dbus_error_name and
- * @dbus_error_message.
- *
- * Errors registered with g_dbus_error_register_error() will be looked
- * up using @dbus_error_name and if a match is found, the error domain
- * and code is used. Applications can use g_dbus_error_get_remote_error()
- * to recover @dbus_error_name.
- *
- * If a match against a registered error is not found and the D-Bus
- * error name is in a form as returned by g_dbus_error_encode_gerror()
- * the error domain and code encoded in the name is used to
- * create the #GError. Also, @dbus_error_name is added to the error message
- * such that it can be recovered with g_dbus_error_get_remote_error().
- *
- * Otherwise, a #GError with the error code %G_IO_ERROR_DBUS_ERROR
- * in the #G_IO_ERROR error domain is returned. Also, @dbus_error_name is
- * added to the error message such that it can be recovered with
- * g_dbus_error_get_remote_error().
- *
- * In all three cases, @dbus_error_name can always be recovered from the
- * returned #GError using the g_dbus_error_get_remote_error() function
- * (unless g_dbus_error_strip_remote_error() hasn't been used on the returned error).
- *
- * This function is typically only used in object mappings to prepare
- * #GError instances for applications. Regular applications should not use
- * it.
- *
- * Returns: An allocated #GError. Free with g_error_free().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_error_register_error:
- * @error_domain: A #GQuark for a error domain.
- * @error_code: An error code.
- * @dbus_error_name: A D-Bus error name.
- *
- * Creates an association to map between @dbus_error_name and
- * #GErrors specified by @error_domain and @error_code.
- *
- * This is typically done in the routine that returns the #GQuark for
- * an error domain.
- *
- * Returns: %TRUE if the association was created, %FALSE if it already
- * exists.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_error_register_error_domain:
- * @error_domain_quark_name: The error domain name.
- * @quark_volatile: A pointer where to store the #GQuark.
- * @entries: (array length=num_entries): A pointer to @num_entries #GDBusErrorEntry struct items.
- * @num_entries: Number of items to register.
- *
- * Helper function for associating a #GError error domain with D-Bus error names.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_error_set_dbus_error:
- * @error: A pointer to a #GError or %NULL.
- * @dbus_error_name: D-Bus error name.
- * @dbus_error_message: D-Bus error message.
- * @format: (nullable): printf()-style format to prepend to @dbus_error_message or %NULL.
- * @...: Arguments for @format.
- *
- * Does nothing if @error is %NULL. Otherwise sets *@error to
- * a new #GError created with g_dbus_error_new_for_dbus_error()
- * with @dbus_error_message prepend with @format (unless %NULL).
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_error_set_dbus_error_valist:
- * @error: A pointer to a #GError or %NULL.
- * @dbus_error_name: D-Bus error name.
- * @dbus_error_message: D-Bus error message.
- * @format: (nullable): printf()-style format to prepend to @dbus_error_message or %NULL.
- * @var_args: Arguments for @format.
- *
- * Like g_dbus_error_set_dbus_error() but intended for language bindings.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_error_strip_remote_error:
- * @error: A #GError.
- *
- * Looks for extra information in the error message used to recover
- * the D-Bus error name and strips it if found. If stripped, the
- * message field in @error will correspond exactly to what was
- * received on the wire.
- *
- * This is typically used when presenting errors to the end user.
- *
- * Returns: %TRUE if information was stripped, %FALSE otherwise.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_error_unregister_error:
- * @error_domain: A #GQuark for a error domain.
- * @error_code: An error code.
- * @dbus_error_name: A D-Bus error name.
- *
- * Destroys an association previously set up with g_dbus_error_register_error().
- *
- * Returns: %TRUE if the association was destroyed, %FALSE if it wasn't found.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_generate_guid:
- *
- * Generate a D-Bus GUID that can be used with
- * e.g. g_dbus_connection_new().
- *
- * See the D-Bus specification regarding what strings are valid D-Bus
- * GUID (for example, D-Bus GUIDs are not RFC-4122 compliant).
- *
- * Returns: A valid D-Bus GUID. Free with g_free().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_gvalue_to_gvariant:
- * @gvalue: A #GValue to convert to a #GVariant
- * @type: A #GVariantType
- *
- * Converts a #GValue to a #GVariant of the type indicated by the @type
- * parameter.
- *
- * The conversion is using the following rules:
- *
- * - #G_TYPE_STRING: 's', 'o', 'g' or 'ay'
- * - #G_TYPE_STRV: 'as', 'ao' or 'aay'
- * - #G_TYPE_BOOLEAN: 'b'
- * - #G_TYPE_UCHAR: 'y'
- * - #G_TYPE_INT: 'i', 'n'
- * - #G_TYPE_UINT: 'u', 'q'
- * - #G_TYPE_INT64 'x'
- * - #G_TYPE_UINT64: 't'
- * - #G_TYPE_DOUBLE: 'd'
- * - #G_TYPE_VARIANT: Any #GVariantType
- *
- * This can fail if e.g. @gvalue is of type #G_TYPE_STRING and @type
- * is ['i'][G-VARIANT-TYPE-INT32:CAPS]. It will also fail for any #GType
- * (including e.g. #G_TYPE_OBJECT and #G_TYPE_BOXED derived-types) not
- * in the table above.
- *
- * Note that if @gvalue is of type #G_TYPE_VARIANT and its value is
- * %NULL, the empty #GVariant instance (never %NULL) for @type is
- * returned (e.g. 0 for scalar types, the empty string for string types,
- * '/' for object path types, the empty array for any array type and so on).
- *
- * See the g_dbus_gvariant_to_gvalue() function for how to convert a
- * #GVariant to a #GValue.
- *
- * Returns: A #GVariant (never floating) of #GVariantType @type holding
- * the data from @gvalue or %NULL in case of failure. Free with
- * g_variant_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_gvariant_to_gvalue:
- * @value: A #GVariant.
- * @out_gvalue: (out): Return location pointing to a zero-filled (uninitialized) #GValue.
- *
- * Converts a #GVariant to a #GValue. If @value is floating, it is consumed.
- *
- * The rules specified in the g_dbus_gvalue_to_gvariant() function are
- * used - this function is essentially its reverse form. So, a #GVariant
- * containing any basic or string array type will be converted to a #GValue
- * containing a basic value or string array. Any other #GVariant (handle,
- * variant, tuple, dict entry) will be converted to a #GValue containing that
- * #GVariant.
- *
- * The conversion never fails - a valid #GValue is always returned in
- * @out_gvalue.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_dup_object: (rename-to g_dbus_interface_get_object)
- * @interface_: An exported D-Bus interface.
- *
- * Gets the #GDBusObject that @interface_ belongs to, if any.
- *
- * Returns: (transfer full): A #GDBusObject or %NULL. The returned
- * reference should be freed with g_object_unref().
- * Since: 2.32
- */
-
-
-/**
- * g_dbus_interface_get_info:
- * @interface_: An exported D-Bus interface.
- *
- * Gets D-Bus introspection information for the D-Bus interface
- * implemented by @interface_.
- *
- * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_get_object: (skip)
- * @interface_: An exported D-Bus interface
- *
- * Gets the #GDBusObject that @interface_ belongs to, if any.
- *
- * It is not safe to use the returned object if @interface_ or
- * the returned object is being used from other threads. See
- * g_dbus_interface_dup_object() for a thread-safe alternative.
- *
- * Returns: (transfer none): A #GDBusObject or %NULL. The returned
- * reference belongs to @interface_ and should not be freed.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_info_cache_build:
- * @info: A #GDBusInterfaceInfo.
- *
- * Builds a lookup-cache to speed up
- * g_dbus_interface_info_lookup_method(),
- * g_dbus_interface_info_lookup_signal() and
- * g_dbus_interface_info_lookup_property().
- *
- * If this has already been called with @info, the existing cache is
- * used and its use count is increased.
- *
- * Note that @info cannot be modified until
- * g_dbus_interface_info_cache_release() is called.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_info_cache_release:
- * @info: A GDBusInterfaceInfo
- *
- * Decrements the usage count for the cache for @info built by
- * g_dbus_interface_info_cache_build() (if any) and frees the
- * resources used by the cache if the usage count drops to zero.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_info_generate_xml:
- * @info: A #GDBusNodeInfo
- * @indent: Indentation level.
- * @string_builder: A #GString to to append XML data to.
- *
- * Appends an XML representation of @info (and its children) to @string_builder.
- *
- * This function is typically used for generating introspection XML
- * documents at run-time for handling the
- * `org.freedesktop.DBus.Introspectable.Introspect`
- * method.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_interface_info_lookup_method:
- * @info: A #GDBusInterfaceInfo.
- * @name: A D-Bus method name (typically in CamelCase)
- *
- * Looks up information about a method.
- *
- * The cost of this function is O(n) in number of methods unless
- * g_dbus_interface_info_cache_build() has been used on @info.
- *
- * Returns: (transfer none): A #GDBusMethodInfo or %NULL if not found. Do not free, it is owned by @info.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_interface_info_lookup_property:
- * @info: A #GDBusInterfaceInfo.
- * @name: A D-Bus property name (typically in CamelCase).
- *
- * Looks up information about a property.
- *
- * The cost of this function is O(n) in number of properties unless
- * g_dbus_interface_info_cache_build() has been used on @info.
- *
- * Returns: (transfer none): A #GDBusPropertyInfo or %NULL if not found. Do not free, it is owned by @info.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_interface_info_lookup_signal:
- * @info: A #GDBusInterfaceInfo.
- * @name: A D-Bus signal name (typically in CamelCase)
- *
- * Looks up information about a signal.
- *
- * The cost of this function is O(n) in number of signals unless
- * g_dbus_interface_info_cache_build() has been used on @info.
- *
- * Returns: (transfer none): A #GDBusSignalInfo or %NULL if not found. Do not free, it is owned by @info.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_interface_info_ref:
- * @info: A #GDBusInterfaceInfo
- *
- * If @info is statically allocated does nothing. Otherwise increases
- * the reference count.
- *
- * Returns: The same @info.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_interface_info_unref:
- * @info: A #GDBusInterfaceInfo.
- *
- * If @info is statically allocated, does nothing. Otherwise decreases
- * the reference count of @info. When its reference count drops to 0,
- * the memory used is freed.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_interface_set_object:
- * @interface_: An exported D-Bus interface.
- * @object: (nullable): A #GDBusObject or %NULL.
- *
- * Sets the #GDBusObject for @interface_ to @object.
- *
- * Note that @interface_ will hold a weak reference to @object.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_skeleton_export:
- * @interface_: The D-Bus interface to export.
- * @connection: A #GDBusConnection to export @interface_ on.
- * @object_path: The path to export the interface at.
- * @error: Return location for error or %NULL.
- *
- * Exports @interface_ at @object_path on @connection.
- *
- * This can be called multiple times to export the same @interface_
- * onto multiple connections however the @object_path provided must be
- * the same for all connections.
- *
- * Use g_dbus_interface_skeleton_unexport() to unexport the object.
- *
- * Returns: %TRUE if the interface was exported on @connection, otherwise %FALSE with
- * @error set.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_skeleton_flush:
- * @interface_: A #GDBusInterfaceSkeleton.
- *
- * If @interface_ has outstanding changes, request for these changes to be
- * emitted immediately.
- *
- * For example, an exported D-Bus interface may queue up property
- * changes and emit the
- * `org.freedesktop.DBus.Properties.PropertiesChanged`
- * signal later (e.g. in an idle handler). This technique is useful
- * for collapsing multiple property changes into one.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_skeleton_get_connection:
- * @interface_: A #GDBusInterfaceSkeleton.
- *
- * Gets the first connection that @interface_ is exported on, if any.
- *
- * Returns: (transfer none): A #GDBusConnection or %NULL if @interface_ is
- * not exported anywhere. Do not free, the object belongs to @interface_.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_skeleton_get_connections:
- * @interface_: A #GDBusInterfaceSkeleton.
- *
- * Gets a list of the connections that @interface_ is exported on.
- *
- * Returns: (element-type GDBusConnection) (transfer full): A list of
- * all the connections that @interface_ is exported on. The returned
- * list should be freed with g_list_free() after each element has
- * been freed with g_object_unref().
- * Since: 2.32
- */
-
-
-/**
- * g_dbus_interface_skeleton_get_flags:
- * @interface_: A #GDBusInterfaceSkeleton.
- *
- * Gets the #GDBusInterfaceSkeletonFlags that describes what the behavior
- * of @interface_
- *
- * Returns: One or more flags from the #GDBusInterfaceSkeletonFlags enumeration.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_skeleton_get_info:
- * @interface_: A #GDBusInterfaceSkeleton.
- *
- * Gets D-Bus introspection information for the D-Bus interface
- * implemented by @interface_.
- *
- * Returns: (transfer none): A #GDBusInterfaceInfo (never %NULL). Do not free.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_skeleton_get_object_path:
- * @interface_: A #GDBusInterfaceSkeleton.
- *
- * Gets the object path that @interface_ is exported on, if any.
- *
- * Returns: A string owned by @interface_ or %NULL if @interface_ is not exported
- * anywhere. Do not free, the string belongs to @interface_.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_skeleton_get_properties:
- * @interface_: A #GDBusInterfaceSkeleton.
- *
- * Gets all D-Bus properties for @interface_.
- *
- * Returns: (transfer full): A #GVariant of type
- * ['a{sv}'][G-VARIANT-TYPE-VARDICT:CAPS].
- * Free with g_variant_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_skeleton_get_vtable: (skip)
- * @interface_: A #GDBusInterfaceSkeleton.
- *
- * Gets the interface vtable for the D-Bus interface implemented by
- * @interface_. The returned function pointers should expect @interface_
- * itself to be passed as @user_data.
- *
- * Returns: A #GDBusInterfaceVTable (never %NULL).
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_skeleton_has_connection:
- * @interface_: A #GDBusInterfaceSkeleton.
- * @connection: A #GDBusConnection.
- *
- * Checks if @interface_ is exported on @connection.
- *
- * Returns: %TRUE if @interface_ is exported on @connection, %FALSE otherwise.
- * Since: 2.32
- */
-
-
-/**
- * g_dbus_interface_skeleton_set_flags:
- * @interface_: A #GDBusInterfaceSkeleton.
- * @flags: Flags from the #GDBusInterfaceSkeletonFlags enumeration.
- *
- * Sets flags describing what the behavior of @skeleton should be.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_skeleton_unexport:
- * @interface_: A #GDBusInterfaceSkeleton.
- *
- * Stops exporting @interface_ on all connections it is exported on.
- *
- * To unexport @interface_ from only a single connection, use
- * g_dbus_interface_skeleton_unexport_from_connection()
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_interface_skeleton_unexport_from_connection:
- * @interface_: A #GDBusInterfaceSkeleton.
- * @connection: A #GDBusConnection.
- *
- * Stops exporting @interface_ on @connection.
- *
- * To stop exporting on all connections the interface is exported on,
- * use g_dbus_interface_skeleton_unexport().
- *
- * Since: 2.32
- */
-
-
-/**
- * g_dbus_is_address:
- * @string: A string.
- *
- * Checks if @string is a
- * [D-Bus address](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
- *
- * This doesn't check if @string is actually supported by #GDBusServer
- * or #GDBusConnection - use g_dbus_is_supported_address() to do more
- * checks.
- *
- * Returns: %TRUE if @string is a valid D-Bus address, %FALSE otherwise.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_is_guid:
- * @string: The string to check.
- *
- * Checks if @string is a D-Bus GUID.
- *
- * See the D-Bus specification regarding what strings are valid D-Bus
- * GUID (for example, D-Bus GUIDs are not RFC-4122 compliant).
- *
- * Returns: %TRUE if @string is a guid, %FALSE otherwise.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_is_interface_name:
- * @string: The string to check.
- *
- * Checks if @string is a valid D-Bus interface name.
- *
- * Returns: %TRUE if valid, %FALSE otherwise.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_is_member_name:
- * @string: The string to check.
- *
- * Checks if @string is a valid D-Bus member (e.g. signal or method) name.
- *
- * Returns: %TRUE if valid, %FALSE otherwise.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_is_name:
- * @string: The string to check.
- *
- * Checks if @string is a valid D-Bus bus name (either unique or well-known).
- *
- * Returns: %TRUE if valid, %FALSE otherwise.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_is_supported_address:
- * @string: A string.
- * @error: Return location for error or %NULL.
- *
- * Like g_dbus_is_address() but also checks if the library supports the
- * transports in @string and that key/value pairs for each transport
- * are valid. See the specification of the
- * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
- *
- * Returns: %TRUE if @string is a valid D-Bus address that is
- * supported by this library, %FALSE if @error is set.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_is_unique_name:
- * @string: The string to check.
- *
- * Checks if @string is a valid D-Bus unique bus name.
- *
- * Returns: %TRUE if valid, %FALSE otherwise.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_menu_model_get:
- * @connection: a #GDBusConnection
- * @bus_name: (nullable): the bus name which exports the menu model
- * or %NULL if @connection is not a message bus connection
- * @object_path: the object path at which the menu model is exported
- *
- * Obtains a #GDBusMenuModel for the menu model which is exported
- * at the given @bus_name and @object_path.
- *
- * The thread default main context is taken at the time of this call.
- * All signals on the menu model (and any linked models) are reported
- * with respect to this context. All calls on the returned menu model
- * (and linked models) must also originate from this same context, with
- * the thread default main context unchanged.
- *
- * Returns: (transfer full): a #GDBusMenuModel object. Free with
- * g_object_unref().
- * Since: 2.32
- */
-
-
-/**
- * g_dbus_message_bytes_needed:
- * @blob: (array length=blob_len) (element-type guint8): A blob represent a binary D-Bus message.
- * @blob_len: The length of @blob (must be at least 16).
- * @error: Return location for error or %NULL.
- *
- * Utility function to calculate how many bytes are needed to
- * completely deserialize the D-Bus message stored at @blob.
- *
- * Returns: Number of bytes needed or -1 if @error is set (e.g. if
- * @blob contains invalid data or not enough data is available to
- * determine the size).
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_copy:
- * @message: A #GDBusMessage.
- * @error: Return location for error or %NULL.
- *
- * Copies @message. The copy is a deep copy and the returned
- * #GDBusMessage is completely identical except that it is guaranteed
- * to not be locked.
- *
- * This operation can fail if e.g. @message contains file descriptors
- * and the per-process or system-wide open files limit is reached.
- *
- * Returns: (transfer full): A new #GDBusMessage or %NULL if @error is set.
- * Free with g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_arg0:
- * @message: A #GDBusMessage.
- *
- * Convenience to get the first item in the body of @message.
- *
- * Returns: The string item or %NULL if the first item in the body of
- * @message is not a string.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_body:
- * @message: A #GDBusMessage.
- *
- * Gets the body of a message.
- *
- * Returns: (transfer none): A #GVariant or %NULL if the body is
- * empty. Do not free, it is owned by @message.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_byte_order:
- * @message: A #GDBusMessage.
- *
- * Gets the byte order of @message.
- *
- * Returns: The byte order.
- */
-
-
-/**
- * g_dbus_message_get_destination:
- * @message: A #GDBusMessage.
- *
- * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION header field.
- *
- * Returns: The value.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_error_name:
- * @message: A #GDBusMessage.
- *
- * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field.
- *
- * Returns: The value.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_flags:
- * @message: A #GDBusMessage.
- *
- * Gets the flags for @message.
- *
- * Returns: Flags that are set (typically values from the #GDBusMessageFlags enumeration bitwise ORed together).
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_header:
- * @message: A #GDBusMessage.
- * @header_field: A 8-bit unsigned integer (typically a value from the #GDBusMessageHeaderField enumeration)
- *
- * Gets a header field on @message.
- *
- * Returns: A #GVariant with the value if the header was found, %NULL
- * otherwise. Do not free, it is owned by @message.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_header_fields:
- * @message: A #GDBusMessage.
- *
- * Gets an array of all header fields on @message that are set.
- *
- * Returns: (array zero-terminated=1): An array of header fields
- * terminated by %G_DBUS_MESSAGE_HEADER_FIELD_INVALID. Each element
- * is a #guchar. Free with g_free().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_interface:
- * @message: A #GDBusMessage.
- *
- * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE header field.
- *
- * Returns: The value.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_locked:
- * @message: A #GDBusMessage.
- *
- * Checks whether @message is locked. To monitor changes to this
- * value, conncet to the #GObject::notify signal to listen for changes
- * on the #GDBusMessage:locked property.
- *
- * Returns: %TRUE if @message is locked, %FALSE otherwise.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_member:
- * @message: A #GDBusMessage.
- *
- * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_MEMBER header field.
- *
- * Returns: The value.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_message_type:
- * @message: A #GDBusMessage.
- *
- * Gets the type of @message.
- *
- * Returns: A 8-bit unsigned integer (typically a value from the #GDBusMessageType enumeration).
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_num_unix_fds:
- * @message: A #GDBusMessage.
- *
- * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header field.
- *
- * Returns: The value.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_path:
- * @message: A #GDBusMessage.
- *
- * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_PATH header field.
- *
- * Returns: The value.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_reply_serial:
- * @message: A #GDBusMessage.
- *
- * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL header field.
- *
- * Returns: The value.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_sender:
- * @message: A #GDBusMessage.
- *
- * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_SENDER header field.
- *
- * Returns: The value.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_serial:
- * @message: A #GDBusMessage.
- *
- * Gets the serial for @message.
- *
- * Returns: A #guint32.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_signature:
- * @message: A #GDBusMessage.
- *
- * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field.
- *
- * Returns: The value.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_get_unix_fd_list:
- * @message: A #GDBusMessage.
- *
- * Gets the UNIX file descriptors associated with @message, if any.
- *
- * This method is only available on UNIX.
- *
- * Returns: (transfer none): A #GUnixFDList or %NULL if no file descriptors are
- * associated. Do not free, this object is owned by @message.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_lock:
- * @message: A #GDBusMessage.
- *
- * If @message is locked, does nothing. Otherwise locks the message.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_new:
- *
- * Creates a new empty #GDBusMessage.
- *
- * Returns: A #GDBusMessage. Free with g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_new_from_blob:
- * @blob: (array length=blob_len) (element-type guint8): A blob represent a binary D-Bus message.
- * @blob_len: The length of @blob.
- * @capabilities: A #GDBusCapabilityFlags describing what protocol features are supported.
- * @error: Return location for error or %NULL.
- *
- * Creates a new #GDBusMessage from the data stored at @blob. The byte
- * order that the message was in can be retrieved using
- * g_dbus_message_get_byte_order().
- *
- * Returns: A new #GDBusMessage or %NULL if @error is set. Free with
- * g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_new_method_call:
- * @name: (nullable): A valid D-Bus name or %NULL.
- * @path: A valid object path.
- * @interface_: (nullable): A valid D-Bus interface name or %NULL.
- * @method: A valid method name.
- *
- * Creates a new #GDBusMessage for a method call.
- *
- * Returns: A #GDBusMessage. Free with g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_new_method_error:
- * @method_call_message: A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
- * create a reply message to.
- * @error_name: A valid D-Bus error name.
- * @error_message_format: The D-Bus error message in a printf() format.
- * @...: Arguments for @error_message_format.
- *
- * Creates a new #GDBusMessage that is an error reply to @method_call_message.
- *
- * Returns: (transfer full): A #GDBusMessage. Free with g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_new_method_error_literal:
- * @method_call_message: A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
- * create a reply message to.
- * @error_name: A valid D-Bus error name.
- * @error_message: The D-Bus error message.
- *
- * Creates a new #GDBusMessage that is an error reply to @method_call_message.
- *
- * Returns: (transfer full): A #GDBusMessage. Free with g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_new_method_error_valist:
- * @method_call_message: A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
- * create a reply message to.
- * @error_name: A valid D-Bus error name.
- * @error_message_format: The D-Bus error message in a printf() format.
- * @var_args: Arguments for @error_message_format.
- *
- * Like g_dbus_message_new_method_error() but intended for language bindings.
- *
- * Returns: (transfer full): A #GDBusMessage. Free with g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_new_method_reply:
- * @method_call_message: A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
- * create a reply message to.
- *
- * Creates a new #GDBusMessage that is a reply to @method_call_message.
- *
- * Returns: (transfer full): #GDBusMessage. Free with g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_new_signal:
- * @path: A valid object path.
- * @interface_: A valid D-Bus interface name.
- * @signal: A valid signal name.
- *
- * Creates a new #GDBusMessage for a signal emission.
- *
- * Returns: A #GDBusMessage. Free with g_object_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_print: (type method-return)
- * @message: A #GDBusMessage.
- * @indent: Indentation level.
- *
- * Produces a human-readable multi-line description of @message.
- *
- * The contents of the description has no ABI guarantees, the contents
- * and formatting is subject to change at any time. Typical output
- * looks something like this:
- * |[
- * Flags: none
- * Version: 0
- * Serial: 4
- * Headers:
- * path -> objectpath '/org/gtk/GDBus/TestObject'
- * interface -> 'org.gtk.GDBus.TestInterface'
- * member -> 'GimmeStdout'
- * destination -> ':1.146'
- * Body: ()
- * UNIX File Descriptors:
- * (none)
- * ]|
- * or
- * |[
- * Flags: no-reply-expected
- * Version: 0
- * Serial: 477
- * Headers:
- * reply-serial -> uint32 4
- * destination -> ':1.159'
- * sender -> ':1.146'
- * num-unix-fds -> uint32 1
- * Body: ()
- * UNIX File Descriptors:
- * fd 12: dev=0:10,mode=020620,ino=5,uid=500,gid=5,rdev=136:2,size=0,atime=1273085037,mtime=1273085851,ctime=1272982635
- * ]|
- *
- * Returns: A string that should be freed with g_free().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_body:
- * @message: A #GDBusMessage.
- * @body: Either %NULL or a #GVariant that is a tuple.
- *
- * Sets the body @message. As a side-effect the
- * %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field is set to the
- * type string of @body (or cleared if @body is %NULL).
- *
- * If @body is floating, @message assumes ownership of @body.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_byte_order:
- * @message: A #GDBusMessage.
- * @byte_order: The byte order.
- *
- * Sets the byte order of @message.
- */
-
-
-/**
- * g_dbus_message_set_destination:
- * @message: A #GDBusMessage.
- * @value: The value to set.
- *
- * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION header field.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_error_name:
- * @message: A #GDBusMessage.
- * @value: The value to set.
- *
- * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_flags:
- * @message: A #GDBusMessage.
- * @flags: Flags for @message that are set (typically values from the #GDBusMessageFlags
- * enumeration bitwise ORed together).
- *
- * Sets the flags to set on @message.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_header:
- * @message: A #GDBusMessage.
- * @header_field: A 8-bit unsigned integer (typically a value from the #GDBusMessageHeaderField enumeration)
- * @value: (nullable): A #GVariant to set the header field or %NULL to clear the header field.
- *
- * Sets a header field on @message.
- *
- * If @value is floating, @message assumes ownership of @value.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_interface:
- * @message: A #GDBusMessage.
- * @value: The value to set.
- *
- * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE header field.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_member:
- * @message: A #GDBusMessage.
- * @value: The value to set.
- *
- * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_MEMBER header field.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_message_type:
- * @message: A #GDBusMessage.
- * @type: A 8-bit unsigned integer (typically a value from the #GDBusMessageType enumeration).
- *
- * Sets @message to be of @type.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_num_unix_fds:
- * @message: A #GDBusMessage.
- * @value: The value to set.
- *
- * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header field.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_path:
- * @message: A #GDBusMessage.
- * @value: The value to set.
- *
- * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_PATH header field.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_reply_serial:
- * @message: A #GDBusMessage.
- * @value: The value to set.
- *
- * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL header field.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_sender:
- * @message: A #GDBusMessage.
- * @value: The value to set.
- *
- * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_SENDER header field.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_serial:
- * @message: A #GDBusMessage.
- * @serial: A #guint32.
- *
- * Sets the serial for @message.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_signature:
- * @message: A #GDBusMessage.
- * @value: The value to set.
- *
- * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_set_unix_fd_list:
- * @message: A #GDBusMessage.
- * @fd_list: (nullable): A #GUnixFDList or %NULL.
- *
- * Sets the UNIX file descriptors associated with @message. As a
- * side-effect the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header
- * field is set to the number of fds in @fd_list (or cleared if
- * @fd_list is %NULL).
- *
- * This method is only available on UNIX.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_to_blob:
- * @message: A #GDBusMessage.
- * @out_size: Return location for size of generated blob.
- * @capabilities: A #GDBusCapabilityFlags describing what protocol features are supported.
- * @error: Return location for error.
- *
- * Serializes @message to a blob. The byte order returned by
- * g_dbus_message_get_byte_order() will be used.
- *
- * Returns: (array length=out_size) (transfer full): A pointer to a
- * valid binary D-Bus message of @out_size bytes generated by @message
- * or %NULL if @error is set. Free with g_free().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_message_to_gerror:
- * @message: A #GDBusMessage.
- * @error: The #GError to set.
- *
- * If @message is not of type %G_DBUS_MESSAGE_TYPE_ERROR does
- * nothing and returns %FALSE.
- *
- * Otherwise this method encodes the error in @message as a #GError
- * using g_dbus_error_set_dbus_error() using the information in the
- * %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field of @message as
- * well as the first string item in @message's body.
- *
- * Returns: %TRUE if @error was set, %FALSE otherwise.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_info_ref:
- * @info: A #GDBusMethodInfo
- *
- * If @info is statically allocated does nothing. Otherwise increases
- * the reference count.
- *
- * Returns: The same @info.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_info_unref:
- * @info: A #GDBusMethodInfo.
- *
- * If @info is statically allocated, does nothing. Otherwise decreases
- * the reference count of @info. When its reference count drops to 0,
- * the memory used is freed.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_get_connection:
- * @invocation: A #GDBusMethodInvocation.
- *
- * Gets the #GDBusConnection the method was invoked on.
- *
- * Returns: (transfer none): A #GDBusConnection. Do not free, it is owned by @invocation.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_get_interface_name:
- * @invocation: A #GDBusMethodInvocation.
- *
- * Gets the name of the D-Bus interface the method was invoked on.
- *
- * If this method call is a property Get, Set or GetAll call that has
- * been redirected to the method call handler then
- * "org.freedesktop.DBus.Properties" will be returned. See
- * #GDBusInterfaceVTable for more information.
- *
- * Returns: A string. Do not free, it is owned by @invocation.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_get_message:
- * @invocation: A #GDBusMethodInvocation.
- *
- * Gets the #GDBusMessage for the method invocation. This is useful if
- * you need to use low-level protocol features, such as UNIX file
- * descriptor passing, that cannot be properly expressed in the
- * #GVariant API.
- *
- * See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
- * for an example of how to use this low-level API to send and receive
- * UNIX file descriptors.
- *
- * Returns: (transfer none): #GDBusMessage. Do not free, it is owned by @invocation.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_get_method_info:
- * @invocation: A #GDBusMethodInvocation.
- *
- * Gets information about the method call, if any.
- *
- * If this method invocation is a property Get, Set or GetAll call that
- * has been redirected to the method call handler then %NULL will be
- * returned. See g_dbus_method_invocation_get_property_info() and
- * #GDBusInterfaceVTable for more information.
- *
- * Returns: A #GDBusMethodInfo or %NULL. Do not free, it is owned by @invocation.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_get_method_name:
- * @invocation: A #GDBusMethodInvocation.
- *
- * Gets the name of the method that was invoked.
- *
- * Returns: A string. Do not free, it is owned by @invocation.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_get_object_path:
- * @invocation: A #GDBusMethodInvocation.
- *
- * Gets the object path the method was invoked on.
- *
- * Returns: A string. Do not free, it is owned by @invocation.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_get_parameters:
- * @invocation: A #GDBusMethodInvocation.
- *
- * Gets the parameters of the method invocation. If there are no input
- * parameters then this will return a GVariant with 0 children rather than NULL.
- *
- * Returns: (transfer none): A #GVariant tuple. Do not unref this because it is owned by @invocation.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_get_property_info:
- * @invocation: A #GDBusMethodInvocation
- *
- * Gets information about the property that this method call is for, if
- * any.
- *
- * This will only be set in the case of an invocation in response to a
- * property Get or Set call that has been directed to the method call
- * handler for an object on account of its property_get() or
- * property_set() vtable pointers being unset.
- *
- * See #GDBusInterfaceVTable for more information.
- *
- * If the call was GetAll, %NULL will be returned.
- *
- * Returns: (transfer none): a #GDBusPropertyInfo or %NULL
- * Since: 2.38
- */
-
-
-/**
- * g_dbus_method_invocation_get_sender:
- * @invocation: A #GDBusMethodInvocation.
- *
- * Gets the bus name that invoked the method.
- *
- * Returns: A string. Do not free, it is owned by @invocation.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_get_user_data: (skip)
- * @invocation: A #GDBusMethodInvocation.
- *
- * Gets the @user_data #gpointer passed to g_dbus_connection_register_object().
- *
- * Returns: A #gpointer.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_return_dbus_error:
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @error_name: A valid D-Bus error name.
- * @error_message: A valid D-Bus error message.
- *
- * Finishes handling a D-Bus method call by returning an error.
- *
- * This method will take ownership of @invocation. See
- * #GDBusInterfaceVTable for more information about the ownership of
- * @invocation.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_return_error:
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @domain: A #GQuark for the #GError error domain.
- * @code: The error code.
- * @format: printf()-style format.
- * @...: Parameters for @format.
- *
- * Finishes handling a D-Bus method call by returning an error.
- *
- * See g_dbus_error_encode_gerror() for details about what error name
- * will be returned on the wire. In a nutshell, if the given error is
- * registered using g_dbus_error_register_error() the name given
- * during registration is used. Otherwise, a name of the form
- * `org.gtk.GDBus.UnmappedGError.Quark...` is used. This provides
- * transparent mapping of #GError between applications using GDBus.
- *
- * If you are writing an application intended to be portable,
- * always register errors with g_dbus_error_register_error()
- * or use g_dbus_method_invocation_return_dbus_error().
- *
- * This method will take ownership of @invocation. See
- * #GDBusInterfaceVTable for more information about the ownership of
- * @invocation.
- *
- * Since 2.48, if the method call requested for a reply not to be sent
- * then this call will free @invocation but otherwise do nothing (as per
- * the recommendations of the D-Bus specification).
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_return_error_literal:
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @domain: A #GQuark for the #GError error domain.
- * @code: The error code.
- * @message: The error message.
- *
- * Like g_dbus_method_invocation_return_error() but without printf()-style formatting.
- *
- * This method will take ownership of @invocation. See
- * #GDBusInterfaceVTable for more information about the ownership of
- * @invocation.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_return_error_valist:
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @domain: A #GQuark for the #GError error domain.
- * @code: The error code.
- * @format: printf()-style format.
- * @var_args: #va_list of parameters for @format.
- *
- * Like g_dbus_method_invocation_return_error() but intended for
- * language bindings.
- *
- * This method will take ownership of @invocation. See
- * #GDBusInterfaceVTable for more information about the ownership of
- * @invocation.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_return_gerror:
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @error: A #GError.
- *
- * Like g_dbus_method_invocation_return_error() but takes a #GError
- * instead of the error domain, error code and message.
- *
- * This method will take ownership of @invocation. See
- * #GDBusInterfaceVTable for more information about the ownership of
- * @invocation.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_return_value:
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @parameters: (nullable): A #GVariant tuple with out parameters for the method or %NULL if not passing any parameters.
- *
- * Finishes handling a D-Bus method call by returning @parameters.
- * If the @parameters GVariant is floating, it is consumed.
- *
- * It is an error if @parameters is not of the right format: it must be a tuple
- * containing the out-parameters of the D-Bus method. Even if the method has a
- * single out-parameter, it must be contained in a tuple. If the method has no
- * out-parameters, @parameters may be %NULL or an empty tuple.
- *
- * |[<!-- language="C" -->
- * GDBusMethodInvocation *invocation = some_invocation;
- * g_autofree gchar *result_string = NULL;
- * g_autoptr (GError) error = NULL;
- *
- * result_string = calculate_result (&error);
- *
- * if (error != NULL)
- * g_dbus_method_invocation_return_gerror (invocation, error);
- * else
- * g_dbus_method_invocation_return_value (invocation,
- * g_variant_new ("(s)", result_string));
- *
- * // Do not free @invocation here; returning a value does that
- * ]|
- *
- * This method will take ownership of @invocation. See
- * #GDBusInterfaceVTable for more information about the ownership of
- * @invocation.
- *
- * Since 2.48, if the method call requested for a reply not to be sent
- * then this call will sink @parameters and free @invocation, but
- * otherwise do nothing (as per the recommendations of the D-Bus
- * specification).
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_method_invocation_return_value_with_unix_fd_list:
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @parameters: (nullable): A #GVariant tuple with out parameters for the method or %NULL if not passing any parameters.
- * @fd_list: (nullable): A #GUnixFDList or %NULL.
- *
- * Like g_dbus_method_invocation_return_value() but also takes a #GUnixFDList.
- *
- * This method is only available on UNIX.
- *
- * This method will take ownership of @invocation. See
- * #GDBusInterfaceVTable for more information about the ownership of
- * @invocation.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_method_invocation_take_error: (skip)
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @error: (transfer full): A #GError.
- *
- * Like g_dbus_method_invocation_return_gerror() but takes ownership
- * of @error so the caller does not need to free it.
- *
- * This method will take ownership of @invocation. See
- * #GDBusInterfaceVTable for more information about the ownership of
- * @invocation.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_node_info_generate_xml:
- * @info: A #GDBusNodeInfo.
- * @indent: Indentation level.
- * @string_builder: A #GString to to append XML data to.
- *
- * Appends an XML representation of @info (and its children) to @string_builder.
- *
- * This function is typically used for generating introspection XML documents at run-time for
- * handling the `org.freedesktop.DBus.Introspectable.Introspect` method.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_node_info_lookup_interface:
- * @info: A #GDBusNodeInfo.
- * @name: A D-Bus interface name.
- *
- * Looks up information about an interface.
- *
- * The cost of this function is O(n) in number of interfaces.
- *
- * Returns: (transfer none): A #GDBusInterfaceInfo or %NULL if not found. Do not free, it is owned by @info.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_node_info_new_for_xml:
- * @xml_data: Valid D-Bus introspection XML.
- * @error: Return location for error.
- *
- * Parses @xml_data and returns a #GDBusNodeInfo representing the data.
- *
- * The introspection XML must contain exactly one top-level
- * <node> element.
- *
- * Note that this routine is using a
- * [GMarkup][glib-Simple-XML-Subset-Parser.description]-based
- * parser that only accepts a subset of valid XML documents.
- *
- * Returns: A #GDBusNodeInfo structure or %NULL if @error is set. Free
- * with g_dbus_node_info_unref().
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_node_info_ref:
- * @info: A #GDBusNodeInfo
- *
- * If @info is statically allocated does nothing. Otherwise increases
- * the reference count.
- *
- * Returns: The same @info.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_node_info_unref:
- * @info: A #GDBusNodeInfo.
- *
- * If @info is statically allocated, does nothing. Otherwise decreases
- * the reference count of @info. When its reference count drops to 0,
- * the memory used is freed.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_object_get_interface:
- * @object: A #GDBusObject.
- * @interface_name: A D-Bus interface name.
- *
- * Gets the D-Bus interface with name @interface_name associated with
- * @object, if any.
- *
- * Returns: (transfer full): %NULL if not found, otherwise a
- * #GDBusInterface that must be freed with g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_get_interfaces:
- * @object: A #GDBusObject.
- *
- * Gets the D-Bus interfaces associated with @object.
- *
- * Returns: (element-type GDBusInterface) (transfer full): A list of #GDBusInterface instances.
- * The returned list must be freed by g_list_free() after each element has been freed
- * with g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_get_object_path:
- * @object: A #GDBusObject.
- *
- * Gets the object path for @object.
- *
- * Returns: A string owned by @object. Do not free.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_client_get_connection:
- * @manager: A #GDBusObjectManagerClient
- *
- * Gets the #GDBusConnection used by @manager.
- *
- * Returns: (transfer none): A #GDBusConnection object. Do not free,
- * the object belongs to @manager.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_client_get_flags:
- * @manager: A #GDBusObjectManagerClient
- *
- * Gets the flags that @manager was constructed with.
- *
- * Returns: Zero of more flags from the #GDBusObjectManagerClientFlags
- * enumeration.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_client_get_name:
- * @manager: A #GDBusObjectManagerClient
- *
- * Gets the name that @manager is for, or %NULL if not a message bus
- * connection.
- *
- * Returns: A unique or well-known name. Do not free, the string
- * belongs to @manager.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_client_get_name_owner:
- * @manager: A #GDBusObjectManagerClient.
- *
- * The unique name that owns the name that @manager is for or %NULL if
- * no-one currently owns that name. You can connect to the
- * #GObject::notify signal to track changes to the
- * #GDBusObjectManagerClient:name-owner property.
- *
- * Returns: (nullable): The name owner or %NULL if no name owner
- * exists. Free with g_free().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_client_new:
- * @connection: A #GDBusConnection.
- * @flags: Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
- * @name: The owner of the control object (unique or well-known name).
- * @object_path: The object path of the control object.
- * @get_proxy_type_func: (nullable): A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
- * @get_proxy_type_user_data: User data to pass to @get_proxy_type_func.
- * @get_proxy_type_destroy_notify: (nullable): Free function for @get_proxy_type_user_data or %NULL.
- * @cancellable: (nullable): A #GCancellable or %NULL
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: The data to pass to @callback.
- *
- * Asynchronously creates a new #GDBusObjectManagerClient object.
- *
- * This is an asynchronous failable constructor. When the result is
- * ready, @callback will be invoked in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread you are calling this method from. You can
- * then call g_dbus_object_manager_client_new_finish() to get the result. See
- * g_dbus_object_manager_client_new_sync() for the synchronous version.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_client_new_finish:
- * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_object_manager_client_new().
- * @error: Return location for error or %NULL.
- *
- * Finishes an operation started with g_dbus_object_manager_client_new().
- *
- * Returns: (transfer full) (type GDBusObjectManagerClient): A
- * #GDBusObjectManagerClient object or %NULL if @error is set. Free
- * with g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_client_new_for_bus:
- * @bus_type: A #GBusType.
- * @flags: Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
- * @name: The owner of the control object (unique or well-known name).
- * @object_path: The object path of the control object.
- * @get_proxy_type_func: (nullable): A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
- * @get_proxy_type_user_data: User data to pass to @get_proxy_type_func.
- * @get_proxy_type_destroy_notify: (nullable): Free function for @get_proxy_type_user_data or %NULL.
- * @cancellable: (nullable): A #GCancellable or %NULL
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: The data to pass to @callback.
- *
- * Like g_dbus_object_manager_client_new() but takes a #GBusType instead of a
- * #GDBusConnection.
- *
- * This is an asynchronous failable constructor. When the result is
- * ready, @callback will be invoked in the
- * [thread-default main loop][g-main-context-push-thread-default]
- * of the thread you are calling this method from. You can
- * then call g_dbus_object_manager_client_new_for_bus_finish() to get the result. See
- * g_dbus_object_manager_client_new_for_bus_sync() for the synchronous version.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_client_new_for_bus_finish:
- * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_object_manager_client_new_for_bus().
- * @error: Return location for error or %NULL.
- *
- * Finishes an operation started with g_dbus_object_manager_client_new_for_bus().
- *
- * Returns: (transfer full) (type GDBusObjectManagerClient): A
- * #GDBusObjectManagerClient object or %NULL if @error is set. Free
- * with g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_client_new_for_bus_sync:
- * @bus_type: A #GBusType.
- * @flags: Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
- * @name: The owner of the control object (unique or well-known name).
- * @object_path: The object path of the control object.
- * @get_proxy_type_func: (nullable): A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
- * @get_proxy_type_user_data: User data to pass to @get_proxy_type_func.
- * @get_proxy_type_destroy_notify: (nullable): Free function for @get_proxy_type_user_data or %NULL.
- * @cancellable: (nullable): A #GCancellable or %NULL
- * @error: Return location for error or %NULL.
- *
- * Like g_dbus_object_manager_client_new_sync() but takes a #GBusType instead
- * of a #GDBusConnection.
- *
- * This is a synchronous failable constructor - the calling thread is
- * blocked until a reply is received. See g_dbus_object_manager_client_new_for_bus()
- * for the asynchronous version.
- *
- * Returns: (transfer full) (type GDBusObjectManagerClient): A
- * #GDBusObjectManagerClient object or %NULL if @error is set. Free
- * with g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_client_new_sync:
- * @connection: A #GDBusConnection.
- * @flags: Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
- * @name: (nullable): The owner of the control object (unique or well-known name), or %NULL when not using a message bus connection.
- * @object_path: The object path of the control object.
- * @get_proxy_type_func: (nullable): A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
- * @get_proxy_type_user_data: User data to pass to @get_proxy_type_func.
- * @get_proxy_type_destroy_notify: (nullable): Free function for @get_proxy_type_user_data or %NULL.
- * @cancellable: (nullable): A #GCancellable or %NULL
- * @error: Return location for error or %NULL.
- *
- * Creates a new #GDBusObjectManagerClient object.
- *
- * This is a synchronous failable constructor - the calling thread is
- * blocked until a reply is received. See g_dbus_object_manager_client_new()
- * for the asynchronous version.
- *
- * Returns: (transfer full) (type GDBusObjectManagerClient): A
- * #GDBusObjectManagerClient object or %NULL if @error is set. Free
- * with g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_get_interface:
- * @manager: A #GDBusObjectManager.
- * @object_path: Object path to lookup.
- * @interface_name: D-Bus interface name to lookup.
- *
- * Gets the interface proxy for @interface_name at @object_path, if
- * any.
- *
- * Returns: (transfer full): A #GDBusInterface instance or %NULL. Free
- * with g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_get_object:
- * @manager: A #GDBusObjectManager.
- * @object_path: Object path to lookup.
- *
- * Gets the #GDBusObjectProxy at @object_path, if any.
- *
- * Returns: (transfer full): A #GDBusObject or %NULL. Free with
- * g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_get_object_path:
- * @manager: A #GDBusObjectManager.
- *
- * Gets the object path that @manager is for.
- *
- * Returns: A string owned by @manager. Do not free.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_get_objects:
- * @manager: A #GDBusObjectManager.
- *
- * Gets all #GDBusObject objects known to @manager.
- *
- * Returns: (transfer full) (element-type GDBusObject): A list of
- * #GDBusObject objects. The returned list should be freed with
- * g_list_free() after each element has been freed with
- * g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_server_export:
- * @manager: A #GDBusObjectManagerServer.
- * @object: A #GDBusObjectSkeleton.
- *
- * Exports @object on @manager.
- *
- * If there is already a #GDBusObject exported at the object path,
- * then the old object is removed.
- *
- * The object path for @object must be in the hierarchy rooted by the
- * object path for @manager.
- *
- * Note that @manager will take a reference on @object for as long as
- * it is exported.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_server_export_uniquely:
- * @manager: A #GDBusObjectManagerServer.
- * @object: An object.
- *
- * Like g_dbus_object_manager_server_export() but appends a string of
- * the form _N (with N being a natural number) to @object's object path
- * if an object with the given path already exists. As such, the
- * #GDBusObjectProxy:g-object-path property of @object may be modified.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_server_get_connection:
- * @manager: A #GDBusObjectManagerServer
- *
- * Gets the #GDBusConnection used by @manager.
- *
- * Returns: (transfer full): A #GDBusConnection object or %NULL if
- * @manager isn't exported on a connection. The returned object should
- * be freed with g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_server_is_exported:
- * @manager: A #GDBusObjectManagerServer.
- * @object: An object.
- *
- * Returns whether @object is currently exported on @manager.
- *
- * Returns: %TRUE if @object is exported
- * Since: 2.34
- */
-
-
-/**
- * g_dbus_object_manager_server_new:
- * @object_path: The object path to export the manager object at.
- *
- * Creates a new #GDBusObjectManagerServer object.
- *
- * The returned server isn't yet exported on any connection. To do so,
- * use g_dbus_object_manager_server_set_connection(). Normally you
- * want to export all of your objects before doing so to avoid
- * [InterfacesAdded](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager)
- * signals being emitted.
- *
- * Returns: A #GDBusObjectManagerServer object. Free with g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_manager_server_set_connection:
- * @manager: A #GDBusObjectManagerServer.
- * @connection: (nullable): A #GDBusConnection or %NULL.
- *
- * Exports all objects managed by @manager on @connection. If
- * @connection is %NULL, stops exporting objects.
- */
-
-
-/**
- * g_dbus_object_manager_server_unexport:
- * @manager: A #GDBusObjectManagerServer.
- * @object_path: An object path.
- *
- * If @manager has an object at @path, removes the object. Otherwise
- * does nothing.
- *
- * Note that @object_path must be in the hierarchy rooted by the
- * object path for @manager.
- *
- * Returns: %TRUE if object at @object_path was removed, %FALSE otherwise.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_proxy_get_connection:
- * @proxy: a #GDBusObjectProxy
- *
- * Gets the connection that @proxy is for.
- *
- * Returns: (transfer none): A #GDBusConnection. Do not free, the
- * object is owned by @proxy.
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_proxy_new:
+ * g_dbus_connection_signal_subscribe:
* @connection: a #GDBusConnection
- * @object_path: the object path
- *
- * Creates a new #GDBusObjectProxy for the given connection and
- * object path.
- *
- * Returns: a new #GDBusObjectProxy
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_skeleton_add_interface:
- * @object: A #GDBusObjectSkeleton.
- * @interface_: A #GDBusInterfaceSkeleton.
- *
- * Adds @interface_ to @object.
- *
- * If @object already contains a #GDBusInterfaceSkeleton with the same
- * interface name, it is removed before @interface_ is added.
- *
- * Note that @object takes its own reference on @interface_ and holds
- * it until removed.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_skeleton_flush:
- * @object: A #GDBusObjectSkeleton.
- *
- * This method simply calls g_dbus_interface_skeleton_flush() on all
- * interfaces belonging to @object. See that method for when flushing
- * is useful.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_skeleton_new:
- * @object_path: An object path.
- *
- * Creates a new #GDBusObjectSkeleton.
- *
- * Returns: A #GDBusObjectSkeleton. Free with g_object_unref().
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_skeleton_remove_interface:
- * @object: A #GDBusObjectSkeleton.
- * @interface_: A #GDBusInterfaceSkeleton.
- *
- * Removes @interface_ from @object.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_skeleton_remove_interface_by_name:
- * @object: A #GDBusObjectSkeleton.
- * @interface_name: A D-Bus interface name.
- *
- * Removes the #GDBusInterface with @interface_name from @object.
- *
- * If no D-Bus interface of the given interface exists, this function
- * does nothing.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_object_skeleton_set_object_path:
- * @object: A #GDBusObjectSkeleton.
- * @object_path: A valid D-Bus object path.
- *
- * Sets the object path for @object.
- *
- * Since: 2.30
- */
-
-
-/**
- * g_dbus_property_info_ref:
- * @info: A #GDBusPropertyInfo
- *
- * If @info is statically allocated does nothing. Otherwise increases
- * the reference count.
- *
- * Returns: The same @info.
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_property_info_unref:
- * @info: A #GDBusPropertyInfo.
- *
- * If @info is statically allocated, does nothing. Otherwise decreases
- * the reference count of @info. When its reference count drops to 0,
- * the memory used is freed.
- *
- * Since: 2.26
- */
-
-
-/**
- * g_dbus_proxy_call:
- * @proxy: A #GDBusProxy.
- * @method_name: Name of method to invoke.
- * @parameters: (nullable): A #GVariant tuple with parameters for the signal or %NULL if not passing parameters.
- * @flags: Flags from the #GDBusCallFlags enumeration.
- * @timeout_msec: The timeout in milliseconds (with %G_MAXINT meaning
- * "infinite") or -1 to use the proxy default timeout.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't
- * care about the result of the method invocation.
- * @user_data: The data to pass to @callback.
- *
- * Asynchronously invokes the @method_name method on @proxy.
- *
- * If @method_name contains any dots, then @name is split into interface and
- * method name parts. This allows using @proxy for invoking methods on
- * other interfaces.
- *
- * If the #GDBusConnection associated with @proxy is closed then
- * the operation will fail with %G_IO_ERROR_CLOSED. If
- * @cancellable is canceled, the operation will fail with
- * %G_IO_ERROR_CANCELLED. If @parameters contains a value not
- * compatible with the D-Bus protocol, the operation fails with
- * %G_IO_ERROR_INVALID_ARGUMENT.
- *
- * If the @parameters #GVariant is floating, it is consumed. This allows
- * convenient 'inline' use of g_variant_new(), e.g.:
- * |[<!-- language="C" -->
- * g_dbus_proxy_call (proxy,
- * "TwoStrings",
- * g_variant_new ("(ss)",
- * "Thing One",
- * "Thing Two"),
- * G_DBUS_CALL_FLAGS_NONE,
- * -1,
- * NULL,
- * (GAsyncReadyCallback) two_strings_done,
- * &data);
- * ]|
- *
- * If @proxy has an expected interface (see
- * #GDBusProxy:g-interface-info) and @method_name is referenced by it,
- * then the return value is checked against the return type.
+ * @sender: (nullable): sender name to match on (unique or well-known name)
+ * or %NULL to listen from all senders
+ * @interface_name: (nullable): D-Bus interface name to match on or %NULL to
+ * match on all interfaces
+ * @member: (nullable): D-Bus signal name to match on or %NULL to match on
+ * all signals
+ * @object_path: (nullable): object path to match on or %NULL to match on
+ * all object paths
+ * @arg0: (nullable): contents of first string argument to match on or %NULL
+ * to match on all kinds of arguments
+ * @flags: #GDBusSignalFlags describing how arg0 is used in subscribing to the
+ * signal
+ * @callback: callback to invoke when there is a signal matching the requested data
+ * @user_data: user data to pass to @callback
+ * @user_data_free_func: (nullable): function to free @user_data with when
+ * subscription is removed or %NULL
*
- * This is an asynchronous method. When the operation is finished,
- * @callback will be invoked in the
+ * Subscribes to signals on @connection and invokes @callback with a whenever
+ * the signal is received. Note that @callback will be invoked in the
* [thread-default main context][g-main-context-push-thread-default]
* of the thread you are calling this method from.
- * You can then call g_dbus_proxy_call_finish() to get the result of
- * the operation. See g_dbus_proxy_call_sync() for the synchronous
- * version of this method.
*
- * If @callback is %NULL then the D-Bus method call message will be sent with
- * the %G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED flag set.
+ * If @connection is not a message bus connection, @sender must be
+ * %NULL.
+ *
+ * If @sender is a well-known name note that @callback is invoked with
+ * the unique name for the owner of @sender, not the well-known name
+ * as one would expect. This is because the message bus rewrites the
+ * name. As such, to avoid certain race conditions, users should be
+ * tracking the name owner of the well-known name and use that when
+ * processing the received signal.
+ *
+ * If one of %G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE or
+ * %G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH are given, @arg0 is
+ * interpreted as part of a namespace or path. The first argument
+ * of a signal is matched against that part as specified by D-Bus.
+ *
+ * If @user_data_free_func is non-%NULL, it will be called (in the
+ * thread-default main context of the thread you are calling this
+ * method from) at some point after @user_data is no longer
+ * needed. (It is not guaranteed to be called synchronously when the
+ * signal is unsubscribed from, and may be called after @connection
+ * has been destroyed.)
*
+ * Returns: a subscription identifier that can be used with g_dbus_connection_signal_unsubscribe()
* Since: 2.26
*/
/**
- * g_dbus_proxy_call_finish:
- * @proxy: A #GDBusProxy.
- * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_proxy_call().
- * @error: Return location for error or %NULL.
+ * g_dbus_connection_signal_unsubscribe:
+ * @connection: a #GDBusConnection
+ * @subscription_id: a subscription id obtained from
+ * g_dbus_connection_signal_subscribe()
*
- * Finishes an operation started with g_dbus_proxy_call().
+ * Unsubscribes from signals.
*
- * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
- * return values. Free with g_variant_unref().
* Since: 2.26
*/
/**
- * g_dbus_proxy_call_sync:
- * @proxy: A #GDBusProxy.
- * @method_name: Name of method to invoke.
- * @parameters: (nullable): A #GVariant tuple with parameters for the signal
- * or %NULL if not passing parameters.
- * @flags: Flags from the #GDBusCallFlags enumeration.
- * @timeout_msec: The timeout in milliseconds (with %G_MAXINT meaning
- * "infinite") or -1 to use the proxy default timeout.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_dbus_connection_start_message_processing:
+ * @connection: a #GDBusConnection
*
- * Synchronously invokes the @method_name method on @proxy.
+ * If @connection was created with
+ * %G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING, this method
+ * starts processing messages. Does nothing on if @connection wasn't
+ * created with this flag or if the method has already been called.
*
- * If @method_name contains any dots, then @name is split into interface and
- * method name parts. This allows using @proxy for invoking methods on
- * other interfaces.
+ * Since: 2.26
+ */
+
+
+/**
+ * g_dbus_connection_unexport_action_group:
+ * @connection: a #GDBusConnection
+ * @export_id: the ID from g_dbus_connection_export_action_group()
*
- * If the #GDBusConnection associated with @proxy is disconnected then
- * the operation will fail with %G_IO_ERROR_CLOSED. If
- * @cancellable is canceled, the operation will fail with
- * %G_IO_ERROR_CANCELLED. If @parameters contains a value not
- * compatible with the D-Bus protocol, the operation fails with
- * %G_IO_ERROR_INVALID_ARGUMENT.
+ * Reverses the effect of a previous call to
+ * g_dbus_connection_export_action_group().
*
- * If the @parameters #GVariant is floating, it is consumed. This allows
- * convenient 'inline' use of g_variant_new(), e.g.:
- * |[<!-- language="C" -->
- * g_dbus_proxy_call_sync (proxy,
- * "TwoStrings",
- * g_variant_new ("(ss)",
- * "Thing One",
- * "Thing Two"),
- * G_DBUS_CALL_FLAGS_NONE,
- * -1,
- * NULL,
- * &error);
- * ]|
+ * It is an error to call this function with an ID that wasn't returned
+ * from g_dbus_connection_export_action_group() or to call it with the
+ * same ID more than once.
*
- * The calling thread is blocked until a reply is received. See
- * g_dbus_proxy_call() for the asynchronous version of this
- * method.
+ * Since: 2.32
+ */
+
+
+/**
+ * g_dbus_connection_unexport_menu_model:
+ * @connection: a #GDBusConnection
+ * @export_id: the ID from g_dbus_connection_export_menu_model()
*
- * If @proxy has an expected interface (see
- * #GDBusProxy:g-interface-info) and @method_name is referenced by it,
- * then the return value is checked against the return type.
+ * Reverses the effect of a previous call to
+ * g_dbus_connection_export_menu_model().
*
- * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
- * return values. Free with g_variant_unref().
- * Since: 2.26
+ * It is an error to call this function with an ID that wasn't returned
+ * from g_dbus_connection_export_menu_model() or to call it with the
+ * same ID more than once.
+ *
+ * Since: 2.32
*/
/**
- * g_dbus_proxy_call_with_unix_fd_list:
- * @proxy: A #GDBusProxy.
- * @method_name: Name of method to invoke.
- * @parameters: (nullable): A #GVariant tuple with parameters for the signal or %NULL if not passing parameters.
- * @flags: Flags from the #GDBusCallFlags enumeration.
- * @timeout_msec: The timeout in milliseconds (with %G_MAXINT meaning
- * "infinite") or -1 to use the proxy default timeout.
- * @fd_list: (nullable): A #GUnixFDList or %NULL.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't
- * care about the result of the method invocation.
- * @user_data: The data to pass to @callback.
- *
- * Like g_dbus_proxy_call() but also takes a #GUnixFDList object.
+ * g_dbus_connection_unregister_object:
+ * @connection: a #GDBusConnection
+ * @registration_id: a registration id obtained from
+ * g_dbus_connection_register_object()
*
- * This method is only available on UNIX.
+ * Unregisters an object.
*
- * Since: 2.30
+ * Returns: %TRUE if the object was unregistered, %FALSE otherwise
+ * Since: 2.26
*/
/**
- * g_dbus_proxy_call_with_unix_fd_list_finish:
- * @proxy: A #GDBusProxy.
- * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL.
- * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_proxy_call_with_unix_fd_list().
- * @error: Return location for error or %NULL.
+ * g_dbus_connection_unregister_subtree:
+ * @connection: a #GDBusConnection
+ * @registration_id: a subtree registration id obtained from
+ * g_dbus_connection_register_subtree()
*
- * Finishes an operation started with g_dbus_proxy_call_with_unix_fd_list().
+ * Unregisters a subtree.
*
- * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
- * return values. Free with g_variant_unref().
- * Since: 2.30
+ * Returns: %TRUE if the subtree was unregistered, %FALSE otherwise
+ * Since: 2.26
*/
/**
- * g_dbus_proxy_call_with_unix_fd_list_sync:
- * @proxy: A #GDBusProxy.
- * @method_name: Name of method to invoke.
- * @parameters: (nullable): A #GVariant tuple with parameters for the signal
- * or %NULL if not passing parameters.
- * @flags: Flags from the #GDBusCallFlags enumeration.
- * @timeout_msec: The timeout in milliseconds (with %G_MAXINT meaning
- * "infinite") or -1 to use the proxy default timeout.
- * @fd_list: (nullable): A #GUnixFDList or %NULL.
- * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_dbus_error_encode_gerror:
+ * @error: A #GError.
*
- * Like g_dbus_proxy_call_sync() but also takes and returns #GUnixFDList objects.
+ * Creates a D-Bus error name to use for @error. If @error matches
+ * a registered error (cf. g_dbus_error_register_error()), the corresponding
+ * D-Bus error name will be returned.
*
- * This method is only available on UNIX.
+ * Otherwise the a name of the form
+ * `org.gtk.GDBus.UnmappedGError.Quark._ESCAPED_QUARK_NAME.Code_ERROR_CODE`
+ * will be used. This allows other GDBus applications to map the error
+ * on the wire back to a #GError using g_dbus_error_new_for_dbus_error().
*
- * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
- * return values. Free with g_variant_unref().
- * Since: 2.30
+ * This function is typically only used in object mappings to put a
+ * #GError on the wire. Regular applications should not use it.
+ *
+ * Returns: A D-Bus error name (never %NULL). Free with g_free().
+ * Since: 2.26
*/
/**
- * g_dbus_proxy_get_cached_property:
- * @proxy: A #GDBusProxy.
- * @property_name: Property name.
+ * g_dbus_error_get_remote_error:
+ * @error: a #GError
*
- * Looks up the value for a property from the cache. This call does no
- * blocking IO.
+ * Gets the D-Bus error name used for @error, if any.
*
- * If @proxy has an expected interface (see
- * #GDBusProxy:g-interface-info) and @property_name is referenced by
- * it, then @value is checked against the type of the property.
+ * This function is guaranteed to return a D-Bus error name for all
+ * #GErrors returned from functions handling remote method calls
+ * (e.g. g_dbus_connection_call_finish()) unless
+ * g_dbus_error_strip_remote_error() has been used on @error.
*
- * Returns: (transfer full) (nullable): A reference to the #GVariant instance
- * that holds the value for @property_name or %NULL if the value is not in
- * the cache. The returned reference must be freed with g_variant_unref().
+ * Returns: an allocated string or %NULL if the D-Bus error name
+ * could not be found. Free with g_free().
* Since: 2.26
*/
/**
- * g_dbus_proxy_get_cached_property_names:
- * @proxy: A #GDBusProxy.
+ * g_dbus_error_is_remote_error:
+ * @error: A #GError.
*
- * Gets the names of all cached properties on @proxy.
+ * Checks if @error represents an error received via D-Bus from a remote peer. If so,
+ * use g_dbus_error_get_remote_error() to get the name of the error.
*
- * Returns: (transfer full) (nullable) (array zero-terminated=1): A
- * %NULL-terminated array of strings or %NULL if
- * @proxy has no cached properties. Free the returned array with
- * g_strfreev().
+ * Returns: %TRUE if @error represents an error from a remote peer,
+ * %FALSE otherwise.
* Since: 2.26
*/
/**
- * g_dbus_proxy_get_connection:
- * @proxy: A #GDBusProxy.
+ * g_dbus_error_new_for_dbus_error:
+ * @dbus_error_name: D-Bus error name.
+ * @dbus_error_message: D-Bus error message.
*
- * Gets the connection @proxy is for.
+ * Creates a #GError based on the contents of @dbus_error_name and
+ * @dbus_error_message.
*
- * Returns: (transfer none): A #GDBusConnection owned by @proxy. Do not free.
+ * Errors registered with g_dbus_error_register_error() will be looked
+ * up using @dbus_error_name and if a match is found, the error domain
+ * and code is used. Applications can use g_dbus_error_get_remote_error()
+ * to recover @dbus_error_name.
+ *
+ * If a match against a registered error is not found and the D-Bus
+ * error name is in a form as returned by g_dbus_error_encode_gerror()
+ * the error domain and code encoded in the name is used to
+ * create the #GError. Also, @dbus_error_name is added to the error message
+ * such that it can be recovered with g_dbus_error_get_remote_error().
+ *
+ * Otherwise, a #GError with the error code %G_IO_ERROR_DBUS_ERROR
+ * in the #G_IO_ERROR error domain is returned. Also, @dbus_error_name is
+ * added to the error message such that it can be recovered with
+ * g_dbus_error_get_remote_error().
+ *
+ * In all three cases, @dbus_error_name can always be recovered from the
+ * returned #GError using the g_dbus_error_get_remote_error() function
+ * (unless g_dbus_error_strip_remote_error() hasn't been used on the returned error).
+ *
+ * This function is typically only used in object mappings to prepare
+ * #GError instances for applications. Regular applications should not use
+ * it.
+ *
+ * Returns: An allocated #GError. Free with g_error_free().
* Since: 2.26
*/
/**
- * g_dbus_proxy_get_default_timeout:
- * @proxy: A #GDBusProxy.
+ * g_dbus_error_register_error:
+ * @error_domain: A #GQuark for a error domain.
+ * @error_code: An error code.
+ * @dbus_error_name: A D-Bus error name.
*
- * Gets 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.
+ * Creates an association to map between @dbus_error_name and
+ * #GErrors specified by @error_domain and @error_code.
*
- * See the #GDBusProxy:g-default-timeout property for more details.
+ * This is typically done in the routine that returns the #GQuark for
+ * an error domain.
*
- * Returns: Timeout to use for @proxy.
+ * Returns: %TRUE if the association was created, %FALSE if it already
+ * exists.
* Since: 2.26
*/
/**
- * g_dbus_proxy_get_flags:
- * @proxy: A #GDBusProxy.
+ * g_dbus_error_register_error_domain:
+ * @error_domain_quark_name: The error domain name.
+ * @quark_volatile: A pointer where to store the #GQuark.
+ * @entries: (array length=num_entries): A pointer to @num_entries #GDBusErrorEntry struct items.
+ * @num_entries: Number of items to register.
*
- * Gets the flags that @proxy was constructed with.
+ * Helper function for associating a #GError error domain with D-Bus error names.
*
- * Returns: Flags from the #GDBusProxyFlags enumeration.
* Since: 2.26
*/
/**
- * g_dbus_proxy_get_interface_info:
- * @proxy: A #GDBusProxy
+ * g_dbus_error_set_dbus_error:
+ * @error: A pointer to a #GError or %NULL.
+ * @dbus_error_name: D-Bus error name.
+ * @dbus_error_message: D-Bus error message.
+ * @format: (nullable): printf()-style format to prepend to @dbus_error_message or %NULL.
+ * @...: Arguments for @format.
*
- * Returns the #GDBusInterfaceInfo, if any, specifying the interface
- * that @proxy conforms to. See the #GDBusProxy:g-interface-info
- * property for more details.
+ * Does nothing if @error is %NULL. Otherwise sets *@error to
+ * a new #GError created with g_dbus_error_new_for_dbus_error()
+ * with @dbus_error_message prepend with @format (unless %NULL).
*
- * Returns: (transfer none) (nullable): A #GDBusInterfaceInfo or %NULL.
- * Do not unref the returned object, it is owned by @proxy.
* Since: 2.26
*/
/**
- * g_dbus_proxy_get_interface_name:
- * @proxy: A #GDBusProxy.
+ * g_dbus_error_set_dbus_error_valist:
+ * @error: A pointer to a #GError or %NULL.
+ * @dbus_error_name: D-Bus error name.
+ * @dbus_error_message: D-Bus error message.
+ * @format: (nullable): printf()-style format to prepend to @dbus_error_message or %NULL.
+ * @var_args: Arguments for @format.
*
- * Gets the D-Bus interface name @proxy is for.
+ * Like g_dbus_error_set_dbus_error() but intended for language bindings.
*
- * Returns: A string owned by @proxy. Do not free.
* Since: 2.26
*/
/**
- * g_dbus_proxy_get_name:
- * @proxy: A #GDBusProxy.
+ * g_dbus_error_strip_remote_error:
+ * @error: A #GError.
*
- * Gets the name that @proxy was constructed for.
+ * Looks for extra information in the error message used to recover
+ * the D-Bus error name and strips it if found. If stripped, the
+ * message field in @error will correspond exactly to what was
+ * received on the wire.
*
- * Returns: A string owned by @proxy. Do not free.
+ * This is typically used when presenting errors to the end user.
+ *
+ * Returns: %TRUE if information was stripped, %FALSE otherwise.
* Since: 2.26
*/
/**
- * g_dbus_proxy_get_name_owner:
- * @proxy: A #GDBusProxy.
+ * g_dbus_error_unregister_error:
+ * @error_domain: A #GQuark for a error domain.
+ * @error_code: An error code.
+ * @dbus_error_name: A D-Bus error name.
*
- * The unique name that owns the name that @proxy is for or %NULL if
- * no-one currently owns that name. You may connect to the
- * #GObject::notify signal to track changes to the
- * #GDBusProxy:g-name-owner property.
+ * Destroys an association previously set up with g_dbus_error_register_error().
*
- * Returns: (transfer full) (nullable): The name owner or %NULL if no name
- * owner exists. Free with g_free().
+ * Returns: %TRUE if the association was destroyed, %FALSE if it wasn't found.
* Since: 2.26
*/
/**
- * g_dbus_proxy_get_object_path:
- * @proxy: A #GDBusProxy.
+ * g_dbus_generate_guid:
*
- * Gets the object path @proxy is for.
+ * Generate a D-Bus GUID that can be used with
+ * e.g. g_dbus_connection_new().
*
- * Returns: A string owned by @proxy. Do not free.
+ * See the D-Bus specification regarding what strings are valid D-Bus
+ * GUID (for example, D-Bus GUIDs are not RFC-4122 compliant).
+ *
+ * Returns: A valid D-Bus GUID. Free with g_free().
* Since: 2.26
*/
/**
- * g_dbus_proxy_new:
- * @connection: A #GDBusConnection.
- * @flags: Flags used when constructing the proxy.
- * @info: (nullable): A #GDBusInterfaceInfo specifying the minimal interface that @proxy conforms to or %NULL.
- * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @interface_name: A D-Bus interface name.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: Callback function to invoke when the proxy is ready.
- * @user_data: User data to pass to @callback.
+ * g_dbus_gvalue_to_gvariant:
+ * @gvalue: A #GValue to convert to a #GVariant
+ * @type: A #GVariantType
*
- * Creates a proxy for accessing @interface_name on the remote object
- * at @object_path owned by @name at @connection and asynchronously
- * loads D-Bus properties unless the
- * %G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used. Connect to
- * the #GDBusProxy::g-properties-changed signal to get notified about
- * property changes.
+ * Converts a #GValue to a #GVariant of the type indicated by the @type
+ * parameter.
*
- * If the %G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS flag is not set, also sets up
- * match rules for signals. Connect to the #GDBusProxy::g-signal signal
- * to handle signals from the remote object.
+ * The conversion is using the following rules:
*
- * If @name is a well-known name and the
- * %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
- * flags aren't set and no name owner currently exists, the message bus
- * will be requested to launch a name owner for the name.
+ * - #G_TYPE_STRING: 's', 'o', 'g' or 'ay'
+ * - #G_TYPE_STRV: 'as', 'ao' or 'aay'
+ * - #G_TYPE_BOOLEAN: 'b'
+ * - #G_TYPE_UCHAR: 'y'
+ * - #G_TYPE_INT: 'i', 'n'
+ * - #G_TYPE_UINT: 'u', 'q'
+ * - #G_TYPE_INT64 'x'
+ * - #G_TYPE_UINT64: 't'
+ * - #G_TYPE_DOUBLE: 'd'
+ * - #G_TYPE_VARIANT: Any #GVariantType
*
- * This is a failable asynchronous constructor - when the proxy is
- * ready, @callback will be invoked and you can use
- * g_dbus_proxy_new_finish() to get the result.
+ * This can fail if e.g. @gvalue is of type #G_TYPE_STRING and @type
+ * is ['i'][G-VARIANT-TYPE-INT32:CAPS]. It will also fail for any #GType
+ * (including e.g. #G_TYPE_OBJECT and #G_TYPE_BOXED derived-types) not
+ * in the table above.
*
- * See g_dbus_proxy_new_sync() and for a synchronous version of this constructor.
+ * Note that if @gvalue is of type #G_TYPE_VARIANT and its value is
+ * %NULL, the empty #GVariant instance (never %NULL) for @type is
+ * returned (e.g. 0 for scalar types, the empty string for string types,
+ * '/' for object path types, the empty array for any array type and so on).
*
- * #GDBusProxy is used in this [example][gdbus-wellknown-proxy].
+ * See the g_dbus_gvariant_to_gvalue() function for how to convert a
+ * #GVariant to a #GValue.
*
- * Since: 2.26
+ * Returns: A #GVariant (never floating) of #GVariantType @type holding
+ * the data from @gvalue or %NULL in case of failure. Free with
+ * g_variant_unref().
+ * Since: 2.30
*/
/**
- * g_dbus_proxy_new_finish:
- * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback function passed to g_dbus_proxy_new().
- * @error: Return location for error or %NULL.
+ * g_dbus_gvariant_to_gvalue:
+ * @value: A #GVariant.
+ * @out_gvalue: (out): Return location pointing to a zero-filled (uninitialized) #GValue.
*
- * Finishes creating a #GDBusProxy.
+ * Converts a #GVariant to a #GValue. If @value is floating, it is consumed.
*
- * Returns: (transfer full): A #GDBusProxy or %NULL if @error is set.
- * Free with g_object_unref().
- * Since: 2.26
+ * The rules specified in the g_dbus_gvalue_to_gvariant() function are
+ * used - this function is essentially its reverse form. So, a #GVariant
+ * containing any basic or string array type will be converted to a #GValue
+ * containing a basic value or string array. Any other #GVariant (handle,
+ * variant, tuple, dict entry) will be converted to a #GValue containing that
+ * #GVariant.
+ *
+ * The conversion never fails - a valid #GValue is always returned in
+ * @out_gvalue.
+ *
+ * Since: 2.30
*/
/**
- * g_dbus_proxy_new_for_bus:
- * @bus_type: A #GBusType.
- * @flags: Flags used when constructing the proxy.
- * @info: (nullable): A #GDBusInterfaceInfo specifying the minimal interface that @proxy conforms to or %NULL.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @interface_name: A D-Bus interface name.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @callback: Callback function to invoke when the proxy is ready.
- * @user_data: User data to pass to @callback.
- *
- * Like g_dbus_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ * g_dbus_interface_dup_object: (rename-to g_dbus_interface_get_object)
+ * @interface_: An exported D-Bus interface.
*
- * #GDBusProxy is used in this [example][gdbus-wellknown-proxy].
+ * Gets the #GDBusObject that @interface_ belongs to, if any.
*
- * Since: 2.26
+ * Returns: (transfer full): A #GDBusObject or %NULL. The returned
+ * reference should be freed with g_object_unref().
+ * Since: 2.32
*/
/**
- * g_dbus_proxy_new_for_bus_finish:
- * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback function passed to g_dbus_proxy_new_for_bus().
- * @error: Return location for error or %NULL.
+ * g_dbus_interface_get_info:
+ * @interface_: An exported D-Bus interface.
*
- * Finishes creating a #GDBusProxy.
+ * Gets D-Bus introspection information for the D-Bus interface
+ * implemented by @interface_.
*
- * Returns: (transfer full): A #GDBusProxy or %NULL if @error is set.
- * Free with g_object_unref().
- * Since: 2.26
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ * Since: 2.30
*/
/**
- * g_dbus_proxy_new_for_bus_sync:
- * @bus_type: A #GBusType.
- * @flags: Flags used when constructing the proxy.
- * @info: (nullable): A #GDBusInterfaceInfo specifying the minimal interface
- * that @proxy conforms to or %NULL.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @interface_name: A D-Bus interface name.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_dbus_interface_get_object: (skip)
+ * @interface_: An exported D-Bus interface
*
- * Like g_dbus_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ * Gets the #GDBusObject that @interface_ belongs to, if any.
*
- * #GDBusProxy is used in this [example][gdbus-wellknown-proxy].
+ * It is not safe to use the returned object if @interface_ or
+ * the returned object is being used from other threads. See
+ * g_dbus_interface_dup_object() for a thread-safe alternative.
*
- * Returns: (transfer full): A #GDBusProxy or %NULL if error is set.
- * Free with g_object_unref().
- * Since: 2.26
+ * Returns: (transfer none): A #GDBusObject or %NULL. The returned
+ * reference belongs to @interface_ and should not be freed.
+ * Since: 2.30
*/
/**
- * g_dbus_proxy_new_sync:
- * @connection: A #GDBusConnection.
- * @flags: Flags used when constructing the proxy.
- * @info: (nullable): A #GDBusInterfaceInfo specifying the minimal interface that @proxy conforms to or %NULL.
- * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @interface_name: A D-Bus interface name.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: (nullable): Return location for error or %NULL.
- *
- * Creates a proxy for accessing @interface_name on the remote object
- * at @object_path owned by @name at @connection and synchronously
- * loads D-Bus properties unless the
- * %G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used.
- *
- * If the %G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS flag is not set, also sets up
- * match rules for signals. Connect to the #GDBusProxy::g-signal signal
- * to handle signals from the remote object.
+ * g_dbus_interface_info_cache_build:
+ * @info: A #GDBusInterfaceInfo.
*
- * If @name is a well-known name and the
- * %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
- * flags aren't set and no name owner currently exists, the message bus
- * will be requested to launch a name owner for the name.
+ * Builds a lookup-cache to speed up
+ * g_dbus_interface_info_lookup_method(),
+ * g_dbus_interface_info_lookup_signal() and
+ * g_dbus_interface_info_lookup_property().
*
- * This is a synchronous failable constructor. See g_dbus_proxy_new()
- * and g_dbus_proxy_new_finish() for the asynchronous version.
+ * If this has already been called with @info, the existing cache is
+ * used and its use count is increased.
*
- * #GDBusProxy is used in this [example][gdbus-wellknown-proxy].
+ * Note that @info cannot be modified until
+ * g_dbus_interface_info_cache_release() is called.
*
- * Returns: (transfer full): A #GDBusProxy or %NULL if error is set.
- * Free with g_object_unref().
- * Since: 2.26
+ * Since: 2.30
*/
/**
- * g_dbus_proxy_set_cached_property:
- * @proxy: A #GDBusProxy
- * @property_name: Property name.
- * @value: (nullable): Value for the property or %NULL to remove it from the cache.
- *
- * If @value is not %NULL, sets the cached value for the property with
- * name @property_name to the value in @value.
- *
- * If @value is %NULL, then the cached value is removed from the
- * property cache.
+ * g_dbus_interface_info_cache_release:
+ * @info: A GDBusInterfaceInfo
*
- * If @proxy has an expected interface (see
- * #GDBusProxy:g-interface-info) and @property_name is referenced by
- * it, then @value is checked against the type of the property.
+ * Decrements the usage count for the cache for @info built by
+ * g_dbus_interface_info_cache_build() (if any) and frees the
+ * resources used by the cache if the usage count drops to zero.
*
- * If the @value #GVariant is floating, it is consumed. This allows
- * convenient 'inline' use of g_variant_new(), e.g.
- * |[<!-- language="C" -->
- * g_dbus_proxy_set_cached_property (proxy,
- * "SomeProperty",
- * g_variant_new ("(si)",
- * "A String",
- * 42));
- * ]|
+ * Since: 2.30
+ */
+
+
+/**
+ * g_dbus_interface_info_generate_xml:
+ * @info: A #GDBusNodeInfo
+ * @indent: Indentation level.
+ * @string_builder: A #GString to to append XML data to.
*
- * Normally you will not need to use this method since @proxy
- * is tracking changes using the
- * `org.freedesktop.DBus.Properties.PropertiesChanged`
- * D-Bus signal. However, for performance reasons an object may
- * decide to not use this signal for some properties and instead
- * use a proprietary out-of-band mechanism to transmit changes.
+ * Appends an XML representation of @info (and its children) to @string_builder.
*
- * As a concrete example, consider an object with a property
- * `ChatroomParticipants` which is an array of strings. Instead of
- * transmitting the same (long) array every time the property changes,
- * it is more efficient to only transmit the delta using e.g. signals
- * `ChatroomParticipantJoined(String name)` and
- * `ChatroomParticipantParted(String name)`.
+ * This function is typically used for generating introspection XML
+ * documents at run-time for handling the
+ * `org.freedesktop.DBus.Introspectable.Introspect`
+ * method.
*
* Since: 2.26
*/
/**
- * g_dbus_proxy_set_default_timeout:
- * @proxy: A #GDBusProxy.
- * @timeout_msec: Timeout in milliseconds.
+ * g_dbus_interface_info_lookup_method:
+ * @info: A #GDBusInterfaceInfo.
+ * @name: A D-Bus method name (typically in CamelCase)
*
- * Sets 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.
+ * Looks up information about a method.
*
- * See the #GDBusProxy:g-default-timeout property for more details.
+ * The cost of this function is O(n) in number of methods unless
+ * g_dbus_interface_info_cache_build() has been used on @info.
*
+ * Returns: (transfer none): A #GDBusMethodInfo or %NULL if not found. Do not free, it is owned by @info.
* Since: 2.26
*/
/**
- * g_dbus_proxy_set_interface_info:
- * @proxy: A #GDBusProxy
- * @info: (transfer none) (nullable): Minimum interface this proxy conforms to
- * or %NULL to unset.
+ * g_dbus_interface_info_lookup_property:
+ * @info: A #GDBusInterfaceInfo.
+ * @name: A D-Bus property name (typically in CamelCase).
*
- * Ensure that interactions with @proxy conform to the given
- * interface. See the #GDBusProxy:g-interface-info property for more
- * details.
+ * Looks up information about a property.
+ *
+ * The cost of this function is O(n) in number of properties unless
+ * g_dbus_interface_info_cache_build() has been used on @info.
*
+ * Returns: (transfer none): A #GDBusPropertyInfo or %NULL if not found. Do not free, it is owned by @info.
* Since: 2.26
*/
/**
- * g_dbus_server_get_client_address:
- * @server: A #GDBusServer.
+ * g_dbus_interface_info_lookup_signal:
+ * @info: A #GDBusInterfaceInfo.
+ * @name: A D-Bus signal name (typically in CamelCase)
*
- * Gets a
- * [D-Bus address](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses)
- * string that can be used by clients to connect to @server.
+ * Looks up information about a signal.
*
- * Returns: A D-Bus address string. Do not free, the string is owned
- * by @server.
+ * The cost of this function is O(n) in number of signals unless
+ * g_dbus_interface_info_cache_build() has been used on @info.
+ *
+ * Returns: (transfer none): A #GDBusSignalInfo or %NULL if not found. Do not free, it is owned by @info.
* Since: 2.26
*/
/**
- * g_dbus_server_get_flags:
- * @server: A #GDBusServer.
+ * g_dbus_interface_info_ref:
+ * @info: A #GDBusInterfaceInfo
*
- * Gets the flags for @server.
+ * If @info is statically allocated does nothing. Otherwise increases
+ * the reference count.
*
- * Returns: A set of flags from the #GDBusServerFlags enumeration.
+ * Returns: The same @info.
* Since: 2.26
*/
/**
- * g_dbus_server_get_guid:
- * @server: A #GDBusServer.
+ * g_dbus_interface_info_unref:
+ * @info: A #GDBusInterfaceInfo.
*
- * Gets the GUID for @server.
+ * If @info is statically allocated, does nothing. Otherwise decreases
+ * the reference count of @info. When its reference count drops to 0,
+ * the memory used is freed.
*
- * Returns: A D-Bus GUID. Do not free this string, it is owned by @server.
* Since: 2.26
*/
/**
- * g_dbus_server_is_active:
- * @server: A #GDBusServer.
+ * g_dbus_interface_set_object:
+ * @interface_: An exported D-Bus interface.
+ * @object: (nullable): A #GDBusObject or %NULL.
*
- * Gets whether @server is active.
+ * Sets the #GDBusObject for @interface_ to @object.
*
- * Returns: %TRUE if server is active, %FALSE otherwise.
- * Since: 2.26
+ * Note that @interface_ will hold a weak reference to @object.
+ *
+ * Since: 2.30
*/
/**
- * g_dbus_server_new_sync:
- * @address: A D-Bus address.
- * @flags: Flags from the #GDBusServerFlags enumeration.
- * @guid: A D-Bus GUID.
- * @observer: (nullable): A #GDBusAuthObserver or %NULL.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for server or %NULL.
+ * g_dbus_interface_skeleton_export:
+ * @interface_: The D-Bus interface to export.
+ * @connection: A #GDBusConnection to export @interface_ on.
+ * @object_path: The path to export the interface at.
+ * @error: Return location for error or %NULL.
*
- * Creates a new D-Bus server that listens on the first address in
- * @address that works.
+ * Exports @interface_ at @object_path on @connection.
*
- * Once constructed, you can use g_dbus_server_get_client_address() to
- * get a D-Bus address string that clients can use to connect.
+ * This can be called multiple times to export the same @interface_
+ * onto multiple connections however the @object_path provided must be
+ * the same for all connections.
*
- * Connect to the #GDBusServer::new-connection signal to handle
- * incoming connections.
+ * Use g_dbus_interface_skeleton_unexport() to unexport the object.
*
- * The returned #GDBusServer isn't active - you have to start it with
- * g_dbus_server_start().
+ * Returns: %TRUE if the interface was exported on @connection, otherwise %FALSE with
+ * @error set.
+ * Since: 2.30
+ */
+
+
+/**
+ * g_dbus_interface_skeleton_flush:
+ * @interface_: A #GDBusInterfaceSkeleton.
*
- * #GDBusServer is used in this [example][gdbus-peer-to-peer].
+ * If @interface_ has outstanding changes, request for these changes to be
+ * emitted immediately.
*
- * This is a synchronous failable constructor. See
- * g_dbus_server_new() for the asynchronous version.
+ * For example, an exported D-Bus interface may queue up property
+ * changes and emit the
+ * `org.freedesktop.DBus.Properties.PropertiesChanged`
+ * signal later (e.g. in an idle handler). This technique is useful
+ * for collapsing multiple property changes into one.
*
- * Returns: A #GDBusServer or %NULL if @error is set. Free with
- * g_object_unref().
- * Since: 2.26
+ * Since: 2.30
*/
/**
- * g_dbus_server_start:
- * @server: A #GDBusServer.
+ * g_dbus_interface_skeleton_get_connection:
+ * @interface_: A #GDBusInterfaceSkeleton.
*
- * Starts @server.
+ * Gets the first connection that @interface_ is exported on, if any.
*
- * Since: 2.26
+ * Returns: (transfer none): A #GDBusConnection or %NULL if @interface_ is
+ * not exported anywhere. Do not free, the object belongs to @interface_.
+ * Since: 2.30
*/
/**
- * g_dbus_server_stop:
- * @server: A #GDBusServer.
+ * g_dbus_interface_skeleton_get_connections:
+ * @interface_: A #GDBusInterfaceSkeleton.
*
- * Stops @server.
+ * Gets a list of the connections that @interface_ is exported on.
*
- * Since: 2.26
+ * Returns: (element-type GDBusConnection) (transfer full): A list of
+ * all the connections that @interface_ is exported on. The returned
+ * list should be freed with g_list_free() after each element has
+ * been freed with g_object_unref().
+ * Since: 2.32
*/
/**
- * g_dbus_signal_info_ref:
- * @info: A #GDBusSignalInfo
+ * g_dbus_interface_skeleton_get_flags:
+ * @interface_: A #GDBusInterfaceSkeleton.
*
- * If @info is statically allocated does nothing. Otherwise increases
- * the reference count.
+ * Gets the #GDBusInterfaceSkeletonFlags that describes what the behavior
+ * of @interface_
*
- * Returns: The same @info.
- * Since: 2.26
+ * Returns: One or more flags from the #GDBusInterfaceSkeletonFlags enumeration.
+ * Since: 2.30
*/
/**
- * g_dbus_signal_info_unref:
- * @info: A #GDBusSignalInfo.
+ * g_dbus_interface_skeleton_get_info:
+ * @interface_: A #GDBusInterfaceSkeleton.
*
- * If @info is statically allocated, does nothing. Otherwise decreases
- * the reference count of @info. When its reference count drops to 0,
- * the memory used is freed.
+ * Gets D-Bus introspection information for the D-Bus interface
+ * implemented by @interface_.
*
- * Since: 2.26
+ * Returns: (transfer none): A #GDBusInterfaceInfo (never %NULL). Do not free.
+ * Since: 2.30
*/
/**
- * g_desktop_app_info_get_action_name:
- * @info: a #GDesktopAppInfo
- * @action_name: the name of the action as from
- * g_desktop_app_info_list_actions()
- *
- * Gets the user-visible display name of the "additional application
- * action" specified by @action_name.
+ * g_dbus_interface_skeleton_get_object_path:
+ * @interface_: A #GDBusInterfaceSkeleton.
*
- * This corresponds to the "Name" key within the keyfile group for the
- * action.
+ * Gets the object path that @interface_ is exported on, if any.
*
- * Returns: (transfer full): the locale-specific action name
- * Since: 2.38
+ * Returns: A string owned by @interface_ or %NULL if @interface_ is not exported
+ * anywhere. Do not free, the string belongs to @interface_.
+ * Since: 2.30
*/
/**
- * g_desktop_app_info_get_boolean:
- * @info: a #GDesktopAppInfo
- * @key: the key to look up
- *
- * Looks up a boolean value in the keyfile backing @info.
+ * g_dbus_interface_skeleton_get_properties:
+ * @interface_: A #GDBusInterfaceSkeleton.
*
- * The @key is looked up in the "Desktop Entry" group.
+ * Gets all D-Bus properties for @interface_.
*
- * Returns: the boolean value, or %FALSE if the key
- * is not found
- * Since: 2.36
+ * Returns: (transfer full): A #GVariant of type
+ * ['a{sv}'][G-VARIANT-TYPE-VARDICT:CAPS].
+ * Free with g_variant_unref().
+ * Since: 2.30
*/
/**
- * g_desktop_app_info_get_categories:
- * @info: a #GDesktopAppInfo
+ * g_dbus_interface_skeleton_get_vtable: (skip)
+ * @interface_: A #GDBusInterfaceSkeleton.
*
- * Gets the categories from the desktop file.
+ * Gets the interface vtable for the D-Bus interface implemented by
+ * @interface_. The returned function pointers should expect @interface_
+ * itself to be passed as @user_data.
*
- * Returns: The unparsed Categories key from the desktop file;
- * i.e. no attempt is made to split it by ';' or validate it.
+ * Returns: A #GDBusInterfaceVTable (never %NULL).
+ * Since: 2.30
*/
/**
- * g_desktop_app_info_get_filename:
- * @info: a #GDesktopAppInfo
+ * g_dbus_interface_skeleton_has_connection:
+ * @interface_: A #GDBusInterfaceSkeleton.
+ * @connection: A #GDBusConnection.
*
- * When @info was created from a known filename, return it. In some
- * situations such as the #GDesktopAppInfo returned from
- * g_desktop_app_info_new_from_keyfile(), this function will return %NULL.
+ * Checks if @interface_ is exported on @connection.
*
- * Returns: (type filename): The full path to the file for @info,
- * or %NULL if not known.
- * Since: 2.24
+ * Returns: %TRUE if @interface_ is exported on @connection, %FALSE otherwise.
+ * Since: 2.32
*/
/**
- * g_desktop_app_info_get_generic_name:
- * @info: a #GDesktopAppInfo
+ * g_dbus_interface_skeleton_set_flags:
+ * @interface_: A #GDBusInterfaceSkeleton.
+ * @flags: Flags from the #GDBusInterfaceSkeletonFlags enumeration.
*
- * Gets the generic name from the destkop file.
+ * Sets flags describing what the behavior of @skeleton should be.
*
- * Returns: The value of the GenericName key
+ * Since: 2.30
*/
/**
- * g_desktop_app_info_get_implementations:
- * @interface: the name of the interface
+ * g_dbus_interface_skeleton_unexport:
+ * @interface_: A #GDBusInterfaceSkeleton.
*
- * Gets all applications that implement @interface.
+ * Stops exporting @interface_ on all connections it is exported on.
*
- * An application implements an interface if that interface is listed in
- * the Implements= line of the desktop file of the application.
+ * To unexport @interface_ from only a single connection, use
+ * g_dbus_interface_skeleton_unexport_from_connection()
*
- * Returns: (element-type GDesktopAppInfo) (transfer full): a list of #GDesktopAppInfo
- * objects.
- * Since: 2.42
+ * Since: 2.30
*/
/**
- * g_desktop_app_info_get_is_hidden:
- * @info: a #GDesktopAppInfo.
+ * g_dbus_interface_skeleton_unexport_from_connection:
+ * @interface_: A #GDBusInterfaceSkeleton.
+ * @connection: A #GDBusConnection.
*
- * A desktop file is hidden if the Hidden key in it is
- * set to True.
+ * Stops exporting @interface_ on @connection.
*
- * Returns: %TRUE if hidden, %FALSE otherwise.
+ * To stop exporting on all connections the interface is exported on,
+ * use g_dbus_interface_skeleton_unexport().
+ *
+ * Since: 2.32
*/
/**
- * g_desktop_app_info_get_keywords:
- * @info: a #GDesktopAppInfo
+ * g_dbus_is_address:
+ * @string: A string.
*
- * Gets the keywords from the desktop file.
+ * Checks if @string is a
+ * [D-Bus address](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
*
- * Returns: (transfer none): The value of the Keywords key
- * Since: 2.32
+ * This doesn't check if @string is actually supported by #GDBusServer
+ * or #GDBusConnection - use g_dbus_is_supported_address() to do more
+ * checks.
+ *
+ * Returns: %TRUE if @string is a valid D-Bus address, %FALSE otherwise.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_get_locale_string:
- * @info: a #GDesktopAppInfo
- * @key: the key to look up
+ * g_dbus_is_guid:
+ * @string: The string to check.
*
- * Looks up a localized string value in the keyfile backing @info
- * translated to the current locale.
+ * Checks if @string is a D-Bus GUID.
*
- * The @key is looked up in the "Desktop Entry" group.
+ * See the D-Bus specification regarding what strings are valid D-Bus
+ * GUID (for example, D-Bus GUIDs are not RFC-4122 compliant).
*
- * Returns: (nullable): a newly allocated string, or %NULL if the key
- * is not found
- * Since: 2.56
+ * Returns: %TRUE if @string is a guid, %FALSE otherwise.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_get_nodisplay:
- * @info: a #GDesktopAppInfo
+ * g_dbus_is_interface_name:
+ * @string: The string to check.
*
- * Gets the value of the NoDisplay key, which helps determine if the
- * application info should be shown in menus. See
- * #G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY and g_app_info_should_show().
+ * Checks if @string is a valid D-Bus interface name.
*
- * Returns: The value of the NoDisplay key
- * Since: 2.30
+ * Returns: %TRUE if valid, %FALSE otherwise.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_get_show_in:
- * @info: a #GDesktopAppInfo
- * @desktop_env: (nullable): a string specifying a desktop name
+ * g_dbus_is_member_name:
+ * @string: The string to check.
*
- * Checks if the application info should be shown in menus that list available
- * applications for a specific name of the desktop, based on the
- * `OnlyShowIn` and `NotShowIn` keys.
+ * Checks if @string is a valid D-Bus member (e.g. signal or method) name.
*
- * @desktop_env should typically be given as %NULL, in which case the
- * `XDG_CURRENT_DESKTOP` environment variable is consulted. If you want
- * to override the default mechanism then you may specify @desktop_env,
- * but this is not recommended.
+ * Returns: %TRUE if valid, %FALSE otherwise.
+ * Since: 2.26
+ */
+
+
+/**
+ * g_dbus_is_name:
+ * @string: The string to check.
*
- * Note that g_app_info_should_show() for @info will include this check (with
- * %NULL for @desktop_env) as well as additional checks.
+ * Checks if @string is a valid D-Bus bus name (either unique or well-known).
*
- * Returns: %TRUE if the @info should be shown in @desktop_env according to the
- * `OnlyShowIn` and `NotShowIn` keys, %FALSE
- * otherwise.
- * Since: 2.30
+ * Returns: %TRUE if valid, %FALSE otherwise.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_get_startup_wm_class:
- * @info: a #GDesktopAppInfo that supports startup notify
+ * g_dbus_is_supported_address:
+ * @string: A string.
+ * @error: Return location for error or %NULL.
*
- * Retrieves the StartupWMClass field from @info. This represents the
- * WM_CLASS property of the main window of the application, if launched
- * through @info.
+ * Like g_dbus_is_address() but also checks if the library supports the
+ * transports in @string and that key/value pairs for each transport
+ * are valid. See the specification of the
+ * [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses).
*
- * Returns: (transfer none): the startup WM class, or %NULL if none is set
- * in the desktop file.
- * Since: 2.34
+ * Returns: %TRUE if @string is a valid D-Bus address that is
+ * supported by this library, %FALSE if @error is set.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_get_string:
- * @info: a #GDesktopAppInfo
- * @key: the key to look up
+ * g_dbus_is_unique_name:
+ * @string: The string to check.
*
- * Looks up a string value in the keyfile backing @info.
+ * Checks if @string is a valid D-Bus unique bus name.
*
- * The @key is looked up in the "Desktop Entry" group.
+ * Returns: %TRUE if valid, %FALSE otherwise.
+ * Since: 2.26
+ */
+
+
+/**
+ * g_dbus_menu_model_get:
+ * @connection: a #GDBusConnection
+ * @bus_name: (nullable): the bus name which exports the menu model
+ * or %NULL if @connection is not a message bus connection
+ * @object_path: the object path at which the menu model is exported
*
- * Returns: a newly allocated string, or %NULL if the key
- * is not found
- * Since: 2.36
+ * Obtains a #GDBusMenuModel for the menu model which is exported
+ * at the given @bus_name and @object_path.
+ *
+ * The thread default main context is taken at the time of this call.
+ * All signals on the menu model (and any linked models) are reported
+ * with respect to this context. All calls on the returned menu model
+ * (and linked models) must also originate from this same context, with
+ * the thread default main context unchanged.
+ *
+ * Returns: (transfer full): a #GDBusMenuModel object. Free with
+ * g_object_unref().
+ * Since: 2.32
*/
/**
- * g_desktop_app_info_has_key:
- * @info: a #GDesktopAppInfo
- * @key: the key to look up
+ * g_dbus_message_bytes_needed:
+ * @blob: (array length=blob_len) (element-type guint8): A blob represent a binary D-Bus message.
+ * @blob_len: The length of @blob (must be at least 16).
+ * @error: Return location for error or %NULL.
*
- * Returns whether @key exists in the "Desktop Entry" group
- * of the keyfile backing @info.
+ * Utility function to calculate how many bytes are needed to
+ * completely deserialize the D-Bus message stored at @blob.
*
- * Returns: %TRUE if the @key exists
- * Since: 2.36
+ * Returns: Number of bytes needed or -1 if @error is set (e.g. if
+ * @blob contains invalid data or not enough data is available to
+ * determine the size).
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_launch_action:
- * @info: a #GDesktopAppInfo
- * @action_name: the name of the action as from
- * g_desktop_app_info_list_actions()
- * @launch_context: (nullable): a #GAppLaunchContext
+ * g_dbus_message_copy:
+ * @message: A #GDBusMessage.
+ * @error: Return location for error or %NULL.
*
- * Activates the named application action.
+ * Copies @message. The copy is a deep copy and the returned
+ * #GDBusMessage is completely identical except that it is guaranteed
+ * to not be locked.
*
- * You may only call this function on action names that were
- * returned from g_desktop_app_info_list_actions().
+ * This operation can fail if e.g. @message contains file descriptors
+ * and the per-process or system-wide open files limit is reached.
*
- * Note that if the main entry of the desktop file indicates that the
- * application supports startup notification, and @launch_context is
- * non-%NULL, then startup notification will be used when activating the
- * action (and as such, invocation of the action on the receiving side
- * must signal the end of startup notification when it is completed).
- * This is the expected behaviour of applications declaring additional
- * actions, as per the desktop file specification.
+ * Returns: (transfer full): A new #GDBusMessage or %NULL if @error is set.
+ * Free with g_object_unref().
+ * Since: 2.26
+ */
+
+
+/**
+ * g_dbus_message_get_arg0:
+ * @message: A #GDBusMessage.
+ *
+ * Convenience to get the first item in the body of @message.
+ *
+ * Returns: The string item or %NULL if the first item in the body of
+ * @message is not a string.
+ * Since: 2.26
+ */
+
+
+/**
+ * g_dbus_message_get_body:
+ * @message: A #GDBusMessage.
*
- * As with g_app_info_launch() there is no way to detect failures that
- * occur while using this function.
+ * Gets the body of a message.
*
- * Since: 2.38
+ * Returns: (transfer none): A #GVariant or %NULL if the body is
+ * empty. Do not free, it is owned by @message.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_launch_uris_as_manager:
- * @appinfo: a #GDesktopAppInfo
- * @uris: (element-type utf8): List of URIs
- * @launch_context: (nullable): a #GAppLaunchContext
- * @spawn_flags: #GSpawnFlags, used for each process
- * @user_setup: (scope async) (nullable): a #GSpawnChildSetupFunc, used once
- * for each process.
- * @user_setup_data: (closure user_setup) (nullable): User data for @user_setup
- * @pid_callback: (scope call) (nullable): Callback for child processes
- * @pid_callback_data: (closure pid_callback) (nullable): User data for @callback
- * @error: return location for a #GError, or %NULL
+ * g_dbus_message_get_byte_order:
+ * @message: A #GDBusMessage.
*
- * This function performs the equivalent of g_app_info_launch_uris(),
- * but is intended primarily for operating system components that
- * launch applications. Ordinary applications should use
- * g_app_info_launch_uris().
+ * Gets the byte order of @message.
*
- * If the application is launched via GSpawn, then @spawn_flags, @user_setup
- * and @user_setup_data are used for the call to g_spawn_async().
- * Additionally, @pid_callback (with @pid_callback_data) will be called to
- * inform about the PID of the created process. See g_spawn_async_with_pipes()
- * for information on certain parameter conditions that can enable an
- * optimized posix_spawn() codepath to be used.
+ * Returns: The byte order.
+ */
+
+
+/**
+ * g_dbus_message_get_destination:
+ * @message: A #GDBusMessage.
*
- * If application launching occurs via some other mechanism (eg: D-Bus
- * activation) then @spawn_flags, @user_setup, @user_setup_data,
- * @pid_callback and @pid_callback_data are ignored.
+ * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION header field.
*
- * Returns: %TRUE on successful launch, %FALSE otherwise.
+ * Returns: The value.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_launch_uris_as_manager_with_fds:
- * @appinfo: a #GDesktopAppInfo
- * @uris: (element-type utf8): List of URIs
- * @launch_context: (nullable): a #GAppLaunchContext
- * @spawn_flags: #GSpawnFlags, used for each process
- * @user_setup: (scope async) (nullable): a #GSpawnChildSetupFunc, used once
- * for each process.
- * @user_setup_data: (closure user_setup) (nullable): User data for @user_setup
- * @pid_callback: (scope call) (nullable): Callback for child processes
- * @pid_callback_data: (closure pid_callback) (nullable): User data for @callback
- * @stdin_fd: file descriptor to use for child's stdin, or -1
- * @stdout_fd: file descriptor to use for child's stdout, or -1
- * @stderr_fd: file descriptor to use for child's stderr, or -1
- * @error: return location for a #GError, or %NULL
- *
- * Equivalent to g_desktop_app_info_launch_uris_as_manager() but allows
- * you to pass in file descriptors for the stdin, stdout and stderr streams
- * of the launched process.
+ * g_dbus_message_get_error_name:
+ * @message: A #GDBusMessage.
*
- * If application launching occurs via some non-spawn mechanism (e.g. D-Bus
- * activation) then @stdin_fd, @stdout_fd and @stderr_fd are ignored.
+ * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field.
*
- * Returns: %TRUE on successful launch, %FALSE otherwise.
- * Since: 2.58
+ * Returns: The value.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_list_actions:
- * @info: a #GDesktopAppInfo
- *
- * Returns the list of "additional application actions" supported on the
- * desktop file, as per the desktop file specification.
+ * g_dbus_message_get_flags:
+ * @message: A #GDBusMessage.
*
- * As per the specification, this is the list of actions that are
- * explicitly listed in the "Actions" key of the [Desktop Entry] group.
+ * Gets the flags for @message.
*
- * Returns: (array zero-terminated=1) (element-type utf8) (transfer none): a list of strings, always non-%NULL
- * Since: 2.38
+ * Returns: Flags that are set (typically values from the #GDBusMessageFlags enumeration bitwise ORed together).
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_lookup_get_default_for_uri_scheme:
- * @lookup: a #GDesktopAppInfoLookup
- * @uri_scheme: a string containing a URI scheme.
- *
- * Gets the default application for launching applications
- * using this URI scheme for a particular GDesktopAppInfoLookup
- * implementation.
+ * g_dbus_message_get_header:
+ * @message: A #GDBusMessage.
+ * @header_field: A 8-bit unsigned integer (typically a value from the #GDBusMessageHeaderField enumeration)
*
- * The GDesktopAppInfoLookup interface and this function is used
- * to implement g_app_info_get_default_for_uri_scheme() backends
- * in a GIO module. There is no reason for applications to use it
- * directly. Applications should use g_app_info_get_default_for_uri_scheme().
+ * Gets a header field on @message.
*
- * Returns: (transfer full): #GAppInfo for given @uri_scheme or %NULL on error.
- * Deprecated: The #GDesktopAppInfoLookup interface is deprecated and unused by gio.
+ * Returns: A #GVariant with the value if the header was found, %NULL
+ * otherwise. Do not free, it is owned by @message.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_new:
- * @desktop_id: the desktop file id
- *
- * Creates a new #GDesktopAppInfo based on a desktop file id.
+ * g_dbus_message_get_header_fields:
+ * @message: A #GDBusMessage.
*
- * A desktop file id is the basename of the desktop file, including the
- * .desktop extension. GIO is looking for a desktop file with this name
- * in the `applications` subdirectories of the XDG
- * data directories (i.e. the directories specified in the `XDG_DATA_HOME`
- * and `XDG_DATA_DIRS` environment variables). GIO also supports the
- * prefix-to-subdirectory mapping that is described in the
- * [Menu Spec](http://standards.freedesktop.org/menu-spec/latest/)
- * (i.e. a desktop id of kde-foo.desktop will match
- * `/usr/share/applications/kde/foo.desktop`).
+ * Gets an array of all header fields on @message that are set.
*
- * Returns: (nullable): a new #GDesktopAppInfo, or %NULL if no desktop
- * file with that id exists.
+ * Returns: (array zero-terminated=1): An array of header fields
+ * terminated by %G_DBUS_MESSAGE_HEADER_FIELD_INVALID. Each element
+ * is a #guchar. Free with g_free().
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_new_from_filename:
- * @filename: (type filename): the path of a desktop file, in the GLib
- * filename encoding
+ * g_dbus_message_get_interface:
+ * @message: A #GDBusMessage.
*
- * Creates a new #GDesktopAppInfo.
+ * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE header field.
*
- * Returns: (nullable): a new #GDesktopAppInfo or %NULL on error.
+ * Returns: The value.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_new_from_keyfile:
- * @key_file: an opened #GKeyFile
+ * g_dbus_message_get_locked:
+ * @message: A #GDBusMessage.
*
- * Creates a new #GDesktopAppInfo.
+ * Checks whether @message is locked. To monitor changes to this
+ * value, conncet to the #GObject::notify signal to listen for changes
+ * on the #GDBusMessage:locked property.
*
- * Returns: (nullable): a new #GDesktopAppInfo or %NULL on error.
- * Since: 2.18
+ * Returns: %TRUE if @message is locked, %FALSE otherwise.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_search:
- * @search_string: the search string to use
- *
- * Searches desktop files for ones that match @search_string.
+ * g_dbus_message_get_member:
+ * @message: A #GDBusMessage.
*
- * The return value is an array of strvs. Each strv contains a list of
- * applications that matched @search_string with an equal score. The
- * outer list is sorted by score so that the first strv contains the
- * best-matching applications, and so on.
- * The algorithm for determining matches is undefined and may change at
- * any time.
+ * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_MEMBER header field.
*
- * Returns: (array zero-terminated=1) (element-type GStrv) (transfer full): a
- * list of strvs. Free each item with g_strfreev() and free the outer
- * list with g_free().
+ * Returns: The value.
+ * Since: 2.26
*/
/**
- * g_desktop_app_info_set_desktop_env:
- * @desktop_env: a string specifying what desktop this is
- *
- * Sets the name of the desktop that the application is running in.
- * This is used by g_app_info_should_show() and
- * g_desktop_app_info_get_show_in() to evaluate the
- * `OnlyShowIn` and `NotShowIn`
- * desktop entry fields.
+ * g_dbus_message_get_message_type:
+ * @message: A #GDBusMessage.
*
- * Should be called only once; subsequent calls are ignored.
+ * Gets the type of @message.
*
- * Deprecated: 2.42: do not use this API. Since 2.42 the value of the
- * `XDG_CURRENT_DESKTOP` environment variable will be used.
+ * Returns: A 8-bit unsigned integer (typically a value from the #GDBusMessageType enumeration).
+ * Since: 2.26
*/
/**
- * g_drive_can_eject:
- * @drive: a #GDrive.
+ * g_dbus_message_get_num_unix_fds:
+ * @message: A #GDBusMessage.
*
- * Checks if a drive can be ejected.
+ * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header field.
*
- * Returns: %TRUE if the @drive can be ejected, %FALSE otherwise.
+ * Returns: The value.
+ * Since: 2.26
*/
/**
- * g_drive_can_poll_for_media:
- * @drive: a #GDrive.
+ * g_dbus_message_get_path:
+ * @message: A #GDBusMessage.
*
- * Checks if a drive can be polled for media changes.
+ * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_PATH header field.
*
- * Returns: %TRUE if the @drive can be polled for media changes,
- * %FALSE otherwise.
+ * Returns: The value.
+ * Since: 2.26
*/
/**
- * g_drive_can_start:
- * @drive: a #GDrive.
+ * g_dbus_message_get_reply_serial:
+ * @message: A #GDBusMessage.
*
- * Checks if a drive can be started.
+ * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL header field.
*
- * Returns: %TRUE if the @drive can be started, %FALSE otherwise.
- * Since: 2.22
+ * Returns: The value.
+ * Since: 2.26
*/
/**
- * g_drive_can_start_degraded:
- * @drive: a #GDrive.
+ * g_dbus_message_get_sender:
+ * @message: A #GDBusMessage.
*
- * Checks if a drive can be started degraded.
+ * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_SENDER header field.
*
- * Returns: %TRUE if the @drive can be started degraded, %FALSE otherwise.
- * Since: 2.22
+ * Returns: The value.
+ * Since: 2.26
*/
/**
- * g_drive_can_stop:
- * @drive: a #GDrive.
+ * g_dbus_message_get_serial:
+ * @message: A #GDBusMessage.
*
- * Checks if a drive can be stopped.
+ * Gets the serial for @message.
*
- * Returns: %TRUE if the @drive can be stopped, %FALSE otherwise.
- * Since: 2.22
+ * Returns: A #guint32.
+ * Since: 2.26
*/
/**
- * g_drive_eject:
- * @drive: a #GDrive.
- * @flags: flags affecting the unmount if required for eject
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
- * @user_data: user data to pass to @callback
- *
- * Asynchronously ejects a drive.
+ * g_dbus_message_get_signature:
+ * @message: A #GDBusMessage.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_drive_eject_finish() to obtain the
- * result of the operation.
+ * Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field.
*
- * Deprecated: 2.22: Use g_drive_eject_with_operation() instead.
+ * Returns: The value.
+ * Since: 2.26
*/
/**
- * g_drive_eject_finish:
- * @drive: a #GDrive.
- * @result: a #GAsyncResult.
- * @error: a #GError, or %NULL
+ * g_dbus_message_get_unix_fd_list:
+ * @message: A #GDBusMessage.
*
- * Finishes ejecting a drive.
+ * Gets the UNIX file descriptors associated with @message, if any.
*
- * Returns: %TRUE if the drive has been ejected successfully,
- * %FALSE otherwise.
- * Deprecated: 2.22: Use g_drive_eject_with_operation_finish() instead.
+ * This method is only available on UNIX.
+ *
+ * Returns: (transfer none): A #GUnixFDList or %NULL if no file descriptors are
+ * associated. Do not free, this object is owned by @message.
+ * Since: 2.26
*/
/**
- * g_drive_eject_with_operation:
- * @drive: a #GDrive.
- * @flags: flags affecting the unmount if required for eject
- * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
- * user interaction.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
- * @user_data: user data passed to @callback.
+ * g_dbus_message_lock:
+ * @message: A #GDBusMessage.
*
- * Ejects a drive. This is an asynchronous operation, and is
- * finished by calling g_drive_eject_with_operation_finish() with the @drive
- * and #GAsyncResult data returned in the @callback.
+ * If @message is locked, does nothing. Otherwise locks the message.
*
- * Since: 2.22
+ * Since: 2.26
*/
/**
- * g_drive_eject_with_operation_finish:
- * @drive: a #GDrive.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_dbus_message_new:
*
- * Finishes ejecting a drive. If any errors occurred during the operation,
- * @error will be set to contain the errors and %FALSE will be returned.
+ * Creates a new empty #GDBusMessage.
*
- * Returns: %TRUE if the drive was successfully ejected. %FALSE otherwise.
- * Since: 2.22
+ * Returns: A #GDBusMessage. Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_drive_enumerate_identifiers:
- * @drive: a #GDrive
+ * g_dbus_message_new_from_blob:
+ * @blob: (array length=blob_len) (element-type guint8): A blob representing a binary D-Bus message.
+ * @blob_len: The length of @blob.
+ * @capabilities: A #GDBusCapabilityFlags describing what protocol features are supported.
+ * @error: Return location for error or %NULL.
*
- * Gets the kinds of identifiers that @drive has.
- * Use g_drive_get_identifier() to obtain the identifiers
- * themselves.
+ * Creates a new #GDBusMessage from the data stored at @blob. The byte
+ * order that the message was in can be retrieved using
+ * g_dbus_message_get_byte_order().
*
- * Returns: (transfer full) (array zero-terminated=1): a %NULL-terminated
- * array of strings containing kinds of identifiers. Use g_strfreev()
- * to free.
+ * Returns: A new #GDBusMessage or %NULL if @error is set. Free with
+ * g_object_unref().
+ * Since: 2.26
*/
/**
- * g_drive_get_icon:
- * @drive: a #GDrive.
+ * g_dbus_message_new_method_call:
+ * @name: (nullable): A valid D-Bus name or %NULL.
+ * @path: A valid object path.
+ * @interface_: (nullable): A valid D-Bus interface name or %NULL.
+ * @method: A valid method name.
*
- * Gets the icon for @drive.
+ * Creates a new #GDBusMessage for a method call.
*
- * Returns: (transfer full): #GIcon for the @drive.
- * Free the returned object with g_object_unref().
+ * Returns: A #GDBusMessage. Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_drive_get_identifier:
- * @drive: a #GDrive
- * @kind: the kind of identifier to return
+ * g_dbus_message_new_method_error:
+ * @method_call_message: A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
+ * create a reply message to.
+ * @error_name: A valid D-Bus error name.
+ * @error_message_format: The D-Bus error message in a printf() format.
+ * @...: Arguments for @error_message_format.
*
- * Gets the identifier of the given kind for @drive. The only
- * identifier currently available is
- * #G_DRIVE_IDENTIFIER_KIND_UNIX_DEVICE.
+ * Creates a new #GDBusMessage that is an error reply to @method_call_message.
*
- * Returns: (nullable) (transfer full): a newly allocated string containing the
- * requested identifier, or %NULL if the #GDrive
- * doesn't have this kind of identifier.
+ * Returns: (transfer full): A #GDBusMessage. Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_drive_get_name:
- * @drive: a #GDrive.
+ * g_dbus_message_new_method_error_literal:
+ * @method_call_message: A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
+ * create a reply message to.
+ * @error_name: A valid D-Bus error name.
+ * @error_message: The D-Bus error message.
*
- * Gets the name of @drive.
+ * Creates a new #GDBusMessage that is an error reply to @method_call_message.
*
- * Returns: a string containing @drive's name. The returned
- * string should be freed when no longer needed.
+ * Returns: (transfer full): A #GDBusMessage. Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_drive_get_sort_key:
- * @drive: A #GDrive.
+ * g_dbus_message_new_method_error_valist:
+ * @method_call_message: A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
+ * create a reply message to.
+ * @error_name: A valid D-Bus error name.
+ * @error_message_format: The D-Bus error message in a printf() format.
+ * @var_args: Arguments for @error_message_format.
*
- * Gets the sort key for @drive, if any.
+ * Like g_dbus_message_new_method_error() but intended for language bindings.
*
- * Returns: (nullable): Sorting key for @drive or %NULL if no such key is available.
- * Since: 2.32
+ * Returns: (transfer full): A #GDBusMessage. Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_drive_get_start_stop_type:
- * @drive: a #GDrive.
+ * g_dbus_message_new_method_reply:
+ * @method_call_message: A message of type %G_DBUS_MESSAGE_TYPE_METHOD_CALL to
+ * create a reply message to.
*
- * Gets a hint about how a drive can be started/stopped.
+ * Creates a new #GDBusMessage that is a reply to @method_call_message.
*
- * Returns: A value from the #GDriveStartStopType enumeration.
- * Since: 2.22
+ * Returns: (transfer full): #GDBusMessage. Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_drive_get_symbolic_icon:
- * @drive: a #GDrive.
+ * g_dbus_message_new_signal:
+ * @path: A valid object path.
+ * @interface_: A valid D-Bus interface name.
+ * @signal: A valid signal name.
*
- * Gets the icon for @drive.
+ * Creates a new #GDBusMessage for a signal emission.
*
- * Returns: (transfer full): symbolic #GIcon for the @drive.
- * Free the returned object with g_object_unref().
- * Since: 2.34
+ * Returns: A #GDBusMessage. Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_drive_get_volumes:
- * @drive: a #GDrive.
+ * g_dbus_message_print: (type method-return)
+ * @message: A #GDBusMessage.
+ * @indent: Indentation level.
*
- * Get a list of mountable volumes for @drive.
+ * Produces a human-readable multi-line description of @message.
*
- * The returned list should be freed with g_list_free(), after
- * its elements have been unreffed with g_object_unref().
+ * The contents of the description has no ABI guarantees, the contents
+ * and formatting is subject to change at any time. Typical output
+ * looks something like this:
+ * |[
+ * Flags: none
+ * Version: 0
+ * Serial: 4
+ * Headers:
+ * path -> objectpath '/org/gtk/GDBus/TestObject'
+ * interface -> 'org.gtk.GDBus.TestInterface'
+ * member -> 'GimmeStdout'
+ * destination -> ':1.146'
+ * Body: ()
+ * UNIX File Descriptors:
+ * (none)
+ * ]|
+ * or
+ * |[
+ * Flags: no-reply-expected
+ * Version: 0
+ * Serial: 477
+ * Headers:
+ * reply-serial -> uint32 4
+ * destination -> ':1.159'
+ * sender -> ':1.146'
+ * num-unix-fds -> uint32 1
+ * Body: ()
+ * UNIX File Descriptors:
+ * fd 12: dev=0:10,mode=020620,ino=5,uid=500,gid=5,rdev=136:2,size=0,atime=1273085037,mtime=1273085851,ctime=1272982635
+ * ]|
*
- * Returns: (element-type GVolume) (transfer full): #GList containing any #GVolume objects on the given @drive.
+ * Returns: A string that should be freed with g_free().
+ * Since: 2.26
*/
/**
- * g_drive_has_media:
- * @drive: a #GDrive.
+ * g_dbus_message_set_body:
+ * @message: A #GDBusMessage.
+ * @body: Either %NULL or a #GVariant that is a tuple.
*
- * Checks if the @drive has media. Note that the OS may not be polling
- * the drive for media changes; see g_drive_is_media_check_automatic()
- * for more details.
+ * Sets the body @message. As a side-effect the
+ * %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field is set to the
+ * type string of @body (or cleared if @body is %NULL).
*
- * Returns: %TRUE if @drive has media, %FALSE otherwise.
+ * If @body is floating, @message assumes ownership of @body.
+ *
+ * Since: 2.26
*/
/**
- * g_drive_has_volumes:
- * @drive: a #GDrive.
- *
- * Check if @drive has any mountable volumes.
+ * g_dbus_message_set_byte_order:
+ * @message: A #GDBusMessage.
+ * @byte_order: The byte order.
*
- * Returns: %TRUE if the @drive contains volumes, %FALSE otherwise.
+ * Sets the byte order of @message.
*/
/**
- * g_drive_is_media_check_automatic:
- * @drive: a #GDrive.
+ * g_dbus_message_set_destination:
+ * @message: A #GDBusMessage.
+ * @value: The value to set.
*
- * Checks if @drive is capabable of automatically detecting media changes.
+ * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION header field.
*
- * Returns: %TRUE if the @drive is capabable of automatically detecting
- * media changes, %FALSE otherwise.
+ * Since: 2.26
*/
/**
- * g_drive_is_media_removable:
- * @drive: a #GDrive.
+ * g_dbus_message_set_error_name:
+ * @message: A #GDBusMessage.
+ * @value: The value to set.
*
- * Checks if the @drive supports removable media.
+ * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field.
*
- * Returns: %TRUE if @drive supports removable media, %FALSE otherwise.
+ * Since: 2.26
*/
/**
- * g_drive_is_removable:
- * @drive: a #GDrive.
+ * g_dbus_message_set_flags:
+ * @message: A #GDBusMessage.
+ * @flags: Flags for @message that are set (typically values from the #GDBusMessageFlags
+ * enumeration bitwise ORed together).
*
- * Checks if the #GDrive and/or its media is considered removable by the user.
- * See g_drive_is_media_removable().
+ * Sets the flags to set on @message.
*
- * Returns: %TRUE if @drive and/or its media is considered removable, %FALSE otherwise.
- * Since: 2.50
+ * Since: 2.26
*/
/**
- * g_drive_poll_for_media:
- * @drive: a #GDrive.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
- * @user_data: user data to pass to @callback
+ * g_dbus_message_set_header:
+ * @message: A #GDBusMessage.
+ * @header_field: A 8-bit unsigned integer (typically a value from the #GDBusMessageHeaderField enumeration)
+ * @value: (nullable): A #GVariant to set the header field or %NULL to clear the header field.
*
- * Asynchronously polls @drive to see if media has been inserted or removed.
+ * Sets a header field on @message.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_drive_poll_for_media_finish() to obtain the
- * result of the operation.
+ * If @value is floating, @message assumes ownership of @value.
+ *
+ * Since: 2.26
*/
/**
- * g_drive_poll_for_media_finish:
- * @drive: a #GDrive.
- * @result: a #GAsyncResult.
- * @error: a #GError, or %NULL
+ * g_dbus_message_set_interface:
+ * @message: A #GDBusMessage.
+ * @value: The value to set.
*
- * Finishes an operation started with g_drive_poll_for_media() on a drive.
+ * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE header field.
*
- * Returns: %TRUE if the drive has been poll_for_mediaed successfully,
- * %FALSE otherwise.
+ * Since: 2.26
*/
/**
- * g_drive_start:
- * @drive: a #GDrive.
- * @flags: flags affecting the start operation.
- * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
- * user interaction.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
- * @user_data: user data to pass to @callback
- *
- * Asynchronously starts a drive.
+ * g_dbus_message_set_member:
+ * @message: A #GDBusMessage.
+ * @value: The value to set.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_drive_start_finish() to obtain the
- * result of the operation.
+ * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_MEMBER header field.
*
- * Since: 2.22
+ * Since: 2.26
*/
/**
- * g_drive_start_finish:
- * @drive: a #GDrive.
- * @result: a #GAsyncResult.
- * @error: a #GError, or %NULL
+ * g_dbus_message_set_message_type:
+ * @message: A #GDBusMessage.
+ * @type: A 8-bit unsigned integer (typically a value from the #GDBusMessageType enumeration).
*
- * Finishes starting a drive.
+ * Sets @message to be of @type.
*
- * Returns: %TRUE if the drive has been started successfully,
- * %FALSE otherwise.
- * Since: 2.22
+ * Since: 2.26
*/
/**
- * g_drive_stop:
- * @drive: a #GDrive.
- * @flags: flags affecting the unmount if required for stopping.
- * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
- * user interaction.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
- * @user_data: user data to pass to @callback
- *
- * Asynchronously stops a drive.
+ * g_dbus_message_set_num_unix_fds:
+ * @message: A #GDBusMessage.
+ * @value: The value to set.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_drive_stop_finish() to obtain the
- * result of the operation.
+ * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header field.
*
- * Since: 2.22
+ * Since: 2.26
*/
/**
- * g_drive_stop_finish:
- * @drive: a #GDrive.
- * @result: a #GAsyncResult.
- * @error: a #GError, or %NULL
+ * g_dbus_message_set_path:
+ * @message: A #GDBusMessage.
+ * @value: The value to set.
*
- * Finishes stopping a drive.
+ * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_PATH header field.
*
- * Returns: %TRUE if the drive has been stopped successfully,
- * %FALSE otherwise.
- * Since: 2.22
+ * Since: 2.26
*/
/**
- * g_dtls_client_connection_get_accepted_cas:
- * @conn: the #GDtlsClientConnection
- *
- * Gets the list of distinguished names of the Certificate Authorities
- * that the server will accept certificates from. This will be set
- * during the TLS handshake if the server requests a certificate.
- * Otherwise, it will be %NULL.
+ * g_dbus_message_set_reply_serial:
+ * @message: A #GDBusMessage.
+ * @value: The value to set.
*
- * Each item in the list is a #GByteArray which contains the complete
- * subject DN of the certificate authority.
+ * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL header field.
*
- * Returns: (element-type GByteArray) (transfer full): the list of
- * CA DNs. You should unref each element with g_byte_array_unref() and then
- * the free the list with g_list_free().
- * Since: 2.48
+ * Since: 2.26
*/
/**
- * g_dtls_client_connection_get_server_identity:
- * @conn: the #GDtlsClientConnection
+ * g_dbus_message_set_sender:
+ * @message: A #GDBusMessage.
+ * @value: The value to set.
*
- * Gets @conn's expected server identity
+ * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_SENDER header field.
*
- * Returns: (transfer none): a #GSocketConnectable describing the
- * expected server identity, or %NULL if the expected identity is not
- * known.
- * Since: 2.48
+ * Since: 2.26
*/
/**
- * g_dtls_client_connection_get_validation_flags:
- * @conn: the #GDtlsClientConnection
+ * g_dbus_message_set_serial:
+ * @message: A #GDBusMessage.
+ * @serial: A #guint32.
*
- * Gets @conn's validation flags
+ * Sets the serial for @message.
*
- * Returns: the validation flags
- * Since: 2.48
+ * Since: 2.26
*/
/**
- * g_dtls_client_connection_new:
- * @base_socket: the #GDatagramBased to wrap
- * @server_identity: (nullable): the expected identity of the server
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_dbus_message_set_signature:
+ * @message: A #GDBusMessage.
+ * @value: The value to set.
*
- * Creates a new #GDtlsClientConnection wrapping @base_socket which is
- * assumed to communicate with the server identified by @server_identity.
+ * Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field.
*
- * Returns: (transfer full) (type GDtlsClientConnection): the new
- * #GDtlsClientConnection, or %NULL on error
- * Since: 2.48
+ * Since: 2.26
*/
/**
- * g_dtls_client_connection_set_server_identity:
- * @conn: the #GDtlsClientConnection
- * @identity: a #GSocketConnectable describing the expected server identity
+ * g_dbus_message_set_unix_fd_list:
+ * @message: A #GDBusMessage.
+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
*
- * Sets @conn's expected server identity, which is used both to tell
- * servers on virtual hosts which certificate to present, and also
- * to let @conn know what name to look for in the certificate when
- * performing %G_TLS_CERTIFICATE_BAD_IDENTITY validation, if enabled.
+ * Sets the UNIX file descriptors associated with @message. As a
+ * side-effect the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header
+ * field is set to the number of fds in @fd_list (or cleared if
+ * @fd_list is %NULL).
*
- * Since: 2.48
+ * This method is only available on UNIX.
+ *
+ * Since: 2.26
*/
/**
- * g_dtls_client_connection_set_validation_flags:
- * @conn: the #GDtlsClientConnection
- * @flags: the #GTlsCertificateFlags to use
+ * g_dbus_message_to_blob:
+ * @message: A #GDBusMessage.
+ * @out_size: Return location for size of generated blob.
+ * @capabilities: A #GDBusCapabilityFlags describing what protocol features are supported.
+ * @error: Return location for error.
*
- * Sets @conn's validation flags, to override the default set of
- * checks performed when validating a server certificate. By default,
- * %G_TLS_CERTIFICATE_VALIDATE_ALL is used.
+ * Serializes @message to a blob. The byte order returned by
+ * g_dbus_message_get_byte_order() will be used.
*
- * Since: 2.48
+ * Returns: (array length=out_size) (transfer full): A pointer to a
+ * valid binary D-Bus message of @out_size bytes generated by @message
+ * or %NULL if @error is set. Free with g_free().
+ * Since: 2.26
*/
/**
- * g_dtls_connection_close:
- * @conn: a #GDtlsConnection
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a #GError, or %NULL
- *
- * Close the DTLS connection. This is equivalent to calling
- * g_dtls_connection_shutdown() to shut down both sides of the connection.
- *
- * Closing a #GDtlsConnection waits for all buffered but untransmitted data to
- * be sent before it completes. It then sends a `close_notify` DTLS alert to the
- * peer and may wait for a `close_notify` to be received from the peer. It does
- * not close the underlying #GDtlsConnection:base-socket; that must be closed
- * separately.
- *
- * Once @conn is closed, all other operations will return %G_IO_ERROR_CLOSED.
- * Closing a #GDtlsConnection multiple times will not return an error.
+ * g_dbus_message_to_gerror:
+ * @message: A #GDBusMessage.
+ * @error: The #GError to set.
*
- * #GDtlsConnections will be automatically closed when the last reference is
- * dropped, but you might want to call this function to make sure resources are
- * released as early as possible.
+ * If @message is not of type %G_DBUS_MESSAGE_TYPE_ERROR does
+ * nothing and returns %FALSE.
*
- * If @cancellable is cancelled, the #GDtlsConnection may be left
- * partially-closed and any pending untransmitted data may be lost. Call
- * g_dtls_connection_close() again to complete closing the #GDtlsConnection.
+ * Otherwise this method encodes the error in @message as a #GError
+ * using g_dbus_error_set_dbus_error() using the information in the
+ * %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field of @message as
+ * well as the first string item in @message's body.
*
- * Returns: %TRUE on success, %FALSE otherwise
- * Since: 2.48
+ * Returns: %TRUE if @error was set, %FALSE otherwise.
+ * Since: 2.26
*/
/**
- * g_dtls_connection_close_async:
- * @conn: a #GDtlsConnection
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: callback to call when the close operation is complete
- * @user_data: the data to pass to the callback function
+ * g_dbus_method_info_ref:
+ * @info: A #GDBusMethodInfo
*
- * Asynchronously close the DTLS connection. See g_dtls_connection_close() for
- * more information.
+ * If @info is statically allocated does nothing. Otherwise increases
+ * the reference count.
*
- * Since: 2.48
+ * Returns: The same @info.
+ * Since: 2.26
*/
/**
- * g_dtls_connection_close_finish:
- * @conn: a #GDtlsConnection
- * @result: a #GAsyncResult
- * @error: a #GError pointer, or %NULL
+ * g_dbus_method_info_unref:
+ * @info: A #GDBusMethodInfo.
*
- * Finish an asynchronous TLS close operation. See g_dtls_connection_close()
- * for more information.
+ * If @info is statically allocated, does nothing. Otherwise decreases
+ * the reference count of @info. When its reference count drops to 0,
+ * the memory used is freed.
*
- * Returns: %TRUE on success, %FALSE on failure, in which
- * case @error will be set
- * Since: 2.48
+ * Since: 2.26
*/
/**
- * g_dtls_connection_emit_accept_certificate:
- * @conn: a #GDtlsConnection
- * @peer_cert: the peer's #GTlsCertificate
- * @errors: the problems with @peer_cert
+ * g_dbus_method_invocation_get_connection:
+ * @invocation: A #GDBusMethodInvocation.
*
- * Used by #GDtlsConnection implementations to emit the
- * #GDtlsConnection::accept-certificate signal.
+ * Gets the #GDBusConnection the method was invoked on.
*
- * Returns: %TRUE if one of the signal handlers has returned
- * %TRUE to accept @peer_cert
- * Since: 2.48
+ * Returns: (transfer none): A #GDBusConnection. Do not free, it is owned by @invocation.
+ * Since: 2.26
*/
/**
- * g_dtls_connection_get_certificate:
- * @conn: a #GDtlsConnection
+ * g_dbus_method_invocation_get_interface_name:
+ * @invocation: A #GDBusMethodInvocation.
*
- * Gets @conn's certificate, as set by
- * g_dtls_connection_set_certificate().
+ * Gets the name of the D-Bus interface the method was invoked on.
*
- * Returns: (transfer none): @conn's certificate, or %NULL
- * Since: 2.48
+ * If this method call is a property Get, Set or GetAll call that has
+ * been redirected to the method call handler then
+ * "org.freedesktop.DBus.Properties" will be returned. See
+ * #GDBusInterfaceVTable for more information.
+ *
+ * Returns: A string. Do not free, it is owned by @invocation.
+ * Since: 2.26
*/
/**
- * g_dtls_connection_get_database:
- * @conn: a #GDtlsConnection
+ * g_dbus_method_invocation_get_message:
+ * @invocation: A #GDBusMethodInvocation.
*
- * Gets the certificate database that @conn uses to verify
- * peer certificates. See g_dtls_connection_set_database().
+ * Gets the #GDBusMessage for the method invocation. This is useful if
+ * you need to use low-level protocol features, such as UNIX file
+ * descriptor passing, that cannot be properly expressed in the
+ * #GVariant API.
*
- * Returns: (transfer none): the certificate database that @conn uses or %NULL
- * Since: 2.48
+ * See this [server][gdbus-server] and [client][gdbus-unix-fd-client]
+ * for an example of how to use this low-level API to send and receive
+ * UNIX file descriptors.
+ *
+ * Returns: (transfer none): #GDBusMessage. Do not free, it is owned by @invocation.
+ * Since: 2.26
*/
/**
- * g_dtls_connection_get_interaction:
- * @conn: a connection
+ * g_dbus_method_invocation_get_method_info:
+ * @invocation: A #GDBusMethodInvocation.
*
- * Get the object that will be used to interact with the user. It will be used
- * for things like prompting the user for passwords. If %NULL is returned, then
- * no user interaction will occur for this connection.
+ * Gets information about the method call, if any.
*
- * Returns: (transfer none): The interaction object.
- * Since: 2.48
+ * If this method invocation is a property Get, Set or GetAll call that
+ * has been redirected to the method call handler then %NULL will be
+ * returned. See g_dbus_method_invocation_get_property_info() and
+ * #GDBusInterfaceVTable for more information.
+ *
+ * Returns: A #GDBusMethodInfo or %NULL. Do not free, it is owned by @invocation.
+ * Since: 2.26
*/
/**
- * g_dtls_connection_get_peer_certificate:
- * @conn: a #GDtlsConnection
+ * g_dbus_method_invocation_get_method_name:
+ * @invocation: A #GDBusMethodInvocation.
*
- * Gets @conn's peer's certificate after the handshake has completed.
- * (It is not set during the emission of
- * #GDtlsConnection::accept-certificate.)
+ * Gets the name of the method that was invoked.
*
- * Returns: (transfer none): @conn's peer's certificate, or %NULL
- * Since: 2.48
+ * Returns: A string. Do not free, it is owned by @invocation.
+ * Since: 2.26
*/
/**
- * g_dtls_connection_get_peer_certificate_errors:
- * @conn: a #GDtlsConnection
+ * g_dbus_method_invocation_get_object_path:
+ * @invocation: A #GDBusMethodInvocation.
*
- * Gets the errors associated with validating @conn's peer's
- * certificate, after the handshake has completed. (It is not set
- * during the emission of #GDtlsConnection::accept-certificate.)
+ * Gets the object path the method was invoked on.
*
- * Returns: @conn's peer's certificate errors
- * Since: 2.48
+ * Returns: A string. Do not free, it is owned by @invocation.
+ * Since: 2.26
*/
/**
- * g_dtls_connection_get_rehandshake_mode:
- * @conn: a #GDtlsConnection
+ * g_dbus_method_invocation_get_parameters:
+ * @invocation: A #GDBusMethodInvocation.
*
- * Gets @conn rehandshaking mode. See
- * g_dtls_connection_set_rehandshake_mode() for details.
+ * Gets the parameters of the method invocation. If there are no input
+ * parameters then this will return a GVariant with 0 children rather than NULL.
*
- * Returns: @conn's rehandshaking mode
- * Since: 2.48
+ * Returns: (transfer none): A #GVariant tuple. Do not unref this because it is owned by @invocation.
+ * Since: 2.26
*/
/**
- * g_dtls_connection_get_require_close_notify:
- * @conn: a #GDtlsConnection
+ * g_dbus_method_invocation_get_property_info:
+ * @invocation: A #GDBusMethodInvocation
*
- * Tests whether or not @conn expects a proper TLS close notification
- * when the connection is closed. See
- * g_dtls_connection_set_require_close_notify() for details.
+ * Gets information about the property that this method call is for, if
+ * any.
*
- * Returns: %TRUE if @conn requires a proper TLS close notification.
- * Since: 2.48
+ * This will only be set in the case of an invocation in response to a
+ * property Get or Set call that has been directed to the method call
+ * handler for an object on account of its property_get() or
+ * property_set() vtable pointers being unset.
+ *
+ * See #GDBusInterfaceVTable for more information.
+ *
+ * If the call was GetAll, %NULL will be returned.
+ *
+ * Returns: (transfer none): a #GDBusPropertyInfo or %NULL
+ * Since: 2.38
*/
/**
- * g_dtls_connection_handshake:
- * @conn: a #GDtlsConnection
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a #GError, or %NULL
- *
- * Attempts a TLS handshake on @conn.
+ * g_dbus_method_invocation_get_sender:
+ * @invocation: A #GDBusMethodInvocation.
*
- * On the client side, it is never necessary to call this method;
- * although the connection needs to perform a handshake after
- * connecting (or after sending a "STARTTLS"-type command) and may
- * need to rehandshake later if the server requests it,
- * #GDtlsConnection will handle this for you automatically when you try
- * to send or receive data on the connection. However, you can call
- * g_dtls_connection_handshake() manually if you want to know for sure
- * whether the initial handshake succeeded or failed (as opposed to
- * just immediately trying to write to @conn, in which
- * case if it fails, it may not be possible to tell if it failed
- * before or after completing the handshake).
+ * Gets the bus name that invoked the method.
*
- * Likewise, on the server side, although a handshake is necessary at
- * the beginning of the communication, you do not need to call this
- * function explicitly unless you want clearer error reporting.
- * However, you may call g_dtls_connection_handshake() later on to
- * renegotiate parameters (encryption methods, etc) with the client.
+ * Returns: A string. Do not free, it is owned by @invocation.
+ * Since: 2.26
+ */
+
+
+/**
+ * g_dbus_method_invocation_get_user_data: (skip)
+ * @invocation: A #GDBusMethodInvocation.
*
- * #GDtlsConnection::accept_certificate may be emitted during the
- * handshake.
+ * Gets the @user_data #gpointer passed to g_dbus_connection_register_object().
*
- * Returns: success or failure
- * Since: 2.48
+ * Returns: A #gpointer.
+ * Since: 2.26
*/
/**
- * g_dtls_connection_handshake_async:
- * @conn: a #GDtlsConnection
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: callback to call when the handshake is complete
- * @user_data: the data to pass to the callback function
+ * g_dbus_method_invocation_return_dbus_error:
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @error_name: A valid D-Bus error name.
+ * @error_message: A valid D-Bus error message.
*
- * Asynchronously performs a TLS handshake on @conn. See
- * g_dtls_connection_handshake() for more information.
+ * Finishes handling a D-Bus method call by returning an error.
*
- * Since: 2.48
+ * This method will take ownership of @invocation. See
+ * #GDBusInterfaceVTable for more information about the ownership of
+ * @invocation.
+ *
+ * Since: 2.26
*/
/**
- * g_dtls_connection_handshake_finish:
- * @conn: a #GDtlsConnection
- * @result: a #GAsyncResult.
- * @error: a #GError pointer, or %NULL
+ * g_dbus_method_invocation_return_error:
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @domain: A #GQuark for the #GError error domain.
+ * @code: The error code.
+ * @format: printf()-style format.
+ * @...: Parameters for @format.
*
- * Finish an asynchronous TLS handshake operation. See
- * g_dtls_connection_handshake() for more information.
+ * Finishes handling a D-Bus method call by returning an error.
*
- * Returns: %TRUE on success, %FALSE on failure, in which
- * case @error will be set.
- * Since: 2.48
+ * See g_dbus_error_encode_gerror() for details about what error name
+ * will be returned on the wire. In a nutshell, if the given error is
+ * registered using g_dbus_error_register_error() the name given
+ * during registration is used. Otherwise, a name of the form
+ * `org.gtk.GDBus.UnmappedGError.Quark...` is used. This provides
+ * transparent mapping of #GError between applications using GDBus.
+ *
+ * If you are writing an application intended to be portable,
+ * always register errors with g_dbus_error_register_error()
+ * or use g_dbus_method_invocation_return_dbus_error().
+ *
+ * This method will take ownership of @invocation. See
+ * #GDBusInterfaceVTable for more information about the ownership of
+ * @invocation.
+ *
+ * Since 2.48, if the method call requested for a reply not to be sent
+ * then this call will free @invocation but otherwise do nothing (as per
+ * the recommendations of the D-Bus specification).
+ *
+ * Since: 2.26
*/
/**
- * g_dtls_connection_set_certificate:
- * @conn: a #GDtlsConnection
- * @certificate: the certificate to use for @conn
- *
- * This sets the certificate that @conn will present to its peer
- * during the TLS handshake. For a #GDtlsServerConnection, it is
- * mandatory to set this, and that will normally be done at construct
- * time.
+ * g_dbus_method_invocation_return_error_literal:
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @domain: A #GQuark for the #GError error domain.
+ * @code: The error code.
+ * @message: The error message.
*
- * For a #GDtlsClientConnection, this is optional. If a handshake fails
- * with %G_TLS_ERROR_CERTIFICATE_REQUIRED, that means that the server
- * requires a certificate, and if you try connecting again, you should
- * call this method first. You can call
- * g_dtls_client_connection_get_accepted_cas() on the failed connection
- * to get a list of Certificate Authorities that the server will
- * accept certificates from.
+ * Like g_dbus_method_invocation_return_error() but without printf()-style formatting.
*
- * (It is also possible that a server will allow the connection with
- * or without a certificate; in that case, if you don't provide a
- * certificate, you can tell that the server requested one by the fact
- * that g_dtls_client_connection_get_accepted_cas() will return
- * non-%NULL.)
+ * This method will take ownership of @invocation. See
+ * #GDBusInterfaceVTable for more information about the ownership of
+ * @invocation.
*
- * Since: 2.48
+ * Since: 2.26
*/
/**
- * g_dtls_connection_set_database:
- * @conn: a #GDtlsConnection
- * @database: a #GTlsDatabase
+ * g_dbus_method_invocation_return_error_valist:
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @domain: A #GQuark for the #GError error domain.
+ * @code: The error code.
+ * @format: printf()-style format.
+ * @var_args: #va_list of parameters for @format.
*
- * Sets the certificate database that is used to verify peer certificates.
- * This is set to the default database by default. See
- * g_tls_backend_get_default_database(). If set to %NULL, then
- * peer certificate validation will always set the
- * %G_TLS_CERTIFICATE_UNKNOWN_CA error (meaning
- * #GDtlsConnection::accept-certificate will always be emitted on
- * client-side connections, unless that bit is not set in
- * #GDtlsClientConnection:validation-flags).
+ * Like g_dbus_method_invocation_return_error() but intended for
+ * language bindings.
*
- * Since: 2.48
+ * This method will take ownership of @invocation. See
+ * #GDBusInterfaceVTable for more information about the ownership of
+ * @invocation.
+ *
+ * Since: 2.26
*/
/**
- * g_dtls_connection_set_interaction:
- * @conn: a connection
- * @interaction: (nullable): an interaction object, or %NULL
+ * g_dbus_method_invocation_return_gerror:
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @error: A #GError.
*
- * Set the object that will be used to interact with the user. It will be used
- * for things like prompting the user for passwords.
+ * Like g_dbus_method_invocation_return_error() but takes a #GError
+ * instead of the error domain, error code and message.
*
- * The @interaction argument will normally be a derived subclass of
- * #GTlsInteraction. %NULL can also be provided if no user interaction
- * should occur for this connection.
+ * This method will take ownership of @invocation. See
+ * #GDBusInterfaceVTable for more information about the ownership of
+ * @invocation.
*
- * Since: 2.48
+ * Since: 2.26
*/
/**
- * g_dtls_connection_set_rehandshake_mode:
- * @conn: a #GDtlsConnection
- * @mode: the rehandshaking mode
+ * g_dbus_method_invocation_return_value:
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @parameters: (nullable): A #GVariant tuple with out parameters for the method or %NULL if not passing any parameters.
*
- * Sets how @conn behaves with respect to rehandshaking requests.
+ * Finishes handling a D-Bus method call by returning @parameters.
+ * If the @parameters GVariant is floating, it is consumed.
*
- * %G_TLS_REHANDSHAKE_NEVER means that it will never agree to
- * rehandshake after the initial handshake is complete. (For a client,
- * this means it will refuse rehandshake requests from the server, and
- * for a server, this means it will close the connection with an error
- * if the client attempts to rehandshake.)
+ * It is an error if @parameters is not of the right format: it must be a tuple
+ * containing the out-parameters of the D-Bus method. Even if the method has a
+ * single out-parameter, it must be contained in a tuple. If the method has no
+ * out-parameters, @parameters may be %NULL or an empty tuple.
*
- * %G_TLS_REHANDSHAKE_SAFELY means that the connection will allow a
- * rehandshake only if the other end of the connection supports the
- * TLS `renegotiation_info` extension. This is the default behavior,
- * but means that rehandshaking will not work against older
- * implementations that do not support that extension.
+ * |[<!-- language="C" -->
+ * GDBusMethodInvocation *invocation = some_invocation;
+ * g_autofree gchar *result_string = NULL;
+ * g_autoptr (GError) error = NULL;
*
- * %G_TLS_REHANDSHAKE_UNSAFELY means that the connection will allow
- * rehandshaking even without the `renegotiation_info` extension. On
- * the server side in particular, this is not recommended, since it
- * leaves the server open to certain attacks. However, this mode is
- * necessary if you need to allow renegotiation with older client
- * software.
+ * result_string = calculate_result (&error);
*
- * Since: 2.48
- */
-
-
-/**
- * g_dtls_connection_set_require_close_notify:
- * @conn: a #GDtlsConnection
- * @require_close_notify: whether or not to require close notification
+ * if (error != NULL)
+ * g_dbus_method_invocation_return_gerror (invocation, error);
+ * else
+ * g_dbus_method_invocation_return_value (invocation,
+ * g_variant_new ("(s)", result_string));
*
- * Sets whether or not @conn expects a proper TLS close notification
- * before the connection is closed. If this is %TRUE (the default),
- * then @conn will expect to receive a TLS close notification from its
- * peer before the connection is closed, and will return a
- * %G_TLS_ERROR_EOF error if the connection is closed without proper
- * notification (since this may indicate a network error, or
- * man-in-the-middle attack).
+ * // Do not free @invocation here; returning a value does that
+ * ]|
*
- * In some protocols, the application will know whether or not the
- * connection was closed cleanly based on application-level data
- * (because the application-level data includes a length field, or is
- * somehow self-delimiting); in this case, the close notify is
- * redundant and may be omitted. You
- * can use g_dtls_connection_set_require_close_notify() to tell @conn
- * to allow an "unannounced" connection close, in which case the close
- * will show up as a 0-length read, as in a non-TLS
- * #GDatagramBased, and it is up to the application to check that
- * the data has been fully received.
+ * This method will take ownership of @invocation. See
+ * #GDBusInterfaceVTable for more information about the ownership of
+ * @invocation.
*
- * Note that this only affects the behavior when the peer closes the
- * connection; when the application calls g_dtls_connection_close_async() on
- * @conn itself, this will send a close notification regardless of the
- * setting of this property. If you explicitly want to do an unclean
- * close, you can close @conn's #GDtlsConnection:base-socket rather
- * than closing @conn itself.
+ * Since 2.48, if the method call requested for a reply not to be sent
+ * then this call will sink @parameters and free @invocation, but
+ * otherwise do nothing (as per the recommendations of the D-Bus
+ * specification).
*
- * Since: 2.48
+ * Since: 2.26
*/
/**
- * g_dtls_connection_shutdown:
- * @conn: a #GDtlsConnection
- * @shutdown_read: %TRUE to stop reception of incoming datagrams
- * @shutdown_write: %TRUE to stop sending outgoing datagrams
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a #GError, or %NULL
- *
- * Shut down part or all of a DTLS connection.
- *
- * If @shutdown_read is %TRUE then the receiving side of the connection is shut
- * down, and further reading is disallowed. Subsequent calls to
- * g_datagram_based_receive_messages() will return %G_IO_ERROR_CLOSED.
+ * g_dbus_method_invocation_return_value_with_unix_fd_list:
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @parameters: (nullable): A #GVariant tuple with out parameters for the method or %NULL if not passing any parameters.
+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
*
- * If @shutdown_write is %TRUE then the sending side of the connection is shut
- * down, and further writing is disallowed. Subsequent calls to
- * g_datagram_based_send_messages() will return %G_IO_ERROR_CLOSED.
+ * Like g_dbus_method_invocation_return_value() but also takes a #GUnixFDList.
*
- * It is allowed for both @shutdown_read and @shutdown_write to be TRUE — this
- * is equivalent to calling g_dtls_connection_close().
+ * This method is only available on UNIX.
*
- * If @cancellable is cancelled, the #GDtlsConnection may be left
- * partially-closed and any pending untransmitted data may be lost. Call
- * g_dtls_connection_shutdown() again to complete closing the #GDtlsConnection.
+ * This method will take ownership of @invocation. See
+ * #GDBusInterfaceVTable for more information about the ownership of
+ * @invocation.
*
- * Returns: %TRUE on success, %FALSE otherwise
- * Since: 2.48
+ * Since: 2.30
*/
/**
- * g_dtls_connection_shutdown_async:
- * @conn: a #GDtlsConnection
- * @shutdown_read: %TRUE to stop reception of incoming datagrams
- * @shutdown_write: %TRUE to stop sending outgoing datagrams
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: callback to call when the shutdown operation is complete
- * @user_data: the data to pass to the callback function
+ * g_dbus_method_invocation_take_error: (skip)
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @error: (transfer full): A #GError.
*
- * Asynchronously shut down part or all of the DTLS connection. See
- * g_dtls_connection_shutdown() for more information.
+ * Like g_dbus_method_invocation_return_gerror() but takes ownership
+ * of @error so the caller does not need to free it.
*
- * Since: 2.48
+ * This method will take ownership of @invocation. See
+ * #GDBusInterfaceVTable for more information about the ownership of
+ * @invocation.
+ *
+ * Since: 2.30
*/
/**
- * g_dtls_connection_shutdown_finish:
- * @conn: a #GDtlsConnection
- * @result: a #GAsyncResult
- * @error: a #GError pointer, or %NULL
+ * g_dbus_node_info_generate_xml:
+ * @info: A #GDBusNodeInfo.
+ * @indent: Indentation level.
+ * @string_builder: A #GString to to append XML data to.
*
- * Finish an asynchronous TLS shutdown operation. See
- * g_dtls_connection_shutdown() for more information.
+ * Appends an XML representation of @info (and its children) to @string_builder.
*
- * Returns: %TRUE on success, %FALSE on failure, in which
- * case @error will be set
- * Since: 2.48
+ * This function is typically used for generating introspection XML documents at run-time for
+ * handling the `org.freedesktop.DBus.Introspectable.Introspect` method.
+ *
+ * Since: 2.26
*/
/**
- * g_dtls_server_connection_new:
- * @base_socket: the #GDatagramBased to wrap
- * @certificate: (nullable): the default server certificate, or %NULL
- * @error: #GError for error reporting, or %NULL to ignore
+ * g_dbus_node_info_lookup_interface:
+ * @info: A #GDBusNodeInfo.
+ * @name: A D-Bus interface name.
*
- * Creates a new #GDtlsServerConnection wrapping @base_socket.
+ * Looks up information about an interface.
*
- * Returns: (transfer full) (type GDtlsServerConnection): the new
- * #GDtlsServerConnection, or %NULL on error
- * Since: 2.48
+ * The cost of this function is O(n) in number of interfaces.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo or %NULL if not found. Do not free, it is owned by @info.
+ * Since: 2.26
*/
/**
- * g_emblem_get_icon:
- * @emblem: a #GEmblem from which the icon should be extracted.
+ * g_dbus_node_info_new_for_xml:
+ * @xml_data: Valid D-Bus introspection XML.
+ * @error: Return location for error.
*
- * Gives back the icon from @emblem.
+ * Parses @xml_data and returns a #GDBusNodeInfo representing the data.
*
- * Returns: (transfer none): a #GIcon. The returned object belongs to
- * the emblem and should not be modified or freed.
- * Since: 2.18
+ * The introspection XML must contain exactly one top-level
+ * <node> element.
+ *
+ * Note that this routine is using a
+ * [GMarkup][glib-Simple-XML-Subset-Parser.description]-based
+ * parser that only accepts a subset of valid XML documents.
+ *
+ * Returns: A #GDBusNodeInfo structure or %NULL if @error is set. Free
+ * with g_dbus_node_info_unref().
+ * Since: 2.26
*/
/**
- * g_emblem_get_origin:
- * @emblem: a #GEmblem
+ * g_dbus_node_info_ref:
+ * @info: A #GDBusNodeInfo
*
- * Gets the origin of the emblem.
+ * If @info is statically allocated does nothing. Otherwise increases
+ * the reference count.
*
- * Returns: (transfer none): the origin of the emblem
- * Since: 2.18
+ * Returns: The same @info.
+ * Since: 2.26
*/
/**
- * g_emblem_new:
- * @icon: a GIcon containing the icon.
+ * g_dbus_node_info_unref:
+ * @info: A #GDBusNodeInfo.
*
- * Creates a new emblem for @icon.
+ * If @info is statically allocated, does nothing. Otherwise decreases
+ * the reference count of @info. When its reference count drops to 0,
+ * the memory used is freed.
*
- * Returns: a new #GEmblem.
- * Since: 2.18
+ * Since: 2.26
*/
/**
- * g_emblem_new_with_origin:
- * @icon: a GIcon containing the icon.
- * @origin: a GEmblemOrigin enum defining the emblem's origin
+ * g_dbus_object_get_interface:
+ * @object: A #GDBusObject.
+ * @interface_name: A D-Bus interface name.
*
- * Creates a new emblem for @icon.
+ * Gets the D-Bus interface with name @interface_name associated with
+ * @object, if any.
*
- * Returns: a new #GEmblem.
- * Since: 2.18
+ * Returns: (transfer full): %NULL if not found, otherwise a
+ * #GDBusInterface that must be freed with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_emblemed_icon_add_emblem:
- * @emblemed: a #GEmblemedIcon
- * @emblem: a #GEmblem
+ * g_dbus_object_get_interfaces:
+ * @object: A #GDBusObject.
*
- * Adds @emblem to the #GList of #GEmblems.
+ * Gets the D-Bus interfaces associated with @object.
*
- * Since: 2.18
+ * Returns: (element-type GDBusInterface) (transfer full): A list of #GDBusInterface instances.
+ * The returned list must be freed by g_list_free() after each element has been freed
+ * with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_emblemed_icon_clear_emblems:
- * @emblemed: a #GEmblemedIcon
+ * g_dbus_object_get_object_path:
+ * @object: A #GDBusObject.
*
- * Removes all the emblems from @icon.
+ * Gets the object path for @object.
*
- * Since: 2.28
+ * Returns: A string owned by @object. Do not free.
+ * Since: 2.30
*/
/**
- * g_emblemed_icon_get_emblems:
- * @emblemed: a #GEmblemedIcon
+ * g_dbus_object_manager_client_get_connection:
+ * @manager: A #GDBusObjectManagerClient
*
- * Gets the list of emblems for the @icon.
+ * Gets the #GDBusConnection used by @manager.
*
- * Returns: (element-type Gio.Emblem) (transfer none): a #GList of
- * #GEmblems that is owned by @emblemed
- * Since: 2.18
+ * Returns: (transfer none): A #GDBusConnection object. Do not free,
+ * the object belongs to @manager.
+ * Since: 2.30
*/
/**
- * g_emblemed_icon_get_icon:
- * @emblemed: a #GEmblemedIcon
+ * g_dbus_object_manager_client_get_flags:
+ * @manager: A #GDBusObjectManagerClient
*
- * Gets the main icon for @emblemed.
+ * Gets the flags that @manager was constructed with.
*
- * Returns: (transfer none): a #GIcon that is owned by @emblemed
- * Since: 2.18
+ * Returns: Zero of more flags from the #GDBusObjectManagerClientFlags
+ * enumeration.
+ * Since: 2.30
*/
/**
- * g_emblemed_icon_new:
- * @icon: a #GIcon
- * @emblem: (nullable): a #GEmblem, or %NULL
+ * g_dbus_object_manager_client_get_name:
+ * @manager: A #GDBusObjectManagerClient
*
- * Creates a new emblemed icon for @icon with the emblem @emblem.
+ * Gets the name that @manager is for, or %NULL if not a message bus
+ * connection.
*
- * Returns: (transfer full) (type GEmblemedIcon): a new #GIcon
- * Since: 2.18
+ * Returns: A unique or well-known name. Do not free, the string
+ * belongs to @manager.
+ * Since: 2.30
*/
/**
- * g_file_append_to:
- * @file: input #GFile
- * @flags: a set of #GFileCreateFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Gets an output stream for appending data to the file.
- * If the file doesn't already exist it is created.
- *
- * By default files created are generally readable by everyone,
- * but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- * will be made readable only to the current user, to the level that
- * is supported on the target filesystem.
- *
- * If @cancellable is not %NULL, then the operation can be cancelled
- * by triggering the cancellable object from another thread. If the
- * operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- * returned.
+ * g_dbus_object_manager_client_get_name_owner:
+ * @manager: A #GDBusObjectManagerClient.
*
- * Some file systems don't allow all file names, and may return an
- * %G_IO_ERROR_INVALID_FILENAME error. If the file is a directory the
- * %G_IO_ERROR_IS_DIRECTORY error will be returned. Other errors are
- * possible too, and depend on what kind of filesystem the file is on.
+ * The unique name that owns the name that @manager is for or %NULL if
+ * no-one currently owns that name. You can connect to the
+ * #GObject::notify signal to track changes to the
+ * #GDBusObjectManagerClient:name-owner property.
*
- * Returns: (transfer full): a #GFileOutputStream, or %NULL on error.
- * Free the returned object with g_object_unref().
+ * Returns: (nullable): The name owner or %NULL if no name owner
+ * exists. Free with g_free().
+ * Since: 2.30
*/
/**
- * g_file_append_to_async:
- * @file: input #GFile
- * @flags: a set of #GFileCreateFlags
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_dbus_object_manager_client_new:
+ * @connection: A #GDBusConnection.
+ * @flags: Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
+ * @name: The owner of the control object (unique or well-known name).
+ * @object_path: The object path of the control object.
+ * @get_proxy_type_func: (nullable): A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
+ * @get_proxy_type_user_data: User data to pass to @get_proxy_type_func.
+ * @get_proxy_type_destroy_notify: (nullable): Free function for @get_proxy_type_user_data or %NULL.
+ * @cancellable: (nullable): A #GCancellable or %NULL
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: The data to pass to @callback.
*
- * Asynchronously opens @file for appending.
+ * Asynchronously creates a new #GDBusObjectManagerClient object.
*
- * For more details, see g_file_append_to() which is
- * the synchronous version of this call.
+ * This is an asynchronous failable constructor. When the result is
+ * ready, @callback will be invoked in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread you are calling this method from. You can
+ * then call g_dbus_object_manager_client_new_finish() to get the result. See
+ * g_dbus_object_manager_client_new_sync() for the synchronous version.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_append_to_finish() to get the result
- * of the operation.
+ * Since: 2.30
*/
/**
- * g_file_append_to_finish:
- * @file: input #GFile
- * @res: #GAsyncResult
- * @error: a #GError, or %NULL
+ * g_dbus_object_manager_client_new_finish:
+ * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_object_manager_client_new().
+ * @error: Return location for error or %NULL.
*
- * Finishes an asynchronous file append operation started with
- * g_file_append_to_async().
+ * Finishes an operation started with g_dbus_object_manager_client_new().
*
- * Returns: (transfer full): a valid #GFileOutputStream
- * or %NULL on error.
- * Free the returned object with g_object_unref().
+ * Returns: (transfer full) (type GDBusObjectManagerClient): A
+ * #GDBusObjectManagerClient object or %NULL if @error is set. Free
+ * with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_file_attribute_info_list_add:
- * @list: a #GFileAttributeInfoList.
- * @name: the name of the attribute to add.
- * @type: the #GFileAttributeType for the attribute.
- * @flags: #GFileAttributeInfoFlags for the attribute.
+ * g_dbus_object_manager_client_new_for_bus:
+ * @bus_type: A #GBusType.
+ * @flags: Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
+ * @name: The owner of the control object (unique or well-known name).
+ * @object_path: The object path of the control object.
+ * @get_proxy_type_func: (nullable): A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
+ * @get_proxy_type_user_data: User data to pass to @get_proxy_type_func.
+ * @get_proxy_type_destroy_notify: (nullable): Free function for @get_proxy_type_user_data or %NULL.
+ * @cancellable: (nullable): A #GCancellable or %NULL
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: The data to pass to @callback.
*
- * Adds a new attribute with @name to the @list, setting
- * its @type and @flags.
- */
-
-
-/**
- * g_file_attribute_info_list_dup:
- * @list: a #GFileAttributeInfoList to duplicate.
+ * Like g_dbus_object_manager_client_new() but takes a #GBusType instead of a
+ * #GDBusConnection.
*
- * Makes a duplicate of a file attribute info list.
+ * This is an asynchronous failable constructor. When the result is
+ * ready, @callback will be invoked in the
+ * [thread-default main loop][g-main-context-push-thread-default]
+ * of the thread you are calling this method from. You can
+ * then call g_dbus_object_manager_client_new_for_bus_finish() to get the result. See
+ * g_dbus_object_manager_client_new_for_bus_sync() for the synchronous version.
*
- * Returns: a copy of the given @list.
+ * Since: 2.30
*/
/**
- * g_file_attribute_info_list_lookup:
- * @list: a #GFileAttributeInfoList.
- * @name: the name of the attribute to lookup.
+ * g_dbus_object_manager_client_new_for_bus_finish:
+ * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_object_manager_client_new_for_bus().
+ * @error: Return location for error or %NULL.
*
- * Gets the file attribute with the name @name from @list.
+ * Finishes an operation started with g_dbus_object_manager_client_new_for_bus().
*
- * Returns: a #GFileAttributeInfo for the @name, or %NULL if an
- * attribute isn't found.
+ * Returns: (transfer full) (type GDBusObjectManagerClient): A
+ * #GDBusObjectManagerClient object or %NULL if @error is set. Free
+ * with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_file_attribute_info_list_new:
+ * g_dbus_object_manager_client_new_for_bus_sync:
+ * @bus_type: A #GBusType.
+ * @flags: Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
+ * @name: The owner of the control object (unique or well-known name).
+ * @object_path: The object path of the control object.
+ * @get_proxy_type_func: (nullable): A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
+ * @get_proxy_type_user_data: User data to pass to @get_proxy_type_func.
+ * @get_proxy_type_destroy_notify: (nullable): Free function for @get_proxy_type_user_data or %NULL.
+ * @cancellable: (nullable): A #GCancellable or %NULL
+ * @error: Return location for error or %NULL.
*
- * Creates a new file attribute info list.
+ * Like g_dbus_object_manager_client_new_sync() but takes a #GBusType instead
+ * of a #GDBusConnection.
*
- * Returns: a #GFileAttributeInfoList.
+ * This is a synchronous failable constructor - the calling thread is
+ * blocked until a reply is received. See g_dbus_object_manager_client_new_for_bus()
+ * for the asynchronous version.
+ *
+ * Returns: (transfer full) (type GDBusObjectManagerClient): A
+ * #GDBusObjectManagerClient object or %NULL if @error is set. Free
+ * with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_file_attribute_info_list_ref:
- * @list: a #GFileAttributeInfoList to reference.
+ * g_dbus_object_manager_client_new_sync:
+ * @connection: A #GDBusConnection.
+ * @flags: Zero or more flags from the #GDBusObjectManagerClientFlags enumeration.
+ * @name: (nullable): The owner of the control object (unique or well-known name), or %NULL when not using a message bus connection.
+ * @object_path: The object path of the control object.
+ * @get_proxy_type_func: (nullable): A #GDBusProxyTypeFunc function or %NULL to always construct #GDBusProxy proxies.
+ * @get_proxy_type_user_data: User data to pass to @get_proxy_type_func.
+ * @get_proxy_type_destroy_notify: (nullable): Free function for @get_proxy_type_user_data or %NULL.
+ * @cancellable: (nullable): A #GCancellable or %NULL
+ * @error: Return location for error or %NULL.
*
- * References a file attribute info list.
+ * Creates a new #GDBusObjectManagerClient object.
*
- * Returns: #GFileAttributeInfoList or %NULL on error.
- */
-
-
-/**
- * g_file_attribute_info_list_unref:
- * @list: The #GFileAttributeInfoList to unreference.
+ * This is a synchronous failable constructor - the calling thread is
+ * blocked until a reply is received. See g_dbus_object_manager_client_new()
+ * for the asynchronous version.
*
- * Removes a reference from the given @list. If the reference count
- * falls to zero, the @list is deleted.
+ * Returns: (transfer full) (type GDBusObjectManagerClient): A
+ * #GDBusObjectManagerClient object or %NULL if @error is set. Free
+ * with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_file_attribute_matcher_enumerate_namespace:
- * @matcher: a #GFileAttributeMatcher.
- * @ns: a string containing a file attribute namespace.
- *
- * Checks if the matcher will match all of the keys in a given namespace.
- * This will always return %TRUE if a wildcard character is in use (e.g. if
- * matcher was created with "standard::*" and @ns is "standard", or if matcher was created
- * using "*" and namespace is anything.)
+ * g_dbus_object_manager_get_interface:
+ * @manager: A #GDBusObjectManager.
+ * @object_path: Object path to lookup.
+ * @interface_name: D-Bus interface name to lookup.
*
- * TODO: this is awkwardly worded.
+ * Gets the interface proxy for @interface_name at @object_path, if
+ * any.
*
- * Returns: %TRUE if the matcher matches all of the entries
- * in the given @ns, %FALSE otherwise.
+ * Returns: (transfer full): A #GDBusInterface instance or %NULL. Free
+ * with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_file_attribute_matcher_enumerate_next:
- * @matcher: a #GFileAttributeMatcher.
+ * g_dbus_object_manager_get_object:
+ * @manager: A #GDBusObjectManager.
+ * @object_path: Object path to lookup.
*
- * Gets the next matched attribute from a #GFileAttributeMatcher.
+ * Gets the #GDBusObjectProxy at @object_path, if any.
*
- * Returns: a string containing the next attribute or %NULL if
- * no more attribute exist.
+ * Returns: (transfer full): A #GDBusObject or %NULL. Free with
+ * g_object_unref().
+ * Since: 2.30
*/
/**
- * g_file_attribute_matcher_matches:
- * @matcher: a #GFileAttributeMatcher.
- * @attribute: a file attribute key.
+ * g_dbus_object_manager_get_object_path:
+ * @manager: A #GDBusObjectManager.
*
- * Checks if an attribute will be matched by an attribute matcher. If
- * the matcher was created with the "*" matching string, this function
- * will always return %TRUE.
+ * Gets the object path that @manager is for.
*
- * Returns: %TRUE if @attribute matches @matcher. %FALSE otherwise.
+ * Returns: A string owned by @manager. Do not free.
+ * Since: 2.30
*/
/**
- * g_file_attribute_matcher_matches_only:
- * @matcher: a #GFileAttributeMatcher.
- * @attribute: a file attribute key.
+ * g_dbus_object_manager_get_objects:
+ * @manager: A #GDBusObjectManager.
*
- * Checks if a attribute matcher only matches a given attribute. Always
- * returns %FALSE if "*" was used when creating the matcher.
+ * Gets all #GDBusObject objects known to @manager.
*
- * Returns: %TRUE if the matcher only matches @attribute. %FALSE otherwise.
+ * Returns: (transfer full) (element-type GDBusObject): A list of
+ * #GDBusObject objects. The returned list should be freed with
+ * g_list_free() after each element has been freed with
+ * g_object_unref().
+ * Since: 2.30
*/
/**
- * g_file_attribute_matcher_new:
- * @attributes: an attribute string to match.
+ * g_dbus_object_manager_server_export:
+ * @manager: A #GDBusObjectManagerServer.
+ * @object: A #GDBusObjectSkeleton.
*
- * Creates a new file attribute matcher, which matches attributes
- * against a given string. #GFileAttributeMatchers are reference
- * counted structures, and are created with a reference count of 1. If
- * the number of references falls to 0, the #GFileAttributeMatcher is
- * automatically destroyed.
+ * Exports @object on @manager.
*
- * The @attribute string should be formatted with specific keys separated
- * from namespaces with a double colon. Several "namespace::key" strings may be
- * concatenated with a single comma (e.g. "standard::type,standard::is-hidden").
- * The wildcard "*" may be used to match all keys and namespaces, or
- * "namespace::*" will match all keys in a given namespace.
+ * If there is already a #GDBusObject exported at the object path,
+ * then the old object is removed.
*
- * ## Examples of file attribute matcher strings and results
+ * The object path for @object must be in the hierarchy rooted by the
+ * object path for @manager.
*
- * - `"*"`: matches all attributes.
- * - `"standard::is-hidden"`: matches only the key is-hidden in the
- * standard namespace.
- * - `"standard::type,unix::*"`: matches the type key in the standard
- * namespace and all keys in the unix namespace.
+ * Note that @manager will take a reference on @object for as long as
+ * it is exported.
*
- * Returns: a #GFileAttributeMatcher
+ * Since: 2.30
*/
/**
- * g_file_attribute_matcher_ref:
- * @matcher: a #GFileAttributeMatcher.
+ * g_dbus_object_manager_server_export_uniquely:
+ * @manager: A #GDBusObjectManagerServer.
+ * @object: An object.
*
- * References a file attribute matcher.
+ * Like g_dbus_object_manager_server_export() but appends a string of
+ * the form _N (with N being a natural number) to @object's object path
+ * if an object with the given path already exists. As such, the
+ * #GDBusObjectProxy:g-object-path property of @object may be modified.
*
- * Returns: a #GFileAttributeMatcher.
+ * Since: 2.30
*/
/**
- * g_file_attribute_matcher_subtract:
- * @matcher: Matcher to subtract from
- * @subtract: The matcher to subtract
- *
- * Subtracts all attributes of @subtract from @matcher and returns
- * a matcher that supports those attributes.
+ * g_dbus_object_manager_server_get_connection:
+ * @manager: A #GDBusObjectManagerServer
*
- * Note that currently it is not possible to remove a single
- * attribute when the @matcher matches the whole namespace - or remove
- * a namespace or attribute when the matcher matches everything. This
- * is a limitation of the current implementation, but may be fixed
- * in the future.
+ * Gets the #GDBusConnection used by @manager.
*
- * Returns: A file attribute matcher matching all attributes of
- * @matcher that are not matched by @subtract
+ * Returns: (transfer full): A #GDBusConnection object or %NULL if
+ * @manager isn't exported on a connection. The returned object should
+ * be freed with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_file_attribute_matcher_to_string:
- * @matcher: (nullable): a #GFileAttributeMatcher.
+ * g_dbus_object_manager_server_is_exported:
+ * @manager: A #GDBusObjectManagerServer.
+ * @object: An object.
*
- * Prints what the matcher is matching against. The format will be
- * equal to the format passed to g_file_attribute_matcher_new().
- * The output however, might not be identical, as the matcher may
- * decide to use a different order or omit needless parts.
+ * Returns whether @object is currently exported on @manager.
*
- * Returns: a string describing the attributes the matcher matches
- * against or %NULL if @matcher was %NULL.
- * Since: 2.32
+ * Returns: %TRUE if @object is exported
+ * Since: 2.34
*/
/**
- * g_file_attribute_matcher_unref:
- * @matcher: a #GFileAttributeMatcher.
+ * g_dbus_object_manager_server_new:
+ * @object_path: The object path to export the manager object at.
*
- * Unreferences @matcher. If the reference count falls below 1,
- * the @matcher is automatically freed.
- */
-
-
-/**
- * g_file_attribute_value_dup:
- * @other: a #GFileAttributeValue to duplicate.
+ * Creates a new #GDBusObjectManagerServer object.
*
- * Duplicates a file attribute.
+ * The returned server isn't yet exported on any connection. To do so,
+ * use g_dbus_object_manager_server_set_connection(). Normally you
+ * want to export all of your objects before doing so to avoid
+ * [InterfacesAdded](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager)
+ * signals being emitted.
*
- * Returns: a duplicate of the @other.
+ * Returns: A #GDBusObjectManagerServer object. Free with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_file_attribute_value_set:
- * @attr: a #GFileAttributeValue to set the value in.
- * @new_value: a #GFileAttributeValue to get the value from.
+ * g_dbus_object_manager_server_set_connection:
+ * @manager: A #GDBusObjectManagerServer.
+ * @connection: (nullable): A #GDBusConnection or %NULL.
*
- * Sets an attribute's value from another attribute.
+ * Exports all objects managed by @manager on @connection. If
+ * @connection is %NULL, stops exporting objects.
*/
/**
- * g_file_copy:
- * @source: input #GFile
- * @destination: destination #GFile
- * @flags: set of #GFileCopyFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @progress_callback: (nullable) (scope call): function to callback with
- * progress information, or %NULL if progress information is not needed
- * @progress_callback_data: (closure): user data to pass to @progress_callback
- * @error: #GError to set on error, or %NULL
- *
- * Copies the file @source to the location specified by @destination.
- * Can not handle recursive copies of directories.
+ * g_dbus_object_manager_server_unexport:
+ * @manager: A #GDBusObjectManagerServer.
+ * @object_path: An object path.
*
- * If the flag #G_FILE_COPY_OVERWRITE is specified an already
- * existing @destination file is overwritten.
+ * If @manager has an object at @path, removes the object. Otherwise
+ * does nothing.
*
- * If the flag #G_FILE_COPY_NOFOLLOW_SYMLINKS is specified then symlinks
- * will be copied as symlinks, otherwise the target of the
- * @source symlink will be copied.
+ * Note that @object_path must be in the hierarchy rooted by the
+ * object path for @manager.
*
- * If the flag #G_FILE_COPY_ALL_METADATA is specified then all the metadata
- * that is possible to copy is copied, not just the default subset (which,
- * for instance, does not include the owner, see #GFileInfo).
+ * Returns: %TRUE if object at @object_path was removed, %FALSE otherwise.
+ * Since: 2.30
+ */
+
+
+/**
+ * g_dbus_object_proxy_get_connection:
+ * @proxy: a #GDBusObjectProxy
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Gets the connection that @proxy is for.
*
- * If @progress_callback is not %NULL, then the operation can be monitored
- * by setting this to a #GFileProgressCallback function.
- * @progress_callback_data will be passed to this function. It is guaranteed
- * that this callback will be called after all data has been transferred with
- * the total number of bytes copied during the operation.
+ * Returns: (transfer none): A #GDBusConnection. Do not free, the
+ * object is owned by @proxy.
+ * Since: 2.30
+ */
+
+
+/**
+ * g_dbus_object_proxy_new:
+ * @connection: a #GDBusConnection
+ * @object_path: the object path
*
- * If the @source file does not exist, then the %G_IO_ERROR_NOT_FOUND error
- * is returned, independent on the status of the @destination.
+ * Creates a new #GDBusObjectProxy for the given connection and
+ * object path.
*
- * If #G_FILE_COPY_OVERWRITE is not specified and the target exists, then
- * the error %G_IO_ERROR_EXISTS is returned.
+ * Returns: a new #GDBusObjectProxy
+ * Since: 2.30
+ */
+
+
+/**
+ * g_dbus_object_skeleton_add_interface:
+ * @object: A #GDBusObjectSkeleton.
+ * @interface_: A #GDBusInterfaceSkeleton.
*
- * If trying to overwrite a file over a directory, the %G_IO_ERROR_IS_DIRECTORY
- * error is returned. If trying to overwrite a directory with a directory the
- * %G_IO_ERROR_WOULD_MERGE error is returned.
+ * Adds @interface_ to @object.
*
- * If the source is a directory and the target does not exist, or
- * #G_FILE_COPY_OVERWRITE is specified and the target is a file, then the
- * %G_IO_ERROR_WOULD_RECURSE error is returned.
+ * If @object already contains a #GDBusInterfaceSkeleton with the same
+ * interface name, it is removed before @interface_ is added.
*
- * If you are interested in copying the #GFile object itself (not the on-disk
- * file), see g_file_dup().
+ * Note that @object takes its own reference on @interface_ and holds
+ * it until removed.
*
- * Returns: %TRUE on success, %FALSE otherwise.
+ * Since: 2.30
*/
/**
- * g_file_copy_async:
- * @source: input #GFile
- * @destination: destination #GFile
- * @flags: set of #GFileCopyFlags
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @progress_callback: (nullable) (scope notified): function to callback with progress
- * information, or %NULL if progress information is not needed
- * @progress_callback_data: (closure progress_callback) (nullable): user data to pass to @progress_callback
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure callback): the data to pass to callback function
- *
- * Copies the file @source to the location specified by @destination
- * asynchronously. For details of the behaviour, see g_file_copy().
+ * g_dbus_object_skeleton_flush:
+ * @object: A #GDBusObjectSkeleton.
*
- * If @progress_callback is not %NULL, then that function that will be called
- * just like in g_file_copy(). The callback will run in the default main context
- * of the thread calling g_file_copy_async() — the same context as @callback is
- * run in.
+ * This method simply calls g_dbus_interface_skeleton_flush() on all
+ * interfaces belonging to @object. See that method for when flushing
+ * is useful.
*
- * When the operation is finished, @callback will be called. You can then call
- * g_file_copy_finish() to get the result of the operation.
+ * Since: 2.30
*/
/**
- * g_file_copy_attributes:
- * @source: a #GFile with attributes
- * @destination: a #GFile to copy attributes to
- * @flags: a set of #GFileCopyFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, %NULL to ignore
- *
- * Copies the file attributes from @source to @destination.
+ * g_dbus_object_skeleton_new:
+ * @object_path: An object path.
*
- * Normally only a subset of the file attributes are copied,
- * those that are copies in a normal file copy operation
- * (which for instance does not include e.g. owner). However
- * if #G_FILE_COPY_ALL_METADATA is specified in @flags, then
- * all the metadata that is possible to copy is copied. This
- * is useful when implementing move by copy + delete source.
+ * Creates a new #GDBusObjectSkeleton.
*
- * Returns: %TRUE if the attributes were copied successfully,
- * %FALSE otherwise.
+ * Returns: A #GDBusObjectSkeleton. Free with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_file_copy_finish:
- * @file: input #GFile
- * @res: a #GAsyncResult
- * @error: a #GError, or %NULL
+ * g_dbus_object_skeleton_remove_interface:
+ * @object: A #GDBusObjectSkeleton.
+ * @interface_: A #GDBusInterfaceSkeleton.
*
- * Finishes copying the file started with g_file_copy_async().
+ * Removes @interface_ from @object.
*
- * Returns: a %TRUE on success, %FALSE on error.
+ * Since: 2.30
*/
/**
- * g_file_create:
- * @file: input #GFile
- * @flags: a set of #GFileCreateFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Creates a new file and returns an output stream for writing to it.
- * The file must not already exist.
- *
- * By default files created are generally readable by everyone,
- * but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- * will be made readable only to the current user, to the level
- * that is supported on the target filesystem.
+ * g_dbus_object_skeleton_remove_interface_by_name:
+ * @object: A #GDBusObjectSkeleton.
+ * @interface_name: A D-Bus interface name.
*
- * If @cancellable is not %NULL, then the operation can be cancelled
- * by triggering the cancellable object from another thread. If the
- * operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- * returned.
+ * Removes the #GDBusInterface with @interface_name from @object.
*
- * If a file or directory with this name already exists the
- * %G_IO_ERROR_EXISTS error will be returned. Some file systems don't
- * allow all file names, and may return an %G_IO_ERROR_INVALID_FILENAME
- * error, and if the name is to long %G_IO_ERROR_FILENAME_TOO_LONG will
- * be returned. Other errors are possible too, and depend on what kind
- * of filesystem the file is on.
+ * If no D-Bus interface of the given interface exists, this function
+ * does nothing.
*
- * Returns: (transfer full): a #GFileOutputStream for the newly created
- * file, or %NULL on error.
- * Free the returned object with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_file_create_async:
- * @file: input #GFile
- * @flags: a set of #GFileCreateFlags
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Asynchronously creates a new file and returns an output stream
- * for writing to it. The file must not already exist.
+ * g_dbus_object_skeleton_set_object_path:
+ * @object: A #GDBusObjectSkeleton.
+ * @object_path: A valid D-Bus object path.
*
- * For more details, see g_file_create() which is
- * the synchronous version of this call.
+ * Sets the object path for @object.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_create_finish() to get the result
- * of the operation.
+ * Since: 2.30
*/
/**
- * g_file_create_finish:
- * @file: input #GFile
- * @res: a #GAsyncResult
- * @error: a #GError, or %NULL
+ * g_dbus_property_info_ref:
+ * @info: A #GDBusPropertyInfo
*
- * Finishes an asynchronous file create operation started with
- * g_file_create_async().
+ * If @info is statically allocated does nothing. Otherwise increases
+ * the reference count.
*
- * Returns: (transfer full): a #GFileOutputStream or %NULL on error.
- * Free the returned object with g_object_unref().
+ * Returns: The same @info.
+ * Since: 2.26
*/
/**
- * g_file_create_readwrite:
- * @file: a #GFile
- * @flags: a set of #GFileCreateFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: return location for a #GError, or %NULL
- *
- * Creates a new file and returns a stream for reading and
- * writing to it. The file must not already exist.
- *
- * By default files created are generally readable by everyone,
- * but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- * will be made readable only to the current user, to the level
- * that is supported on the target filesystem.
- *
- * If @cancellable is not %NULL, then the operation can be cancelled
- * by triggering the cancellable object from another thread. If the
- * operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- * returned.
- *
- * If a file or directory with this name already exists, the
- * %G_IO_ERROR_EXISTS error will be returned. Some file systems don't
- * allow all file names, and may return an %G_IO_ERROR_INVALID_FILENAME
- * error, and if the name is too long, %G_IO_ERROR_FILENAME_TOO_LONG
- * will be returned. Other errors are possible too, and depend on what
- * kind of filesystem the file is on.
+ * g_dbus_property_info_unref:
+ * @info: A #GDBusPropertyInfo.
*
- * Note that in many non-local file cases read and write streams are
- * not supported, so make sure you really need to do read and write
- * streaming, rather than just opening for reading or writing.
+ * If @info is statically allocated, does nothing. Otherwise decreases
+ * the reference count of @info. When its reference count drops to 0,
+ * the memory used is freed.
*
- * Returns: (transfer full): a #GFileIOStream for the newly created
- * file, or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * Since: 2.26
*/
/**
- * g_file_create_readwrite_async:
- * @file: input #GFile
- * @flags: a set of #GFileCreateFlags
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_dbus_proxy_call:
+ * @proxy: A #GDBusProxy.
+ * @method_name: Name of method to invoke.
+ * @parameters: (nullable): A #GVariant tuple with parameters for the signal or %NULL if not passing parameters.
+ * @flags: Flags from the #GDBusCallFlags enumeration.
+ * @timeout_msec: The timeout in milliseconds (with %G_MAXINT meaning
+ * "infinite") or -1 to use the proxy default timeout.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't
+ * care about the result of the method invocation.
+ * @user_data: The data to pass to @callback.
*
- * Asynchronously creates a new file and returns a stream
- * for reading and writing to it. The file must not already exist.
+ * Asynchronously invokes the @method_name method on @proxy.
*
- * For more details, see g_file_create_readwrite() which is
- * the synchronous version of this call.
+ * If @method_name contains any dots, then @name is split into interface and
+ * method name parts. This allows using @proxy for invoking methods on
+ * other interfaces.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_create_readwrite_finish() to get
- * the result of the operation.
+ * If the #GDBusConnection associated with @proxy is closed then
+ * the operation will fail with %G_IO_ERROR_CLOSED. If
+ * @cancellable is canceled, the operation will fail with
+ * %G_IO_ERROR_CANCELLED. If @parameters contains a value not
+ * compatible with the D-Bus protocol, the operation fails with
+ * %G_IO_ERROR_INVALID_ARGUMENT.
*
- * Since: 2.22
+ * If the @parameters #GVariant is floating, it is consumed. This allows
+ * convenient 'inline' use of g_variant_new(), e.g.:
+ * |[<!-- language="C" -->
+ * g_dbus_proxy_call (proxy,
+ * "TwoStrings",
+ * g_variant_new ("(ss)",
+ * "Thing One",
+ * "Thing Two"),
+ * G_DBUS_CALL_FLAGS_NONE,
+ * -1,
+ * NULL,
+ * (GAsyncReadyCallback) two_strings_done,
+ * &data);
+ * ]|
+ *
+ * If @proxy has an expected interface (see
+ * #GDBusProxy:g-interface-info) and @method_name is referenced by it,
+ * then the return value is checked against the return type.
+ *
+ * This is an asynchronous method. When the operation is finished,
+ * @callback will be invoked in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread you are calling this method from.
+ * You can then call g_dbus_proxy_call_finish() to get the result of
+ * the operation. See g_dbus_proxy_call_sync() for the synchronous
+ * version of this method.
+ *
+ * If @callback is %NULL then the D-Bus method call message will be sent with
+ * the %G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED flag set.
+ *
+ * Since: 2.26
*/
/**
- * g_file_create_readwrite_finish:
- * @file: input #GFile
- * @res: a #GAsyncResult
- * @error: a #GError, or %NULL
+ * g_dbus_proxy_call_finish:
+ * @proxy: A #GDBusProxy.
+ * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_proxy_call().
+ * @error: Return location for error or %NULL.
*
- * Finishes an asynchronous file create operation started with
- * g_file_create_readwrite_async().
+ * Finishes an operation started with g_dbus_proxy_call().
*
- * Returns: (transfer full): a #GFileIOStream or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
+ * return values. Free with g_variant_unref().
+ * Since: 2.26
*/
/**
- * g_file_delete: (virtual delete_file)
- * @file: input #GFile
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
+ * g_dbus_proxy_call_sync:
+ * @proxy: A #GDBusProxy.
+ * @method_name: Name of method to invoke.
+ * @parameters: (nullable): A #GVariant tuple with parameters for the signal
+ * or %NULL if not passing parameters.
+ * @flags: Flags from the #GDBusCallFlags enumeration.
+ * @timeout_msec: The timeout in milliseconds (with %G_MAXINT meaning
+ * "infinite") or -1 to use the proxy default timeout.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the @method_name method on @proxy.
+ *
+ * If @method_name contains any dots, then @name is split into interface and
+ * method name parts. This allows using @proxy for invoking methods on
+ * other interfaces.
+ *
+ * If the #GDBusConnection associated with @proxy is disconnected then
+ * the operation will fail with %G_IO_ERROR_CLOSED. If
+ * @cancellable is canceled, the operation will fail with
+ * %G_IO_ERROR_CANCELLED. If @parameters contains a value not
+ * compatible with the D-Bus protocol, the operation fails with
+ * %G_IO_ERROR_INVALID_ARGUMENT.
+ *
+ * If the @parameters #GVariant is floating, it is consumed. This allows
+ * convenient 'inline' use of g_variant_new(), e.g.:
+ * |[<!-- language="C" -->
+ * g_dbus_proxy_call_sync (proxy,
+ * "TwoStrings",
+ * g_variant_new ("(ss)",
+ * "Thing One",
+ * "Thing Two"),
+ * G_DBUS_CALL_FLAGS_NONE,
+ * -1,
+ * NULL,
+ * &error);
+ * ]|
*
- * Deletes a file. If the @file is a directory, it will only be
- * deleted if it is empty. This has the same semantics as g_unlink().
+ * The calling thread is blocked until a reply is received. See
+ * g_dbus_proxy_call() for the asynchronous version of this
+ * method.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * If @proxy has an expected interface (see
+ * #GDBusProxy:g-interface-info) and @method_name is referenced by it,
+ * then the return value is checked against the return type.
*
- * Returns: %TRUE if the file was deleted. %FALSE otherwise.
+ * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
+ * return values. Free with g_variant_unref().
+ * Since: 2.26
*/
/**
- * g_file_delete_async: (virtual delete_file_async)
- * @file: input #GFile
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: the data to pass to callback function
+ * g_dbus_proxy_call_with_unix_fd_list:
+ * @proxy: A #GDBusProxy.
+ * @method_name: Name of method to invoke.
+ * @parameters: (nullable): A #GVariant tuple with parameters for the signal or %NULL if not passing parameters.
+ * @flags: Flags from the #GDBusCallFlags enumeration.
+ * @timeout_msec: The timeout in milliseconds (with %G_MAXINT meaning
+ * "infinite") or -1 to use the proxy default timeout.
+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't
+ * care about the result of the method invocation.
+ * @user_data: The data to pass to @callback.
*
- * Asynchronously delete a file. If the @file is a directory, it will
- * only be deleted if it is empty. This has the same semantics as
- * g_unlink().
+ * Like g_dbus_proxy_call() but also takes a #GUnixFDList object.
*
- * Since: 2.34
+ * This method is only available on UNIX.
+ *
+ * Since: 2.30
*/
/**
- * g_file_delete_finish: (virtual delete_file_finish)
- * @file: input #GFile
- * @result: a #GAsyncResult
- * @error: a #GError, or %NULL
+ * g_dbus_proxy_call_with_unix_fd_list_finish:
+ * @proxy: A #GDBusProxy.
+ * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL.
+ * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_proxy_call_with_unix_fd_list().
+ * @error: Return location for error or %NULL.
*
- * Finishes deleting a file started with g_file_delete_async().
+ * Finishes an operation started with g_dbus_proxy_call_with_unix_fd_list().
*
- * Returns: %TRUE if the file was deleted. %FALSE otherwise.
- * Since: 2.34
+ * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
+ * return values. Free with g_variant_unref().
+ * Since: 2.30
*/
/**
- * g_file_descriptor_based_get_fd:
- * @fd_based: a #GFileDescriptorBased.
+ * g_dbus_proxy_call_with_unix_fd_list_sync:
+ * @proxy: A #GDBusProxy.
+ * @method_name: Name of method to invoke.
+ * @parameters: (nullable): A #GVariant tuple with parameters for the signal
+ * or %NULL if not passing parameters.
+ * @flags: Flags from the #GDBusCallFlags enumeration.
+ * @timeout_msec: The timeout in milliseconds (with %G_MAXINT meaning
+ * "infinite") or -1 to use the proxy default timeout.
+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
+ * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
*
- * Gets the underlying file descriptor.
+ * Like g_dbus_proxy_call_sync() but also takes and returns #GUnixFDList objects.
*
- * Returns: The file descriptor
- * Since: 2.24
+ * This method is only available on UNIX.
+ *
+ * Returns: %NULL if @error is set. Otherwise a #GVariant tuple with
+ * return values. Free with g_variant_unref().
+ * Since: 2.30
*/
/**
- * g_file_dup:
- * @file: input #GFile
- *
- * Duplicates a #GFile handle. This operation does not duplicate
- * the actual file or directory represented by the #GFile; see
- * g_file_copy() if attempting to copy a file.
+ * g_dbus_proxy_get_cached_property:
+ * @proxy: A #GDBusProxy.
+ * @property_name: Property name.
*
- * g_file_dup() is useful when a second handle is needed to the same underlying
- * file, for use in a separate thread (#GFile is not thread-safe). For use
- * within the same thread, use g_object_ref() to increment the existing object’s
- * reference count.
+ * Looks up the value for a property from the cache. This call does no
+ * blocking IO.
*
- * This call does no blocking I/O.
+ * If @proxy has an expected interface (see
+ * #GDBusProxy:g-interface-info) and @property_name is referenced by
+ * it, then @value is checked against the type of the property.
*
- * Returns: (transfer full): a new #GFile that is a duplicate
- * of the given #GFile.
+ * Returns: (transfer full) (nullable): A reference to the #GVariant instance
+ * that holds the value for @property_name or %NULL if the value is not in
+ * the cache. The returned reference must be freed with g_variant_unref().
+ * Since: 2.26
*/
/**
- * g_file_eject_mountable:
- * @file: input #GFile
- * @flags: flags affecting the operation
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: (closure): the data to pass to callback function
- *
- * Starts an asynchronous eject on a mountable.
- * When this operation has completed, @callback will be called with
- * @user_user data, and the operation can be finalized with
- * g_file_eject_mountable_finish().
+ * g_dbus_proxy_get_cached_property_names:
+ * @proxy: A #GDBusProxy.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Gets the names of all cached properties on @proxy.
*
- * Deprecated: 2.22: Use g_file_eject_mountable_with_operation() instead.
+ * Returns: (transfer full) (nullable) (array zero-terminated=1): A
+ * %NULL-terminated array of strings or %NULL if
+ * @proxy has no cached properties. Free the returned array with
+ * g_strfreev().
+ * Since: 2.26
*/
/**
- * g_file_eject_mountable_finish:
- * @file: input #GFile
- * @result: a #GAsyncResult
- * @error: a #GError, or %NULL
+ * g_dbus_proxy_get_connection:
+ * @proxy: A #GDBusProxy.
*
- * Finishes an asynchronous eject operation started by
- * g_file_eject_mountable().
+ * Gets the connection @proxy is for.
*
- * Returns: %TRUE if the @file was ejected successfully.
- * %FALSE otherwise.
- * Deprecated: 2.22: Use g_file_eject_mountable_with_operation_finish()
- * instead.
+ * Returns: (transfer none): A #GDBusConnection owned by @proxy. Do not free.
+ * Since: 2.26
*/
/**
- * g_file_eject_mountable_with_operation:
- * @file: input #GFile
- * @flags: flags affecting the operation
- * @mount_operation: (nullable): a #GMountOperation,
- * or %NULL to avoid user interaction
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: (closure): the data to pass to callback function
+ * g_dbus_proxy_get_default_timeout:
+ * @proxy: A #GDBusProxy.
*
- * Starts an asynchronous eject on a mountable.
- * When this operation has completed, @callback will be called with
- * @user_user data, and the operation can be finalized with
- * g_file_eject_mountable_with_operation_finish().
+ * Gets 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.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * See the #GDBusProxy:g-default-timeout property for more details.
*
- * Since: 2.22
+ * Returns: Timeout to use for @proxy.
+ * Since: 2.26
*/
/**
- * g_file_eject_mountable_with_operation_finish:
- * @file: input #GFile
- * @result: a #GAsyncResult
- * @error: a #GError, or %NULL
+ * g_dbus_proxy_get_flags:
+ * @proxy: A #GDBusProxy.
*
- * Finishes an asynchronous eject operation started by
- * g_file_eject_mountable_with_operation().
+ * Gets the flags that @proxy was constructed with.
*
- * Returns: %TRUE if the @file was ejected successfully.
- * %FALSE otherwise.
- * Since: 2.22
+ * Returns: Flags from the #GDBusProxyFlags enumeration.
+ * Since: 2.26
*/
/**
- * g_file_enumerate_children:
- * @file: input #GFile
- * @attributes: an attribute query string
- * @flags: a set of #GFileQueryInfoFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: #GError for error reporting
- *
- * Gets the requested information about the files in a directory.
- * The result is a #GFileEnumerator object that will give out
- * #GFileInfo objects for all the files in the directory.
- *
- * The @attributes value is a string that specifies the file
- * attributes that should be gathered. It is not an error if
- * it's not possible to read a particular requested attribute
- * from a file - it just won't be set. @attributes should
- * be a comma-separated list of attributes or attribute wildcards.
- * The wildcard "*" means all attributes, and a wildcard like
- * "standard::*" means all attributes in the standard namespace.
- * An example attribute query be "standard::*,owner::user".
- * The standard attributes are available as defines, like
- * #G_FILE_ATTRIBUTE_STANDARD_NAME.
- *
- * If @cancellable is not %NULL, then the operation can be cancelled
- * by triggering the cancellable object from another thread. If the
- * operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- * returned.
+ * g_dbus_proxy_get_interface_info:
+ * @proxy: A #GDBusProxy
*
- * If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will
- * be returned. If the file is not a directory, the %G_IO_ERROR_NOT_DIRECTORY
- * error will be returned. Other errors are possible too.
+ * Returns the #GDBusInterfaceInfo, if any, specifying the interface
+ * that @proxy conforms to. See the #GDBusProxy:g-interface-info
+ * property for more details.
*
- * Returns: (transfer full): A #GFileEnumerator if successful,
- * %NULL on error. Free the returned object with g_object_unref().
+ * Returns: (transfer none) (nullable): A #GDBusInterfaceInfo or %NULL.
+ * Do not unref the returned object, it is owned by @proxy.
+ * Since: 2.26
*/
/**
- * g_file_enumerate_children_async:
- * @file: input #GFile
- * @attributes: an attribute query string
- * @flags: a set of #GFileQueryInfoFlags
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call when the
- * request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Asynchronously gets the requested information about the files
- * in a directory. The result is a #GFileEnumerator object that will
- * give out #GFileInfo objects for all the files in the directory.
+ * g_dbus_proxy_get_interface_name:
+ * @proxy: A #GDBusProxy.
*
- * For more details, see g_file_enumerate_children() which is
- * the synchronous version of this call.
+ * Gets the D-Bus interface name @proxy is for.
*
- * When the operation is finished, @callback will be called. You can
- * then call g_file_enumerate_children_finish() to get the result of
- * the operation.
+ * Returns: A string owned by @proxy. Do not free.
+ * Since: 2.26
*/
/**
- * g_file_enumerate_children_finish:
- * @file: input #GFile
- * @res: a #GAsyncResult
- * @error: a #GError
+ * g_dbus_proxy_get_name:
+ * @proxy: A #GDBusProxy.
*
- * Finishes an async enumerate children operation.
- * See g_file_enumerate_children_async().
+ * Gets the name that @proxy was constructed for.
*
- * Returns: (transfer full): a #GFileEnumerator or %NULL
- * if an error occurred.
- * Free the returned object with g_object_unref().
+ * Returns: A string owned by @proxy. Do not free.
+ * Since: 2.26
*/
/**
- * g_file_enumerator_close:
- * @enumerator: a #GFileEnumerator.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * Releases all resources used by this enumerator, making the
- * enumerator return %G_IO_ERROR_CLOSED on all calls.
+ * g_dbus_proxy_get_name_owner:
+ * @proxy: A #GDBusProxy.
*
- * This will be automatically called when the last reference
- * is dropped, but you might want to call this function to make
- * sure resources are released as early as possible.
+ * The unique name that owns the name that @proxy is for or %NULL if
+ * no-one currently owns that name. You may connect to the
+ * #GObject::notify signal to track changes to the
+ * #GDBusProxy:g-name-owner property.
*
- * Returns: #TRUE on success or #FALSE on error.
+ * Returns: (transfer full) (nullable): The name owner or %NULL if no name
+ * owner exists. Free with g_free().
+ * Since: 2.26
*/
/**
- * g_file_enumerator_close_async:
- * @enumerator: a #GFileEnumerator.
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_dbus_proxy_get_object_path:
+ * @proxy: A #GDBusProxy.
*
- * Asynchronously closes the file enumerator.
+ * Gets the object path @proxy is for.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned in
- * g_file_enumerator_close_finish().
+ * Returns: A string owned by @proxy. Do not free.
+ * Since: 2.26
*/
/**
- * g_file_enumerator_close_finish:
- * @enumerator: a #GFileEnumerator.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_dbus_proxy_new:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags used when constructing the proxy.
+ * @info: (nullable): A #GDBusInterfaceInfo specifying the minimal interface that @proxy conforms to or %NULL.
+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @interface_name: A D-Bus interface name.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @callback: Callback function to invoke when the proxy is ready.
+ * @user_data: User data to pass to @callback.
*
- * Finishes closing a file enumerator, started from g_file_enumerator_close_async().
+ * Creates a proxy for accessing @interface_name on the remote object
+ * at @object_path owned by @name at @connection and asynchronously
+ * loads D-Bus properties unless the
+ * %G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used. Connect to
+ * the #GDBusProxy::g-properties-changed signal to get notified about
+ * property changes.
*
- * If the file enumerator was already closed when g_file_enumerator_close_async()
- * was called, then this function will report %G_IO_ERROR_CLOSED in @error, and
- * return %FALSE. If the file enumerator had pending operation when the close
- * operation was started, then this function will report %G_IO_ERROR_PENDING, and
- * return %FALSE. If @cancellable was not %NULL, then the operation may have been
- * cancelled by triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %FALSE will be
- * returned.
+ * If the %G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS flag is not set, also sets up
+ * match rules for signals. Connect to the #GDBusProxy::g-signal signal
+ * to handle signals from the remote object.
*
- * Returns: %TRUE if the close operation has finished successfully.
- */
-
-
-/**
- * g_file_enumerator_get_child:
- * @enumerator: a #GFileEnumerator
- * @info: a #GFileInfo gotten from g_file_enumerator_next_file()
- * or the async equivalents.
+ * If @name is a well-known name and the
+ * %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
+ * flags aren't set and no name owner currently exists, the message bus
+ * will be requested to launch a name owner for the name.
*
- * Return a new #GFile which refers to the file named by @info in the source
- * directory of @enumerator. This function is primarily intended to be used
- * inside loops with g_file_enumerator_next_file().
+ * This is a failable asynchronous constructor - when the proxy is
+ * ready, @callback will be invoked and you can use
+ * g_dbus_proxy_new_finish() to get the result.
*
- * This is a convenience method that's equivalent to:
- * |[<!-- language="C" -->
- * gchar *name = g_file_info_get_name (info);
- * GFile *child = g_file_get_child (g_file_enumerator_get_container (enumr),
- * name);
- * ]|
+ * See g_dbus_proxy_new_sync() and for a synchronous version of this constructor.
*
- * Returns: (transfer full): a #GFile for the #GFileInfo passed it.
- * Since: 2.36
+ * #GDBusProxy is used in this [example][gdbus-wellknown-proxy].
+ *
+ * Since: 2.26
*/
/**
- * g_file_enumerator_get_container:
- * @enumerator: a #GFileEnumerator
+ * g_dbus_proxy_new_finish:
+ * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback function passed to g_dbus_proxy_new().
+ * @error: Return location for error or %NULL.
*
- * Get the #GFile container which is being enumerated.
+ * Finishes creating a #GDBusProxy.
*
- * Returns: (transfer none): the #GFile which is being enumerated.
- * Since: 2.18
+ * Returns: (transfer full): A #GDBusProxy or %NULL if @error is set.
+ * Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_file_enumerator_has_pending:
- * @enumerator: a #GFileEnumerator.
+ * g_dbus_proxy_new_for_bus:
+ * @bus_type: A #GBusType.
+ * @flags: Flags used when constructing the proxy.
+ * @info: (nullable): A #GDBusInterfaceInfo specifying the minimal interface that @proxy conforms to or %NULL.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @interface_name: A D-Bus interface name.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @callback: Callback function to invoke when the proxy is ready.
+ * @user_data: User data to pass to @callback.
*
- * Checks if the file enumerator has pending operations.
+ * Like g_dbus_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
*
- * Returns: %TRUE if the @enumerator has pending operations.
+ * #GDBusProxy is used in this [example][gdbus-wellknown-proxy].
+ *
+ * Since: 2.26
*/
/**
- * g_file_enumerator_is_closed:
- * @enumerator: a #GFileEnumerator.
+ * g_dbus_proxy_new_for_bus_finish:
+ * @res: A #GAsyncResult obtained from the #GAsyncReadyCallback function passed to g_dbus_proxy_new_for_bus().
+ * @error: Return location for error or %NULL.
*
- * Checks if the file enumerator has been closed.
+ * Finishes creating a #GDBusProxy.
*
- * Returns: %TRUE if the @enumerator is closed.
+ * Returns: (transfer full): A #GDBusProxy or %NULL if @error is set.
+ * Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_file_enumerator_iterate:
- * @direnum: an open #GFileEnumerator
- * @out_info: (out) (transfer none) (optional): Output location for the next #GFileInfo, or %NULL
- * @out_child: (out) (transfer none) (optional): Output location for the next #GFile, or %NULL
- * @cancellable: a #GCancellable
- * @error: a #GError
- *
- * 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 "end of iteration or error", which
- * requires allocation of a temporary #GError.
- *
- * In contrast, with this function, a %FALSE return from
- * g_file_enumerator_iterate() *always* means
- * "error". 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:
+ * g_dbus_proxy_new_for_bus_sync:
+ * @bus_type: A #GBusType.
+ * @flags: Flags used when constructing the proxy.
+ * @info: (nullable): A #GDBusInterfaceInfo specifying the minimal interface
+ * that @proxy conforms to or %NULL.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @interface_name: A D-Bus interface name.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
*
- * |[
- * direnum = g_file_enumerate_children (file, ...);
- * while (TRUE)
- * {
- * GFileInfo *info;
- * if (!g_file_enumerator_iterate (direnum, &info, NULL, cancellable, error))
- * goto out;
- * if (!info)
- * break;
- * ... do stuff with "info"; do not unref it! ...
- * }
+ * Like g_dbus_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
*
- * out:
- * g_object_unref (direnum); // Note: frees the last @info
- * ]|
+ * #GDBusProxy is used in this [example][gdbus-wellknown-proxy].
*
- * Since: 2.44
+ * Returns: (transfer full): A #GDBusProxy or %NULL if error is set.
+ * Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_file_enumerator_next_file:
- * @enumerator: a #GFileEnumerator.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
+ * g_dbus_proxy_new_sync:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags used when constructing the proxy.
+ * @info: (nullable): A #GDBusInterfaceInfo specifying the minimal interface that @proxy conforms to or %NULL.
+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @interface_name: A D-Bus interface name.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @error: (nullable): Return location for error or %NULL.
*
- * Returns information for the next file in the enumerated object.
- * Will block until the information is available. The #GFileInfo
- * returned from this function will contain attributes that match the
- * attribute string that was passed when the #GFileEnumerator was created.
+ * Creates a proxy for accessing @interface_name on the remote object
+ * at @object_path owned by @name at @connection and synchronously
+ * loads D-Bus properties unless the
+ * %G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used.
*
- * See the documentation of #GFileEnumerator for information about the
- * order of returned files.
+ * If the %G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS flag is not set, also sets up
+ * match rules for signals. Connect to the #GDBusProxy::g-signal signal
+ * to handle signals from the remote object.
*
- * On error, returns %NULL and sets @error to the error. If the
- * enumerator is at the end, %NULL will be returned and @error will
- * be unset.
+ * If @name is a well-known name and the
+ * %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
+ * flags aren't set and no name owner currently exists, the message bus
+ * will be requested to launch a name owner for the name.
*
- * Returns: (nullable) (transfer full): A #GFileInfo or %NULL on error
- * or end of enumerator. Free the returned object with
- * g_object_unref() when no longer needed.
+ * This is a synchronous failable constructor. See g_dbus_proxy_new()
+ * and g_dbus_proxy_new_finish() for the asynchronous version.
+ *
+ * #GDBusProxy is used in this [example][gdbus-wellknown-proxy].
+ *
+ * Returns: (transfer full): A #GDBusProxy or %NULL if error is set.
+ * Free with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_file_enumerator_next_files_async:
- * @enumerator: a #GFileEnumerator.
- * @num_files: the number of file info objects to request
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_dbus_proxy_set_cached_property:
+ * @proxy: A #GDBusProxy
+ * @property_name: Property name.
+ * @value: (nullable): Value for the property or %NULL to remove it from the cache.
*
- * Request information for a number of files from the enumerator asynchronously.
- * When all i/o for the operation is finished the @callback will be called with
- * the requested information.
+ * If @value is not %NULL, sets the cached value for the property with
+ * name @property_name to the value in @value.
*
- * See the documentation of #GFileEnumerator for information about the
- * order of returned files.
+ * If @value is %NULL, then the cached value is removed from the
+ * property cache.
*
- * The callback can be called with less than @num_files files in case of error
- * or at the end of the enumerator. In case of a partial error the callback will
- * be called with any succeeding items and no error, and on the next request the
- * error will be reported. If a request is cancelled the callback will be called
- * with %G_IO_ERROR_CANCELLED.
+ * If @proxy has an expected interface (see
+ * #GDBusProxy:g-interface-info) and @property_name is referenced by
+ * it, then @value is checked against the type of the property.
*
- * During an async request no other sync and async calls are allowed, and will
- * result in %G_IO_ERROR_PENDING errors.
+ * If the @value #GVariant is floating, it is consumed. This allows
+ * convenient 'inline' use of g_variant_new(), e.g.
+ * |[<!-- language="C" -->
+ * g_dbus_proxy_set_cached_property (proxy,
+ * "SomeProperty",
+ * g_variant_new ("(si)",
+ * "A String",
+ * 42));
+ * ]|
*
- * 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.
+ * Normally you will not need to use this method since @proxy
+ * is tracking changes using the
+ * `org.freedesktop.DBus.Properties.PropertiesChanged`
+ * D-Bus signal. However, for performance reasons an object may
+ * decide to not use this signal for some properties and instead
+ * use a proprietary out-of-band mechanism to transmit changes.
+ *
+ * As a concrete example, consider an object with a property
+ * `ChatroomParticipants` which is an array of strings. Instead of
+ * transmitting the same (long) array every time the property changes,
+ * it is more efficient to only transmit the delta using e.g. signals
+ * `ChatroomParticipantJoined(String name)` and
+ * `ChatroomParticipantParted(String name)`.
+ *
+ * Since: 2.26
*/
/**
- * g_file_enumerator_next_files_finish:
- * @enumerator: a #GFileEnumerator.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_dbus_proxy_set_default_timeout:
+ * @proxy: A #GDBusProxy.
+ * @timeout_msec: Timeout in milliseconds.
*
- * Finishes the asynchronous operation started with g_file_enumerator_next_files_async().
+ * Sets 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.
*
- * Returns: (transfer full) (element-type Gio.FileInfo): a #GList of #GFileInfos. You must free the list with
- * g_list_free() and unref the infos with g_object_unref() when you're
- * done with them.
+ * See the #GDBusProxy:g-default-timeout property for more details.
+ *
+ * Since: 2.26
*/
/**
- * g_file_enumerator_set_pending:
- * @enumerator: a #GFileEnumerator.
- * @pending: a boolean value.
+ * g_dbus_proxy_set_interface_info:
+ * @proxy: A #GDBusProxy
+ * @info: (transfer none) (nullable): Minimum interface this proxy conforms to
+ * or %NULL to unset.
*
- * Sets the file enumerator as having pending operations.
+ * Ensure that interactions with @proxy conform to the given
+ * interface. See the #GDBusProxy:g-interface-info property for more
+ * details.
+ *
+ * Since: 2.26
*/
/**
- * g_file_equal:
- * @file1: the first #GFile
- * @file2: the second #GFile
- *
- * 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
- * aliasing.
+ * g_dbus_server_get_client_address:
+ * @server: A #GDBusServer.
*
- * This call does no blocking I/O.
+ * Gets a
+ * [D-Bus address](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses)
+ * string that can be used by clients to connect to @server.
*
- * Returns: %TRUE if @file1 and @file2 are equal.
+ * Returns: A D-Bus address string. Do not free, the string is owned
+ * by @server.
+ * Since: 2.26
*/
/**
- * g_file_find_enclosing_mount:
- * @file: input #GFile
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError
- *
- * Gets a #GMount for the #GFile.
- *
- * If the #GFileIface for @file does not have a mount (e.g.
- * possibly a remote share), @error will be set to %G_IO_ERROR_NOT_FOUND
- * and %NULL will be returned.
+ * g_dbus_server_get_flags:
+ * @server: A #GDBusServer.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Gets the flags for @server.
*
- * Returns: (transfer full): a #GMount where the @file is located
- * or %NULL on error.
- * Free the returned object with g_object_unref().
+ * Returns: A set of flags from the #GDBusServerFlags enumeration.
+ * Since: 2.26
*/
/**
- * g_file_find_enclosing_mount_async:
- * @file: a #GFile
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Asynchronously gets the mount for the file.
+ * g_dbus_server_get_guid:
+ * @server: A #GDBusServer.
*
- * For more details, see g_file_find_enclosing_mount() which is
- * the synchronous version of this call.
+ * Gets the GUID for @server.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_find_enclosing_mount_finish() to
- * get the result of the operation.
+ * Returns: A D-Bus GUID. Do not free this string, it is owned by @server.
+ * Since: 2.26
*/
/**
- * g_file_find_enclosing_mount_finish:
- * @file: a #GFile
- * @res: a #GAsyncResult
- * @error: a #GError
+ * g_dbus_server_is_active:
+ * @server: A #GDBusServer.
*
- * Finishes an asynchronous find mount request.
- * See g_file_find_enclosing_mount_async().
+ * Gets whether @server is active.
*
- * Returns: (transfer full): #GMount for given @file or %NULL on error.
- * Free the returned object with g_object_unref().
+ * Returns: %TRUE if server is active, %FALSE otherwise.
+ * Since: 2.26
*/
/**
- * g_file_get_basename:
- * @file: input #GFile
- *
- * Gets the base name (the last component of the path) for a given #GFile.
- *
- * If called for the top level of a system (such as the filesystem root
- * or a uri like sftp://host/) it will return a single directory separator
- * (and on Windows, possibly a drive letter).
+ * g_dbus_server_new_sync:
+ * @address: A D-Bus address.
+ * @flags: Flags from the #GDBusServerFlags enumeration.
+ * @guid: A D-Bus GUID.
+ * @observer: (nullable): A #GDBusAuthObserver or %NULL.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @error: Return location for server or %NULL.
*
- * The base name is a byte string (not UTF-8). It has no defined encoding
- * or rules other than it may not contain zero bytes. If you want to use
- * filenames in a user interface you should use the display name that you
- * can get by requesting the %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME
- * attribute with g_file_query_info().
+ * Creates a new D-Bus server that listens on the first address in
+ * @address that works.
*
- * This call does no blocking I/O.
+ * Once constructed, you can use g_dbus_server_get_client_address() to
+ * get a D-Bus address string that clients can use to connect.
*
- * Returns: (type filename) (nullable): string containing the #GFile's
- * base name, or %NULL if given #GFile is invalid. The returned string
- * should be freed with g_free() when no longer needed.
- */
-
-
-/**
- * g_file_get_child:
- * @file: input #GFile
- * @name: (type filename): string containing the child's basename
+ * Connect to the #GDBusServer::new-connection signal to handle
+ * incoming connections.
*
- * Gets a child of @file with basename equal to @name.
+ * The returned #GDBusServer isn't active - you have to start it with
+ * g_dbus_server_start().
*
- * Note that the file with that specific name might not exist, but
- * you can still have a #GFile that points to it. You can use this
- * for instance to create that file.
+ * #GDBusServer is used in this [example][gdbus-peer-to-peer].
*
- * This call does no blocking I/O.
+ * This is a synchronous failable constructor. See
+ * g_dbus_server_new() for the asynchronous version.
*
- * Returns: (transfer full): a #GFile to a child specified by @name.
- * Free the returned object with g_object_unref().
+ * Returns: A #GDBusServer or %NULL if @error is set. Free with
+ * g_object_unref().
+ * Since: 2.26
*/
/**
- * g_file_get_child_for_display_name:
- * @file: input #GFile
- * @display_name: string to a possible child
- * @error: return location for an error
- *
- * Gets the child of @file for a given @display_name (i.e. a UTF-8
- * version of the name). If this function fails, it returns %NULL
- * and @error will be set. This is very useful when constructing a
- * #GFile for a new file and the user entered the filename in the
- * user interface, for instance when you select a directory and
- * type a filename in the file selector.
+ * g_dbus_server_start:
+ * @server: A #GDBusServer.
*
- * This call does no blocking I/O.
+ * Starts @server.
*
- * Returns: (transfer full): a #GFile to the specified child, or
- * %NULL if the display name couldn't be converted.
- * Free the returned object with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_file_get_parent:
- * @file: input #GFile
- *
- * Gets the parent directory for the @file.
- * If the @file represents the root directory of the
- * file system, then %NULL will be returned.
+ * g_dbus_server_stop:
+ * @server: A #GDBusServer.
*
- * This call does no blocking I/O.
+ * Stops @server.
*
- * Returns: (nullable) (transfer full): a #GFile structure to the
- * parent of the given #GFile or %NULL if there is no parent. Free
- * the returned object with g_object_unref().
+ * Since: 2.26
*/
/**
- * g_file_get_parse_name:
- * @file: input #GFile
- *
- * Gets the parse name of the @file.
- * A parse name is a UTF-8 string that describes the
- * file such that one can get the #GFile back using
- * g_file_parse_name().
- *
- * This is generally used to show the #GFile as a nice
- * full-pathname kind of string in a user interface,
- * like in a location entry.
- *
- * For local files with names that can safely be converted
- * to UTF-8 the pathname is used, otherwise the IRI is used
- * (a form of URI that allows UTF-8 characters unescaped).
+ * g_dbus_signal_info_ref:
+ * @info: A #GDBusSignalInfo
*
- * This call does no blocking I/O.
+ * If @info is statically allocated does nothing. Otherwise increases
+ * the reference count.
*
- * Returns: a string containing the #GFile's parse name.
- * The returned string should be freed with g_free()
- * when no longer needed.
+ * Returns: The same @info.
+ * Since: 2.26
*/
/**
- * g_file_get_path:
- * @file: input #GFile
- *
- * Gets the local pathname for #GFile, if one exists. If non-%NULL, this is
- * guaranteed to be an absolute, canonical path. It might contain symlinks.
+ * g_dbus_signal_info_unref:
+ * @info: A #GDBusSignalInfo.
*
- * This call does no blocking I/O.
+ * If @info is statically allocated, does nothing. Otherwise decreases
+ * the reference count of @info. When its reference count drops to 0,
+ * the memory used is freed.
*
- * Returns: (type filename) (nullable): string containing the #GFile's path,
- * or %NULL if no such path exists. The returned string should be freed
- * with g_free() when no longer needed.
+ * Since: 2.26
*/
/**
- * g_file_get_relative_path:
- * @parent: input #GFile
- * @descendant: input #GFile
+ * g_desktop_app_info_get_action_name:
+ * @info: a #GDesktopAppInfo
+ * @action_name: the name of the action as from
+ * g_desktop_app_info_list_actions()
*
- * Gets the path for @descendant relative to @parent.
+ * Gets the user-visible display name of the "additional application
+ * action" specified by @action_name.
*
- * This call does no blocking I/O.
+ * This corresponds to the "Name" key within the keyfile group for the
+ * action.
*
- * Returns: (type filename) (nullable): string with the relative path from
- * @descendant to @parent, or %NULL if @descendant doesn't have @parent as
- * prefix. The returned string should be freed with g_free() when
- * no longer needed.
+ * Returns: (transfer full): the locale-specific action name
+ * Since: 2.38
*/
/**
- * g_file_get_uri:
- * @file: input #GFile
+ * g_desktop_app_info_get_boolean:
+ * @info: a #GDesktopAppInfo
+ * @key: the key to look up
*
- * Gets the URI for the @file.
+ * Looks up a boolean value in the keyfile backing @info.
*
- * This call does no blocking I/O.
+ * The @key is looked up in the "Desktop Entry" group.
*
- * Returns: a string containing the #GFile's URI.
- * The returned string should be freed with g_free()
- * when no longer needed.
+ * Returns: the boolean value, or %FALSE if the key
+ * is not found
+ * Since: 2.36
*/
/**
- * g_file_get_uri_scheme:
- * @file: input #GFile
- *
- * Gets the URI scheme for a #GFile.
- * RFC 3986 decodes the scheme as:
- * |[
- * URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
- * ]|
- * Common schemes include "file", "http", "ftp", etc.
+ * g_desktop_app_info_get_categories:
+ * @info: a #GDesktopAppInfo
*
- * This call does no blocking I/O.
+ * Gets the categories from the desktop file.
*
- * Returns: a string containing the URI scheme for the given
- * #GFile. The returned string should be freed with g_free()
- * when no longer needed.
+ * Returns: The unparsed Categories key from the desktop file;
+ * i.e. no attempt is made to split it by ';' or validate it.
*/
/**
- * g_file_has_parent:
- * @file: input #GFile
- * @parent: (nullable): the parent to check for, or %NULL
- *
- * Checks if @file has a parent, and optionally, if it is @parent.
+ * g_desktop_app_info_get_filename:
+ * @info: a #GDesktopAppInfo
*
- * If @parent is %NULL then this function returns %TRUE if @file has any
- * parent at all. If @parent is non-%NULL then %TRUE is only returned
- * if @file is an immediate child of @parent.
+ * When @info was created from a known filename, return it. In some
+ * situations such as the #GDesktopAppInfo returned from
+ * g_desktop_app_info_new_from_keyfile(), this function will return %NULL.
*
- * Returns: %TRUE if @file is an immediate child of @parent (or any parent in
- * the case that @parent is %NULL).
+ * Returns: (type filename): The full path to the file for @info,
+ * or %NULL if not known.
* Since: 2.24
*/
/**
- * g_file_has_prefix: (virtual prefix_matches)
- * @file: input #GFile
- * @prefix: input #GFile
- *
- * Checks whether @file has the prefix specified by @prefix.
- *
- * In other words, if the names of initial elements of @file's
- * 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().
+ * g_desktop_app_info_get_generic_name:
+ * @info: a #GDesktopAppInfo
*
- * 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
- * of @prefix.
+ * Gets the generic name from the destkop file.
*
- * Returns: %TRUE if the @files's parent, grandparent, etc is @prefix,
- * %FALSE otherwise.
+ * Returns: The value of the GenericName key
*/
/**
- * g_file_has_uri_scheme:
- * @file: input #GFile
- * @uri_scheme: a string containing a URI scheme
+ * g_desktop_app_info_get_implementations:
+ * @interface: the name of the interface
*
- * Checks to see if a #GFile has a given URI scheme.
+ * Gets all applications that implement @interface.
*
- * This call does no blocking I/O.
+ * An application implements an interface if that interface is listed in
+ * the Implements= line of the desktop file of the application.
*
- * Returns: %TRUE if #GFile's backend supports the
- * given URI scheme, %FALSE if URI scheme is %NULL,
- * not supported, or #GFile is invalid.
+ * Returns: (element-type GDesktopAppInfo) (transfer full): a list of #GDesktopAppInfo
+ * objects.
+ * Since: 2.42
*/
/**
- * g_file_hash: (virtual hash)
- * @file: (type GFile): #gconstpointer to a #GFile
- *
- * Creates a hash value for a #GFile.
+ * g_desktop_app_info_get_is_hidden:
+ * @info: a #GDesktopAppInfo.
*
- * This call does no blocking I/O.
+ * A desktop file is hidden if the Hidden key in it is
+ * set to True.
*
- * Returns: 0 if @file is not a valid #GFile, otherwise an
- * integer that can be used as hash value for the #GFile.
- * This function is intended for easily hashing a #GFile to
- * add to a #GHashTable or similar data structure.
+ * Returns: %TRUE if hidden, %FALSE otherwise.
*/
/**
- * g_file_icon_get_file:
- * @icon: a #GIcon.
+ * g_desktop_app_info_get_keywords:
+ * @info: a #GDesktopAppInfo
*
- * Gets the #GFile associated with the given @icon.
+ * Gets the keywords from the desktop file.
*
- * Returns: (transfer none): a #GFile, or %NULL.
+ * Returns: (transfer none): The value of the Keywords key
+ * Since: 2.32
*/
/**
- * g_file_icon_new:
- * @file: a #GFile.
+ * g_desktop_app_info_get_locale_string:
+ * @info: a #GDesktopAppInfo
+ * @key: the key to look up
*
- * Creates a new icon for a file.
+ * Looks up a localized string value in the keyfile backing @info
+ * translated to the current locale.
*
- * Returns: (transfer full) (type GFileIcon): a #GIcon for the given
- * @file, or %NULL on error.
+ * The @key is looked up in the "Desktop Entry" group.
+ *
+ * Returns: (nullable): a newly allocated string, or %NULL if the key
+ * is not found
+ * Since: 2.56
*/
/**
- * g_file_info_clear_status:
- * @info: a #GFileInfo.
+ * g_desktop_app_info_get_nodisplay:
+ * @info: a #GDesktopAppInfo
*
- * Clears the status information from @info.
+ * Gets the value of the NoDisplay key, which helps determine if the
+ * application info should be shown in menus. See
+ * #G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY and g_app_info_should_show().
+ *
+ * Returns: The value of the NoDisplay key
+ * Since: 2.30
*/
/**
- * g_file_info_copy_into:
- * @src_info: source to copy attributes from.
- * @dest_info: destination to copy attributes to.
+ * g_desktop_app_info_get_show_in:
+ * @info: a #GDesktopAppInfo
+ * @desktop_env: (nullable): a string specifying a desktop name
*
- * First clears all of the [GFileAttribute][gio-GFileAttribute] of @dest_info,
- * and then copies all of the file attributes from @src_info to @dest_info.
+ * Checks if the application info should be shown in menus that list available
+ * applications for a specific name of the desktop, based on the
+ * `OnlyShowIn` and `NotShowIn` keys.
+ *
+ * @desktop_env should typically be given as %NULL, in which case the
+ * `XDG_CURRENT_DESKTOP` environment variable is consulted. If you want
+ * to override the default mechanism then you may specify @desktop_env,
+ * but this is not recommended.
+ *
+ * Note that g_app_info_should_show() for @info will include this check (with
+ * %NULL for @desktop_env) as well as additional checks.
+ *
+ * Returns: %TRUE if the @info should be shown in @desktop_env according to the
+ * `OnlyShowIn` and `NotShowIn` keys, %FALSE
+ * otherwise.
+ * Since: 2.30
*/
/**
- * g_file_info_dup:
- * @other: a #GFileInfo.
+ * g_desktop_app_info_get_startup_wm_class:
+ * @info: a #GDesktopAppInfo that supports startup notify
*
- * Duplicates a file info structure.
+ * Retrieves the StartupWMClass field from @info. This represents the
+ * WM_CLASS property of the main window of the application, if launched
+ * through @info.
*
- * Returns: (transfer full): a duplicate #GFileInfo of @other.
+ * Returns: (transfer none): the startup WM class, or %NULL if none is set
+ * in the desktop file.
+ * Since: 2.34
*/
/**
- * g_file_info_get_attribute_as_string:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_desktop_app_info_get_string:
+ * @info: a #GDesktopAppInfo
+ * @key: the key to look up
*
- * Gets the value of a attribute, formated as a string.
- * This escapes things as needed to make the string valid
- * utf8.
+ * Looks up a string value in the keyfile backing @info.
*
- * Returns: a UTF-8 string associated with the given @attribute.
- * When you're done with the string it must be freed with g_free().
+ * The @key is looked up in the "Desktop Entry" group.
+ *
+ * Returns: a newly allocated string, or %NULL if the key
+ * is not found
+ * Since: 2.36
*/
/**
- * g_file_info_get_attribute_boolean:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_desktop_app_info_has_key:
+ * @info: a #GDesktopAppInfo
+ * @key: the key to look up
*
- * Gets the value of a boolean attribute. If the attribute does not
- * contain a boolean value, %FALSE will be returned.
+ * Returns whether @key exists in the "Desktop Entry" group
+ * of the keyfile backing @info.
*
- * Returns: the boolean value contained within the attribute.
+ * Returns: %TRUE if the @key exists
+ * Since: 2.36
*/
/**
- * g_file_info_get_attribute_byte_string:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_desktop_app_info_launch_action:
+ * @info: a #GDesktopAppInfo
+ * @action_name: the name of the action as from
+ * g_desktop_app_info_list_actions()
+ * @launch_context: (nullable): a #GAppLaunchContext
*
- * Gets the value of a byte string attribute. If the attribute does
- * not contain a byte string, %NULL will be returned.
+ * Activates the named application action.
*
- * Returns: the contents of the @attribute value as a byte string, or
- * %NULL otherwise.
+ * You may only call this function on action names that were
+ * returned from g_desktop_app_info_list_actions().
+ *
+ * Note that if the main entry of the desktop file indicates that the
+ * application supports startup notification, and @launch_context is
+ * non-%NULL, then startup notification will be used when activating the
+ * action (and as such, invocation of the action on the receiving side
+ * must signal the end of startup notification when it is completed).
+ * This is the expected behaviour of applications declaring additional
+ * actions, as per the desktop file specification.
+ *
+ * As with g_app_info_launch() there is no way to detect failures that
+ * occur while using this function.
+ *
+ * Since: 2.38
*/
/**
- * g_file_info_get_attribute_data:
- * @info: a #GFileInfo
- * @attribute: a file attribute key
- * @type: (out) (optional): return location for the attribute type, or %NULL
- * @value_pp: (out) (optional) (not nullable): return location for the
- * attribute value, or %NULL; the attribute value will not be %NULL
- * @status: (out) (optional): return location for the attribute status, or %NULL
+ * g_desktop_app_info_launch_uris_as_manager:
+ * @appinfo: a #GDesktopAppInfo
+ * @uris: (element-type utf8): List of URIs
+ * @launch_context: (nullable): a #GAppLaunchContext
+ * @spawn_flags: #GSpawnFlags, used for each process
+ * @user_setup: (scope async) (nullable): a #GSpawnChildSetupFunc, used once
+ * for each process.
+ * @user_setup_data: (closure user_setup) (nullable): User data for @user_setup
+ * @pid_callback: (scope call) (nullable): Callback for child processes
+ * @pid_callback_data: (closure pid_callback) (nullable): User data for @callback
+ * @error: return location for a #GError, or %NULL
*
- * Gets the attribute type, value and status for an attribute key.
+ * This function performs the equivalent of g_app_info_launch_uris(),
+ * but is intended primarily for operating system components that
+ * launch applications. Ordinary applications should use
+ * g_app_info_launch_uris().
*
- * Returns: (transfer none): %TRUE if @info has an attribute named @attribute,
- * %FALSE otherwise.
+ * If the application is launched via GSpawn, then @spawn_flags, @user_setup
+ * and @user_setup_data are used for the call to g_spawn_async().
+ * Additionally, @pid_callback (with @pid_callback_data) will be called to
+ * inform about the PID of the created process. See g_spawn_async_with_pipes()
+ * for information on certain parameter conditions that can enable an
+ * optimized posix_spawn() codepath to be used.
+ *
+ * If application launching occurs via some other mechanism (eg: D-Bus
+ * activation) then @spawn_flags, @user_setup, @user_setup_data,
+ * @pid_callback and @pid_callback_data are ignored.
+ *
+ * Returns: %TRUE on successful launch, %FALSE otherwise.
*/
/**
- * g_file_info_get_attribute_int32:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_desktop_app_info_launch_uris_as_manager_with_fds:
+ * @appinfo: a #GDesktopAppInfo
+ * @uris: (element-type utf8): List of URIs
+ * @launch_context: (nullable): a #GAppLaunchContext
+ * @spawn_flags: #GSpawnFlags, used for each process
+ * @user_setup: (scope async) (nullable): a #GSpawnChildSetupFunc, used once
+ * for each process.
+ * @user_setup_data: (closure user_setup) (nullable): User data for @user_setup
+ * @pid_callback: (scope call) (nullable): Callback for child processes
+ * @pid_callback_data: (closure pid_callback) (nullable): User data for @callback
+ * @stdin_fd: file descriptor to use for child's stdin, or -1
+ * @stdout_fd: file descriptor to use for child's stdout, or -1
+ * @stderr_fd: file descriptor to use for child's stderr, or -1
+ * @error: return location for a #GError, or %NULL
*
- * Gets a signed 32-bit integer contained within the attribute. If the
- * attribute does not contain a signed 32-bit integer, or is invalid,
- * 0 will be returned.
+ * Equivalent to g_desktop_app_info_launch_uris_as_manager() but allows
+ * you to pass in file descriptors for the stdin, stdout and stderr streams
+ * of the launched process.
*
- * Returns: a signed 32-bit integer from the attribute.
+ * If application launching occurs via some non-spawn mechanism (e.g. D-Bus
+ * activation) then @stdin_fd, @stdout_fd and @stderr_fd are ignored.
+ *
+ * Returns: %TRUE on successful launch, %FALSE otherwise.
+ * Since: 2.58
*/
/**
- * g_file_info_get_attribute_int64:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_desktop_app_info_list_actions:
+ * @info: a #GDesktopAppInfo
*
- * Gets a signed 64-bit integer contained within the attribute. If the
- * attribute does not contain an signed 64-bit integer, or is invalid,
- * 0 will be returned.
+ * Returns the list of "additional application actions" supported on the
+ * desktop file, as per the desktop file specification.
*
- * Returns: a signed 64-bit integer from the attribute.
+ * As per the specification, this is the list of actions that are
+ * explicitly listed in the "Actions" key of the [Desktop Entry] group.
+ *
+ * Returns: (array zero-terminated=1) (element-type utf8) (transfer none): a list of strings, always non-%NULL
+ * Since: 2.38
*/
/**
- * g_file_info_get_attribute_object:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_desktop_app_info_lookup_get_default_for_uri_scheme:
+ * @lookup: a #GDesktopAppInfoLookup
+ * @uri_scheme: a string containing a URI scheme.
*
- * Gets the value of a #GObject attribute. If the attribute does
- * not contain a #GObject, %NULL will be returned.
+ * Gets the default application for launching applications
+ * using this URI scheme for a particular GDesktopAppInfoLookup
+ * implementation.
*
- * Returns: (transfer none): a #GObject associated with the given @attribute, or
- * %NULL otherwise.
+ * The GDesktopAppInfoLookup interface and this function is used
+ * to implement g_app_info_get_default_for_uri_scheme() backends
+ * in a GIO module. There is no reason for applications to use it
+ * directly. Applications should use g_app_info_get_default_for_uri_scheme().
+ *
+ * Returns: (transfer full): #GAppInfo for given @uri_scheme or %NULL on error.
+ * Deprecated: The #GDesktopAppInfoLookup interface is deprecated and unused by gio.
*/
/**
- * g_file_info_get_attribute_status:
- * @info: a #GFileInfo
- * @attribute: a file attribute key
+ * g_desktop_app_info_new:
+ * @desktop_id: the desktop file id
*
- * Gets the attribute status for an attribute key.
+ * Creates a new #GDesktopAppInfo based on a desktop file id.
*
- * Returns: a #GFileAttributeStatus for the given @attribute, or
- * %G_FILE_ATTRIBUTE_STATUS_UNSET if the key is invalid.
+ * A desktop file id is the basename of the desktop file, including the
+ * .desktop extension. GIO is looking for a desktop file with this name
+ * in the `applications` subdirectories of the XDG
+ * data directories (i.e. the directories specified in the `XDG_DATA_HOME`
+ * and `XDG_DATA_DIRS` environment variables). GIO also supports the
+ * prefix-to-subdirectory mapping that is described in the
+ * [Menu Spec](http://standards.freedesktop.org/menu-spec/latest/)
+ * (i.e. a desktop id of kde-foo.desktop will match
+ * `/usr/share/applications/kde/foo.desktop`).
+ *
+ * Returns: (nullable): a new #GDesktopAppInfo, or %NULL if no desktop
+ * file with that id exists.
*/
/**
- * g_file_info_get_attribute_string:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_desktop_app_info_new_from_filename:
+ * @filename: (type filename): the path of a desktop file, in the GLib
+ * filename encoding
*
- * Gets the value of a string attribute. If the attribute does
- * not contain a string, %NULL will be returned.
+ * Creates a new #GDesktopAppInfo.
*
- * Returns: the contents of the @attribute value as a UTF-8 string, or
- * %NULL otherwise.
+ * Returns: (nullable): a new #GDesktopAppInfo or %NULL on error.
*/
/**
- * g_file_info_get_attribute_stringv:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_desktop_app_info_new_from_keyfile:
+ * @key_file: an opened #GKeyFile
*
- * Gets the value of a stringv attribute. If the attribute does
- * not contain a stringv, %NULL will be returned.
+ * Creates a new #GDesktopAppInfo.
*
- * Returns: (transfer none): the contents of the @attribute value as a stringv, or
- * %NULL otherwise. Do not free. These returned strings are UTF-8.
- * Since: 2.22
+ * Returns: (nullable): a new #GDesktopAppInfo or %NULL on error.
+ * Since: 2.18
*/
/**
- * g_file_info_get_attribute_type:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_desktop_app_info_search:
+ * @search_string: the search string to use
*
- * Gets the attribute type for an attribute key.
+ * Searches desktop files for ones that match @search_string.
*
- * Returns: a #GFileAttributeType for the given @attribute, or
- * %G_FILE_ATTRIBUTE_TYPE_INVALID if the key is not set.
+ * The return value is an array of strvs. Each strv contains a list of
+ * applications that matched @search_string with an equal score. The
+ * outer list is sorted by score so that the first strv contains the
+ * best-matching applications, and so on.
+ * The algorithm for determining matches is undefined and may change at
+ * any time.
+ *
+ * Returns: (array zero-terminated=1) (element-type GStrv) (transfer full): a
+ * list of strvs. Free each item with g_strfreev() and free the outer
+ * list with g_free().
*/
/**
- * g_file_info_get_attribute_uint32:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_desktop_app_info_set_desktop_env:
+ * @desktop_env: a string specifying what desktop this is
*
- * Gets an unsigned 32-bit integer contained within the attribute. If the
- * attribute does not contain an unsigned 32-bit integer, or is invalid,
- * 0 will be returned.
+ * Sets the name of the desktop that the application is running in.
+ * This is used by g_app_info_should_show() and
+ * g_desktop_app_info_get_show_in() to evaluate the
+ * `OnlyShowIn` and `NotShowIn`
+ * desktop entry fields.
*
- * Returns: an unsigned 32-bit integer from the attribute.
+ * Should be called only once; subsequent calls are ignored.
+ *
+ * Deprecated: 2.42: do not use this API. Since 2.42 the value of the
+ * `XDG_CURRENT_DESKTOP` environment variable will be used.
*/
/**
- * g_file_info_get_attribute_uint64:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_drive_can_eject:
+ * @drive: a #GDrive.
*
- * Gets a unsigned 64-bit integer contained within the attribute. If the
- * attribute does not contain an unsigned 64-bit integer, or is invalid,
- * 0 will be returned.
+ * Checks if a drive can be ejected.
*
- * Returns: a unsigned 64-bit integer from the attribute.
+ * Returns: %TRUE if the @drive can be ejected, %FALSE otherwise.
*/
/**
- * g_file_info_get_content_type:
- * @info: a #GFileInfo.
+ * g_drive_can_poll_for_media:
+ * @drive: a #GDrive.
*
- * Gets the file's content type.
+ * Checks if a drive can be polled for media changes.
*
- * Returns: a string containing the file's content type.
+ * Returns: %TRUE if the @drive can be polled for media changes,
+ * %FALSE otherwise.
*/
/**
- * g_file_info_get_deletion_date:
- * @info: a #GFileInfo.
+ * g_drive_can_start:
+ * @drive: a #GDrive.
*
- * Returns the #GDateTime representing the deletion date of the file, as
- * available in G_FILE_ATTRIBUTE_TRASH_DELETION_DATE. If the
- * G_FILE_ATTRIBUTE_TRASH_DELETION_DATE attribute is unset, %NULL is returned.
+ * Checks if a drive can be started.
*
- * Returns: a #GDateTime, or %NULL.
- * Since: 2.36
+ * Returns: %TRUE if the @drive can be started, %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_file_info_get_display_name:
- * @info: a #GFileInfo.
+ * g_drive_can_start_degraded:
+ * @drive: a #GDrive.
*
- * Gets a display name for a file.
+ * Checks if a drive can be started degraded.
*
- * Returns: a string containing the display name.
+ * Returns: %TRUE if the @drive can be started degraded, %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_file_info_get_edit_name:
- * @info: a #GFileInfo.
+ * g_drive_can_stop:
+ * @drive: a #GDrive.
*
- * Gets the edit name for a file.
+ * Checks if a drive can be stopped.
*
- * Returns: a string containing the edit name.
+ * Returns: %TRUE if the @drive can be stopped, %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_file_info_get_etag:
- * @info: a #GFileInfo.
+ * g_drive_eject:
+ * @drive: a #GDrive.
+ * @flags: flags affecting the unmount if required for eject
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
+ * @user_data: user data to pass to @callback
*
- * Gets the [entity tag][gfile-etag] for a given
- * #GFileInfo. See %G_FILE_ATTRIBUTE_ETAG_VALUE.
+ * Asynchronously ejects a drive.
*
- * Returns: a string containing the value of the "etag:value" attribute.
+ * When the operation is finished, @callback will be called.
+ * You can then call g_drive_eject_finish() to obtain the
+ * result of the operation.
+ *
+ * Deprecated: 2.22: Use g_drive_eject_with_operation() instead.
*/
/**
- * g_file_info_get_file_type:
- * @info: a #GFileInfo.
+ * g_drive_eject_finish:
+ * @drive: a #GDrive.
+ * @result: a #GAsyncResult.
+ * @error: a #GError, or %NULL
*
- * Gets a file's type (whether it is a regular file, symlink, etc).
- * This is different from the file's content type, see g_file_info_get_content_type().
+ * Finishes ejecting a drive.
*
- * Returns: a #GFileType for the given file.
+ * Returns: %TRUE if the drive has been ejected successfully,
+ * %FALSE otherwise.
+ * Deprecated: 2.22: Use g_drive_eject_with_operation_finish() instead.
*/
/**
- * g_file_info_get_icon:
- * @info: a #GFileInfo.
+ * g_drive_eject_with_operation:
+ * @drive: a #GDrive.
+ * @flags: flags affecting the unmount if required for eject
+ * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
+ * @user_data: user data passed to @callback.
*
- * Gets the icon for a file.
+ * Ejects a drive. This is an asynchronous operation, and is
+ * finished by calling g_drive_eject_with_operation_finish() with the @drive
+ * and #GAsyncResult data returned in the @callback.
*
- * Returns: (transfer none): #GIcon for the given @info.
+ * Since: 2.22
*/
/**
- * g_file_info_get_is_backup:
- * @info: a #GFileInfo.
+ * g_drive_eject_with_operation_finish:
+ * @drive: a #GDrive.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Checks if a file is a backup file.
+ * Finishes ejecting a drive. If any errors occurred during the operation,
+ * @error will be set to contain the errors and %FALSE will be returned.
*
- * Returns: %TRUE if file is a backup file, %FALSE otherwise.
+ * Returns: %TRUE if the drive was successfully ejected. %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_file_info_get_is_hidden:
- * @info: a #GFileInfo.
+ * g_drive_enumerate_identifiers:
+ * @drive: a #GDrive
*
- * Checks if a file is hidden.
+ * Gets the kinds of identifiers that @drive has.
+ * Use g_drive_get_identifier() to obtain the identifiers
+ * themselves.
*
- * Returns: %TRUE if the file is a hidden file, %FALSE otherwise.
+ * Returns: (transfer full) (array zero-terminated=1): a %NULL-terminated
+ * array of strings containing kinds of identifiers. Use g_strfreev()
+ * to free.
*/
/**
- * g_file_info_get_is_symlink:
- * @info: a #GFileInfo.
+ * g_drive_get_icon:
+ * @drive: a #GDrive.
*
- * Checks if a file is a symlink.
+ * Gets the icon for @drive.
*
- * Returns: %TRUE if the given @info is a symlink.
+ * Returns: (transfer full): #GIcon for the @drive.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_file_info_get_modification_time:
- * @info: a #GFileInfo.
- * @result: (out caller-allocates): a #GTimeVal.
+ * g_drive_get_identifier:
+ * @drive: a #GDrive
+ * @kind: the kind of identifier to return
*
- * Gets the modification time of the current @info and sets it
- * in @result.
+ * Gets the identifier of the given kind for @drive. The only
+ * identifier currently available is
+ * #G_DRIVE_IDENTIFIER_KIND_UNIX_DEVICE.
+ *
+ * Returns: (nullable) (transfer full): a newly allocated string containing the
+ * requested identifier, or %NULL if the #GDrive
+ * doesn't have this kind of identifier.
*/
/**
- * g_file_info_get_name:
- * @info: a #GFileInfo.
+ * g_drive_get_name:
+ * @drive: a #GDrive.
*
- * Gets the name for a file.
+ * Gets the name of @drive.
*
- * Returns: (type filename): a string containing the file name.
+ * Returns: a string containing @drive's name. The returned
+ * string should be freed when no longer needed.
*/
/**
- * g_file_info_get_size:
- * @info: a #GFileInfo.
+ * g_drive_get_sort_key:
+ * @drive: A #GDrive.
*
- * Gets the file's size.
+ * Gets the sort key for @drive, if any.
*
- * Returns: a #goffset containing the file's size.
+ * Returns: (nullable): Sorting key for @drive or %NULL if no such key is available.
+ * Since: 2.32
*/
/**
- * g_file_info_get_sort_order:
- * @info: a #GFileInfo.
+ * g_drive_get_start_stop_type:
+ * @drive: a #GDrive.
*
- * Gets the value of the sort_order attribute from the #GFileInfo.
- * See %G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER.
+ * Gets a hint about how a drive can be started/stopped.
*
- * Returns: a #gint32 containing the value of the "standard::sort_order" attribute.
+ * Returns: A value from the #GDriveStartStopType enumeration.
+ * Since: 2.22
*/
/**
- * g_file_info_get_symbolic_icon:
- * @info: a #GFileInfo.
+ * g_drive_get_symbolic_icon:
+ * @drive: a #GDrive.
*
- * Gets the symbolic icon for a file.
+ * Gets the icon for @drive.
*
- * Returns: (transfer none): #GIcon for the given @info.
+ * Returns: (transfer full): symbolic #GIcon for the @drive.
+ * Free the returned object with g_object_unref().
* Since: 2.34
*/
/**
- * g_file_info_get_symlink_target:
- * @info: a #GFileInfo.
+ * g_drive_get_volumes:
+ * @drive: a #GDrive.
*
- * Gets the symlink target for a given #GFileInfo.
+ * Get a list of mountable volumes for @drive.
*
- * Returns: a string containing the symlink target.
+ * The returned list should be freed with g_list_free(), after
+ * its elements have been unreffed with g_object_unref().
+ *
+ * Returns: (element-type GVolume) (transfer full): #GList containing any #GVolume objects on the given @drive.
*/
/**
- * g_file_info_has_attribute:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_drive_has_media:
+ * @drive: a #GDrive.
*
- * Checks if a file info structure has an attribute named @attribute.
+ * Checks if the @drive has media. Note that the OS may not be polling
+ * the drive for media changes; see g_drive_is_media_check_automatic()
+ * for more details.
*
- * Returns: %TRUE if @Ginfo has an attribute named @attribute,
- * %FALSE otherwise.
+ * Returns: %TRUE if @drive has media, %FALSE otherwise.
*/
/**
- * g_file_info_has_namespace:
- * @info: a #GFileInfo.
- * @name_space: a file attribute namespace.
+ * g_drive_has_volumes:
+ * @drive: a #GDrive.
*
- * Checks if a file info structure has an attribute in the
- * specified @name_space.
+ * Check if @drive has any mountable volumes.
*
- * Returns: %TRUE if @Ginfo has an attribute in @name_space,
- * %FALSE otherwise.
- * Since: 2.22
+ * Returns: %TRUE if the @drive contains volumes, %FALSE otherwise.
*/
/**
- * g_file_info_list_attributes:
- * @info: a #GFileInfo.
- * @name_space: (nullable): a file attribute key's namespace, or %NULL to list
- * all attributes.
+ * g_drive_is_media_check_automatic:
+ * @drive: a #GDrive.
*
- * Lists the file info structure's attributes.
+ * Checks if @drive is capabable of automatically detecting media changes.
*
- * Returns: (nullable) (array zero-terminated=1) (transfer full): a
- * null-terminated array of strings of all of the possible attribute
- * types for the given @name_space, or %NULL on error.
+ * Returns: %TRUE if the @drive is capabable of automatically detecting
+ * media changes, %FALSE otherwise.
*/
/**
- * g_file_info_new:
+ * g_drive_is_media_removable:
+ * @drive: a #GDrive.
*
- * Creates a new file info structure.
+ * Checks if the @drive supports removable media.
*
- * Returns: a #GFileInfo.
+ * Returns: %TRUE if @drive supports removable media, %FALSE otherwise.
*/
/**
- * g_file_info_remove_attribute:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
+ * g_drive_is_removable:
+ * @drive: a #GDrive.
*
- * Removes all cases of @attribute from @info if it exists.
+ * Checks if the #GDrive and/or its media is considered removable by the user.
+ * See g_drive_is_media_removable().
+ *
+ * Returns: %TRUE if @drive and/or its media is considered removable, %FALSE otherwise.
+ * Since: 2.50
*/
/**
- * g_file_info_set_attribute:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
- * @type: a #GFileAttributeType
- * @value_p: (not nullable): pointer to the value
+ * g_drive_poll_for_media:
+ * @drive: a #GDrive.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
+ * @user_data: user data to pass to @callback
*
- * Sets the @attribute to contain the given value, if possible. To unset the
- * attribute, use %G_FILE_ATTRIBUTE_TYPE_INVALID for @type.
+ * Asynchronously polls @drive to see if media has been inserted or removed.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_drive_poll_for_media_finish() to obtain the
+ * result of the operation.
*/
/**
- * g_file_info_set_attribute_boolean:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
- * @attr_value: a boolean value.
+ * g_drive_poll_for_media_finish:
+ * @drive: a #GDrive.
+ * @result: a #GAsyncResult.
+ * @error: a #GError, or %NULL
*
- * Sets the @attribute to contain the given @attr_value,
- * if possible.
+ * Finishes an operation started with g_drive_poll_for_media() on a drive.
+ *
+ * Returns: %TRUE if the drive has been poll_for_mediaed successfully,
+ * %FALSE otherwise.
*/
/**
- * g_file_info_set_attribute_byte_string:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
- * @attr_value: a byte string.
+ * g_drive_start:
+ * @drive: a #GDrive.
+ * @flags: flags affecting the start operation.
+ * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
+ * @user_data: user data to pass to @callback
*
- * Sets the @attribute to contain the given @attr_value,
- * if possible.
+ * Asynchronously starts a drive.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_drive_start_finish() to obtain the
+ * result of the operation.
+ *
+ * Since: 2.22
*/
/**
- * g_file_info_set_attribute_int32:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
- * @attr_value: a signed 32-bit integer
+ * g_drive_start_finish:
+ * @drive: a #GDrive.
+ * @result: a #GAsyncResult.
+ * @error: a #GError, or %NULL
*
- * Sets the @attribute to contain the given @attr_value,
- * if possible.
+ * Finishes starting a drive.
+ *
+ * Returns: %TRUE if the drive has been started successfully,
+ * %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_file_info_set_attribute_int64:
- * @info: a #GFileInfo.
- * @attribute: attribute name to set.
- * @attr_value: int64 value to set attribute to.
+ * g_drive_stop:
+ * @drive: a #GDrive.
+ * @flags: flags affecting the unmount if required for stopping.
+ * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
+ * @user_data: user data to pass to @callback
*
- * Sets the @attribute to contain the given @attr_value,
- * if possible.
+ * Asynchronously stops a drive.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_drive_stop_finish() to obtain the
+ * result of the operation.
+ *
+ * Since: 2.22
*/
/**
- * g_file_info_set_attribute_mask:
- * @info: a #GFileInfo.
- * @mask: a #GFileAttributeMatcher.
+ * g_drive_stop_finish:
+ * @drive: a #GDrive.
+ * @result: a #GAsyncResult.
+ * @error: a #GError, or %NULL
*
- * Sets @mask on @info to match specific attribute types.
+ * Finishes stopping a drive.
+ *
+ * Returns: %TRUE if the drive has been stopped successfully,
+ * %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_file_info_set_attribute_object:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
- * @attr_value: a #GObject.
+ * g_dtls_client_connection_get_accepted_cas:
+ * @conn: the #GDtlsClientConnection
*
- * Sets the @attribute to contain the given @attr_value,
- * if possible.
+ * Gets the list of distinguished names of the Certificate Authorities
+ * that the server will accept certificates from. This will be set
+ * during the TLS handshake if the server requests a certificate.
+ * Otherwise, it will be %NULL.
+ *
+ * Each item in the list is a #GByteArray which contains the complete
+ * subject DN of the certificate authority.
+ *
+ * Returns: (element-type GByteArray) (transfer full): the list of
+ * CA DNs. You should unref each element with g_byte_array_unref() and then
+ * the free the list with g_list_free().
+ * Since: 2.48
*/
/**
- * g_file_info_set_attribute_status:
- * @info: a #GFileInfo
- * @attribute: a file attribute key
- * @status: a #GFileAttributeStatus
+ * g_dtls_client_connection_get_server_identity:
+ * @conn: the #GDtlsClientConnection
*
- * Sets the attribute status for an attribute key. This is only
- * needed by external code that implement g_file_set_attributes_from_info()
- * or similar functions.
+ * Gets @conn's expected server identity
*
- * The attribute must exist in @info for this to work. Otherwise %FALSE
- * is returned and @info is unchanged.
+ * Returns: (transfer none): a #GSocketConnectable describing the
+ * expected server identity, or %NULL if the expected identity is not
+ * known.
+ * Since: 2.48
+ */
+
+
+/**
+ * g_dtls_client_connection_get_validation_flags:
+ * @conn: the #GDtlsClientConnection
*
- * Returns: %TRUE if the status was changed, %FALSE if the key was not set.
- * Since: 2.22
+ * Gets @conn's validation flags
+ *
+ * Returns: the validation flags
+ * Since: 2.48
*/
/**
- * g_file_info_set_attribute_string:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
- * @attr_value: a UTF-8 string.
+ * g_dtls_client_connection_new:
+ * @base_socket: the #GDatagramBased to wrap
+ * @server_identity: (nullable): the expected identity of the server
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Sets the @attribute to contain the given @attr_value,
- * if possible.
+ * Creates a new #GDtlsClientConnection wrapping @base_socket which is
+ * assumed to communicate with the server identified by @server_identity.
+ *
+ * Returns: (transfer full) (type GDtlsClientConnection): the new
+ * #GDtlsClientConnection, or %NULL on error
+ * Since: 2.48
*/
/**
- * g_file_info_set_attribute_stringv:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key
- * @attr_value: (array) (element-type utf8): a %NULL terminated array of UTF-8 strings.
+ * g_dtls_client_connection_set_server_identity:
+ * @conn: the #GDtlsClientConnection
+ * @identity: a #GSocketConnectable describing the expected server identity
*
- * Sets the @attribute to contain the given @attr_value,
- * if possible.
+ * Sets @conn's expected server identity, which is used both to tell
+ * servers on virtual hosts which certificate to present, and also
+ * to let @conn know what name to look for in the certificate when
+ * performing %G_TLS_CERTIFICATE_BAD_IDENTITY validation, if enabled.
*
- * Sinze: 2.22
+ * Since: 2.48
*/
/**
- * g_file_info_set_attribute_uint32:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
- * @attr_value: an unsigned 32-bit integer.
+ * g_dtls_client_connection_set_validation_flags:
+ * @conn: the #GDtlsClientConnection
+ * @flags: the #GTlsCertificateFlags to use
*
- * Sets the @attribute to contain the given @attr_value,
- * if possible.
+ * Sets @conn's validation flags, to override the default set of
+ * checks performed when validating a server certificate. By default,
+ * %G_TLS_CERTIFICATE_VALIDATE_ALL is used.
+ *
+ * Since: 2.48
*/
/**
- * g_file_info_set_attribute_uint64:
- * @info: a #GFileInfo.
- * @attribute: a file attribute key.
- * @attr_value: an unsigned 64-bit integer.
+ * g_dtls_connection_close:
+ * @conn: a #GDtlsConnection
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a #GError, or %NULL
*
- * Sets the @attribute to contain the given @attr_value,
- * if possible.
+ * Close the DTLS connection. This is equivalent to calling
+ * g_dtls_connection_shutdown() to shut down both sides of the connection.
+ *
+ * Closing a #GDtlsConnection waits for all buffered but untransmitted data to
+ * be sent before it completes. It then sends a `close_notify` DTLS alert to the
+ * peer and may wait for a `close_notify` to be received from the peer. It does
+ * not close the underlying #GDtlsConnection:base-socket; that must be closed
+ * separately.
+ *
+ * Once @conn is closed, all other operations will return %G_IO_ERROR_CLOSED.
+ * Closing a #GDtlsConnection multiple times will not return an error.
+ *
+ * #GDtlsConnections will be automatically closed when the last reference is
+ * dropped, but you might want to call this function to make sure resources are
+ * released as early as possible.
+ *
+ * If @cancellable is cancelled, the #GDtlsConnection may be left
+ * partially-closed and any pending untransmitted data may be lost. Call
+ * g_dtls_connection_close() again to complete closing the #GDtlsConnection.
+ *
+ * Returns: %TRUE on success, %FALSE otherwise
+ * Since: 2.48
*/
/**
- * g_file_info_set_content_type:
- * @info: a #GFileInfo.
- * @content_type: a content type. See [GContentType][gio-GContentType]
+ * g_dtls_connection_close_async:
+ * @conn: a #GDtlsConnection
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: callback to call when the close operation is complete
+ * @user_data: the data to pass to the callback function
*
- * Sets the content type attribute for a given #GFileInfo.
- * See %G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE.
+ * Asynchronously close the DTLS connection. See g_dtls_connection_close() for
+ * more information.
+ *
+ * Since: 2.48
*/
/**
- * g_file_info_set_display_name:
- * @info: a #GFileInfo.
- * @display_name: a string containing a display name.
+ * g_dtls_connection_close_finish:
+ * @conn: a #GDtlsConnection
+ * @result: a #GAsyncResult
+ * @error: a #GError pointer, or %NULL
*
- * Sets the display name for the current #GFileInfo.
- * See %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME.
+ * Finish an asynchronous TLS close operation. See g_dtls_connection_close()
+ * for more information.
+ *
+ * Returns: %TRUE on success, %FALSE on failure, in which
+ * case @error will be set
+ * Since: 2.48
*/
/**
- * g_file_info_set_edit_name:
- * @info: a #GFileInfo.
- * @edit_name: a string containing an edit name.
+ * g_dtls_connection_emit_accept_certificate:
+ * @conn: a #GDtlsConnection
+ * @peer_cert: the peer's #GTlsCertificate
+ * @errors: the problems with @peer_cert
*
- * Sets the edit name for the current file.
- * See %G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME.
+ * Used by #GDtlsConnection implementations to emit the
+ * #GDtlsConnection::accept-certificate signal.
+ *
+ * Returns: %TRUE if one of the signal handlers has returned
+ * %TRUE to accept @peer_cert
+ * Since: 2.48
*/
/**
- * g_file_info_set_file_type:
- * @info: a #GFileInfo.
- * @type: a #GFileType.
+ * g_dtls_connection_get_certificate:
+ * @conn: a #GDtlsConnection
*
- * Sets the file type in a #GFileInfo to @type.
- * See %G_FILE_ATTRIBUTE_STANDARD_TYPE.
+ * Gets @conn's certificate, as set by
+ * g_dtls_connection_set_certificate().
+ *
+ * Returns: (transfer none): @conn's certificate, or %NULL
+ * Since: 2.48
*/
/**
- * g_file_info_set_icon:
- * @info: a #GFileInfo.
- * @icon: a #GIcon.
+ * g_dtls_connection_get_database:
+ * @conn: a #GDtlsConnection
*
- * Sets the icon for a given #GFileInfo.
- * See %G_FILE_ATTRIBUTE_STANDARD_ICON.
+ * Gets the certificate database that @conn uses to verify
+ * peer certificates. See g_dtls_connection_set_database().
+ *
+ * Returns: (transfer none): the certificate database that @conn uses or %NULL
+ * Since: 2.48
*/
/**
- * g_file_info_set_is_hidden:
- * @info: a #GFileInfo.
- * @is_hidden: a #gboolean.
+ * g_dtls_connection_get_interaction:
+ * @conn: a connection
*
- * Sets the "is_hidden" attribute in a #GFileInfo according to @is_hidden.
- * See %G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN.
+ * Get the object that will be used to interact with the user. It will be used
+ * for things like prompting the user for passwords. If %NULL is returned, then
+ * no user interaction will occur for this connection.
+ *
+ * Returns: (transfer none): The interaction object.
+ * Since: 2.48
*/
/**
- * g_file_info_set_is_symlink:
- * @info: a #GFileInfo.
- * @is_symlink: a #gboolean.
+ * g_dtls_connection_get_peer_certificate:
+ * @conn: a #GDtlsConnection
*
- * Sets the "is_symlink" attribute in a #GFileInfo according to @is_symlink.
- * See %G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK.
+ * Gets @conn's peer's certificate after the handshake has completed.
+ * (It is not set during the emission of
+ * #GDtlsConnection::accept-certificate.)
+ *
+ * Returns: (transfer none): @conn's peer's certificate, or %NULL
+ * Since: 2.48
*/
/**
- * g_file_info_set_modification_time:
- * @info: a #GFileInfo.
- * @mtime: a #GTimeVal.
+ * g_dtls_connection_get_peer_certificate_errors:
+ * @conn: a #GDtlsConnection
*
- * Sets the %G_FILE_ATTRIBUTE_TIME_MODIFIED attribute in the file
- * info to the given time value.
+ * Gets the errors associated with validating @conn's peer's
+ * certificate, after the handshake has completed. (It is not set
+ * during the emission of #GDtlsConnection::accept-certificate.)
+ *
+ * Returns: @conn's peer's certificate errors
+ * Since: 2.48
*/
/**
- * g_file_info_set_name:
- * @info: a #GFileInfo.
- * @name: (type filename): a string containing a name.
+ * g_dtls_connection_get_rehandshake_mode:
+ * @conn: a #GDtlsConnection
*
- * Sets the name attribute for the current #GFileInfo.
- * See %G_FILE_ATTRIBUTE_STANDARD_NAME.
+ * Gets @conn rehandshaking mode. See
+ * g_dtls_connection_set_rehandshake_mode() for details.
+ *
+ * Returns: @conn's rehandshaking mode
+ * Since: 2.48
*/
/**
- * g_file_info_set_size:
- * @info: a #GFileInfo.
- * @size: a #goffset containing the file's size.
+ * g_dtls_connection_get_require_close_notify:
+ * @conn: a #GDtlsConnection
*
- * Sets the %G_FILE_ATTRIBUTE_STANDARD_SIZE attribute in the file info
- * to the given size.
+ * Tests whether or not @conn expects a proper TLS close notification
+ * when the connection is closed. See
+ * g_dtls_connection_set_require_close_notify() for details.
+ *
+ * Returns: %TRUE if @conn requires a proper TLS close notification.
+ * Since: 2.48
*/
/**
- * g_file_info_set_sort_order:
- * @info: a #GFileInfo.
- * @sort_order: a sort order integer.
+ * g_dtls_connection_handshake:
+ * @conn: a #GDtlsConnection
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a #GError, or %NULL
*
- * Sets the sort order attribute in the file info structure. See
- * %G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER.
+ * Attempts a TLS handshake on @conn.
+ *
+ * On the client side, it is never necessary to call this method;
+ * although the connection needs to perform a handshake after
+ * connecting (or after sending a "STARTTLS"-type command) and may
+ * need to rehandshake later if the server requests it,
+ * #GDtlsConnection will handle this for you automatically when you try
+ * to send or receive data on the connection. However, you can call
+ * g_dtls_connection_handshake() manually if you want to know for sure
+ * whether the initial handshake succeeded or failed (as opposed to
+ * just immediately trying to write to @conn, in which
+ * case if it fails, it may not be possible to tell if it failed
+ * before or after completing the handshake).
+ *
+ * Likewise, on the server side, although a handshake is necessary at
+ * the beginning of the communication, you do not need to call this
+ * function explicitly unless you want clearer error reporting.
+ * However, you may call g_dtls_connection_handshake() later on to
+ * renegotiate parameters (encryption methods, etc) with the client.
+ *
+ * #GDtlsConnection::accept_certificate may be emitted during the
+ * handshake.
+ *
+ * Returns: success or failure
+ * Since: 2.48
*/
/**
- * g_file_info_set_symbolic_icon:
- * @info: a #GFileInfo.
- * @icon: a #GIcon.
+ * g_dtls_connection_handshake_async:
+ * @conn: a #GDtlsConnection
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: callback to call when the handshake is complete
+ * @user_data: the data to pass to the callback function
*
- * Sets the symbolic icon for a given #GFileInfo.
- * See %G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON.
+ * Asynchronously performs a TLS handshake on @conn. See
+ * g_dtls_connection_handshake() for more information.
*
- * Since: 2.34
+ * Since: 2.48
*/
/**
- * g_file_info_set_symlink_target:
- * @info: a #GFileInfo.
- * @symlink_target: a static string containing a path to a symlink target.
+ * g_dtls_connection_handshake_finish:
+ * @conn: a #GDtlsConnection
+ * @result: a #GAsyncResult.
+ * @error: a #GError pointer, or %NULL
*
- * Sets the %G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET attribute in the file info
- * to the given symlink target.
+ * Finish an asynchronous TLS handshake operation. See
+ * g_dtls_connection_handshake() for more information.
+ *
+ * Returns: %TRUE on success, %FALSE on failure, in which
+ * case @error will be set.
+ * Since: 2.48
*/
/**
- * g_file_info_unset_attribute_mask:
- * @info: #GFileInfo.
+ * g_dtls_connection_set_certificate:
+ * @conn: a #GDtlsConnection
+ * @certificate: the certificate to use for @conn
*
- * Unsets a mask set by g_file_info_set_attribute_mask(), if one
- * is set.
+ * This sets the certificate that @conn will present to its peer
+ * during the TLS handshake. For a #GDtlsServerConnection, it is
+ * mandatory to set this, and that will normally be done at construct
+ * time.
+ *
+ * For a #GDtlsClientConnection, this is optional. If a handshake fails
+ * with %G_TLS_ERROR_CERTIFICATE_REQUIRED, that means that the server
+ * requires a certificate, and if you try connecting again, you should
+ * call this method first. You can call
+ * g_dtls_client_connection_get_accepted_cas() on the failed connection
+ * to get a list of Certificate Authorities that the server will
+ * accept certificates from.
+ *
+ * (It is also possible that a server will allow the connection with
+ * or without a certificate; in that case, if you don't provide a
+ * certificate, you can tell that the server requested one by the fact
+ * that g_dtls_client_connection_get_accepted_cas() will return
+ * non-%NULL.)
+ *
+ * Since: 2.48
*/
/**
- * g_file_input_stream_query_info:
- * @stream: a #GFileInputStream.
- * @attributes: a file attribute query string.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_dtls_connection_set_database:
+ * @conn: a #GDtlsConnection
+ * @database: a #GTlsDatabase
*
- * Queries a file input stream the given @attributes. This function blocks
- * while querying the stream. For the asynchronous (non-blocking) version
- * of this function, see g_file_input_stream_query_info_async(). While the
- * stream is blocked, the stream will set the pending flag internally, and
- * any other operations on the stream will fail with %G_IO_ERROR_PENDING.
+ * Sets the certificate database that is used to verify peer certificates.
+ * This is set to the default database by default. See
+ * g_tls_backend_get_default_database(). If set to %NULL, then
+ * peer certificate validation will always set the
+ * %G_TLS_CERTIFICATE_UNKNOWN_CA error (meaning
+ * #GDtlsConnection::accept-certificate will always be emitted on
+ * client-side connections, unless that bit is not set in
+ * #GDtlsClientConnection:validation-flags).
*
- * Returns: (transfer full): a #GFileInfo, or %NULL on error.
+ * Since: 2.48
*/
/**
- * g_file_input_stream_query_info_async:
- * @stream: a #GFileInputStream.
- * @attributes: a file attribute query string.
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_dtls_connection_set_interaction:
+ * @conn: a connection
+ * @interaction: (nullable): an interaction object, or %NULL
*
- * Queries the stream information asynchronously.
- * When the operation is finished @callback will be called.
- * You can then call g_file_input_stream_query_info_finish()
- * to get the result of the operation.
+ * Set the object that will be used to interact with the user. It will be used
+ * for things like prompting the user for passwords.
*
- * For the synchronous version of this function,
- * see g_file_input_stream_query_info().
+ * The @interaction argument will normally be a derived subclass of
+ * #GTlsInteraction. %NULL can also be provided if no user interaction
+ * should occur for this connection.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be set
+ * Since: 2.48
*/
/**
- * g_file_input_stream_query_info_finish:
- * @stream: a #GFileInputStream.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring,
- * or %NULL to ignore.
+ * g_dtls_connection_set_rehandshake_mode:
+ * @conn: a #GDtlsConnection
+ * @mode: the rehandshaking mode
*
- * Finishes an asynchronous info query operation.
+ * Sets how @conn behaves with respect to rehandshaking requests.
*
- * Returns: (transfer full): #GFileInfo.
+ * %G_TLS_REHANDSHAKE_NEVER means that it will never agree to
+ * rehandshake after the initial handshake is complete. (For a client,
+ * this means it will refuse rehandshake requests from the server, and
+ * for a server, this means it will close the connection with an error
+ * if the client attempts to rehandshake.)
+ *
+ * %G_TLS_REHANDSHAKE_SAFELY means that the connection will allow a
+ * rehandshake only if the other end of the connection supports the
+ * TLS `renegotiation_info` extension. This is the default behavior,
+ * but means that rehandshaking will not work against older
+ * implementations that do not support that extension.
+ *
+ * %G_TLS_REHANDSHAKE_UNSAFELY means that the connection will allow
+ * rehandshaking even without the `renegotiation_info` extension. On
+ * the server side in particular, this is not recommended, since it
+ * leaves the server open to certain attacks. However, this mode is
+ * necessary if you need to allow renegotiation with older client
+ * software.
+ *
+ * Since: 2.48
*/
/**
- * g_file_io_stream_get_etag:
- * @stream: a #GFileIOStream.
+ * g_dtls_connection_set_require_close_notify:
+ * @conn: a #GDtlsConnection
+ * @require_close_notify: whether or not to require close notification
*
- * Gets the entity tag for the file when it has been written.
- * This must be called after the stream has been written
- * and closed, as the etag can change while writing.
+ * Sets whether or not @conn expects a proper TLS close notification
+ * before the connection is closed. If this is %TRUE (the default),
+ * then @conn will expect to receive a TLS close notification from its
+ * peer before the connection is closed, and will return a
+ * %G_TLS_ERROR_EOF error if the connection is closed without proper
+ * notification (since this may indicate a network error, or
+ * man-in-the-middle attack).
+ *
+ * In some protocols, the application will know whether or not the
+ * connection was closed cleanly based on application-level data
+ * (because the application-level data includes a length field, or is
+ * somehow self-delimiting); in this case, the close notify is
+ * redundant and may be omitted. You
+ * can use g_dtls_connection_set_require_close_notify() to tell @conn
+ * to allow an "unannounced" connection close, in which case the close
+ * will show up as a 0-length read, as in a non-TLS
+ * #GDatagramBased, and it is up to the application to check that
+ * the data has been fully received.
+ *
+ * Note that this only affects the behavior when the peer closes the
+ * connection; when the application calls g_dtls_connection_close_async() on
+ * @conn itself, this will send a close notification regardless of the
+ * setting of this property. If you explicitly want to do an unclean
+ * close, you can close @conn's #GDtlsConnection:base-socket rather
+ * than closing @conn itself.
*
- * Returns: the entity tag for the stream.
- * Since: 2.22
+ * Since: 2.48
*/
/**
- * g_file_io_stream_query_info:
- * @stream: a #GFileIOStream.
- * @attributes: a file attribute query string.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError, %NULL to ignore.
+ * g_dtls_connection_shutdown:
+ * @conn: a #GDtlsConnection
+ * @shutdown_read: %TRUE to stop reception of incoming datagrams
+ * @shutdown_write: %TRUE to stop sending outgoing datagrams
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a #GError, or %NULL
*
- * Queries a file io stream for the given @attributes.
- * This function blocks while querying the stream. For the asynchronous
- * version of this function, see g_file_io_stream_query_info_async().
- * While the stream is blocked, the stream will set the pending flag
- * internally, and any other operations on the stream will fail with
- * %G_IO_ERROR_PENDING.
+ * Shut down part or all of a DTLS connection.
*
- * Can fail if the stream was already closed (with @error being set to
- * %G_IO_ERROR_CLOSED), the stream has pending operations (with @error being
- * set to %G_IO_ERROR_PENDING), or if querying info is not supported for
- * the stream's interface (with @error being set to %G_IO_ERROR_NOT_SUPPORTED). I
- * all cases of failure, %NULL will be returned.
+ * If @shutdown_read is %TRUE then the receiving side of the connection is shut
+ * down, and further reading is disallowed. Subsequent calls to
+ * g_datagram_based_receive_messages() will return %G_IO_ERROR_CLOSED.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %NULL will
- * be returned.
+ * If @shutdown_write is %TRUE then the sending side of the connection is shut
+ * down, and further writing is disallowed. Subsequent calls to
+ * g_datagram_based_send_messages() will return %G_IO_ERROR_CLOSED.
*
- * Returns: (transfer full): a #GFileInfo for the @stream, or %NULL on error.
- * Since: 2.22
+ * It is allowed for both @shutdown_read and @shutdown_write to be TRUE — this
+ * is equivalent to calling g_dtls_connection_close().
+ *
+ * If @cancellable is cancelled, the #GDtlsConnection may be left
+ * partially-closed and any pending untransmitted data may be lost. Call
+ * g_dtls_connection_shutdown() again to complete closing the #GDtlsConnection.
+ *
+ * Returns: %TRUE on success, %FALSE otherwise
+ * Since: 2.48
*/
/**
- * g_file_io_stream_query_info_async:
- * @stream: a #GFileIOStream.
- * @attributes: a file attribute query string.
- * @io_priority: the [I/O priority][gio-GIOScheduler] of the request
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Asynchronously queries the @stream for a #GFileInfo. When completed,
- * @callback will be called with a #GAsyncResult which can be used to
- * finish the operation with g_file_io_stream_query_info_finish().
+ * g_dtls_connection_shutdown_async:
+ * @conn: a #GDtlsConnection
+ * @shutdown_read: %TRUE to stop reception of incoming datagrams
+ * @shutdown_write: %TRUE to stop sending outgoing datagrams
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: callback to call when the shutdown operation is complete
+ * @user_data: the data to pass to the callback function
*
- * For the synchronous version of this function, see
- * g_file_io_stream_query_info().
+ * Asynchronously shut down part or all of the DTLS connection. See
+ * g_dtls_connection_shutdown() for more information.
*
- * Since: 2.22
+ * Since: 2.48
*/
/**
- * g_file_io_stream_query_info_finish:
- * @stream: a #GFileIOStream.
- * @result: a #GAsyncResult.
- * @error: a #GError, %NULL to ignore.
+ * g_dtls_connection_shutdown_finish:
+ * @conn: a #GDtlsConnection
+ * @result: a #GAsyncResult
+ * @error: a #GError pointer, or %NULL
*
- * Finalizes the asynchronous query started
- * by g_file_io_stream_query_info_async().
+ * Finish an asynchronous TLS shutdown operation. See
+ * g_dtls_connection_shutdown() for more information.
*
- * Returns: (transfer full): A #GFileInfo for the finished query.
- * Since: 2.22
+ * Returns: %TRUE on success, %FALSE on failure, in which
+ * case @error will be set
+ * Since: 2.48
*/
/**
- * g_file_is_native:
- * @file: input #GFile
- *
- * Checks to see if a file is native to the platform.
- *
- * A native file is one expressed in the platform-native filename format,
- * e.g. "C:\Windows" or "/usr/bin/". This does not mean the file is local,
- * as it might be on a locally mounted remote filesystem.
- *
- * On some systems non-native files may be available using the native
- * filesystem via a userspace filesystem (FUSE), in these cases this call
- * will return %FALSE, but g_file_get_path() will still return a native path.
+ * g_dtls_server_connection_new:
+ * @base_socket: the #GDatagramBased to wrap
+ * @certificate: (nullable): the default server certificate, or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore
*
- * This call does no blocking I/O.
+ * Creates a new #GDtlsServerConnection wrapping @base_socket.
*
- * Returns: %TRUE if @file is native
+ * Returns: (transfer full) (type GDtlsServerConnection): the new
+ * #GDtlsServerConnection, or %NULL on error
+ * Since: 2.48
*/
/**
- * g_file_load_bytes:
- * @file: a #GFile
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @etag_out: (out) (nullable) (optional): a location to place the current
- * entity tag for the file, or %NULL if the entity tag is not needed
- * @error: a location for a #GError or %NULL
- *
- * Loads the contents of @file and returns it as #GBytes.
- *
- * If @file is a resource:// based URI, the resulting bytes will reference the
- * embedded resource instead of a copy. Otherwise, this is equivalent to calling
- * g_file_load_contents() and g_bytes_new_take().
- *
- * For resources, @etag_out will be set to %NULL.
+ * g_emblem_get_icon:
+ * @emblem: a #GEmblem from which the icon should be extracted.
*
- * The data contained in the resulting #GBytes is always zero-terminated, but
- * this is not included in the #GBytes length. The resulting #GBytes should be
- * freed with g_bytes_unref() when no longer in use.
+ * Gives back the icon from @emblem.
*
- * Returns: (transfer full): a #GBytes or %NULL and @error is set
- * Since: 2.56
+ * Returns: (transfer none): a #GIcon. The returned object belongs to
+ * the emblem and should not be modified or freed.
+ * Since: 2.18
*/
/**
- * g_file_load_bytes_async:
- * @file: a #GFile
- * @cancellable: (nullable): a #GCancellable or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback to call when the
- * request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Asynchronously loads the contents of @file as #GBytes.
- *
- * If @file is a resource:// based URI, the resulting bytes will reference the
- * embedded resource instead of a copy. Otherwise, this is equivalent to calling
- * g_file_load_contents_async() and g_bytes_new_take().
- *
- * @callback should call g_file_load_bytes_finish() to get the result of this
- * asynchronous operation.
+ * g_emblem_get_origin:
+ * @emblem: a #GEmblem
*
- * See g_file_load_bytes() for more information.
+ * Gets the origin of the emblem.
*
- * Since: 2.56
+ * Returns: (transfer none): the origin of the emblem
+ * Since: 2.18
*/
/**
- * g_file_load_bytes_finish:
- * @file: a #GFile
- * @result: a #GAsyncResult provided to the callback
- * @etag_out: (out) (nullable) (optional): a location to place the current
- * entity tag for the file, or %NULL if the entity tag is not needed
- * @error: a location for a #GError, or %NULL
- *
- * Completes an asynchronous request to g_file_load_bytes_async().
- *
- * For resources, @etag_out will be set to %NULL.
- *
- * The data contained in the resulting #GBytes is always zero-terminated, but
- * this is not included in the #GBytes length. The resulting #GBytes should be
- * freed with g_bytes_unref() when no longer in use.
+ * g_emblem_new:
+ * @icon: a GIcon containing the icon.
*
- * See g_file_load_bytes() for more information.
+ * Creates a new emblem for @icon.
*
- * Returns: (transfer full): a #GBytes or %NULL and @error is set
- * Since: 2.56
+ * Returns: a new #GEmblem.
+ * Since: 2.18
*/
/**
- * g_file_load_contents:
- * @file: input #GFile
- * @cancellable: optional #GCancellable object, %NULL to ignore
- * @contents: (out) (transfer full) (element-type guint8) (array length=length): a location to place the contents of the file
- * @length: (out) (optional): a location to place the length of the contents of the file,
- * or %NULL if the length is not needed
- * @etag_out: (out) (optional): a location to place the current entity tag for the file,
- * or %NULL if the entity tag is not needed
- * @error: a #GError, or %NULL
- *
- * Loads the content of the file into memory. The data is always
- * zero-terminated, but this is not included in the resultant @length.
- * The returned @content should be freed with g_free() when no longer
- * needed.
+ * g_emblem_new_with_origin:
+ * @icon: a GIcon containing the icon.
+ * @origin: a GEmblemOrigin enum defining the emblem's origin
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Creates a new emblem for @icon.
*
- * Returns: %TRUE if the @file's contents were successfully loaded.
- * %FALSE if there were errors.
+ * Returns: a new #GEmblem.
+ * Since: 2.18
*/
/**
- * g_file_load_contents_async:
- * @file: input #GFile
- * @cancellable: optional #GCancellable object, %NULL to ignore
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * g_emblemed_icon_add_emblem:
+ * @emblemed: a #GEmblemedIcon
+ * @emblem: a #GEmblem
*
- * Starts an asynchronous load of the @file's contents.
+ * Adds @emblem to the #GList of #GEmblems.
*
- * For more details, see g_file_load_contents() which is
- * the synchronous version of this call.
+ * Since: 2.18
+ */
+
+
+/**
+ * g_emblemed_icon_clear_emblems:
+ * @emblemed: a #GEmblemedIcon
*
- * When the load operation has completed, @callback will be called
- * with @user data. To finish the operation, call
- * g_file_load_contents_finish() with the #GAsyncResult returned by
- * the @callback.
+ * Removes all the emblems from @icon.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Since: 2.28
*/
/**
- * g_file_load_contents_finish:
- * @file: input #GFile
- * @res: a #GAsyncResult
- * @contents: (out) (transfer full) (element-type guint8) (array length=length): a location to place the contents of the file
- * @length: (out) (optional): a location to place the length of the contents of the file,
- * or %NULL if the length is not needed
- * @etag_out: (out) (optional): a location to place the current entity tag for the file,
- * or %NULL if the entity tag is not needed
- * @error: a #GError, or %NULL
+ * g_emblemed_icon_get_emblems:
+ * @emblemed: a #GEmblemedIcon
*
- * Finishes an asynchronous load of the @file's contents.
- * The contents are placed in @contents, and @length is set to the
- * size of the @contents string. The @content should be freed with
- * g_free() when no longer needed. If @etag_out is present, it will be
- * set to the new entity tag for the @file.
+ * Gets the list of emblems for the @icon.
*
- * Returns: %TRUE if the load was successful. If %FALSE and @error is
- * present, it will be set appropriately.
+ * Returns: (element-type Gio.Emblem) (transfer none): a #GList of
+ * #GEmblems that is owned by @emblemed
+ * Since: 2.18
*/
/**
- * g_file_load_partial_contents_async: (skip)
- * @file: input #GFile
- * @cancellable: optional #GCancellable object, %NULL to ignore
- * @read_more_callback: (scope call) (closure user_data): a
- * #GFileReadMoreCallback to receive partial data
- * and to specify whether further data should be read
- * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: the data to pass to the callback functions
- *
- * Reads the partial contents of a file. A #GFileReadMoreCallback should
- * be used to stop reading from the file when appropriate, else this
- * function will behave exactly as g_file_load_contents_async(). This
- * operation can be finished by g_file_load_partial_contents_finish().
+ * g_emblemed_icon_get_icon:
+ * @emblemed: a #GEmblemedIcon
*
- * Users of this function should be aware that @user_data is passed to
- * both the @read_more_callback and the @callback.
+ * Gets the main icon for @emblemed.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Returns: (transfer none): a #GIcon that is owned by @emblemed
+ * Since: 2.18
*/
/**
- * g_file_load_partial_contents_finish:
- * @file: input #GFile
- * @res: a #GAsyncResult
- * @contents: (out) (transfer full) (element-type guint8) (array length=length): a location to place the contents of the file
- * @length: (out) (optional): a location to place the length of the contents of the file,
- * or %NULL if the length is not needed
- * @etag_out: (out) (optional): a location to place the current entity tag for the file,
- * or %NULL if the entity tag is not needed
- * @error: a #GError, or %NULL
+ * g_emblemed_icon_new:
+ * @icon: a #GIcon
+ * @emblem: (nullable): a #GEmblem, or %NULL
*
- * Finishes an asynchronous partial load operation that was started
- * with g_file_load_partial_contents_async(). The data is always
- * zero-terminated, but this is not included in the resultant @length.
- * The returned @content should be freed with g_free() when no longer
- * needed.
+ * Creates a new emblemed icon for @icon with the emblem @emblem.
*
- * Returns: %TRUE if the load was successful. If %FALSE and @error is
- * present, it will be set appropriately.
+ * Returns: (transfer full) (type GEmblemedIcon): a new #GIcon
+ * Since: 2.18
*/
/**
- * g_file_make_directory:
+ * g_file_append_to:
* @file: input #GFile
+ * @flags: a set of #GFileCreateFlags
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
* @error: a #GError, or %NULL
*
- * Creates a directory. Note that this will only create a child directory
- * of the immediate parent directory of the path or URI given by the #GFile.
- * To recursively create directories, see g_file_make_directory_with_parents().
- * This function will fail if the parent directory does not exist, setting
- * @error to %G_IO_ERROR_NOT_FOUND. If the file system doesn't support
- * creating directories, this function will fail, setting @error to
- * %G_IO_ERROR_NOT_SUPPORTED.
+ * Gets an output stream for appending data to the file.
+ * If the file doesn't already exist it is created.
*
- * For a local #GFile the newly created directory will have the default
- * (current) ownership and permissions of the current process.
+ * By default files created are generally readable by everyone,
+ * but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
+ * will be made readable only to the current user, to the level that
+ * is supported on the target filesystem.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * If @cancellable is not %NULL, then the operation can be cancelled
+ * by triggering the cancellable object from another thread. If the
+ * operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
+ * returned.
*
- * Returns: %TRUE on successful creation, %FALSE otherwise.
+ * Some file systems don't allow all file names, and may return an
+ * %G_IO_ERROR_INVALID_FILENAME error. If the file is a directory the
+ * %G_IO_ERROR_IS_DIRECTORY error will be returned. Other errors are
+ * possible too, and depend on what kind of filesystem the file is on.
+ *
+ * Returns: (transfer full): a #GFileOutputStream, or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_file_make_directory_async: (virtual make_directory_async)
+ * g_file_append_to_async:
* @file: input #GFile
+ * @flags: a set of #GFileCreateFlags
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: a #GAsyncReadyCallback to call
+ * @callback: (scope async): a #GAsyncReadyCallback to call
* when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @user_data: (closure): the data to pass to callback function
*
- * Asynchronously creates a directory.
+ * Asynchronously opens @file for appending.
*
- * Since: 2.38
+ * For more details, see g_file_append_to() which is
+ * the synchronous version of this call.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_append_to_finish() to get the result
+ * of the operation.
*/
/**
- * g_file_make_directory_finish: (virtual make_directory_finish)
+ * g_file_append_to_finish:
* @file: input #GFile
- * @result: a #GAsyncResult
+ * @res: #GAsyncResult
* @error: a #GError, or %NULL
*
- * Finishes an asynchronous directory creation, started with
- * g_file_make_directory_async().
+ * Finishes an asynchronous file append operation started with
+ * g_file_append_to_async().
*
- * Returns: %TRUE on successful directory creation, %FALSE otherwise.
- * Since: 2.38
+ * Returns: (transfer full): a valid #GFileOutputStream
+ * or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_file_make_directory_with_parents:
- * @file: input #GFile
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Creates a directory and any parent directories that may not
- * exist similar to 'mkdir -p'. If the file system does not support
- * creating directories, this function will fail, setting @error to
- * %G_IO_ERROR_NOT_SUPPORTED. If the directory itself already exists,
- * this function will fail setting @error to %G_IO_ERROR_EXISTS, unlike
- * the similar g_mkdir_with_parents().
- *
- * For a local #GFile the newly created directories will have the default
- * (current) ownership and permissions of the current process.
- *
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * g_file_attribute_info_list_add:
+ * @list: a #GFileAttributeInfoList.
+ * @name: the name of the attribute to add.
+ * @type: the #GFileAttributeType for the attribute.
+ * @flags: #GFileAttributeInfoFlags for the attribute.
*
- * Returns: %TRUE if all directories have been successfully created, %FALSE
- * otherwise.
- * Since: 2.18
+ * Adds a new attribute with @name to the @list, setting
+ * its @type and @flags.
*/
/**
- * g_file_make_symbolic_link:
- * @file: a #GFile with the name of the symlink to create
- * @symlink_value: (type filename): a string with the path for the target
- * of the new symlink
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError
- *
- * Creates a symbolic link named @file which contains the string
- * @symlink_value.
+ * g_file_attribute_info_list_dup:
+ * @list: a #GFileAttributeInfoList to duplicate.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Makes a duplicate of a file attribute info list.
*
- * Returns: %TRUE on the creation of a new symlink, %FALSE otherwise.
+ * Returns: a copy of the given @list.
*/
/**
- * g_file_measure_disk_usage:
- * @file: a #GFile
- * @flags: #GFileMeasureFlags
- * @cancellable: (nullable): optional #GCancellable
- * @progress_callback: (nullable): a #GFileMeasureProgressCallback
- * @progress_data: user_data for @progress_callback
- * @disk_usage: (out) (optional): the number of bytes of disk space used
- * @num_dirs: (out) (optional): the number of directories encountered
- * @num_files: (out) (optional): the number of non-directories encountered
- * @error: (nullable): %NULL, or a pointer to a %NULL #GError pointer
- *
- * Recursively measures the disk usage of @file.
- *
- * This is essentially an analog of the 'du' command, but it also
- * reports the number of directories and non-directory files encountered
- * (including things like symbolic links).
- *
- * By default, errors are only reported against the toplevel file
- * itself. Errors found while recursing are silently ignored, unless
- * %G_FILE_DISK_USAGE_REPORT_ALL_ERRORS is given in @flags.
- *
- * The returned size, @disk_usage, is in bytes and should be formatted
- * with g_format_size() in order to get something reasonable for showing
- * in a user interface.
+ * g_file_attribute_info_list_lookup:
+ * @list: a #GFileAttributeInfoList.
+ * @name: the name of the attribute to lookup.
*
- * @progress_callback and @progress_data can be given to request
- * periodic progress updates while scanning. See the documentation for
- * #GFileMeasureProgressCallback for information about when and how the
- * callback will be invoked.
+ * Gets the file attribute with the name @name from @list.
*
- * Returns: %TRUE if successful, with the out parameters set.
- * %FALSE otherwise, with @error set.
- * Since: 2.38
+ * Returns: a #GFileAttributeInfo for the @name, or %NULL if an
+ * attribute isn't found.
*/
/**
- * g_file_measure_disk_usage_async:
- * @file: a #GFile
- * @flags: #GFileMeasureFlags
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable
- * @progress_callback: (nullable): a #GFileMeasureProgressCallback
- * @progress_data: user_data for @progress_callback
- * @callback: (nullable): a #GAsyncReadyCallback to call when complete
- * @user_data: the data to pass to callback function
- *
- * Recursively measures the disk usage of @file.
+ * g_file_attribute_info_list_new:
*
- * This is the asynchronous version of g_file_measure_disk_usage(). See
- * there for more information.
+ * Creates a new file attribute info list.
*
- * Since: 2.38
+ * Returns: a #GFileAttributeInfoList.
*/
/**
- * g_file_measure_disk_usage_finish:
- * @file: a #GFile
- * @result: the #GAsyncResult passed to your #GAsyncReadyCallback
- * @disk_usage: (out) (optional): the number of bytes of disk space used
- * @num_dirs: (out) (optional): the number of directories encountered
- * @num_files: (out) (optional): the number of non-directories encountered
- * @error: (nullable): %NULL, or a pointer to a %NULL #GError pointer
+ * g_file_attribute_info_list_ref:
+ * @list: a #GFileAttributeInfoList to reference.
*
- * Collects the results from an earlier call to
- * g_file_measure_disk_usage_async(). See g_file_measure_disk_usage() for
- * more information.
+ * References a file attribute info list.
*
- * Returns: %TRUE if successful, with the out parameters set.
- * %FALSE otherwise, with @error set.
- * Since: 2.38
+ * Returns: #GFileAttributeInfoList or %NULL on error.
*/
/**
- * g_file_monitor:
- * @file: input #GFile
- * @flags: a set of #GFileMonitorFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
+ * g_file_attribute_info_list_unref:
+ * @list: The #GFileAttributeInfoList to unreference.
*
- * Obtains a file or directory monitor for the given file,
- * depending on the type of the file.
+ * Removes a reference from the given @list. If the reference count
+ * falls to zero, the @list is deleted.
+ */
+
+
+/**
+ * g_file_attribute_matcher_enumerate_namespace:
+ * @matcher: a #GFileAttributeMatcher.
+ * @ns: a string containing a file attribute namespace.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Checks if the matcher will match all of the keys in a given namespace.
+ * This will always return %TRUE if a wildcard character is in use (e.g. if
+ * matcher was created with "standard::*" and @ns is "standard", or if matcher was created
+ * using "*" and namespace is anything.)
*
- * Returns: (transfer full): a #GFileMonitor for the given @file,
- * or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.18
+ * TODO: this is awkwardly worded.
+ *
+ * Returns: %TRUE if the matcher matches all of the entries
+ * in the given @ns, %FALSE otherwise.
*/
/**
- * g_file_monitor_cancel:
- * @monitor: a #GFileMonitor.
+ * g_file_attribute_matcher_enumerate_next:
+ * @matcher: a #GFileAttributeMatcher.
*
- * Cancels a file monitor.
+ * Gets the next matched attribute from a #GFileAttributeMatcher.
*
- * Returns: always %TRUE
+ * Returns: a string containing the next attribute or %NULL if
+ * no more attribute exist.
*/
/**
- * g_file_monitor_directory: (virtual monitor_dir)
- * @file: input #GFile
- * @flags: a set of #GFileMonitorFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Obtains a directory monitor for the given file.
- * This may fail if directory monitoring is not supported.
- *
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * g_file_attribute_matcher_matches:
+ * @matcher: a #GFileAttributeMatcher.
+ * @attribute: a file attribute key.
*
- * It does not make sense for @flags to contain
- * %G_FILE_MONITOR_WATCH_HARD_LINKS, since hard links can not be made to
- * directories. It is not possible to monitor all the files in a
- * directory for changes made via hard links; if you want to do this then
- * you must register individual watches with g_file_monitor().
+ * Checks if an attribute will be matched by an attribute matcher. If
+ * the matcher was created with the "*" matching string, this function
+ * will always return %TRUE.
*
- * Returns: (transfer full): a #GFileMonitor for the given @file,
- * or %NULL on error.
- * Free the returned object with g_object_unref().
+ * Returns: %TRUE if @attribute matches @matcher. %FALSE otherwise.
*/
/**
- * g_file_monitor_emit_event:
- * @monitor: a #GFileMonitor.
- * @child: a #GFile.
- * @other_file: a #GFile.
- * @event_type: a set of #GFileMonitorEvent flags.
+ * g_file_attribute_matcher_matches_only:
+ * @matcher: a #GFileAttributeMatcher.
+ * @attribute: a file attribute key.
*
- * Emits the #GFileMonitor::changed signal if a change
- * has taken place. Should be called from file monitor
- * implementations only.
+ * Checks if a attribute matcher only matches a given attribute. Always
+ * returns %FALSE if "*" was used when creating the matcher.
*
- * Implementations are responsible to call this method from the
- * [thread-default main context][g-main-context-push-thread-default] of the
- * thread that the monitor was created in.
+ * Returns: %TRUE if the matcher only matches @attribute. %FALSE otherwise.
*/
/**
- * g_file_monitor_file:
- * @file: input #GFile
- * @flags: a set of #GFileMonitorFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
+ * g_file_attribute_matcher_new:
+ * @attributes: an attribute string to match.
*
- * Obtains a file monitor for the given file. If no file notification
- * mechanism exists, then regular polling of the file is used.
+ * Creates a new file attribute matcher, which matches attributes
+ * against a given string. #GFileAttributeMatchers are reference
+ * counted structures, and are created with a reference count of 1. If
+ * the number of references falls to 0, the #GFileAttributeMatcher is
+ * automatically destroyed.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * The @attribute string should be formatted with specific keys separated
+ * from namespaces with a double colon. Several "namespace::key" strings may be
+ * concatenated with a single comma (e.g. "standard::type,standard::is-hidden").
+ * The wildcard "*" may be used to match all keys and namespaces, or
+ * "namespace::*" will match all keys in a given namespace.
*
- * If @flags contains %G_FILE_MONITOR_WATCH_HARD_LINKS then the monitor
- * will also attempt to report changes made to the file via another
- * filename (ie, a hard link). Without this flag, you can only rely on
- * changes made through the filename contained in @file to be
- * reported. Using this flag may result in an increase in resource
- * usage, and may not have any effect depending on the #GFileMonitor
- * backend and/or filesystem type.
+ * ## Examples of file attribute matcher strings and results
*
- * Returns: (transfer full): a #GFileMonitor for the given @file,
- * or %NULL on error.
- * Free the returned object with g_object_unref().
+ * - `"*"`: matches all attributes.
+ * - `"standard::is-hidden"`: matches only the key is-hidden in the
+ * standard namespace.
+ * - `"standard::type,unix::*"`: matches the type key in the standard
+ * namespace and all keys in the unix namespace.
+ *
+ * Returns: a #GFileAttributeMatcher
*/
/**
- * g_file_monitor_is_cancelled:
- * @monitor: a #GFileMonitor
+ * g_file_attribute_matcher_ref:
+ * @matcher: a #GFileAttributeMatcher.
*
- * Returns whether the monitor is canceled.
+ * References a file attribute matcher.
*
- * Returns: %TRUE if monitor is canceled. %FALSE otherwise.
+ * Returns: a #GFileAttributeMatcher.
*/
/**
- * g_file_monitor_set_rate_limit:
- * @monitor: a #GFileMonitor.
- * @limit_msecs: a non-negative integer with the limit in milliseconds
- * to poll for changes
+ * g_file_attribute_matcher_subtract:
+ * @matcher: Matcher to subtract from
+ * @subtract: The matcher to subtract
*
- * Sets the rate limit to which the @monitor will report
- * consecutive change events to the same file.
+ * Subtracts all attributes of @subtract from @matcher and returns
+ * a matcher that supports those attributes.
+ *
+ * Note that currently it is not possible to remove a single
+ * attribute when the @matcher matches the whole namespace - or remove
+ * a namespace or attribute when the matcher matches everything. This
+ * is a limitation of the current implementation, but may be fixed
+ * in the future.
+ *
+ * Returns: A file attribute matcher matching all attributes of
+ * @matcher that are not matched by @subtract
*/
/**
- * g_file_mount_enclosing_volume:
- * @location: input #GFile
- * @flags: flags affecting the operation
- * @mount_operation: (nullable): a #GMountOperation
- * or %NULL to avoid user interaction
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: the data to pass to callback function
- *
- * Starts a @mount_operation, mounting the volume that contains
- * the file @location.
+ * g_file_attribute_matcher_to_string:
+ * @matcher: (nullable): a #GFileAttributeMatcher.
*
- * When this operation has completed, @callback will be called with
- * @user_user data, and the operation can be finalized with
- * g_file_mount_enclosing_volume_finish().
+ * Prints what the matcher is matching against. The format will be
+ * equal to the format passed to g_file_attribute_matcher_new().
+ * The output however, might not be identical, as the matcher may
+ * decide to use a different order or omit needless parts.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Returns: a string describing the attributes the matcher matches
+ * against or %NULL if @matcher was %NULL.
+ * Since: 2.32
*/
/**
- * g_file_mount_enclosing_volume_finish:
- * @location: input #GFile
- * @result: a #GAsyncResult
- * @error: a #GError, or %NULL
- *
- * Finishes a mount operation started by g_file_mount_enclosing_volume().
+ * g_file_attribute_matcher_unref:
+ * @matcher: a #GFileAttributeMatcher.
*
- * Returns: %TRUE if successful. If an error has occurred,
- * this function will return %FALSE and set @error
- * appropriately if present.
+ * Unreferences @matcher. If the reference count falls below 1,
+ * the @matcher is automatically freed.
*/
/**
- * g_file_mount_mountable:
- * @file: input #GFile
- * @flags: flags affecting the operation
- * @mount_operation: (nullable): a #GMountOperation,
- * or %NULL to avoid user interaction
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: (closure): the data to pass to callback function
- *
- * Mounts a file of type G_FILE_TYPE_MOUNTABLE.
- * Using @mount_operation, you can request callbacks when, for instance,
- * passwords are needed during authentication.
+ * g_file_attribute_value_dup:
+ * @other: a #GFileAttributeValue to duplicate.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Duplicates a file attribute.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_mount_mountable_finish() to get
- * the result of the operation.
+ * Returns: a duplicate of the @other.
*/
/**
- * g_file_mount_mountable_finish:
- * @file: input #GFile
- * @result: a #GAsyncResult
- * @error: a #GError, or %NULL
- *
- * Finishes a mount operation. See g_file_mount_mountable() for details.
- *
- * Finish an asynchronous mount operation that was started
- * with g_file_mount_mountable().
+ * g_file_attribute_value_set:
+ * @attr: a #GFileAttributeValue to set the value in.
+ * @new_value: a #GFileAttributeValue to get the value from.
*
- * Returns: (transfer full): a #GFile or %NULL on error.
- * Free the returned object with g_object_unref().
+ * Sets an attribute's value from another attribute.
*/
/**
- * g_file_move:
- * @source: #GFile pointing to the source location
- * @destination: #GFile pointing to the destination location
+ * g_file_copy:
+ * @source: input #GFile
+ * @destination: destination #GFile
* @flags: set of #GFileCopyFlags
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @progress_callback: (nullable) (scope call): #GFileProgressCallback
- * function for updates
- * @progress_callback_data: (closure): gpointer to user data for
- * the callback function
- * @error: #GError for returning error conditions, or %NULL
+ * @progress_callback: (nullable) (scope call): function to callback with
+ * progress information, or %NULL if progress information is not needed
+ * @progress_callback_data: (closure): user data to pass to @progress_callback
+ * @error: #GError to set on error, or %NULL
*
- * Tries to move the file or directory @source to the location specified
- * by @destination. If native move operations are supported then this is
- * used, otherwise a copy + delete fallback is used. The native
- * implementation may support moving directories (for instance on moves
- * inside the same filesystem), but the fallback code does not.
+ * Copies the file @source to the location specified by @destination.
+ * Can not handle recursive copies of directories.
*
* If the flag #G_FILE_COPY_OVERWRITE is specified an already
* existing @destination file is overwritten.
* will be copied as symlinks, otherwise the target of the
* @source symlink will be copied.
*
+ * If the flag #G_FILE_COPY_ALL_METADATA is specified then all the metadata
+ * that is possible to copy is copied, not just the default subset (which,
+ * for instance, does not include the owner, see #GFileInfo).
+ *
* If @cancellable is not %NULL, then the operation can be cancelled by
* triggering the cancellable object from another thread. If the operation
* was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
* If @progress_callback is not %NULL, then the operation can be monitored
* by setting this to a #GFileProgressCallback function.
- * @progress_callback_data will be passed to this function. It is
- * guaranteed that this callback will be called after all data has been
- * transferred with the total number of bytes copied during the operation.
+ * @progress_callback_data will be passed to this function. It is guaranteed
+ * that this callback will be called after all data has been transferred with
+ * the total number of bytes copied during the operation.
*
- * If the @source file does not exist, then the %G_IO_ERROR_NOT_FOUND
- * error is returned, independent on the status of the @destination.
+ * If the @source file does not exist, then the %G_IO_ERROR_NOT_FOUND error
+ * is returned, independent on the status of the @destination.
*
- * If #G_FILE_COPY_OVERWRITE is not specified and the target exists,
- * then the error %G_IO_ERROR_EXISTS is returned.
+ * If #G_FILE_COPY_OVERWRITE is not specified and the target exists, then
+ * the error %G_IO_ERROR_EXISTS is returned.
*
* If trying to overwrite a file over a directory, the %G_IO_ERROR_IS_DIRECTORY
* error is returned. If trying to overwrite a directory with a directory the
* %G_IO_ERROR_WOULD_MERGE error is returned.
*
* If the source is a directory and the target does not exist, or
- * #G_FILE_COPY_OVERWRITE is specified and the target is a file, then
- * the %G_IO_ERROR_WOULD_RECURSE error may be returned (if the native
- * move operation isn't available).
+ * #G_FILE_COPY_OVERWRITE is specified and the target is a file, then the
+ * %G_IO_ERROR_WOULD_RECURSE error is returned.
*
- * Returns: %TRUE on successful move, %FALSE otherwise.
+ * If you are interested in copying the #GFile object itself (not the on-disk
+ * file), see g_file_dup().
+ *
+ * Returns: %TRUE on success, %FALSE otherwise.
*/
/**
- * g_file_new_build_filename:
- * @first_element: (type filename): the first element in the path
- * @...: remaining elements in path, terminated by %NULL
+ * g_file_copy_async:
+ * @source: input #GFile
+ * @destination: destination #GFile
+ * @flags: set of #GFileCopyFlags
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @progress_callback: (nullable) (scope notified): function to callback with progress
+ * information, or %NULL if progress information is not needed
+ * @progress_callback_data: (closure progress_callback) (nullable): user data to pass to @progress_callback
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure callback): the data to pass to callback function
*
- * Constructs a #GFile from a series of elements using the correct
- * separator for filenames.
+ * Copies the file @source to the location specified by @destination
+ * asynchronously. For details of the behaviour, see g_file_copy().
*
- * Using this function is equivalent to calling g_build_filename(),
- * followed by g_file_new_for_path() on the result.
+ * If @progress_callback is not %NULL, then that function that will be called
+ * just like in g_file_copy(). The callback will run in the default main context
+ * of the thread calling g_file_copy_async() — the same context as @callback is
+ * run in.
*
- * Returns: (transfer full): a new #GFile
- * Since: 2.56
+ * When the operation is finished, @callback will be called. You can then call
+ * g_file_copy_finish() to get the result of the operation.
*/
/**
- * g_file_new_for_commandline_arg:
- * @arg: (type filename): a command line string
+ * g_file_copy_attributes:
+ * @source: a #GFile with attributes
+ * @destination: a #GFile to copy attributes to
+ * @flags: a set of #GFileCopyFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, %NULL to ignore
*
- * Creates a #GFile with the given argument from the command line.
- * The value of @arg can be either a URI, an absolute path or a
- * relative path resolved relative to the current working directory.
- * This operation never fails, but the returned object might not
- * support any I/O operation if @arg points to a malformed path.
+ * Copies the file attributes from @source to @destination.
*
- * Note that on Windows, this function expects its argument to be in
- * UTF-8 -- not the system code page. This means that you
- * should not use this function with string from argv as it is passed
- * to main(). g_win32_get_command_line() will return a UTF-8 version of
- * the commandline. #GApplication also uses UTF-8 but
- * g_application_command_line_create_file_for_arg() may be more useful
- * for you there. It is also always possible to use this function with
- * #GOptionContext arguments of type %G_OPTION_ARG_FILENAME.
+ * Normally only a subset of the file attributes are copied,
+ * those that are copies in a normal file copy operation
+ * (which for instance does not include e.g. owner). However
+ * if #G_FILE_COPY_ALL_METADATA is specified in @flags, then
+ * all the metadata that is possible to copy is copied. This
+ * is useful when implementing move by copy + delete source.
*
- * Returns: (transfer full): a new #GFile.
- * Free the returned object with g_object_unref().
+ * Returns: %TRUE if the attributes were copied successfully,
+ * %FALSE otherwise.
*/
/**
- * g_file_new_for_commandline_arg_and_cwd:
- * @arg: (type filename): a command line string
- * @cwd: (type filename): the current working directory of the commandline
- *
- * Creates a #GFile with the given argument from the command line.
- *
- * This function is similar to g_file_new_for_commandline_arg() except
- * that it allows for passing the current working directory as an
- * argument instead of using the current working directory of the
- * process.
- *
- * This is useful if the commandline argument was given in a context
- * other than the invocation of the current process.
+ * g_file_copy_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * See also g_application_command_line_create_file_for_arg().
+ * Finishes copying the file started with g_file_copy_async().
*
- * Returns: (transfer full): a new #GFile
- * Since: 2.36
+ * Returns: a %TRUE on success, %FALSE on error.
*/
/**
- * g_file_new_for_path:
- * @path: (type filename): a string containing a relative or absolute path.
- * The string must be encoded in the glib filename encoding.
+ * g_file_create:
+ * @file: input #GFile
+ * @flags: a set of #GFileCreateFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Constructs a #GFile for a given path. This operation never
- * fails, but the returned object might not support any I/O
- * operation if @path is malformed.
+ * Creates a new file and returns an output stream for writing to it.
+ * The file must not already exist.
*
- * Returns: (transfer full): a new #GFile for the given @path.
- * Free the returned object with g_object_unref().
+ * By default files created are generally readable by everyone,
+ * but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
+ * will be made readable only to the current user, to the level
+ * that is supported on the target filesystem.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled
+ * by triggering the cancellable object from another thread. If the
+ * operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
+ * returned.
+ *
+ * If a file or directory with this name already exists the
+ * %G_IO_ERROR_EXISTS error will be returned. Some file systems don't
+ * allow all file names, and may return an %G_IO_ERROR_INVALID_FILENAME
+ * error, and if the name is to long %G_IO_ERROR_FILENAME_TOO_LONG will
+ * be returned. Other errors are possible too, and depend on what kind
+ * of filesystem the file is on.
+ *
+ * Returns: (transfer full): a #GFileOutputStream for the newly created
+ * file, or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_file_new_for_uri:
- * @uri: a UTF-8 string containing a URI
+ * g_file_create_async:
+ * @file: input #GFile
+ * @flags: a set of #GFileCreateFlags
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async): a #GAsyncReadyCallback to call
+ * when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Constructs a #GFile for a given URI. This operation never
- * fails, but the returned object might not support any I/O
- * operation if @uri is malformed or if the uri type is
- * not supported.
+ * Asynchronously creates a new file and returns an output stream
+ * for writing to it. The file must not already exist.
*
- * Returns: (transfer full): a new #GFile for the given @uri.
- * Free the returned object with g_object_unref().
+ * For more details, see g_file_create() which is
+ * the synchronous version of this call.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_create_finish() to get the result
+ * of the operation.
*/
/**
- * g_file_new_tmp:
- * @tmpl: (type filename) (nullable): Template for the file
- * name, as in g_file_open_tmp(), or %NULL for a default template
- * @iostream: (out): on return, a #GFileIOStream for the created file
+ * g_file_create_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
* @error: a #GError, or %NULL
*
- * Opens a file in the preferred directory for temporary files (as
- * returned by g_get_tmp_dir()) and returns a #GFile and
- * #GFileIOStream pointing to it.
- *
- * @tmpl should be a string in the GLib file name encoding
- * containing a sequence of six 'X' characters, and containing no
- * directory components. If it is %NULL, a default template is used.
- *
- * Unlike the other #GFile constructors, this will return %NULL if
- * a temporary file could not be created.
+ * Finishes an asynchronous file create operation started with
+ * g_file_create_async().
*
- * Returns: (transfer full): a new #GFile.
+ * Returns: (transfer full): a #GFileOutputStream or %NULL on error.
* Free the returned object with g_object_unref().
- * Since: 2.32
*/
/**
- * g_file_open_readwrite:
- * @file: #GFile to open
- * @cancellable: (nullable): a #GCancellable
- * @error: a #GError, or %NULL
+ * g_file_create_readwrite:
+ * @file: a #GFile
+ * @flags: a set of #GFileCreateFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: return location for a #GError, or %NULL
*
- * Opens an existing file for reading and writing. The result is
- * a #GFileIOStream that can be used to read and write the contents
- * of the file.
+ * Creates a new file and returns a stream for reading and
+ * writing to it. The file must not already exist.
+ *
+ * By default files created are generally readable by everyone,
+ * but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
+ * will be made readable only to the current user, to the level
+ * that is supported on the target filesystem.
*
* If @cancellable is not %NULL, then the operation can be cancelled
* by triggering the cancellable object from another thread. If the
* operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
* returned.
*
- * If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will
- * be returned. If the file is a directory, the %G_IO_ERROR_IS_DIRECTORY
- * error will be returned. Other errors are possible too, and depend on
- * what kind of filesystem the file is on. Note that in many non-local
- * file cases read and write streams are not supported, so make sure you
- * really need to do read and write streaming, rather than just opening
- * for reading or writing.
+ * If a file or directory with this name already exists, the
+ * %G_IO_ERROR_EXISTS error will be returned. Some file systems don't
+ * allow all file names, and may return an %G_IO_ERROR_INVALID_FILENAME
+ * error, and if the name is too long, %G_IO_ERROR_FILENAME_TOO_LONG
+ * will be returned. Other errors are possible too, and depend on what
+ * kind of filesystem the file is on.
*
- * Returns: (transfer full): #GFileIOStream or %NULL on error.
+ * Note that in many non-local file cases read and write streams are
+ * not supported, so make sure you really need to do read and write
+ * streaming, rather than just opening for reading or writing.
+ *
+ * Returns: (transfer full): a #GFileIOStream for the newly created
+ * file, or %NULL on error.
* Free the returned object with g_object_unref().
* Since: 2.22
*/
/**
- * g_file_open_readwrite_async:
+ * g_file_create_readwrite_async:
* @file: input #GFile
+ * @flags: a set of #GFileCreateFlags
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
* when the request is satisfied
* @user_data: (closure): the data to pass to callback function
*
- * Asynchronously opens @file for reading and writing.
+ * Asynchronously creates a new file and returns a stream
+ * for reading and writing to it. The file must not already exist.
*
- * For more details, see g_file_open_readwrite() which is
+ * For more details, see g_file_create_readwrite() which is
* the synchronous version of this call.
*
* When the operation is finished, @callback will be called.
- * You can then call g_file_open_readwrite_finish() to get
+ * You can then call g_file_create_readwrite_finish() to get
* the result of the operation.
*
* Since: 2.22
/**
- * g_file_open_readwrite_finish:
+ * g_file_create_readwrite_finish:
* @file: input #GFile
* @res: a #GAsyncResult
* @error: a #GError, or %NULL
*
- * Finishes an asynchronous file read operation started with
- * g_file_open_readwrite_async().
+ * Finishes an asynchronous file create operation started with
+ * g_file_create_readwrite_async().
*
* Returns: (transfer full): a #GFileIOStream or %NULL on error.
* Free the returned object with g_object_unref().
/**
- * g_file_output_stream_get_etag:
- * @stream: a #GFileOutputStream.
- *
- * Gets the entity tag for the file when it has been written.
- * This must be called after the stream has been written
- * and closed, as the etag can change while writing.
- *
- * Returns: the entity tag for the stream.
- */
-
-
-/**
- * g_file_output_stream_query_info:
- * @stream: a #GFileOutputStream.
- * @attributes: a file attribute query string.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @error: a #GError, %NULL to ignore.
- *
- * Queries a file output stream for the given @attributes.
- * This function blocks while querying the stream. For the asynchronous
- * version of this function, see g_file_output_stream_query_info_async().
- * While the stream is blocked, the stream will set the pending flag
- * internally, and any other operations on the stream will fail with
- * %G_IO_ERROR_PENDING.
- *
- * Can fail if the stream was already closed (with @error being set to
- * %G_IO_ERROR_CLOSED), the stream has pending operations (with @error being
- * set to %G_IO_ERROR_PENDING), or if querying info is not supported for
- * the stream's interface (with @error being set to %G_IO_ERROR_NOT_SUPPORTED). In
- * all cases of failure, %NULL will be returned.
+ * g_file_delete: (virtual delete_file)
+ * @file: input #GFile
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
+ *
+ * Deletes a file. If the @file is a directory, it will only be
+ * deleted if it is empty. This has the same semantics as g_unlink().
*
* If @cancellable is not %NULL, then the operation can be cancelled by
* triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %NULL will
- * be returned.
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: (transfer full): a #GFileInfo for the @stream, or %NULL on error.
+ * Returns: %TRUE if the file was deleted. %FALSE otherwise.
*/
/**
- * g_file_output_stream_query_info_async:
- * @stream: a #GFileOutputStream.
- * @attributes: a file attribute query string.
- * @io_priority: the [I/O priority][gio-GIOScheduler] of the request
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: callback to call when the request is satisfied
+ * g_file_delete_async: (virtual delete_file_async)
+ * @file: input #GFile
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: a #GAsyncReadyCallback to call
+ * when the request is satisfied
* @user_data: the data to pass to callback function
*
- * Asynchronously queries the @stream for a #GFileInfo. When completed,
- * @callback will be called with a #GAsyncResult which can be used to
- * finish the operation with g_file_output_stream_query_info_finish().
+ * Asynchronously delete a file. If the @file is a directory, it will
+ * only be deleted if it is empty. This has the same semantics as
+ * g_unlink().
*
- * For the synchronous version of this function, see
- * g_file_output_stream_query_info().
+ * Since: 2.34
*/
/**
- * g_file_output_stream_query_info_finish:
- * @stream: a #GFileOutputStream.
- * @result: a #GAsyncResult.
- * @error: a #GError, %NULL to ignore.
+ * g_file_delete_finish: (virtual delete_file_finish)
+ * @file: input #GFile
+ * @result: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Finalizes the asynchronous query started
- * by g_file_output_stream_query_info_async().
+ * Finishes deleting a file started with g_file_delete_async().
*
- * Returns: (transfer full): A #GFileInfo for the finished query.
+ * Returns: %TRUE if the file was deleted. %FALSE otherwise.
+ * Since: 2.34
*/
/**
- * g_file_parse_name:
- * @parse_name: a file name or path to be parsed
+ * g_file_descriptor_based_get_fd:
+ * @fd_based: a #GFileDescriptorBased.
*
- * Constructs a #GFile with the given @parse_name (i.e. something
- * given by g_file_get_parse_name()). This operation never fails,
- * but the returned object might not support any I/O operation if
- * the @parse_name cannot be parsed.
+ * Gets the underlying file descriptor.
*
- * Returns: (transfer full): a new #GFile.
+ * Returns: The file descriptor
+ * Since: 2.24
*/
/**
- * g_file_peek_path:
+ * g_file_dup:
* @file: input #GFile
*
- * Exactly like g_file_get_path(), but caches the result via
- * g_object_set_qdata_full(). This is useful for example in C
- * applications which mix `g_file_*` APIs with native ones. It
- * also avoids an extra duplicated string when possible, so will be
- * generally more efficient.
+ * Duplicates a #GFile handle. This operation does not duplicate
+ * the actual file or directory represented by the #GFile; see
+ * g_file_copy() if attempting to copy a file.
+ *
+ * g_file_dup() is useful when a second handle is needed to the same underlying
+ * file, for use in a separate thread (#GFile is not thread-safe). For use
+ * within the same thread, use g_object_ref() to increment the existing object’s
+ * reference count.
*
* This call does no blocking I/O.
*
- * Returns: (type filename) (nullable): string containing the #GFile's path,
- * or %NULL if no such path exists. The returned string is owned by @file.
- * Since: 2.56
+ * Returns: (transfer full): a new #GFile that is a duplicate
+ * of the given #GFile.
*/
/**
- * g_file_poll_mountable:
+ * g_file_eject_mountable:
* @file: input #GFile
- * @cancellable: optional #GCancellable object, %NULL to ignore
- * @callback: (nullable): a #GAsyncReadyCallback to call
+ * @flags: flags affecting the operation
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
* when the request is satisfied, or %NULL
- * @user_data: the data to pass to callback function
+ * @user_data: (closure): the data to pass to callback function
*
- * Polls a file of type #G_FILE_TYPE_MOUNTABLE.
+ * Starts an asynchronous eject on a mountable.
+ * When this operation has completed, @callback will be called with
+ * @user_user data, and the operation can be finalized with
+ * g_file_eject_mountable_finish().
*
* If @cancellable is not %NULL, then the operation can be cancelled by
* triggering the cancellable object from another thread. If the operation
* was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_mount_mountable_finish() to get
- * the result of the operation.
- *
- * Since: 2.22
+ * Deprecated: 2.22: Use g_file_eject_mountable_with_operation() instead.
*/
/**
- * g_file_poll_mountable_finish:
+ * g_file_eject_mountable_finish:
* @file: input #GFile
* @result: a #GAsyncResult
* @error: a #GError, or %NULL
*
- * Finishes a poll operation. See g_file_poll_mountable() for details.
- *
- * Finish an asynchronous poll operation that was polled
- * with g_file_poll_mountable().
- *
- * Returns: %TRUE if the operation finished successfully. %FALSE
- * otherwise.
- * Since: 2.22
- */
-
-
-/**
- * g_file_query_default_handler:
- * @file: a #GFile to open
- * @cancellable: optional #GCancellable object, %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Returns the #GAppInfo that is registered as the default
- * application to handle the file specified by @file.
- *
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Finishes an asynchronous eject operation started by
+ * g_file_eject_mountable().
*
- * Returns: (transfer full): a #GAppInfo if the handle was found,
- * %NULL if there were errors.
- * When you are done with it, release it with g_object_unref()
+ * Returns: %TRUE if the @file was ejected successfully.
+ * %FALSE otherwise.
+ * Deprecated: 2.22: Use g_file_eject_mountable_with_operation_finish()
+ * instead.
*/
/**
- * g_file_query_exists:
+ * g_file_eject_mountable_with_operation:
* @file: input #GFile
+ * @flags: flags affecting the operation
+ * @mount_operation: (nullable): a #GMountOperation,
+ * or %NULL to avoid user interaction
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
+ * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
+ * when the request is satisfied, or %NULL
+ * @user_data: (closure): the data to pass to callback function
*
- * Utility function to check if a particular file exists. This is
- * implemented using g_file_query_info() and as such does blocking I/O.
- *
- * Note that in many cases it is [racy to first check for file existence](https://en.wikipedia.org/wiki/Time_of_check_to_time_of_use)
- * and then execute something based on the outcome of that, because the
- * file might have been created or removed in between the operations. The
- * general approach to handling that is to not check, but just do the
- * operation and handle the errors as they come.
- *
- * As an example of race-free checking, take the case of reading a file,
- * and if it doesn't exist, creating it. There are two racy versions: read
- * it, and on error create it; and: check if it exists, if not create it.
- * These can both result in two processes creating the file (with perhaps
- * a partially written file as the result). The correct approach is to
- * always try to create the file with g_file_create() which will either
- * atomically create the file or fail with a %G_IO_ERROR_EXISTS error.
+ * Starts an asynchronous eject on a mountable.
+ * When this operation has completed, @callback will be called with
+ * @user_user data, and the operation can be finalized with
+ * g_file_eject_mountable_with_operation_finish().
*
- * However, in many cases an existence check is useful in a user interface,
- * for instance to make a menu item sensitive/insensitive, so that you don't
- * have to fool users that something is possible and then just show an error
- * dialog. If you do this, you should make sure to also handle the errors
- * that can happen due to races when you execute the operation.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: %TRUE if the file exists (and can be detected without error),
- * %FALSE otherwise (or if cancelled).
+ * Since: 2.22
*/
/**
- * g_file_query_file_type:
+ * g_file_eject_mountable_with_operation_finish:
* @file: input #GFile
- * @flags: a set of #GFileQueryInfoFlags passed to g_file_query_info()
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- *
- * Utility function to inspect the #GFileType of a file. This is
- * implemented using g_file_query_info() and as such does blocking I/O.
+ * @result: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * The primary use case of this method is to check if a file is
- * a regular file, directory, or symlink.
+ * Finishes an asynchronous eject operation started by
+ * g_file_eject_mountable_with_operation().
*
- * Returns: The #GFileType of the file and #G_FILE_TYPE_UNKNOWN
- * if the file does not exist
- * Since: 2.18
+ * Returns: %TRUE if the @file was ejected successfully.
+ * %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_file_query_filesystem_info:
+ * g_file_enumerate_children:
* @file: input #GFile
* @attributes: an attribute query string
+ * @flags: a set of #GFileQueryInfoFlags
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @error: a #GError
+ * @error: #GError for error reporting
*
- * Similar to g_file_query_info(), but obtains information
- * about the filesystem the @file is on, rather than the file itself.
- * For instance the amount of space available and the type of
- * the filesystem.
+ * Gets the requested information about the files in a directory.
+ * The result is a #GFileEnumerator object that will give out
+ * #GFileInfo objects for all the files in the directory.
*
- * The @attributes value is a string that specifies the attributes
- * that should be gathered. It is not an error if it's not possible
- * to read a particular requested attribute from a file - it just
- * won't be set. @attributes should be a comma-separated list of
- * attributes or attribute wildcards. The wildcard "*" means all
- * attributes, and a wildcard like "filesystem::*" means all attributes
- * in the filesystem namespace. The standard namespace for filesystem
- * attributes is "filesystem". Common attributes of interest are
- * #G_FILE_ATTRIBUTE_FILESYSTEM_SIZE (the total size of the filesystem
- * in bytes), #G_FILE_ATTRIBUTE_FILESYSTEM_FREE (number of bytes available),
- * and #G_FILE_ATTRIBUTE_FILESYSTEM_TYPE (type of the filesystem).
+ * The @attributes value is a string that specifies the file
+ * attributes that should be gathered. It is not an error if
+ * it's not possible to read a particular requested attribute
+ * from a file - it just won't be set. @attributes should
+ * be a comma-separated list of attributes or attribute wildcards.
+ * The wildcard "*" means all attributes, and a wildcard like
+ * "standard::*" means all attributes in the standard namespace.
+ * An example attribute query be "standard::*,owner::user".
+ * The standard attributes are available as defines, like
+ * #G_FILE_ATTRIBUTE_STANDARD_NAME.
*
* If @cancellable is not %NULL, then the operation can be cancelled
* by triggering the cancellable object from another thread. If the
* returned.
*
* If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will
- * be returned. Other errors are possible too, and depend on what
- * kind of filesystem the file is on.
+ * be returned. If the file is not a directory, the %G_IO_ERROR_NOT_DIRECTORY
+ * error will be returned. Other errors are possible too.
*
- * Returns: (transfer full): a #GFileInfo or %NULL if there was an error.
- * Free the returned object with g_object_unref().
+ * Returns: (transfer full): A #GFileEnumerator if successful,
+ * %NULL on error. Free the returned object with g_object_unref().
*/
/**
- * g_file_query_filesystem_info_async:
+ * g_file_enumerate_children_async:
* @file: input #GFile
* @attributes: an attribute query string
+ * @flags: a set of #GFileQueryInfoFlags
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the
+ * request is satisfied
* @user_data: (closure): the data to pass to callback function
*
- * Asynchronously gets the requested information about the filesystem
- * that the specified @file is on. The result is a #GFileInfo object
- * that contains key-value attributes (such as type or size for the
- * file).
+ * Asynchronously gets the requested information about the files
+ * in a directory. The result is a #GFileEnumerator object that will
+ * give out #GFileInfo objects for all the files in the directory.
*
- * For more details, see g_file_query_filesystem_info() which is the
- * synchronous version of this call.
+ * For more details, see g_file_enumerate_children() which is
+ * the synchronous version of this call.
*
* When the operation is finished, @callback will be called. You can
- * then call g_file_query_info_finish() to get the result of the
- * operation.
+ * then call g_file_enumerate_children_finish() to get the result of
+ * the operation.
*/
/**
- * g_file_query_filesystem_info_finish:
+ * g_file_enumerate_children_finish:
* @file: input #GFile
* @res: a #GAsyncResult
* @error: a #GError
*
- * Finishes an asynchronous filesystem info query.
- * See g_file_query_filesystem_info_async().
+ * Finishes an async enumerate children operation.
+ * See g_file_enumerate_children_async().
*
- * Returns: (transfer full): #GFileInfo for given @file
- * or %NULL on error.
+ * Returns: (transfer full): a #GFileEnumerator or %NULL
+ * if an error occurred.
* Free the returned object with g_object_unref().
*/
/**
- * g_file_query_info:
- * @file: input #GFile
- * @attributes: an attribute query string
- * @flags: a set of #GFileQueryInfoFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError
+ * g_file_enumerator_close:
+ * @enumerator: a #GFileEnumerator.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Gets the requested information about specified @file.
- * The result is a #GFileInfo object that contains key-value
- * attributes (such as the type or size of the file).
+ * Releases all resources used by this enumerator, making the
+ * enumerator return %G_IO_ERROR_CLOSED on all calls.
*
- * The @attributes value is a string that specifies the file
- * attributes that should be gathered. It is not an error if
- * it's not possible to read a particular requested attribute
- * from a file - it just won't be set. @attributes should be a
- * comma-separated list of attributes or attribute wildcards.
- * The wildcard "*" means all attributes, and a wildcard like
- * "standard::*" means all attributes in the standard namespace.
- * An example attribute query be "standard::*,owner::user".
- * The standard attributes are available as defines, like
- * #G_FILE_ATTRIBUTE_STANDARD_NAME.
+ * This will be automatically called when the last reference
+ * is dropped, but you might want to call this function to make
+ * sure resources are released as early as possible.
*
- * If @cancellable is not %NULL, then the operation can be cancelled
- * by triggering the cancellable object from another thread. If the
- * operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
+ * Returns: #TRUE on success or #FALSE on error.
+ */
+
+
+/**
+ * g_file_enumerator_close_async:
+ * @enumerator: a #GFileEnumerator.
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
+ *
+ * Asynchronously closes the file enumerator.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned in
+ * g_file_enumerator_close_finish().
+ */
+
+
+/**
+ * g_file_enumerator_close_finish:
+ * @enumerator: a #GFileEnumerator.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
+ *
+ * Finishes closing a file enumerator, started from g_file_enumerator_close_async().
+ *
+ * If the file enumerator was already closed when g_file_enumerator_close_async()
+ * was called, then this function will report %G_IO_ERROR_CLOSED in @error, and
+ * return %FALSE. If the file enumerator had pending operation when the close
+ * operation was started, then this function will report %G_IO_ERROR_PENDING, and
+ * return %FALSE. If @cancellable was not %NULL, then the operation may have been
+ * cancelled by triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %FALSE will be
* returned.
*
- * For symlinks, normally the information about the target of the
- * symlink is returned, rather than information about the symlink
- * itself. However if you pass #G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS
- * in @flags the information about the symlink itself will be returned.
- * Also, for symlinks that point to non-existing files the information
- * about the symlink itself will be returned.
+ * Returns: %TRUE if the close operation has finished successfully.
+ */
+
+
+/**
+ * g_file_enumerator_get_child:
+ * @enumerator: a #GFileEnumerator
+ * @info: a #GFileInfo gotten from g_file_enumerator_next_file()
+ * or the async equivalents.
*
- * If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will be
- * returned. Other errors are possible too, and depend on what kind of
- * filesystem the file is on.
+ * Return a new #GFile which refers to the file named by @info in the source
+ * directory of @enumerator. This function is primarily intended to be used
+ * inside loops with g_file_enumerator_next_file().
*
- * Returns: (transfer full): a #GFileInfo for the given @file, or %NULL
- * on error. Free the returned object with g_object_unref().
+ * This is a convenience method that's equivalent to:
+ * |[<!-- language="C" -->
+ * gchar *name = g_file_info_get_name (info);
+ * GFile *child = g_file_get_child (g_file_enumerator_get_container (enumr),
+ * name);
+ * ]|
+ *
+ * Returns: (transfer full): a #GFile for the #GFileInfo passed it.
+ * Since: 2.36
*/
/**
- * g_file_query_info_async:
- * @file: input #GFile
- * @attributes: an attribute query string
- * @flags: a set of #GFileQueryInfoFlags
+ * g_file_enumerator_get_container:
+ * @enumerator: a #GFileEnumerator
+ *
+ * Get the #GFile container which is being enumerated.
+ *
+ * Returns: (transfer none): the #GFile which is being enumerated.
+ * Since: 2.18
+ */
+
+
+/**
+ * g_file_enumerator_has_pending:
+ * @enumerator: a #GFileEnumerator.
+ *
+ * Checks if the file enumerator has pending operations.
+ *
+ * Returns: %TRUE if the @enumerator has pending operations.
+ */
+
+
+/**
+ * g_file_enumerator_is_closed:
+ * @enumerator: a #GFileEnumerator.
+ *
+ * Checks if the file enumerator has been closed.
+ *
+ * Returns: %TRUE if the @enumerator is closed.
+ */
+
+
+/**
+ * g_file_enumerator_iterate:
+ * @direnum: an open #GFileEnumerator
+ * @out_info: (out) (transfer none) (optional): Output location for the next #GFileInfo, or %NULL
+ * @out_child: (out) (transfer none) (optional): Output location for the next #GFile, or %NULL
+ * @cancellable: a #GCancellable
+ * @error: a #GError
+ *
+ * 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 "end of iteration or error", which
+ * requires allocation of a temporary #GError.
+ *
+ * In contrast, with this function, a %FALSE return from
+ * g_file_enumerator_iterate() *always* means
+ * "error". 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, &info, NULL, cancellable, error))
+ * goto out;
+ * if (!info)
+ * break;
+ * ... do stuff with "info"; do not unref it! ...
+ * }
+ *
+ * out:
+ * g_object_unref (direnum); // Note: frees the last @info
+ * ]|
+ *
+ * Since: 2.44
+ */
+
+
+/**
+ * g_file_enumerator_next_file:
+ * @enumerator: a #GFileEnumerator.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
+ *
+ * Returns information for the next file in the enumerated object.
+ * Will block until the information is available. The #GFileInfo
+ * returned from this function will contain attributes that match the
+ * attribute string that was passed when the #GFileEnumerator was created.
+ *
+ * See the documentation of #GFileEnumerator for information about the
+ * order of returned files.
+ *
+ * On error, returns %NULL and sets @error to the error. If the
+ * enumerator is at the end, %NULL will be returned and @error will
+ * be unset.
+ *
+ * Returns: (nullable) (transfer full): A #GFileInfo or %NULL on error
+ * or end of enumerator. Free the returned object with
+ * g_object_unref() when no longer needed.
+ */
+
+
+/**
+ * g_file_enumerator_next_files_async:
+ * @enumerator: a #GFileEnumerator.
+ * @num_files: the number of file info objects to request
* @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call when the
- * request is satisfied
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
* @user_data: (closure): the data to pass to callback function
*
- * Asynchronously gets the requested information about specified @file.
- * The result is a #GFileInfo object that contains key-value attributes
- * (such as type or size for the file).
+ * Request information for a number of files from the enumerator asynchronously.
+ * When all i/o for the operation is finished the @callback will be called with
+ * the requested information.
+ *
+ * See the documentation of #GFileEnumerator for information about the
+ * order of returned files.
+ *
+ * The callback can be called with less than @num_files files in case of error
+ * or at the end of the enumerator. In case of a partial error the callback will
+ * be called with any succeeding items and no error, and on the next request the
+ * error will be reported. If a request is cancelled the callback will be called
+ * with %G_IO_ERROR_CANCELLED.
+ *
+ * During an async request no other sync and async calls are allowed, and will
+ * result in %G_IO_ERROR_PENDING errors.
+ *
+ * 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.
+ */
+
+
+/**
+ * g_file_enumerator_next_files_finish:
+ * @enumerator: a #GFileEnumerator.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * For more details, see g_file_query_info() which is the synchronous
- * version of this call.
+ * Finishes the asynchronous operation started with g_file_enumerator_next_files_async().
*
- * When the operation is finished, @callback will be called. You can
- * then call g_file_query_info_finish() to get the result of the operation.
+ * Returns: (transfer full) (element-type Gio.FileInfo): a #GList of #GFileInfos. You must free the list with
+ * g_list_free() and unref the infos with g_object_unref() when you're
+ * done with them.
*/
/**
- * g_file_query_info_finish:
- * @file: input #GFile
- * @res: a #GAsyncResult
- * @error: a #GError
- *
- * Finishes an asynchronous file info query.
- * See g_file_query_info_async().
+ * g_file_enumerator_set_pending:
+ * @enumerator: a #GFileEnumerator.
+ * @pending: a boolean value.
*
- * Returns: (transfer full): #GFileInfo for given @file
- * or %NULL on error. Free the returned object with
- * g_object_unref().
+ * Sets the file enumerator as having pending operations.
*/
/**
- * g_file_query_settable_attributes:
- * @file: input #GFile
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
+ * g_file_equal:
+ * @file1: the first #GFile
+ * @file2: the second #GFile
*
- * Obtain the list of settable attributes for the file.
+ * Checks if the two given #GFiles refer to the same file.
*
- * Returns the type and full attribute name of all the attributes
- * that can be set on this file. This doesn't mean setting it will
- * always succeed though, you might get an access failure, or some
- * specific file may not support a specific attribute.
+ * Note that two #GFiles that differ can still refer to the same
+ * file on the filesystem due to various forms of filename
+ * aliasing.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * This call does no blocking I/O.
*
- * Returns: a #GFileAttributeInfoList describing the settable attributes.
- * When you are done with it, release it with
- * g_file_attribute_info_list_unref()
+ * Returns: %TRUE if @file1 and @file2 are equal.
*/
/**
- * g_file_query_writable_namespaces:
+ * g_file_find_enclosing_mount:
* @file: input #GFile
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Obtain the list of attribute namespaces where new attributes
- * can be created by a user. An example of this is extended
- * attributes (in the "xattr" namespace).
- *
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * @error: a #GError
*
- * Returns: a #GFileAttributeInfoList describing the writable namespaces.
- * When you are done with it, release it with
- * g_file_attribute_info_list_unref()
- */
-
-
-/**
- * g_file_read: (virtual read_fn)
- * @file: #GFile to read
- * @cancellable: (nullable): a #GCancellable
- * @error: a #GError, or %NULL
+ * Gets a #GMount for the #GFile.
*
- * Opens a file for reading. The result is a #GFileInputStream that
- * can be used to read the contents of the file.
+ * If the #GFileIface for @file does not have a mount (e.g.
+ * possibly a remote share), @error will be set to %G_IO_ERROR_NOT_FOUND
+ * and %NULL will be returned.
*
* If @cancellable is not %NULL, then the operation can be cancelled by
* triggering the cancellable object from another thread. If the operation
* was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will be
- * returned. If the file is a directory, the %G_IO_ERROR_IS_DIRECTORY
- * error will be returned. Other errors are possible too, and depend
- * on what kind of filesystem the file is on.
- *
- * Returns: (transfer full): #GFileInputStream or %NULL on error.
+ * Returns: (transfer full): a #GMount where the @file is located
+ * or %NULL on error.
* Free the returned object with g_object_unref().
*/
/**
- * g_file_read_async:
- * @file: input #GFile
+ * g_file_find_enclosing_mount_async:
+ * @file: a #GFile
* @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object,
* %NULL to ignore
* when the request is satisfied
* @user_data: (closure): the data to pass to callback function
*
- * Asynchronously opens @file for reading.
+ * Asynchronously gets the mount for the file.
*
- * For more details, see g_file_read() which is
+ * For more details, see g_file_find_enclosing_mount() which is
* the synchronous version of this call.
*
* When the operation is finished, @callback will be called.
- * You can then call g_file_read_finish() to get the result
- * of the operation.
+ * You can then call g_file_find_enclosing_mount_finish() to
+ * get the result of the operation.
*/
/**
- * g_file_read_finish:
- * @file: input #GFile
+ * g_file_find_enclosing_mount_finish:
+ * @file: a #GFile
* @res: a #GAsyncResult
- * @error: a #GError, or %NULL
+ * @error: a #GError
*
- * Finishes an asynchronous file read operation started with
- * g_file_read_async().
+ * Finishes an asynchronous find mount request.
+ * See g_file_find_enclosing_mount_async().
*
- * Returns: (transfer full): a #GFileInputStream or %NULL on error.
+ * Returns: (transfer full): #GMount for given @file or %NULL on error.
* Free the returned object with g_object_unref().
*/
/**
- * g_file_replace:
+ * g_file_get_basename:
* @file: input #GFile
- * @etag: (nullable): an optional [entity tag][gfile-etag]
- * for the current #GFile, or #NULL to ignore
- * @make_backup: %TRUE if a backup should be created
- * @flags: a set of #GFileCreateFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
*
- * Returns an output stream for overwriting the file, possibly
- * creating a backup copy of the file first. If the file doesn't exist,
- * it will be created.
+ * Gets the base name (the last component of the path) for a given #GFile.
*
- * This will try to replace the file in the safest way possible so
- * that any errors during the writing will not affect an already
- * existing copy of the file. For instance, for local files it
- * may write to a temporary file and then atomically rename over
- * the destination when the stream is closed.
+ * If called for the top level of a system (such as the filesystem root
+ * or a uri like sftp://host/) it will return a single directory separator
+ * (and on Windows, possibly a drive letter).
*
- * By default files created are generally readable by everyone,
- * but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
- * will be made readable only to the current user, to the level that
- * is supported on the target filesystem.
+ * The base name is a byte string (not UTF-8). It has no defined encoding
+ * or rules other than it may not contain zero bytes. If you want to use
+ * filenames in a user interface you should use the display name that you
+ * can get by requesting the %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME
+ * attribute with g_file_query_info().
*
- * If @cancellable is not %NULL, then the operation can be cancelled
- * by triggering the cancellable object from another thread. If the
- * operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
- * returned.
+ * This call does no blocking I/O.
*
- * 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.
+ * Returns: (type filename) (nullable): string containing the #GFile's
+ * base name, or %NULL if given #GFile is invalid. The returned string
+ * should be freed with g_free() when no longer needed.
+ */
+
+
+/**
+ * g_file_get_child:
+ * @file: input #GFile
+ * @name: (type filename): string containing the child's basename
*
- * If @make_backup is %TRUE, this function will attempt to make a
- * backup of the current file before overwriting it. If this fails
- * a %G_IO_ERROR_CANT_CREATE_BACKUP error will be returned. If you
- * want to replace anyway, try again with @make_backup set to %FALSE.
+ * Gets a child of @file with basename equal to @name.
*
- * If the file is a directory the %G_IO_ERROR_IS_DIRECTORY error will
- * be returned, and if the file is some other form of non-regular file
- * then a %G_IO_ERROR_NOT_REGULAR_FILE error will be returned. Some
- * file systems don't allow all file names, and may return an
- * %G_IO_ERROR_INVALID_FILENAME error, and if the name is to long
- * %G_IO_ERROR_FILENAME_TOO_LONG will be returned. Other errors are
- * possible too, and depend on what kind of filesystem the file is on.
+ * Note that the file with that specific name might not exist, but
+ * you can still have a #GFile that points to it. You can use this
+ * for instance to create that file.
*
- * Returns: (transfer full): a #GFileOutputStream or %NULL on error.
+ * This call does no blocking I/O.
+ *
+ * Returns: (transfer full): a #GFile to a child specified by @name.
* Free the returned object with g_object_unref().
*/
/**
- * g_file_replace_async:
+ * g_file_get_child_for_display_name:
* @file: input #GFile
- * @etag: (nullable): an [entity tag][gfile-etag] for the current #GFile,
- * or %NULL to ignore
- * @make_backup: %TRUE if a backup should be created
- * @flags: a set of #GFileCreateFlags
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * @display_name: string to a possible child
+ * @error: return location for an error
*
- * Asynchronously overwrites the file, replacing the contents,
- * possibly creating a backup copy of the file first.
+ * Gets the child of @file for a given @display_name (i.e. a UTF-8
+ * version of the name). If this function fails, it returns %NULL
+ * and @error will be set. This is very useful when constructing a
+ * #GFile for a new file and the user entered the filename in the
+ * user interface, for instance when you select a directory and
+ * type a filename in the file selector.
*
- * For more details, see g_file_replace() which is
- * the synchronous version of this call.
+ * This call does no blocking I/O.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_replace_finish() to get the result
- * of the operation.
+ * Returns: (transfer full): a #GFile to the specified child, or
+ * %NULL if the display name couldn't be converted.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_file_replace_contents:
+ * g_file_get_parent:
* @file: input #GFile
- * @contents: (element-type guint8) (array length=length): a string containing the new contents for @file
- * @length: the length of @contents in bytes
- * @etag: (nullable): the old [entity-tag][gfile-etag] for the document,
- * or %NULL
- * @make_backup: %TRUE if a backup should be created
- * @flags: a set of #GFileCreateFlags
- * @new_etag: (out) (optional): a location to a new [entity tag][gfile-etag]
- * for the document. This should be freed with g_free() when no longer
- * needed, or %NULL
- * @cancellable: optional #GCancellable object, %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Replaces the contents of @file with @contents of @length bytes.
- *
- * 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. 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
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Gets the parent directory for the @file.
+ * If the @file represents the root directory of the
+ * file system, then %NULL will be returned.
*
- * The returned @new_etag can be used to verify that the file hasn't
- * changed the next time it is saved over.
+ * This call does no blocking I/O.
*
- * Returns: %TRUE if successful. If an error has occurred, this function
- * will return %FALSE and set @error appropriately if present.
+ * Returns: (nullable) (transfer full): a #GFile structure to the
+ * parent of the given #GFile or %NULL if there is no parent. Free
+ * the returned object with g_object_unref().
*/
/**
- * g_file_replace_contents_async:
+ * g_file_get_parse_name:
* @file: input #GFile
- * @contents: (element-type guint8) (array length=length): string of contents to replace the file with
- * @length: the length of @contents in bytes
- * @etag: (nullable): a new [entity tag][gfile-etag] for the @file, or %NULL
- * @make_backup: %TRUE if a backup should be created
- * @flags: a set of #GFileCreateFlags
- * @cancellable: optional #GCancellable object, %NULL to ignore
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
*
- * Starts an asynchronous replacement of @file with the given
- * @contents of @length bytes. @etag will replace the document's
- * current entity tag.
+ * Gets the parse name of the @file.
+ * A parse name is a UTF-8 string that describes the
+ * file such that one can get the #GFile back using
+ * g_file_parse_name().
*
- * When this operation has completed, @callback will be called with
- * @user_user data, and the operation can be finalized with
- * g_file_replace_contents_finish().
+ * This is generally used to show the #GFile as a nice
+ * full-pathname kind of string in a user interface,
+ * like in a location entry.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * For local files with names that can safely be converted
+ * to UTF-8 the pathname is used, otherwise the IRI is used
+ * (a form of URI that allows UTF-8 characters unescaped).
*
- * If @make_backup is %TRUE, this function will attempt to
- * make a backup of @file.
+ * This call does no blocking I/O.
*
- * Note that no copy of @content will be made, so it must stay valid
- * until @callback is called. See g_file_replace_contents_bytes_async()
- * for a #GBytes version that will automatically hold a reference to the
- * contents (without copying) for the duration of the call.
+ * Returns: a string containing the #GFile's parse name.
+ * The returned string should be freed with g_free()
+ * when no longer needed.
*/
/**
- * g_file_replace_contents_bytes_async:
+ * g_file_get_path:
* @file: input #GFile
- * @contents: a #GBytes
- * @etag: (nullable): a new [entity tag][gfile-etag] for the @file, or %NULL
- * @make_backup: %TRUE if a backup should be created
- * @flags: a set of #GFileCreateFlags
- * @cancellable: optional #GCancellable object, %NULL to ignore
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
*
- * Same as g_file_replace_contents_async() but takes a #GBytes input instead.
- * This function will keep a ref on @contents until the operation is done.
- * Unlike g_file_replace_contents_async() this allows forgetting about the
- * content without waiting for the callback.
+ * Gets the local pathname for #GFile, if one exists. If non-%NULL, this is
+ * guaranteed to be an absolute, canonical path. It might contain symlinks.
*
- * When this operation has completed, @callback will be called with
- * @user_user data, and the operation can be finalized with
- * g_file_replace_contents_finish().
+ * This call does no blocking I/O.
*
- * Since: 2.40
+ * Returns: (type filename) (nullable): string containing the #GFile's path,
+ * or %NULL if no such path exists. The returned string should be freed
+ * with g_free() when no longer needed.
*/
/**
- * g_file_replace_contents_finish:
- * @file: input #GFile
- * @res: a #GAsyncResult
- * @new_etag: (out) (optional): a location of a new [entity tag][gfile-etag]
- * for the document. This should be freed with g_free() when it is no
- * longer needed, or %NULL
- * @error: a #GError, or %NULL
+ * g_file_get_relative_path:
+ * @parent: input #GFile
+ * @descendant: input #GFile
*
- * Finishes an asynchronous replace of the given @file. See
- * g_file_replace_contents_async(). Sets @new_etag to the new entity
- * tag for the document, if present.
+ * Gets the path for @descendant relative to @parent.
*
- * Returns: %TRUE on success, %FALSE on failure.
+ * This call does no blocking I/O.
+ *
+ * Returns: (type filename) (nullable): string with the relative path from
+ * @descendant to @parent, or %NULL if @descendant doesn't have @parent as
+ * prefix. The returned string should be freed with g_free() when
+ * no longer needed.
*/
/**
- * g_file_replace_finish:
+ * g_file_get_uri:
* @file: input #GFile
- * @res: a #GAsyncResult
- * @error: a #GError, or %NULL
*
- * Finishes an asynchronous file replace operation started with
- * g_file_replace_async().
+ * Gets the URI for the @file.
*
- * Returns: (transfer full): a #GFileOutputStream, or %NULL on error.
- * Free the returned object with g_object_unref().
+ * This call does no blocking I/O.
+ *
+ * Returns: a string containing the #GFile's URI.
+ * The returned string should be freed with g_free()
+ * when no longer needed.
*/
/**
- * g_file_replace_readwrite:
- * @file: a #GFile
- * @etag: (nullable): an optional [entity tag][gfile-etag]
- * for the current #GFile, or #NULL to ignore
- * @make_backup: %TRUE if a backup should be created
- * @flags: a set of #GFileCreateFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: return location for a #GError, or %NULL
- *
- * Returns an output stream for overwriting the file in readwrite mode,
- * possibly creating a backup copy of the file first. If the file doesn't
- * exist, it will be created.
+ * g_file_get_uri_scheme:
+ * @file: input #GFile
*
- * For details about the behaviour, see g_file_replace() which does the
- * same thing but returns an output stream only.
+ * Gets the URI scheme for a #GFile.
+ * RFC 3986 decodes the scheme as:
+ * |[
+ * URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
+ * ]|
+ * Common schemes include "file", "http", "ftp", etc.
*
- * Note that in many non-local file cases read and write streams are not
- * supported, so make sure you really need to do read and write streaming,
- * rather than just opening for reading or writing.
+ * This call does no blocking I/O.
*
- * Returns: (transfer full): a #GFileIOStream or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * Returns: a string containing the URI scheme for the given
+ * #GFile. The returned string should be freed with g_free()
+ * when no longer needed.
*/
/**
- * g_file_replace_readwrite_async:
+ * g_file_has_parent:
* @file: input #GFile
- * @etag: (nullable): an [entity tag][gfile-etag] for the current #GFile,
- * or %NULL to ignore
- * @make_backup: %TRUE if a backup should be created
- * @flags: a set of #GFileCreateFlags
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Asynchronously overwrites the file in read-write mode,
- * replacing the contents, possibly creating a backup copy
- * of the file first.
+ * @parent: (nullable): the parent to check for, or %NULL
*
- * For more details, see g_file_replace_readwrite() which is
- * the synchronous version of this call.
+ * Checks if @file has a parent, and optionally, if it is @parent.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_replace_readwrite_finish() to get
- * the result of the operation.
+ * If @parent is %NULL then this function returns %TRUE if @file has any
+ * parent at all. If @parent is non-%NULL then %TRUE is only returned
+ * if @file is an immediate child of @parent.
*
- * Since: 2.22
+ * Returns: %TRUE if @file is an immediate child of @parent (or any parent in
+ * the case that @parent is %NULL).
+ * Since: 2.24
*/
/**
- * g_file_replace_readwrite_finish:
+ * g_file_has_prefix: (virtual prefix_matches)
* @file: input #GFile
- * @res: a #GAsyncResult
- * @error: a #GError, or %NULL
+ * @prefix: input #GFile
*
- * Finishes an asynchronous file replace operation started with
- * g_file_replace_readwrite_async().
+ * Checks whether @file has the prefix specified by @prefix.
*
- * Returns: (transfer full): a #GFileIOStream, or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.22
- */
-
-
-/**
- * g_file_resolve_relative_path:
- * @file: input #GFile
- * @relative_path: (type filename): a given relative path string
+ * In other words, if the names of initial elements of @file's
+ * 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.
*
- * Resolves a relative path for @file to an absolute path.
+ * A #GFile is not a prefix of itself. If you want to check for
+ * equality, use g_file_equal().
*
- * This call does no blocking I/O.
+ * 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
+ * of @prefix.
*
- * Returns: (transfer full): #GFile to the resolved path.
- * %NULL if @relative_path is %NULL or if @file is invalid.
- * Free the returned object with g_object_unref().
+ * Returns: %TRUE if the @files's parent, grandparent, etc is @prefix,
+ * %FALSE otherwise.
*/
/**
- * g_file_set_attribute:
+ * g_file_has_uri_scheme:
* @file: input #GFile
- * @attribute: a string containing the attribute's name
- * @type: The type of the attribute
- * @value_p: (nullable): a pointer to the value (or the pointer
- * itself if the type is a pointer type)
- * @flags: a set of #GFileQueryInfoFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Sets an attribute in the file with attribute name @attribute to @value.
+ * @uri_scheme: a string containing a URI scheme
*
- * Some attributes can be unset by setting @type to
- * %G_FILE_ATTRIBUTE_TYPE_INVALID and @value_p to %NULL.
+ * Checks to see if a #GFile has a given URI scheme.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * This call does no blocking I/O.
*
- * Returns: %TRUE if the attribute was set, %FALSE otherwise.
+ * Returns: %TRUE if #GFile's backend supports the
+ * given URI scheme, %FALSE if URI scheme is %NULL,
+ * not supported, or #GFile is invalid.
*/
/**
- * g_file_set_attribute_byte_string:
- * @file: input #GFile
- * @attribute: a string containing the attribute's name
- * @value: a string containing the attribute's new value
- * @flags: a #GFileQueryInfoFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
+ * g_file_hash: (virtual hash)
+ * @file: (type GFile): #gconstpointer to a #GFile
*
- * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING to @value.
- * If @attribute is of a different type, this operation will fail,
- * returning %FALSE.
+ * Creates a hash value for a #GFile.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * This call does no blocking I/O.
*
- * Returns: %TRUE if the @attribute was successfully set to @value
- * in the @file, %FALSE otherwise.
+ * Returns: 0 if @file is not a valid #GFile, otherwise an
+ * integer that can be used as hash value for the #GFile.
+ * This function is intended for easily hashing a #GFile to
+ * add to a #GHashTable or similar data structure.
*/
/**
- * g_file_set_attribute_int32:
- * @file: input #GFile
- * @attribute: a string containing the attribute's name
- * @value: a #gint32 containing the attribute's new value
- * @flags: a #GFileQueryInfoFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_INT32 to @value.
- * If @attribute is of a different type, this operation will fail.
+ * g_file_icon_get_file:
+ * @icon: a #GIcon.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Gets the #GFile associated with the given @icon.
*
- * Returns: %TRUE if the @attribute was successfully set to @value
- * in the @file, %FALSE otherwise.
+ * Returns: (transfer none): a #GFile, or %NULL.
*/
/**
- * g_file_set_attribute_int64:
- * @file: input #GFile
- * @attribute: a string containing the attribute's name
- * @value: a #guint64 containing the attribute's new value
- * @flags: a #GFileQueryInfoFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_INT64 to @value.
- * If @attribute is of a different type, this operation will fail.
+ * g_file_icon_new:
+ * @file: a #GFile.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Creates a new icon for a file.
*
- * Returns: %TRUE if the @attribute was successfully set, %FALSE otherwise.
+ * Returns: (transfer full) (type GFileIcon): a #GIcon for the given
+ * @file, or %NULL on error.
*/
/**
- * g_file_set_attribute_string:
- * @file: input #GFile
- * @attribute: a string containing the attribute's name
- * @value: a string containing the attribute's value
- * @flags: #GFileQueryInfoFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_STRING to @value.
- * If @attribute is of a different type, this operation will fail.
- *
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * g_file_info_clear_status:
+ * @info: a #GFileInfo.
*
- * Returns: %TRUE if the @attribute was successfully set, %FALSE otherwise.
+ * Clears the status information from @info.
*/
/**
- * g_file_set_attribute_uint32:
- * @file: input #GFile
- * @attribute: a string containing the attribute's name
- * @value: a #guint32 containing the attribute's new value
- * @flags: a #GFileQueryInfoFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
+ * g_file_info_copy_into:
+ * @src_info: source to copy attributes from.
+ * @dest_info: destination to copy attributes to.
*
- * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_UINT32 to @value.
- * If @attribute is of a different type, this operation will fail.
+ * First clears all of the [GFileAttribute][gio-GFileAttribute] of @dest_info,
+ * and then copies all of the file attributes from @src_info to @dest_info.
+ */
+
+
+/**
+ * g_file_info_dup:
+ * @other: a #GFileInfo.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Duplicates a file info structure.
*
- * Returns: %TRUE if the @attribute was successfully set to @value
- * in the @file, %FALSE otherwise.
+ * Returns: (transfer full): a duplicate #GFileInfo of @other.
*/
/**
- * g_file_set_attribute_uint64:
- * @file: input #GFile
- * @attribute: a string containing the attribute's name
- * @value: a #guint64 containing the attribute's new value
- * @flags: a #GFileQueryInfoFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_UINT64 to @value.
- * If @attribute is of a different type, this operation will fail.
+ * g_file_info_get_attribute_as_string:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Gets the value of a attribute, formated as a string.
+ * This escapes things as needed to make the string valid
+ * utf8.
*
- * Returns: %TRUE if the @attribute was successfully set to @value
- * in the @file, %FALSE otherwise.
+ * Returns: a UTF-8 string associated with the given @attribute.
+ * When you're done with the string it must be freed with g_free().
*/
/**
- * g_file_set_attributes_async:
- * @file: input #GFile
- * @info: a #GFileInfo
- * @flags: a #GFileQueryInfoFlags
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): a #gpointer
- *
- * Asynchronously sets the attributes of @file with @info.
+ * g_file_info_get_attribute_boolean:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * For more details, see g_file_set_attributes_from_info(),
- * which is the synchronous version of this call.
+ * Gets the value of a boolean attribute. If the attribute does not
+ * contain a boolean value, %FALSE will be returned.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_set_attributes_finish() to get
- * the result of the operation.
+ * Returns: the boolean value contained within the attribute.
*/
/**
- * g_file_set_attributes_finish:
- * @file: input #GFile
- * @result: a #GAsyncResult
- * @info: (out) (transfer full): a #GFileInfo
- * @error: a #GError, or %NULL
+ * g_file_info_get_attribute_byte_string:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * Finishes setting an attribute started in g_file_set_attributes_async().
+ * Gets the value of a byte string attribute. If the attribute does
+ * not contain a byte string, %NULL will be returned.
*
- * Returns: %TRUE if the attributes were set correctly, %FALSE otherwise.
+ * Returns: the contents of the @attribute value as a byte string, or
+ * %NULL otherwise.
*/
/**
- * g_file_set_attributes_from_info:
- * @file: input #GFile
+ * g_file_info_get_attribute_data:
* @info: a #GFileInfo
- * @flags: #GFileQueryInfoFlags
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Tries to set all attributes in the #GFileInfo on the target
- * values, not stopping on the first error.
- *
- * If there is any error during this operation then @error will
- * be set to the first error. Error on particular fields are flagged
- * by setting the "status" field in the attribute value to
- * %G_FILE_ATTRIBUTE_STATUS_ERROR_SETTING, which means you can
- * also detect further errors.
+ * @attribute: a file attribute key
+ * @type: (out) (optional): return location for the attribute type, or %NULL
+ * @value_pp: (out) (optional) (not nullable): return location for the
+ * attribute value, or %NULL; the attribute value will not be %NULL
+ * @status: (out) (optional): return location for the attribute status, or %NULL
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Gets the attribute type, value and status for an attribute key.
*
- * Returns: %FALSE if there was any error, %TRUE otherwise.
+ * Returns: (transfer none): %TRUE if @info has an attribute named @attribute,
+ * %FALSE otherwise.
*/
/**
- * g_file_set_display_name:
- * @file: input #GFile
- * @display_name: a string
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Renames @file to the specified display name.
- *
- * The display name is converted from UTF-8 to the correct encoding
- * for the target filesystem if possible and the @file is renamed to this.
- *
- * If you want to implement a rename operation in the user interface the
- * edit name (#G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME) should be used as the
- * initial value in the rename widget, and then the result after editing
- * should be passed to g_file_set_display_name().
- *
- * On success the resulting converted filename is returned.
+ * g_file_info_get_attribute_int32:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Gets a signed 32-bit integer contained within the attribute. If the
+ * attribute does not contain a signed 32-bit integer, or is invalid,
+ * 0 will be returned.
*
- * Returns: (transfer full): a #GFile specifying what @file was renamed to,
- * or %NULL if there was an error.
- * Free the returned object with g_object_unref().
+ * Returns: a signed 32-bit integer from the attribute.
*/
/**
- * g_file_set_display_name_async:
- * @file: input #GFile
- * @display_name: a string
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async): a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Asynchronously sets the display name for a given #GFile.
+ * g_file_info_get_attribute_int64:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * For more details, see g_file_set_display_name() which is
- * the synchronous version of this call.
+ * Gets a signed 64-bit integer contained within the attribute. If the
+ * attribute does not contain an signed 64-bit integer, or is invalid,
+ * 0 will be returned.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_set_display_name_finish() to get
- * the result of the operation.
+ * Returns: a signed 64-bit integer from the attribute.
*/
/**
- * g_file_set_display_name_finish:
- * @file: input #GFile
- * @res: a #GAsyncResult
- * @error: a #GError, or %NULL
+ * g_file_info_get_attribute_object:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * Finishes setting a display name started with
- * g_file_set_display_name_async().
+ * Gets the value of a #GObject attribute. If the attribute does
+ * not contain a #GObject, %NULL will be returned.
*
- * Returns: (transfer full): a #GFile or %NULL on error.
- * Free the returned object with g_object_unref().
+ * Returns: (transfer none): a #GObject associated with the given @attribute, or
+ * %NULL otherwise.
*/
/**
- * g_file_start_mountable:
- * @file: input #GFile
- * @flags: flags affecting the operation
- * @start_operation: (nullable): a #GMountOperation, or %NULL to avoid user interaction
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @callback: (nullable): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL
- * @user_data: the data to pass to callback function
+ * g_file_info_get_attribute_status:
+ * @info: a #GFileInfo
+ * @attribute: a file attribute key
*
- * Starts a file of type #G_FILE_TYPE_MOUNTABLE.
- * Using @start_operation, you can request callbacks when, for instance,
- * passwords are needed during authentication.
+ * Gets the attribute status for an attribute key.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Returns: a #GFileAttributeStatus for the given @attribute, or
+ * %G_FILE_ATTRIBUTE_STATUS_UNSET if the key is invalid.
+ */
+
+
+/**
+ * g_file_info_get_attribute_string:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_mount_mountable_finish() to get
- * the result of the operation.
+ * Gets the value of a string attribute. If the attribute does
+ * not contain a string, %NULL will be returned.
*
- * Since: 2.22
+ * Returns: the contents of the @attribute value as a UTF-8 string, or
+ * %NULL otherwise.
*/
/**
- * g_file_start_mountable_finish:
- * @file: input #GFile
- * @result: a #GAsyncResult
- * @error: a #GError, or %NULL
- *
- * Finishes a start operation. See g_file_start_mountable() for details.
+ * g_file_info_get_attribute_stringv:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * Finish an asynchronous start operation that was started
- * with g_file_start_mountable().
+ * Gets the value of a stringv attribute. If the attribute does
+ * not contain a stringv, %NULL will be returned.
*
- * Returns: %TRUE if the operation finished successfully. %FALSE
- * otherwise.
+ * Returns: (transfer none): the contents of the @attribute value as a stringv, or
+ * %NULL otherwise. Do not free. These returned strings are UTF-8.
* Since: 2.22
*/
/**
- * g_file_stop_mountable:
- * @file: input #GFile
- * @flags: flags affecting the operation
- * @mount_operation: (nullable): a #GMountOperation,
- * or %NULL to avoid user interaction.
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: the data to pass to callback function
+ * g_file_info_get_attribute_type:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * Stops a file of type #G_FILE_TYPE_MOUNTABLE.
+ * Gets the attribute type for an attribute key.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Returns: a #GFileAttributeType for the given @attribute, or
+ * %G_FILE_ATTRIBUTE_TYPE_INVALID if the key is not set.
+ */
+
+
+/**
+ * g_file_info_get_attribute_uint32:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_stop_mountable_finish() to get
- * the result of the operation.
+ * Gets an unsigned 32-bit integer contained within the attribute. If the
+ * attribute does not contain an unsigned 32-bit integer, or is invalid,
+ * 0 will be returned.
*
- * Since: 2.22
+ * Returns: an unsigned 32-bit integer from the attribute.
*/
/**
- * g_file_stop_mountable_finish:
- * @file: input #GFile
- * @result: a #GAsyncResult
- * @error: a #GError, or %NULL
- *
- * Finishes an stop operation, see g_file_stop_mountable() for details.
+ * g_file_info_get_attribute_uint64:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * Finish an asynchronous stop operation that was started
- * with g_file_stop_mountable().
+ * Gets a unsigned 64-bit integer contained within the attribute. If the
+ * attribute does not contain an unsigned 64-bit integer, or is invalid,
+ * 0 will be returned.
*
- * Returns: %TRUE if the operation finished successfully.
- * %FALSE otherwise.
- * Since: 2.22
+ * Returns: a unsigned 64-bit integer from the attribute.
*/
/**
- * g_file_supports_thread_contexts:
- * @file: a #GFile
+ * g_file_info_get_content_type:
+ * @info: a #GFileInfo.
*
- * Checks if @file supports
- * [thread-default contexts][g-main-context-push-thread-default-context].
- * If this returns %FALSE, you cannot perform asynchronous operations on
- * @file in a thread that has a thread-default context.
+ * Gets the file's content type.
*
- * Returns: Whether or not @file supports thread-default contexts.
- * Since: 2.22
+ * Returns: a string containing the file's content type.
*/
/**
- * g_file_trash: (virtual trash)
- * @file: #GFile to send to trash
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @error: a #GError, or %NULL
- *
- * Sends @file to the "Trashcan", if possible. This is similar to
- * deleting it, but the user can recover it before emptying the trashcan.
- * Not all file systems support trashing, so this call can return the
- * %G_IO_ERROR_NOT_SUPPORTED error.
+ * g_file_info_get_deletion_date:
+ * @info: a #GFileInfo.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Returns the #GDateTime representing the deletion date of the file, as
+ * available in G_FILE_ATTRIBUTE_TRASH_DELETION_DATE. If the
+ * G_FILE_ATTRIBUTE_TRASH_DELETION_DATE attribute is unset, %NULL is returned.
*
- * Returns: %TRUE on successful trash, %FALSE otherwise.
+ * Returns: a #GDateTime, or %NULL.
+ * Since: 2.36
*/
/**
- * g_file_trash_async: (virtual trash_async)
- * @file: input #GFile
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: a #GAsyncReadyCallback to call
- * when the request is satisfied
- * @user_data: the data to pass to callback function
+ * g_file_info_get_display_name:
+ * @info: a #GFileInfo.
*
- * Asynchronously sends @file to the Trash location, if possible.
+ * Gets a display name for a file.
*
- * Since: 2.38
+ * Returns: a string containing the display name.
*/
/**
- * g_file_trash_finish: (virtual trash_finish)
- * @file: input #GFile
- * @result: a #GAsyncResult
- * @error: a #GError, or %NULL
+ * g_file_info_get_edit_name:
+ * @info: a #GFileInfo.
*
- * Finishes an asynchronous file trashing operation, started with
- * g_file_trash_async().
+ * Gets the edit name for a file.
*
- * Returns: %TRUE on successful trash, %FALSE otherwise.
- * Since: 2.38
+ * Returns: a string containing the edit name.
*/
/**
- * g_file_unmount_mountable:
- * @file: input #GFile
- * @flags: flags affecting the operation
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: (closure): the data to pass to callback function
+ * g_file_info_get_etag:
+ * @info: a #GFileInfo.
*
- * Unmounts a file of type G_FILE_TYPE_MOUNTABLE.
+ * Gets the [entity tag][gfile-etag] for a given
+ * #GFileInfo. See %G_FILE_ATTRIBUTE_ETAG_VALUE.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Returns: a string containing the value of the "etag:value" attribute.
+ */
+
+
+/**
+ * g_file_info_get_file_type:
+ * @info: a #GFileInfo.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_unmount_mountable_finish() to get
- * the result of the operation.
+ * Gets a file's type (whether it is a regular file, symlink, etc).
+ * This is different from the file's content type, see g_file_info_get_content_type().
*
- * Deprecated: 2.22: Use g_file_unmount_mountable_with_operation() instead.
+ * Returns: a #GFileType for the given file.
*/
/**
- * g_file_unmount_mountable_finish:
- * @file: input #GFile
- * @result: a #GAsyncResult
- * @error: a #GError, or %NULL
- *
- * Finishes an unmount operation, see g_file_unmount_mountable() for details.
+ * g_file_info_get_icon:
+ * @info: a #GFileInfo.
*
- * Finish an asynchronous unmount operation that was started
- * with g_file_unmount_mountable().
+ * Gets the icon for a file.
*
- * Returns: %TRUE if the operation finished successfully.
- * %FALSE otherwise.
- * Deprecated: 2.22: Use g_file_unmount_mountable_with_operation_finish()
- * instead.
+ * Returns: (transfer none): #GIcon for the given @info.
*/
/**
- * g_file_unmount_mountable_with_operation:
- * @file: input #GFile
- * @flags: flags affecting the operation
- * @mount_operation: (nullable): a #GMountOperation,
- * or %NULL to avoid user interaction
- * @cancellable: (nullable): optional #GCancellable object,
- * %NULL to ignore
- * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
- * when the request is satisfied, or %NULL
- * @user_data: (closure): the data to pass to callback function
+ * g_file_info_get_is_backup:
+ * @info: a #GFileInfo.
*
- * Unmounts a file of type #G_FILE_TYPE_MOUNTABLE.
+ * Checks if a file is a backup file.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Returns: %TRUE if file is a backup file, %FALSE otherwise.
+ */
+
+
+/**
+ * g_file_info_get_is_hidden:
+ * @info: a #GFileInfo.
*
- * When the operation is finished, @callback will be called.
- * You can then call g_file_unmount_mountable_finish() to get
- * the result of the operation.
+ * Checks if a file is hidden.
*
- * Since: 2.22
+ * Returns: %TRUE if the file is a hidden file, %FALSE otherwise.
*/
/**
- * g_file_unmount_mountable_with_operation_finish:
- * @file: input #GFile
- * @result: a #GAsyncResult
- * @error: a #GError, or %NULL
+ * g_file_info_get_is_symlink:
+ * @info: a #GFileInfo.
*
- * Finishes an unmount operation,
- * see g_file_unmount_mountable_with_operation() for details.
+ * Checks if a file is a symlink.
*
- * Finish an asynchronous unmount operation that was started
- * with g_file_unmount_mountable_with_operation().
+ * Returns: %TRUE if the given @info is a symlink.
+ */
+
+
+/**
+ * g_file_info_get_modification_time:
+ * @info: a #GFileInfo.
+ * @result: (out caller-allocates): a #GTimeVal.
*
- * Returns: %TRUE if the operation finished successfully.
- * %FALSE otherwise.
- * Since: 2.22
+ * Gets the modification time of the current @info and sets it
+ * in @result.
*/
/**
- * g_filename_completer_get_completion_suffix:
- * @completer: the filename completer.
- * @initial_text: text to be completed.
+ * g_file_info_get_name:
+ * @info: a #GFileInfo.
*
- * Obtains a completion for @initial_text from @completer.
+ * Gets the name for a file.
*
- * Returns: a completed string, or %NULL if no completion exists.
- * This string is not owned by GIO, so remember to g_free() it
- * when finished.
+ * Returns: (type filename): a string containing the file name.
*/
/**
- * g_filename_completer_get_completions:
- * @completer: the filename completer.
- * @initial_text: text to be completed.
+ * g_file_info_get_size:
+ * @info: a #GFileInfo.
*
- * Gets an array of completion strings for a given initial text.
+ * Gets the file's size.
*
- * Returns: (array zero-terminated=1) (transfer full): array of strings with possible completions for @initial_text.
- * This array must be freed by g_strfreev() when finished.
+ * Returns: a #goffset containing the file's size.
*/
/**
- * g_filename_completer_new:
+ * g_file_info_get_sort_order:
+ * @info: a #GFileInfo.
*
- * Creates a new filename completer.
+ * Gets the value of the sort_order attribute from the #GFileInfo.
+ * See %G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER.
*
- * Returns: a #GFilenameCompleter.
+ * Returns: a #gint32 containing the value of the "standard::sort_order" attribute.
*/
/**
- * g_filename_completer_set_dirs_only:
- * @completer: the filename completer.
- * @dirs_only: a #gboolean.
+ * g_file_info_get_symbolic_icon:
+ * @info: a #GFileInfo.
*
- * If @dirs_only is %TRUE, @completer will only
- * complete directory names, and not file names.
+ * Gets the symbolic icon for a file.
+ *
+ * Returns: (transfer none): #GIcon for the given @info.
+ * Since: 2.34
*/
/**
- * g_filter_input_stream_get_base_stream:
- * @stream: a #GFilterInputStream.
+ * g_file_info_get_symlink_target:
+ * @info: a #GFileInfo.
*
- * Gets the base stream for the filter stream.
+ * Gets the symlink target for a given #GFileInfo.
*
- * Returns: (transfer none): a #GInputStream.
+ * Returns: a string containing the symlink target.
*/
/**
- * g_filter_input_stream_get_close_base_stream:
- * @stream: a #GFilterInputStream.
+ * g_file_info_has_attribute:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * Returns whether the base stream will be closed when @stream is
- * closed.
+ * Checks if a file info structure has an attribute named @attribute.
*
- * Returns: %TRUE if the base stream will be closed.
+ * Returns: %TRUE if @Ginfo has an attribute named @attribute,
+ * %FALSE otherwise.
*/
/**
- * g_filter_input_stream_set_close_base_stream:
- * @stream: a #GFilterInputStream.
- * @close_base: %TRUE to close the base stream.
+ * g_file_info_has_namespace:
+ * @info: a #GFileInfo.
+ * @name_space: a file attribute namespace.
*
- * Sets whether the base stream will be closed when @stream is closed.
+ * Checks if a file info structure has an attribute in the
+ * specified @name_space.
+ *
+ * Returns: %TRUE if @Ginfo has an attribute in @name_space,
+ * %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_filter_output_stream_get_base_stream:
- * @stream: a #GFilterOutputStream.
+ * g_file_info_list_attributes:
+ * @info: a #GFileInfo.
+ * @name_space: (nullable): a file attribute key's namespace, or %NULL to list
+ * all attributes.
*
- * Gets the base stream for the filter stream.
+ * Lists the file info structure's attributes.
*
- * Returns: (transfer none): a #GOutputStream.
+ * Returns: (nullable) (array zero-terminated=1) (transfer full): a
+ * null-terminated array of strings of all of the possible attribute
+ * types for the given @name_space, or %NULL on error.
*/
/**
- * g_filter_output_stream_get_close_base_stream:
- * @stream: a #GFilterOutputStream.
+ * g_file_info_new:
*
- * Returns whether the base stream will be closed when @stream is
- * closed.
+ * Creates a new file info structure.
*
- * Returns: %TRUE if the base stream will be closed.
+ * Returns: a #GFileInfo.
*/
/**
- * g_filter_output_stream_set_close_base_stream:
- * @stream: a #GFilterOutputStream.
- * @close_base: %TRUE to close the base stream.
+ * g_file_info_remove_attribute:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
*
- * Sets whether the base stream will be closed when @stream is closed.
+ * Removes all cases of @attribute from @info if it exists.
*/
/**
- * g_icon_deserialize:
- * @value: a #GVariant created with g_icon_serialize()
- *
- * Deserializes a #GIcon previously serialized using g_icon_serialize().
+ * g_file_info_set_attribute:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
+ * @type: a #GFileAttributeType
+ * @value_p: (not nullable): pointer to the value
*
- * Returns: (transfer full): a #GIcon, or %NULL when deserialization fails.
- * Since: 2.38
+ * Sets the @attribute to contain the given value, if possible. To unset the
+ * attribute, use %G_FILE_ATTRIBUTE_TYPE_INVALID for @type.
*/
/**
- * g_icon_equal:
- * @icon1: (nullable): pointer to the first #GIcon.
- * @icon2: (nullable): pointer to the second #GIcon.
- *
- * Checks if two icons are equal.
+ * g_file_info_set_attribute_boolean:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
+ * @attr_value: a boolean value.
*
- * Returns: %TRUE if @icon1 is equal to @icon2. %FALSE otherwise.
+ * Sets the @attribute to contain the given @attr_value,
+ * if possible.
*/
/**
- * g_icon_hash: (virtual hash)
- * @icon: (not nullable): #gconstpointer to an icon object.
- *
- * Gets a hash for an icon.
+ * g_file_info_set_attribute_byte_string:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
+ * @attr_value: a byte string.
*
- * Returns: a #guint containing a hash for the @icon, suitable for
- * use in a #GHashTable or similar data structure.
+ * Sets the @attribute to contain the given @attr_value,
+ * if possible.
*/
/**
- * g_icon_new_for_string:
- * @str: A string obtained via g_icon_to_string().
- * @error: Return location for error.
- *
- * Generate a #GIcon instance from @str. This function can fail if
- * @str is not valid - see g_icon_to_string() for discussion.
- *
- * If your application or library provides one or more #GIcon
- * implementations you need to ensure that each #GType is registered
- * with the type system prior to calling g_icon_new_for_string().
+ * g_file_info_set_attribute_int32:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
+ * @attr_value: a signed 32-bit integer
*
- * Returns: (transfer full): An object implementing the #GIcon
- * interface or %NULL if @error is set.
- * Since: 2.20
+ * Sets the @attribute to contain the given @attr_value,
+ * if possible.
*/
/**
- * g_icon_serialize:
- * @icon: a #GIcon
- *
- * Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved
- * back by calling g_icon_deserialize() on the returned value.
- * As serialization will avoid using raw icon data when possible, it only
- * makes sense to transfer the #GVariant between processes on the same machine,
- * (as opposed to over the network), and within the same file system namespace.
+ * g_file_info_set_attribute_int64:
+ * @info: a #GFileInfo.
+ * @attribute: attribute name to set.
+ * @attr_value: int64 value to set attribute to.
*
- * Returns: (transfer full): a #GVariant, or %NULL when serialization fails.
- * Since: 2.38
+ * Sets the @attribute to contain the given @attr_value,
+ * if possible.
*/
/**
- * g_icon_to_string: (virtual to_tokens)
- * @icon: a #GIcon.
- *
- * Generates a textual representation of @icon that can be used for
- * serialization such as when passing @icon to a different process or
- * saving it to persistent storage. Use g_icon_new_for_string() to
- * get @icon back from the returned string.
- *
- * The encoding of the returned string is proprietary to #GIcon except
- * in the following two cases
- *
- * - If @icon is a #GFileIcon, the returned string is a native path
- * (such as `/path/to/my icon.png`) without escaping
- * if the #GFile for @icon is a native file. If the file is not
- * native, the returned string is the result of g_file_get_uri()
- * (such as `sftp://path/to/my%20icon.png`).
- *
- * - If @icon is a #GThemedIcon with exactly one name, the encoding is
- * simply the name (such as `network-server`).
+ * g_file_info_set_attribute_mask:
+ * @info: a #GFileInfo.
+ * @mask: a #GFileAttributeMatcher.
*
- * Returns: (nullable): An allocated NUL-terminated UTF8 string or
- * %NULL if @icon can't be serialized. Use g_free() to free.
- * Since: 2.20
+ * Sets @mask on @info to match specific attribute types.
*/
/**
- * g_inet_address_equal:
- * @address: A #GInetAddress.
- * @other_address: Another #GInetAddress.
- *
- * Checks if two #GInetAddress instances are equal, e.g. the same address.
+ * g_file_info_set_attribute_object:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
+ * @attr_value: a #GObject.
*
- * Returns: %TRUE if @address and @other_address are equal, %FALSE otherwise.
- * Since: 2.30
+ * Sets the @attribute to contain the given @attr_value,
+ * if possible.
*/
/**
- * g_inet_address_get_family:
- * @address: a #GInetAddress
+ * g_file_info_set_attribute_status:
+ * @info: a #GFileInfo
+ * @attribute: a file attribute key
+ * @status: a #GFileAttributeStatus
*
- * Gets @address's family
+ * Sets the attribute status for an attribute key. This is only
+ * needed by external code that implement g_file_set_attributes_from_info()
+ * or similar functions.
*
- * Returns: @address's family
+ * The attribute must exist in @info for this to work. Otherwise %FALSE
+ * is returned and @info is unchanged.
+ *
+ * Returns: %TRUE if the status was changed, %FALSE if the key was not set.
* Since: 2.22
*/
/**
- * g_inet_address_get_is_any:
- * @address: a #GInetAddress
- *
- * Tests whether @address is the "any" address for its family.
+ * g_file_info_set_attribute_string:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
+ * @attr_value: a UTF-8 string.
*
- * Returns: %TRUE if @address is the "any" address for its family.
- * Since: 2.22
+ * Sets the @attribute to contain the given @attr_value,
+ * if possible.
*/
/**
- * g_inet_address_get_is_link_local:
- * @address: a #GInetAddress
+ * g_file_info_set_attribute_stringv:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key
+ * @attr_value: (array) (element-type utf8): a %NULL terminated array of UTF-8 strings.
*
- * Tests whether @address is a link-local address (that is, if it
- * identifies a host on a local network that is not connected to the
- * Internet).
+ * Sets the @attribute to contain the given @attr_value,
+ * if possible.
*
- * Returns: %TRUE if @address is a link-local address.
- * Since: 2.22
+ * Sinze: 2.22
*/
/**
- * g_inet_address_get_is_loopback:
- * @address: a #GInetAddress
- *
- * Tests whether @address is the loopback address for its family.
+ * g_file_info_set_attribute_uint32:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
+ * @attr_value: an unsigned 32-bit integer.
*
- * Returns: %TRUE if @address is the loopback address for its family.
- * Since: 2.22
+ * Sets the @attribute to contain the given @attr_value,
+ * if possible.
*/
/**
- * g_inet_address_get_is_mc_global:
- * @address: a #GInetAddress
- *
- * Tests whether @address is a global multicast address.
+ * g_file_info_set_attribute_uint64:
+ * @info: a #GFileInfo.
+ * @attribute: a file attribute key.
+ * @attr_value: an unsigned 64-bit integer.
*
- * Returns: %TRUE if @address is a global multicast address.
- * Since: 2.22
+ * Sets the @attribute to contain the given @attr_value,
+ * if possible.
*/
/**
- * g_inet_address_get_is_mc_link_local:
- * @address: a #GInetAddress
- *
- * Tests whether @address is a link-local multicast address.
+ * g_file_info_set_content_type:
+ * @info: a #GFileInfo.
+ * @content_type: a content type. See [GContentType][gio-GContentType]
*
- * Returns: %TRUE if @address is a link-local multicast address.
- * Since: 2.22
+ * Sets the content type attribute for a given #GFileInfo.
+ * See %G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE.
*/
/**
- * g_inet_address_get_is_mc_node_local:
- * @address: a #GInetAddress
- *
- * Tests whether @address is a node-local multicast address.
+ * g_file_info_set_display_name:
+ * @info: a #GFileInfo.
+ * @display_name: a string containing a display name.
*
- * Returns: %TRUE if @address is a node-local multicast address.
- * Since: 2.22
+ * Sets the display name for the current #GFileInfo.
+ * See %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME.
*/
/**
- * g_inet_address_get_is_mc_org_local:
- * @address: a #GInetAddress
- *
- * Tests whether @address is an organization-local multicast address.
+ * g_file_info_set_edit_name:
+ * @info: a #GFileInfo.
+ * @edit_name: a string containing an edit name.
*
- * Returns: %TRUE if @address is an organization-local multicast address.
- * Since: 2.22
+ * Sets the edit name for the current file.
+ * See %G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME.
*/
/**
- * g_inet_address_get_is_mc_site_local:
- * @address: a #GInetAddress
- *
- * Tests whether @address is a site-local multicast address.
+ * g_file_info_set_file_type:
+ * @info: a #GFileInfo.
+ * @type: a #GFileType.
*
- * Returns: %TRUE if @address is a site-local multicast address.
- * Since: 2.22
+ * Sets the file type in a #GFileInfo to @type.
+ * See %G_FILE_ATTRIBUTE_STANDARD_TYPE.
*/
/**
- * g_inet_address_get_is_multicast:
- * @address: a #GInetAddress
- *
- * Tests whether @address is a multicast address.
+ * g_file_info_set_icon:
+ * @info: a #GFileInfo.
+ * @icon: a #GIcon.
*
- * Returns: %TRUE if @address is a multicast address.
- * Since: 2.22
+ * Sets the icon for a given #GFileInfo.
+ * See %G_FILE_ATTRIBUTE_STANDARD_ICON.
*/
/**
- * g_inet_address_get_is_site_local:
- * @address: a #GInetAddress
- *
- * Tests whether @address is a site-local address such as 10.0.0.1
- * (that is, the address identifies a host on a local network that can
- * not be reached directly from the Internet, but which may have
- * outgoing Internet connectivity via a NAT or firewall).
+ * g_file_info_set_is_hidden:
+ * @info: a #GFileInfo.
+ * @is_hidden: a #gboolean.
*
- * Returns: %TRUE if @address is a site-local address.
- * Since: 2.22
+ * Sets the "is_hidden" attribute in a #GFileInfo according to @is_hidden.
+ * See %G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN.
*/
/**
- * g_inet_address_get_native_size:
- * @address: a #GInetAddress
- *
- * Gets the size of the native raw binary address for @address. This
- * is the size of the data that you get from g_inet_address_to_bytes().
+ * g_file_info_set_is_symlink:
+ * @info: a #GFileInfo.
+ * @is_symlink: a #gboolean.
*
- * Returns: the number of bytes used for the native version of @address.
- * Since: 2.22
+ * Sets the "is_symlink" attribute in a #GFileInfo according to @is_symlink.
+ * See %G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK.
*/
/**
- * g_inet_address_mask_equal:
- * @mask: a #GInetAddressMask
- * @mask2: another #GInetAddressMask
- *
- * Tests if @mask and @mask2 are the same mask.
+ * g_file_info_set_modification_time:
+ * @info: a #GFileInfo.
+ * @mtime: a #GTimeVal.
*
- * Returns: whether @mask and @mask2 are the same mask
- * Since: 2.32
+ * Sets the %G_FILE_ATTRIBUTE_TIME_MODIFIED attribute in the file
+ * info to the given time value.
*/
/**
- * g_inet_address_mask_get_address:
- * @mask: a #GInetAddressMask
- *
- * Gets @mask's base address
+ * g_file_info_set_name:
+ * @info: a #GFileInfo.
+ * @name: (type filename): a string containing a name.
*
- * Returns: (transfer none): @mask's base address
- * Since: 2.32
+ * Sets the name attribute for the current #GFileInfo.
+ * See %G_FILE_ATTRIBUTE_STANDARD_NAME.
*/
/**
- * g_inet_address_mask_get_family:
- * @mask: a #GInetAddressMask
- *
- * Gets the #GSocketFamily of @mask's address
+ * g_file_info_set_size:
+ * @info: a #GFileInfo.
+ * @size: a #goffset containing the file's size.
*
- * Returns: the #GSocketFamily of @mask's address
- * Since: 2.32
+ * Sets the %G_FILE_ATTRIBUTE_STANDARD_SIZE attribute in the file info
+ * to the given size.
*/
/**
- * g_inet_address_mask_get_length:
- * @mask: a #GInetAddressMask
- *
- * Gets @mask's length
+ * g_file_info_set_sort_order:
+ * @info: a #GFileInfo.
+ * @sort_order: a sort order integer.
*
- * Returns: @mask's length
- * Since: 2.32
+ * Sets the sort order attribute in the file info structure. See
+ * %G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER.
*/
/**
- * g_inet_address_mask_matches:
- * @mask: a #GInetAddressMask
- * @address: a #GInetAddress
+ * g_file_info_set_symbolic_icon:
+ * @info: a #GFileInfo.
+ * @icon: a #GIcon.
*
- * Tests if @address falls within the range described by @mask.
+ * Sets the symbolic icon for a given #GFileInfo.
+ * See %G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON.
*
- * Returns: whether @address falls within the range described by
- * @mask.
- * Since: 2.32
+ * Since: 2.34
*/
/**
- * g_inet_address_mask_new:
- * @addr: a #GInetAddress
- * @length: number of bits of @addr to use
- * @error: return location for #GError, or %NULL
- *
- * Creates a new #GInetAddressMask representing all addresses whose
- * first @length bits match @addr.
+ * g_file_info_set_symlink_target:
+ * @info: a #GFileInfo.
+ * @symlink_target: a static string containing a path to a symlink target.
*
- * Returns: a new #GInetAddressMask, or %NULL on error
- * Since: 2.32
+ * Sets the %G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET attribute in the file info
+ * to the given symlink target.
*/
/**
- * g_inet_address_mask_new_from_string:
- * @mask_string: an IP address or address/length string
- * @error: return location for #GError, or %NULL
- *
- * Parses @mask_string as an IP address and (optional) length, and
- * creates a new #GInetAddressMask. The length, if present, is
- * delimited by a "/". If it is not present, then the length is
- * assumed to be the full length of the address.
+ * g_file_info_unset_attribute_mask:
+ * @info: #GFileInfo.
*
- * Returns: a new #GInetAddressMask corresponding to @string, or %NULL
- * on error.
- * Since: 2.32
+ * Unsets a mask set by g_file_info_set_attribute_mask(), if one
+ * is set.
*/
/**
- * g_inet_address_mask_to_string:
- * @mask: a #GInetAddressMask
+ * g_file_input_stream_query_info:
+ * @stream: a #GFileInputStream.
+ * @attributes: a file attribute query string.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Converts @mask back to its corresponding string form.
+ * Queries a file input stream the given @attributes. This function blocks
+ * while querying the stream. For the asynchronous (non-blocking) version
+ * of this function, see g_file_input_stream_query_info_async(). While the
+ * stream is blocked, the stream will set the pending flag internally, and
+ * any other operations on the stream will fail with %G_IO_ERROR_PENDING.
*
- * Returns: a string corresponding to @mask.
- * Since: 2.32
+ * Returns: (transfer full): a #GFileInfo, or %NULL on error.
*/
/**
- * g_inet_address_new_any:
- * @family: the address family
+ * g_file_input_stream_query_info_async:
+ * @stream: a #GFileInputStream.
+ * @attributes: a file attribute query string.
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Creates a #GInetAddress for the "any" address (unassigned/"don't
- * care") for @family.
+ * Queries the stream information asynchronously.
+ * When the operation is finished @callback will be called.
+ * You can then call g_file_input_stream_query_info_finish()
+ * to get the result of the operation.
*
- * Returns: a new #GInetAddress corresponding to the "any" address
- * for @family.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * For the synchronous version of this function,
+ * see g_file_input_stream_query_info().
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be set
*/
/**
- * g_inet_address_new_from_bytes:
- * @bytes: (array) (element-type guint8): raw address data
- * @family: the address family of @bytes
+ * g_file_input_stream_query_info_finish:
+ * @stream: a #GFileInputStream.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring,
+ * or %NULL to ignore.
*
- * Creates a new #GInetAddress from the given @family and @bytes.
- * @bytes should be 4 bytes for %G_SOCKET_FAMILY_IPV4 and 16 bytes for
- * %G_SOCKET_FAMILY_IPV6.
+ * Finishes an asynchronous info query operation.
*
- * Returns: a new #GInetAddress corresponding to @family and @bytes.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * Returns: (transfer full): #GFileInfo.
*/
/**
- * g_inet_address_new_from_string:
- * @string: a string representation of an IP address
+ * g_file_io_stream_get_etag:
+ * @stream: a #GFileIOStream.
*
- * Parses @string as an IP address and creates a new #GInetAddress.
+ * Gets the entity tag for the file when it has been written.
+ * This must be called after the stream has been written
+ * and closed, as the etag can change while writing.
*
- * Returns: a new #GInetAddress corresponding to @string, or %NULL if
- * @string could not be parsed.
- * Free the returned object with g_object_unref().
+ * Returns: the entity tag for the stream.
* Since: 2.22
*/
/**
- * g_inet_address_new_loopback:
- * @family: the address family
+ * g_file_io_stream_query_info:
+ * @stream: a #GFileIOStream.
+ * @attributes: a file attribute query string.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError, %NULL to ignore.
+ *
+ * Queries a file io stream for the given @attributes.
+ * This function blocks while querying the stream. For the asynchronous
+ * version of this function, see g_file_io_stream_query_info_async().
+ * While the stream is blocked, the stream will set the pending flag
+ * internally, and any other operations on the stream will fail with
+ * %G_IO_ERROR_PENDING.
+ *
+ * Can fail if the stream was already closed (with @error being set to
+ * %G_IO_ERROR_CLOSED), the stream has pending operations (with @error being
+ * set to %G_IO_ERROR_PENDING), or if querying info is not supported for
+ * the stream's interface (with @error being set to %G_IO_ERROR_NOT_SUPPORTED). I
+ * all cases of failure, %NULL will be returned.
*
- * Creates a #GInetAddress for the loopback address for @family.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %NULL will
+ * be returned.
*
- * Returns: a new #GInetAddress corresponding to the loopback address
- * for @family.
- * Free the returned object with g_object_unref().
+ * Returns: (transfer full): a #GFileInfo for the @stream, or %NULL on error.
* Since: 2.22
*/
/**
- * g_inet_address_to_bytes: (skip)
- * @address: a #GInetAddress
+ * g_file_io_stream_query_info_async:
+ * @stream: a #GFileIOStream.
+ * @attributes: a file attribute query string.
+ * @io_priority: the [I/O priority][gio-GIOScheduler] of the request
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Gets the raw binary address data from @address.
+ * Asynchronously queries the @stream for a #GFileInfo. When completed,
+ * @callback will be called with a #GAsyncResult which can be used to
+ * finish the operation with g_file_io_stream_query_info_finish().
+ *
+ * For the synchronous version of this function, see
+ * g_file_io_stream_query_info().
*
- * Returns: a pointer to an internal array of the bytes in @address,
- * which should not be modified, stored, or freed. The size of this
- * array can be gotten with g_inet_address_get_native_size().
* Since: 2.22
*/
/**
- * g_inet_address_to_string:
- * @address: a #GInetAddress
+ * g_file_io_stream_query_info_finish:
+ * @stream: a #GFileIOStream.
+ * @result: a #GAsyncResult.
+ * @error: a #GError, %NULL to ignore.
*
- * Converts @address to string form.
+ * Finalizes the asynchronous query started
+ * by g_file_io_stream_query_info_async().
*
- * Returns: a representation of @address as a string, which should be
- * freed after use.
+ * Returns: (transfer full): A #GFileInfo for the finished query.
* Since: 2.22
*/
/**
- * g_inet_socket_address_get_address:
- * @address: a #GInetSocketAddress
+ * g_file_is_native:
+ * @file: input #GFile
*
- * Gets @address's #GInetAddress.
+ * Checks to see if a file is native to the platform.
*
- * Returns: (transfer none): the #GInetAddress for @address, which must be
- * g_object_ref()'d if it will be stored
- * Since: 2.22
- */
-
-
-/**
- * g_inet_socket_address_get_flowinfo:
- * @address: a %G_SOCKET_FAMILY_IPV6 #GInetSocketAddress
+ * A native file is one expressed in the platform-native filename format,
+ * e.g. "C:\Windows" or "/usr/bin/". This does not mean the file is local,
+ * as it might be on a locally mounted remote filesystem.
*
- * Gets the `sin6_flowinfo` field from @address,
- * which must be an IPv6 address.
+ * On some systems non-native files may be available using the native
+ * filesystem via a userspace filesystem (FUSE), in these cases this call
+ * will return %FALSE, but g_file_get_path() will still return a native path.
*
- * Returns: the flowinfo field
- * Since: 2.32
+ * This call does no blocking I/O.
+ *
+ * Returns: %TRUE if @file is native
*/
/**
- * g_inet_socket_address_get_port:
- * @address: a #GInetSocketAddress
+ * g_file_load_bytes:
+ * @file: a #GFile
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @etag_out: (out) (nullable) (optional): a location to place the current
+ * entity tag for the file, or %NULL if the entity tag is not needed
+ * @error: a location for a #GError or %NULL
*
- * Gets @address's port.
+ * Loads the contents of @file and returns it as #GBytes.
*
- * Returns: the port for @address
- * Since: 2.22
- */
-
-
-/**
- * g_inet_socket_address_get_scope_id:
- * @address: a %G_SOCKET_FAMILY_IPV6 #GInetAddress
+ * If @file is a resource:// based URI, the resulting bytes will reference the
+ * embedded resource instead of a copy. Otherwise, this is equivalent to calling
+ * g_file_load_contents() and g_bytes_new_take().
*
- * Gets the `sin6_scope_id` field from @address,
- * which must be an IPv6 address.
+ * For resources, @etag_out will be set to %NULL.
*
- * Returns: the scope id field
- * Since: 2.32
+ * The data contained in the resulting #GBytes is always zero-terminated, but
+ * this is not included in the #GBytes length. The resulting #GBytes should be
+ * freed with g_bytes_unref() when no longer in use.
+ *
+ * Returns: (transfer full): a #GBytes or %NULL and @error is set
+ * Since: 2.56
*/
/**
- * g_inet_socket_address_new:
- * @address: a #GInetAddress
- * @port: a port number
+ * g_file_load_bytes_async:
+ * @file: a #GFile
+ * @cancellable: (nullable): a #GCancellable or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the
+ * request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Creates a new #GInetSocketAddress for @address and @port.
+ * Asynchronously loads the contents of @file as #GBytes.
*
- * Returns: a new #GInetSocketAddress
- * Since: 2.22
- */
-
-
-/**
- * g_inet_socket_address_new_from_string:
- * @address: the string form of an IP address
- * @port: a port number
+ * If @file is a resource:// based URI, the resulting bytes will reference the
+ * embedded resource instead of a copy. Otherwise, this is equivalent to calling
+ * g_file_load_contents_async() and g_bytes_new_take().
*
- * Creates a new #GInetSocketAddress for @address and @port.
+ * @callback should call g_file_load_bytes_finish() to get the result of this
+ * asynchronous operation.
*
- * If @address is an IPv6 address, it can also contain a scope ID
- * (separated from the address by a `%`).
+ * See g_file_load_bytes() for more information.
*
- * Returns: a new #GInetSocketAddress, or %NULL if @address cannot be
- * parsed.
- * Since: 2.40
+ * Since: 2.56
*/
/**
- * g_initable_init:
- * @initable: a #GInitable.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
- *
- * Initializes the object implementing the interface.
+ * g_file_load_bytes_finish:
+ * @file: a #GFile
+ * @result: a #GAsyncResult provided to the callback
+ * @etag_out: (out) (nullable) (optional): a location to place the current
+ * entity tag for the file, or %NULL if the entity tag is not needed
+ * @error: a location for a #GError, or %NULL
*
- * This method is intended for language bindings. If writing in C,
- * g_initable_new() should typically be used instead.
+ * Completes an asynchronous request to g_file_load_bytes_async().
*
- * The object must be initialized before any real use after initial
- * construction, either with this function or g_async_initable_init_async().
+ * For resources, @etag_out will be set to %NULL.
*
- * Implementations may also support cancellation. If @cancellable is not %NULL,
- * then initialization can be cancelled by triggering the cancellable object
- * from another thread. If the operation was cancelled, the error
- * %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL and
- * the object doesn't support cancellable initialization the error
- * %G_IO_ERROR_NOT_SUPPORTED will be returned.
+ * The data contained in the resulting #GBytes is always zero-terminated, but
+ * this is not included in the #GBytes length. The resulting #GBytes should be
+ * freed with g_bytes_unref() when no longer in use.
*
- * If the object is not initialized, or initialization returns with an
- * error, then all operations on the object except g_object_ref() and
- * g_object_unref() are considered to be invalid, and have undefined
- * behaviour. See the [introduction][ginitable] for more details.
+ * See g_file_load_bytes() for more information.
*
- * Callers should not assume that a class which implements #GInitable can be
- * initialized multiple times, unless the class explicitly documents itself as
- * supporting this. Generally, a class’ implementation of init() can assume
- * (and assert) that it will only be called once. Previously, this documentation
- * recommended all #GInitable implementations should be idempotent; that
- * recommendation was relaxed in GLib 2.54.
+ * Returns: (transfer full): a #GBytes or %NULL and @error is set
+ * Since: 2.56
+ */
+
+
+/**
+ * g_file_load_contents:
+ * @file: input #GFile
+ * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @contents: (out) (transfer full) (element-type guint8) (array length=length): a location to place the contents of the file
+ * @length: (out) (optional): a location to place the length of the contents of the file,
+ * or %NULL if the length is not needed
+ * @etag_out: (out) (optional): a location to place the current entity tag for the file,
+ * or %NULL if the entity tag is not needed
+ * @error: a #GError, or %NULL
*
- * If a class explicitly supports being initialized multiple times, it is
- * recommended that the method is idempotent: multiple calls with the same
- * arguments should return the same results. Only the first call initializes
- * the object; further calls return the result of the first call.
+ * Loads the content of the file into memory. The data is always
+ * zero-terminated, but this is not included in the resultant @length.
+ * The returned @content should be freed with g_free() when no longer
+ * needed.
*
- * One reason why a class might need to support idempotent initialization is if
- * it is designed to be used via the singleton pattern, with a
- * #GObjectClass.constructor that sometimes returns an existing instance.
- * In this pattern, a caller would expect to be able to call g_initable_init()
- * on the result of g_object_new(), regardless of whether it is in fact a new
- * instance.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: %TRUE if successful. If an error has occurred, this function will
- * return %FALSE and set @error appropriately if present.
- * Since: 2.22
+ * Returns: %TRUE if the @file's contents were successfully loaded.
+ * %FALSE if there were errors.
*/
/**
- * g_initable_new:
- * @object_type: a #GType supporting #GInitable.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
- * @first_property_name: (nullable): the name of the first property, or %NULL if no
- * properties
- * @...: the value if the first property, followed by and other property
- * value pairs, and ended by %NULL.
+ * g_file_load_contents_async:
+ * @file: input #GFile
+ * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @callback: a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
- * Helper function for constructing #GInitable object. This is
- * similar to g_object_new() but also initializes the object
- * and returns %NULL, setting an error on failure.
+ * Starts an asynchronous load of the @file's contents.
*
- * Returns: (type GObject.Object) (transfer full): a newly allocated
- * #GObject, or %NULL on error
- * Since: 2.22
+ * For more details, see g_file_load_contents() which is
+ * the synchronous version of this call.
+ *
+ * When the load operation has completed, @callback will be called
+ * with @user data. To finish the operation, call
+ * g_file_load_contents_finish() with the #GAsyncResult returned by
+ * the @callback.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*/
/**
- * g_initable_new_valist:
- * @object_type: a #GType supporting #GInitable.
- * @first_property_name: the name of the first property, followed by
- * the value, and other property value pairs, and ended by %NULL.
- * @var_args: The var args list generated from @first_property_name.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_file_load_contents_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
+ * @contents: (out) (transfer full) (element-type guint8) (array length=length): a location to place the contents of the file
+ * @length: (out) (optional): a location to place the length of the contents of the file,
+ * or %NULL if the length is not needed
+ * @etag_out: (out) (optional): a location to place the current entity tag for the file,
+ * or %NULL if the entity tag is not needed
+ * @error: a #GError, or %NULL
*
- * Helper function for constructing #GInitable object. This is
- * similar to g_object_new_valist() but also initializes the object
- * and returns %NULL, setting an error on failure.
+ * Finishes an asynchronous load of the @file's contents.
+ * The contents are placed in @contents, and @length is set to the
+ * size of the @contents string. The @content should be freed with
+ * g_free() when no longer needed. If @etag_out is present, it will be
+ * set to the new entity tag for the @file.
*
- * Returns: (type GObject.Object) (transfer full): a newly allocated
- * #GObject, or %NULL on error
- * Since: 2.22
+ * Returns: %TRUE if the load was successful. If %FALSE and @error is
+ * present, it will be set appropriately.
*/
/**
- * g_initable_newv:
- * @object_type: a #GType supporting #GInitable.
- * @n_parameters: the number of parameters in @parameters
- * @parameters: (array length=n_parameters): the parameters to use to construct the object
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_file_load_partial_contents_async: (skip)
+ * @file: input #GFile
+ * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @read_more_callback: (scope call) (closure user_data): a
+ * #GFileReadMoreCallback to receive partial data
+ * and to specify whether further data should be read
+ * @callback: (scope async) (closure user_data): a #GAsyncReadyCallback to call
+ * when the request is satisfied
+ * @user_data: the data to pass to the callback functions
*
- * Helper function for constructing #GInitable object. This is
- * similar to g_object_newv() but also initializes the object
- * and returns %NULL, setting an error on failure.
+ * Reads the partial contents of a file. A #GFileReadMoreCallback should
+ * be used to stop reading from the file when appropriate, else this
+ * function will behave exactly as g_file_load_contents_async(). This
+ * operation can be finished by g_file_load_partial_contents_finish().
*
- * Returns: (type GObject.Object) (transfer full): a newly allocated
- * #GObject, or %NULL on error
- * Since: 2.22
- * Deprecated: 2.54: Use g_object_new_with_properties() and
- * g_initable_init() instead. See #GParameter for more information.
+ * Users of this function should be aware that @user_data is passed to
+ * both the @read_more_callback and the @callback.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*/
/**
- * g_input_stream_clear_pending:
- * @stream: input stream
+ * g_file_load_partial_contents_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
+ * @contents: (out) (transfer full) (element-type guint8) (array length=length): a location to place the contents of the file
+ * @length: (out) (optional): a location to place the length of the contents of the file,
+ * or %NULL if the length is not needed
+ * @etag_out: (out) (optional): a location to place the current entity tag for the file,
+ * or %NULL if the entity tag is not needed
+ * @error: a #GError, or %NULL
*
- * Clears the pending flag on @stream.
+ * Finishes an asynchronous partial load operation that was started
+ * with g_file_load_partial_contents_async(). The data is always
+ * zero-terminated, but this is not included in the resultant @length.
+ * The returned @content should be freed with g_free() when no longer
+ * needed.
+ *
+ * Returns: %TRUE if the load was successful. If %FALSE and @error is
+ * present, it will be set appropriately.
*/
/**
- * g_input_stream_close:
- * @stream: A #GInputStream.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * Closes the stream, releasing resources related to it.
- *
- * Once the stream is closed, all other operations will return %G_IO_ERROR_CLOSED.
- * Closing a stream multiple times will not return an error.
- *
- * Streams will be automatically closed when the last reference
- * is dropped, but you might want to call this function to make sure
- * resources are released as early as possible.
+ * g_file_make_directory:
+ * @file: input #GFile
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Some streams might keep the backing store of the stream (e.g. a file descriptor)
- * open after the stream is closed. See the documentation for the individual
- * stream for details.
+ * Creates a directory. Note that this will only create a child directory
+ * of the immediate parent directory of the path or URI given by the #GFile.
+ * To recursively create directories, see g_file_make_directory_with_parents().
+ * This function will fail if the parent directory does not exist, setting
+ * @error to %G_IO_ERROR_NOT_FOUND. If the file system doesn't support
+ * creating directories, this function will fail, setting @error to
+ * %G_IO_ERROR_NOT_SUPPORTED.
*
- * On failure the first error that happened will be reported, but the close
- * operation will finish as much as possible. A stream that failed to
- * close will still return %G_IO_ERROR_CLOSED for all operations. Still, it
- * is important to check and report the error to the user.
+ * For a local #GFile the newly created directory will have the default
+ * (current) ownership and permissions of the current process.
*
* If @cancellable is not %NULL, then the operation can be cancelled by
* triggering the cancellable object from another thread. If the operation
* was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- * Cancelling a close will still leave the stream closed, but some streams
- * can use a faster close that doesn't block to e.g. check errors.
*
- * Returns: %TRUE on success, %FALSE on failure
+ * Returns: %TRUE on successful creation, %FALSE otherwise.
*/
/**
- * g_input_stream_close_async:
- * @stream: A #GInputStream.
+ * g_file_make_directory_async: (virtual make_directory_async)
+ * @file: input #GFile
* @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional cancellable object
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Requests an asynchronous closes of the stream, releasing resources related to it.
- * When the operation is finished @callback will be called.
- * You can then call g_input_stream_close_finish() to get the result of the
- * operation.
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: a #GAsyncReadyCallback to call
+ * when the request is satisfied
+ * @user_data: the data to pass to callback function
*
- * For behaviour details see g_input_stream_close().
+ * Asynchronously creates a directory.
*
- * The asynchronous 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.
+ * Since: 2.38
*/
/**
- * g_input_stream_close_finish:
- * @stream: a #GInputStream.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_file_make_directory_finish: (virtual make_directory_finish)
+ * @file: input #GFile
+ * @result: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Finishes closing a stream asynchronously, started from g_input_stream_close_async().
+ * Finishes an asynchronous directory creation, started with
+ * g_file_make_directory_async().
*
- * Returns: %TRUE if the stream was closed successfully.
+ * Returns: %TRUE on successful directory creation, %FALSE otherwise.
+ * Since: 2.38
*/
/**
- * g_input_stream_has_pending:
- * @stream: input stream.
+ * g_file_make_directory_with_parents:
+ * @file: input #GFile
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Checks if an input stream has pending actions.
+ * Creates a directory and any parent directories that may not
+ * exist similar to 'mkdir -p'. If the file system does not support
+ * creating directories, this function will fail, setting @error to
+ * %G_IO_ERROR_NOT_SUPPORTED. If the directory itself already exists,
+ * this function will fail setting @error to %G_IO_ERROR_EXISTS, unlike
+ * the similar g_mkdir_with_parents().
*
- * Returns: %TRUE if @stream has pending actions.
- */
-
-
-/**
- * g_input_stream_is_closed:
- * @stream: input stream.
+ * For a local #GFile the newly created directories will have the default
+ * (current) ownership and permissions of the current process.
*
- * Checks if an input stream is closed.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: %TRUE if the stream is closed.
+ * Returns: %TRUE if all directories have been successfully created, %FALSE
+ * otherwise.
+ * Since: 2.18
*/
/**
- * g_input_stream_read:
- * @stream: a #GInputStream.
- * @buffer: (array length=count) (element-type guint8): a buffer to
- * read data into (which should be at least count bytes long).
- * @count: the number of bytes that will be read from the stream
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * Tries to read @count bytes from the stream into the buffer starting at
- * @buffer. Will block during this read.
- *
- * If count is zero returns zero and does nothing. A value of @count
- * larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- *
- * On success, the number of bytes read into the buffer is returned.
- * 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. Zero is returned on end of file
- * (or if @count is zero), but never otherwise.
+ * g_file_make_symbolic_link:
+ * @file: a #GFile with the name of the symlink to create
+ * @symlink_value: (type filename): a string with the path for the target
+ * of the new symlink
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError
*
- * The returned @buffer is not a nul-terminated string, it can contain nul bytes
- * at any position, and this function doesn't nul-terminate the @buffer.
+ * Creates a symbolic link named @file which contains the string
+ * @symlink_value.
*
* If @cancellable is not %NULL, then the operation can be cancelled by
* triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- * operation was partially finished when the operation was cancelled the
- * partial result will be returned, without an error.
- *
- * On error -1 is returned and @error is set accordingly.
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: Number of bytes read, or -1 on error, or 0 on end of file.
+ * Returns: %TRUE on the creation of a new symlink, %FALSE otherwise.
*/
/**
- * g_input_stream_read_all:
- * @stream: a #GInputStream.
- * @buffer: (array length=count) (element-type guint8): a buffer to
- * read data into (which should be at least count bytes long).
- * @count: the number of bytes that will be read from the stream
- * @bytes_read: (out): location to store the number of bytes that was read from the stream
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * Tries to read @count bytes from the stream into the buffer starting at
- * @buffer. Will block during this read.
+ * g_file_measure_disk_usage:
+ * @file: a #GFile
+ * @flags: #GFileMeasureFlags
+ * @cancellable: (nullable): optional #GCancellable
+ * @progress_callback: (nullable): a #GFileMeasureProgressCallback
+ * @progress_data: user_data for @progress_callback
+ * @disk_usage: (out) (optional): the number of bytes of disk space used
+ * @num_dirs: (out) (optional): the number of directories encountered
+ * @num_files: (out) (optional): the number of non-directories encountered
+ * @error: (nullable): %NULL, or a pointer to a %NULL #GError pointer
*
- * This function is similar to g_input_stream_read(), except it tries to
- * read as many bytes as requested, only stopping on an error or end of stream.
+ * Recursively measures the disk usage of @file.
*
- * On a successful read of @count bytes, or if we reached the end of the
- * stream, %TRUE is returned, and @bytes_read is set to the number of bytes
- * read into @buffer.
+ * This is essentially an analog of the 'du' command, but it also
+ * reports the number of directories and non-directory files encountered
+ * (including things like symbolic links).
*
- * If there is an error during the operation %FALSE is returned and @error
- * is set to indicate the error status.
+ * By default, errors are only reported against the toplevel file
+ * itself. Errors found while recursing are silently ignored, unless
+ * %G_FILE_DISK_USAGE_REPORT_ALL_ERRORS is given in @flags.
*
- * 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().
+ * The returned size, @disk_usage, is in bytes and should be formatted
+ * with g_format_size() in order to get something reasonable for showing
+ * in a user interface.
*
- * Returns: %TRUE on success, %FALSE if there was an error
+ * @progress_callback and @progress_data can be given to request
+ * periodic progress updates while scanning. See the documentation for
+ * #GFileMeasureProgressCallback for information about when and how the
+ * callback will be invoked.
+ *
+ * Returns: %TRUE if successful, with the out parameters set.
+ * %FALSE otherwise, with @error set.
+ * Since: 2.38
*/
/**
- * g_input_stream_read_all_async:
- * @stream: A #GInputStream
- * @buffer: (array length=count) (element-type guint8): a buffer to
- * read data into (which should be at least count bytes long)
- * @count: the number of bytes that will be read from the stream
+ * g_file_measure_disk_usage_async:
+ * @file: a #GFile
+ * @flags: #GFileMeasureFlags
* @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * 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().
+ * @cancellable: (nullable): optional #GCancellable
+ * @progress_callback: (nullable): a #GFileMeasureProgressCallback
+ * @progress_data: user_data for @progress_callback
+ * @callback: (nullable): a #GAsyncReadyCallback to call when complete
+ * @user_data: the data to pass to callback function
*
- * Call g_input_stream_read_all_finish() to collect the result.
+ * Recursively measures the disk usage of @file.
*
- * 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.
+ * This is the asynchronous version of g_file_measure_disk_usage(). See
+ * there for more information.
*
- * Since: 2.44
+ * Since: 2.38
*/
/**
- * g_input_stream_read_all_finish:
- * @stream: a #GInputStream
- * @result: a #GAsyncResult
- * @bytes_read: (out): location to store the number of bytes that was read from the stream
- * @error: a #GError location to store the error occurring, or %NULL to ignore
- *
- * Finishes an asynchronous stream read operation started with
- * g_input_stream_read_all_async().
+ * g_file_measure_disk_usage_finish:
+ * @file: a #GFile
+ * @result: the #GAsyncResult passed to your #GAsyncReadyCallback
+ * @disk_usage: (out) (optional): the number of bytes of disk space used
+ * @num_dirs: (out) (optional): the number of directories encountered
+ * @num_files: (out) (optional): the number of non-directories encountered
+ * @error: (nullable): %NULL, or a pointer to a %NULL #GError pointer
*
- * 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().
+ * Collects the results from an earlier call to
+ * g_file_measure_disk_usage_async(). See g_file_measure_disk_usage() for
+ * more information.
*
- * Returns: %TRUE on success, %FALSE if there was an error
- * Since: 2.44
+ * Returns: %TRUE if successful, with the out parameters set.
+ * %FALSE otherwise, with @error set.
+ * Since: 2.38
*/
/**
- * g_input_stream_read_async:
- * @stream: A #GInputStream.
- * @buffer: (array length=count) (element-type guint8): a buffer to
- * read data into (which should be at least count bytes long).
- * @count: the number of bytes that will be read from the stream
- * @io_priority: the [I/O priority][io-priority]
- * of the request.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Request an asynchronous read of @count bytes from the stream into the buffer
- * starting at @buffer. When the operation is finished @callback will be called.
- * You can then call g_input_stream_read_finish() to get the result of the
- * operation.
- *
- * During an async request no other sync and async calls are allowed on @stream, and will
- * result in %G_IO_ERROR_PENDING errors.
- *
- * A value of @count larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
+ * g_file_monitor:
+ * @file: input #GFile
+ * @flags: a set of #GFileMonitorFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * On success, the number of bytes read into the buffer will be passed to the
- * 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 @count is zero), but never otherwise.
+ * Obtains a file or directory monitor for the given file,
+ * depending on the type of the file.
*
- * 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.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * The asynchronous 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.
+ * Returns: (transfer full): a #GFileMonitor for the given @file,
+ * or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.18
*/
/**
- * g_input_stream_read_bytes:
- * @stream: a #GInputStream.
- * @count: maximum number of bytes that will be read from the stream. Common
- * values include 4096 and 8192.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
+ * g_file_monitor_cancel:
+ * @monitor: a #GFileMonitor.
*
- * Like g_input_stream_read(), this tries to read @count bytes from
- * the stream in a blocking fashion. However, rather than reading into
- * a user-supplied buffer, this will create a new #GBytes containing
- * the data that was read. This may be easier to use from language
- * bindings.
+ * Cancels a file monitor.
*
- * If count is zero, returns a zero-length #GBytes and does nothing. A
- * value of @count larger than %G_MAXSSIZE will cause a
- * %G_IO_ERROR_INVALID_ARGUMENT error.
+ * Returns: always %TRUE
+ */
+
+
+/**
+ * g_file_monitor_directory: (virtual monitor_dir)
+ * @file: input #GFile
+ * @flags: a set of #GFileMonitorFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * On success, a new #GBytes is returned. It is not an error if the
- * size of this object is not the same as the requested size, as it
- * can happen e.g. near the end of a file. A zero-length #GBytes is
- * returned on end of file (or if @count is zero), but never
- * otherwise.
+ * Obtains a directory monitor for the given file.
+ * This may fail if directory monitoring is not supported.
*
* If @cancellable is not %NULL, then the operation can be cancelled by
* triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- * operation was partially finished when the operation was cancelled the
- * partial result will be returned, without an error.
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * On error %NULL is returned and @error is set accordingly.
+ * It does not make sense for @flags to contain
+ * %G_FILE_MONITOR_WATCH_HARD_LINKS, since hard links can not be made to
+ * directories. It is not possible to monitor all the files in a
+ * directory for changes made via hard links; if you want to do this then
+ * you must register individual watches with g_file_monitor().
*
- * Returns: (transfer full): a new #GBytes, or %NULL on error
- * Since: 2.34
+ * Returns: (transfer full): a #GFileMonitor for the given @file,
+ * or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_input_stream_read_bytes_async:
- * @stream: A #GInputStream.
- * @count: the number of bytes that will be read from the stream
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Request an asynchronous read of @count bytes from the stream into a
- * new #GBytes. When the operation is finished @callback will be
- * called. You can then call g_input_stream_read_bytes_finish() to get the
- * result of the operation.
- *
- * During an async request no other sync and async calls are allowed
- * on @stream, and will result in %G_IO_ERROR_PENDING errors.
- *
- * A value of @count larger than %G_MAXSSIZE will cause a
- * %G_IO_ERROR_INVALID_ARGUMENT error.
- *
- * On success, the new #GBytes will be passed to the callback. It is
- * not an error if this is smaller than 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
- * @count is zero), but never otherwise.
+ * g_file_monitor_emit_event:
+ * @monitor: a #GFileMonitor.
+ * @child: a #GFile.
+ * @other_file: a #GFile.
+ * @event_type: a set of #GFileMonitorEvent flags.
*
- * 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.
+ * Emits the #GFileMonitor::changed signal if a change
+ * has taken place. Should be called from file monitor
+ * implementations only.
*
- * Since: 2.34
+ * Implementations are responsible to call this method from the
+ * [thread-default main context][g-main-context-push-thread-default] of the
+ * thread that the monitor was created in.
*/
/**
- * g_input_stream_read_bytes_finish:
- * @stream: a #GInputStream.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_file_monitor_file:
+ * @file: input #GFile
+ * @flags: a set of #GFileMonitorFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Finishes an asynchronous stream read-into-#GBytes operation.
+ * Obtains a file monitor for the given file. If no file notification
+ * mechanism exists, then regular polling of the file is used.
*
- * Returns: (transfer full): the newly-allocated #GBytes, or %NULL on error
- * Since: 2.34
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * If @flags contains %G_FILE_MONITOR_WATCH_HARD_LINKS then the monitor
+ * will also attempt to report changes made to the file via another
+ * filename (ie, a hard link). Without this flag, you can only rely on
+ * changes made through the filename contained in @file to be
+ * reported. Using this flag may result in an increase in resource
+ * usage, and may not have any effect depending on the #GFileMonitor
+ * backend and/or filesystem type.
+ *
+ * Returns: (transfer full): a #GFileMonitor for the given @file,
+ * or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_input_stream_read_finish:
- * @stream: a #GInputStream.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_file_monitor_is_cancelled:
+ * @monitor: a #GFileMonitor
*
- * Finishes an asynchronous stream read operation.
+ * Returns whether the monitor is canceled.
*
- * Returns: number of bytes read in, or -1 on error, or 0 on end of file.
+ * Returns: %TRUE if monitor is canceled. %FALSE otherwise.
*/
/**
- * g_input_stream_set_pending:
- * @stream: input stream
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
- *
- * Sets @stream to have actions pending. If the pending flag is
- * already set or @stream is closed, it will return %FALSE and set
- * @error.
+ * g_file_monitor_set_rate_limit:
+ * @monitor: a #GFileMonitor.
+ * @limit_msecs: a non-negative integer with the limit in milliseconds
+ * to poll for changes
*
- * Returns: %TRUE if pending was previously unset and is now set.
+ * Sets the rate limit to which the @monitor will report
+ * consecutive change events to the same file.
*/
/**
- * g_input_stream_skip:
- * @stream: a #GInputStream.
- * @count: the number of bytes that will be skipped from the stream
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * Tries to skip @count bytes from the stream. Will block during the operation.
+ * g_file_mount_enclosing_volume:
+ * @location: input #GFile
+ * @flags: flags affecting the operation
+ * @mount_operation: (nullable): a #GMountOperation
+ * or %NULL to avoid user interaction
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (nullable): a #GAsyncReadyCallback to call
+ * when the request is satisfied, or %NULL
+ * @user_data: the data to pass to callback function
*
- * This is identical to g_input_stream_read(), from a behaviour standpoint,
- * but the bytes that are skipped are not returned to the user. Some
- * streams have an implementation that is more efficient than reading the data.
+ * Starts a @mount_operation, mounting the volume that contains
+ * the file @location.
*
- * This function is optional for inherited classes, as the default implementation
- * emulates it using read.
+ * When this operation has completed, @callback will be called with
+ * @user_user data, and the operation can be finalized with
+ * g_file_mount_enclosing_volume_finish().
*
* If @cancellable is not %NULL, then the operation can be cancelled by
* triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- * operation was partially finished when the operation was cancelled the
- * partial result will be returned, without an error.
- *
- * Returns: Number of bytes skipped, or -1 on error
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*/
/**
- * g_input_stream_skip_async:
- * @stream: A #GInputStream.
- * @count: the number of bytes that will be skipped from the stream
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * Request an asynchronous skip of @count bytes from the stream.
- * When the operation is finished @callback will be called.
- * You can then call g_input_stream_skip_finish() to get the result
- * of the operation.
- *
- * During an async request no other sync and async calls are allowed,
- * and will result in %G_IO_ERROR_PENDING errors.
- *
- * A value of @count larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- *
- * On success, the number of bytes skipped will be passed to the 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 skip
- * as many bytes as requested. Zero is returned on end of file
- * (or if @count is zero), but never otherwise.
+ * g_file_mount_enclosing_volume_finish:
+ * @location: input #GFile
+ * @result: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * 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.
+ * Finishes a mount operation started by g_file_mount_enclosing_volume().
*
- * The asynchronous 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.
+ * Returns: %TRUE if successful. If an error has occurred,
+ * this function will return %FALSE and set @error
+ * appropriately if present.
*/
/**
- * g_input_stream_skip_finish:
- * @stream: a #GInputStream.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_file_mount_mountable:
+ * @file: input #GFile
+ * @flags: flags affecting the operation
+ * @mount_operation: (nullable): a #GMountOperation,
+ * or %NULL to avoid user interaction
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
+ * when the request is satisfied, or %NULL
+ * @user_data: (closure): the data to pass to callback function
*
- * Finishes a stream skip operation.
+ * Mounts a file of type G_FILE_TYPE_MOUNTABLE.
+ * Using @mount_operation, you can request callbacks when, for instance,
+ * passwords are needed during authentication.
*
- * Returns: the size of the bytes skipped, or %-1 on error.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_mount_mountable_finish() to get
+ * the result of the operation.
*/
/**
- * g_io_error_from_errno:
- * @err_no: Error number as defined in errno.h.
+ * g_file_mount_mountable_finish:
+ * @file: input #GFile
+ * @result: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Converts errno.h error codes into GIO error codes. The fallback
- * value %G_IO_ERROR_FAILED is returned for error codes not currently
- * handled (but note that future GLib releases may return a more
- * specific value instead).
+ * Finishes a mount operation. See g_file_mount_mountable() for details.
*
- * As %errno is global and may be modified by intermediate function
- * calls, you should save its value as soon as the call which sets it
+ * Finish an asynchronous mount operation that was started
+ * with g_file_mount_mountable().
*
- * Returns: #GIOErrorEnum value for the given errno.h error number.
+ * Returns: (transfer full): a #GFile or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_io_error_from_win32_error:
- * @error_code: Windows error number.
+ * g_file_move:
+ * @source: #GFile pointing to the source location
+ * @destination: #GFile pointing to the destination location
+ * @flags: set of #GFileCopyFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @progress_callback: (nullable) (scope call): #GFileProgressCallback
+ * function for updates
+ * @progress_callback_data: (closure): gpointer to user data for
+ * the callback function
+ * @error: #GError for returning error conditions, or %NULL
*
- * Converts some common error codes (as returned from GetLastError()
- * or WSAGetLastError()) into GIO error codes. The fallback value
- * %G_IO_ERROR_FAILED is returned for error codes not currently
- * handled (but note that future GLib releases may return a more
- * specific value instead).
+ * Tries to move the file or directory @source to the location specified
+ * by @destination. If native move operations are supported then this is
+ * used, otherwise a copy + delete fallback is used. The native
+ * implementation may support moving directories (for instance on moves
+ * inside the same filesystem), but the fallback code does not.
*
- * You can use g_win32_error_message() to get a localized string
- * corresponding to @error_code. (But note that unlike g_strerror(),
- * g_win32_error_message() returns a string that must be freed.)
+ * If the flag #G_FILE_COPY_OVERWRITE is specified an already
+ * existing @destination file is overwritten.
*
- * Returns: #GIOErrorEnum value for the given error number.
- * Since: 2.26
- */
-
-
-/**
- * g_io_error_quark:
+ * If the flag #G_FILE_COPY_NOFOLLOW_SYMLINKS is specified then symlinks
+ * will be copied as symlinks, otherwise the target of the
+ * @source symlink will be copied.
*
- * Gets the GIO Error Quark.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: a #GQuark.
+ * If @progress_callback is not %NULL, then the operation can be monitored
+ * by setting this to a #GFileProgressCallback function.
+ * @progress_callback_data will be passed to this function. It is
+ * guaranteed that this callback will be called after all data has been
+ * transferred with the total number of bytes copied during the operation.
+ *
+ * If the @source file does not exist, then the %G_IO_ERROR_NOT_FOUND
+ * error is returned, independent on the status of the @destination.
+ *
+ * If #G_FILE_COPY_OVERWRITE is not specified and the target exists,
+ * then the error %G_IO_ERROR_EXISTS is returned.
+ *
+ * If trying to overwrite a file over a directory, the %G_IO_ERROR_IS_DIRECTORY
+ * error is returned. If trying to overwrite a directory with a directory the
+ * %G_IO_ERROR_WOULD_MERGE error is returned.
+ *
+ * If the source is a directory and the target does not exist, or
+ * #G_FILE_COPY_OVERWRITE is specified and the target is a file, then
+ * the %G_IO_ERROR_WOULD_RECURSE error may be returned (if the native
+ * move operation isn't available).
+ *
+ * Returns: %TRUE on successful move, %FALSE otherwise.
*/
/**
- * g_io_extension_get_name:
- * @extension: a #GIOExtension
+ * g_file_new_build_filename:
+ * @first_element: (type filename): the first element in the path
+ * @...: remaining elements in path, terminated by %NULL
*
- * Gets the name under which @extension was registered.
+ * Constructs a #GFile from a series of elements using the correct
+ * separator for filenames.
*
- * Note that the same type may be registered as extension
- * for multiple extension points, under different names.
+ * Using this function is equivalent to calling g_build_filename(),
+ * followed by g_file_new_for_path() on the result.
*
- * Returns: the name of @extension.
+ * Returns: (transfer full): a new #GFile
+ * Since: 2.56
*/
/**
- * g_io_extension_get_priority:
- * @extension: a #GIOExtension
+ * g_file_new_for_commandline_arg:
+ * @arg: (type filename): a command line string
*
- * Gets the priority with which @extension was registered.
+ * Creates a #GFile with the given argument from the command line.
+ * The value of @arg can be either a URI, an absolute path or a
+ * relative path resolved relative to the current working directory.
+ * This operation never fails, but the returned object might not
+ * support any I/O operation if @arg points to a malformed path.
*
- * Returns: the priority of @extension
+ * Note that on Windows, this function expects its argument to be in
+ * UTF-8 -- not the system code page. This means that you
+ * should not use this function with string from argv as it is passed
+ * to main(). g_win32_get_command_line() will return a UTF-8 version of
+ * the commandline. #GApplication also uses UTF-8 but
+ * g_application_command_line_create_file_for_arg() may be more useful
+ * for you there. It is also always possible to use this function with
+ * #GOptionContext arguments of type %G_OPTION_ARG_FILENAME.
+ *
+ * Returns: (transfer full): a new #GFile.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_io_extension_get_type:
- * @extension: a #GIOExtension
+ * g_file_new_for_commandline_arg_and_cwd:
+ * @arg: (type filename): a command line string
+ * @cwd: (type filename): the current working directory of the commandline
*
- * Gets the type associated with @extension.
+ * Creates a #GFile with the given argument from the command line.
*
- * Returns: the type of @extension
+ * This function is similar to g_file_new_for_commandline_arg() except
+ * that it allows for passing the current working directory as an
+ * argument instead of using the current working directory of the
+ * process.
+ *
+ * This is useful if the commandline argument was given in a context
+ * other than the invocation of the current process.
+ *
+ * See also g_application_command_line_create_file_for_arg().
+ *
+ * Returns: (transfer full): a new #GFile
+ * Since: 2.36
*/
/**
- * g_io_extension_point_get_extension_by_name:
- * @extension_point: a #GIOExtensionPoint
- * @name: the name of the extension to get
+ * g_file_new_for_path:
+ * @path: (type filename): a string containing a relative or absolute path.
+ * The string must be encoded in the glib filename encoding.
*
- * Finds a #GIOExtension for an extension point by name.
+ * Constructs a #GFile for a given path. This operation never
+ * fails, but the returned object might not support any I/O
+ * operation if @path is malformed.
*
- * Returns: (transfer none): the #GIOExtension for @extension_point that has the
- * given name, or %NULL if there is no extension with that name
+ * Returns: (transfer full): a new #GFile for the given @path.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_io_extension_point_get_extensions:
- * @extension_point: a #GIOExtensionPoint
+ * g_file_new_for_uri:
+ * @uri: a UTF-8 string containing a URI
*
- * Gets a list of all extensions that implement this extension point.
- * The list is sorted by priority, beginning with the highest priority.
+ * Constructs a #GFile for a given URI. This operation never
+ * fails, but the returned object might not support any I/O
+ * operation if @uri is malformed or if the uri type is
+ * not supported.
*
- * Returns: (element-type GIOExtension) (transfer none): a #GList of
- * #GIOExtensions. The list is owned by GIO and should not be
- * modified.
+ * Returns: (transfer full): a new #GFile for the given @uri.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_io_extension_point_get_required_type:
- * @extension_point: a #GIOExtensionPoint
+ * g_file_new_tmp:
+ * @tmpl: (type filename) (nullable): Template for the file
+ * name, as in g_file_open_tmp(), or %NULL for a default template
+ * @iostream: (out): on return, a #GFileIOStream for the created file
+ * @error: a #GError, or %NULL
*
- * Gets the required type for @extension_point.
+ * Opens a file in the preferred directory for temporary files (as
+ * returned by g_get_tmp_dir()) and returns a #GFile and
+ * #GFileIOStream pointing to it.
*
- * Returns: the #GType that all implementations must have,
- * or #G_TYPE_INVALID if the extension point has no required type
+ * @tmpl should be a string in the GLib file name encoding
+ * containing a sequence of six 'X' characters, and containing no
+ * directory components. If it is %NULL, a default template is used.
+ *
+ * Unlike the other #GFile constructors, this will return %NULL if
+ * a temporary file could not be created.
+ *
+ * Returns: (transfer full): a new #GFile.
+ * Free the returned object with g_object_unref().
+ * Since: 2.32
*/
/**
- * g_io_extension_point_implement:
- * @extension_point_name: the name of the extension point
- * @type: the #GType to register as extension
- * @extension_name: the name for the extension
- * @priority: the priority for the extension
+ * g_file_open_readwrite:
+ * @file: #GFile to open
+ * @cancellable: (nullable): a #GCancellable
+ * @error: a #GError, or %NULL
*
- * Registers @type as extension for the extension point with name
- * @extension_point_name.
+ * Opens an existing file for reading and writing. The result is
+ * a #GFileIOStream that can be used to read and write the contents
+ * of the file.
*
- * If @type has already been registered as an extension for this
- * extension point, the existing #GIOExtension object is returned.
+ * If @cancellable is not %NULL, then the operation can be cancelled
+ * by triggering the cancellable object from another thread. If the
+ * operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
+ * returned.
*
- * Returns: (transfer none): a #GIOExtension object for #GType
+ * If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will
+ * be returned. If the file is a directory, the %G_IO_ERROR_IS_DIRECTORY
+ * error will be returned. Other errors are possible too, and depend on
+ * what kind of filesystem the file is on. Note that in many non-local
+ * file cases read and write streams are not supported, so make sure you
+ * really need to do read and write streaming, rather than just opening
+ * for reading or writing.
+ *
+ * Returns: (transfer full): #GFileIOStream or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_io_extension_point_lookup:
- * @name: the name of the extension point
+ * g_file_open_readwrite_async:
+ * @file: input #GFile
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async): a #GAsyncReadyCallback to call
+ * when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Looks up an existing extension point.
+ * Asynchronously opens @file for reading and writing.
*
- * Returns: (transfer none): the #GIOExtensionPoint, or %NULL if there
- * is no registered extension point with the given name.
+ * For more details, see g_file_open_readwrite() which is
+ * the synchronous version of this call.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_open_readwrite_finish() to get
+ * the result of the operation.
+ *
+ * Since: 2.22
*/
/**
- * g_io_extension_point_register:
- * @name: The name of the extension point
+ * g_file_open_readwrite_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Registers an extension point.
+ * Finishes an asynchronous file read operation started with
+ * g_file_open_readwrite_async().
*
- * Returns: (transfer none): the new #GIOExtensionPoint. This object is
- * owned by GIO and should not be freed.
+ * Returns: (transfer full): a #GFileIOStream or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_io_extension_point_set_required_type:
- * @extension_point: a #GIOExtensionPoint
- * @type: the #GType to require
+ * g_file_output_stream_get_etag:
+ * @stream: a #GFileOutputStream.
*
- * Sets the required type for @extension_point to @type.
- * All implementations must henceforth have this type.
+ * Gets the entity tag for the file when it has been written.
+ * This must be called after the stream has been written
+ * and closed, as the etag can change while writing.
+ *
+ * Returns: the entity tag for the stream.
*/
/**
- * g_io_extension_ref_class:
- * @extension: a #GIOExtension
+ * g_file_output_stream_query_info:
+ * @stream: a #GFileOutputStream.
+ * @attributes: a file attribute query string.
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError, %NULL to ignore.
*
- * Gets a reference to the class for the type that is
- * associated with @extension.
+ * Queries a file output stream for the given @attributes.
+ * This function blocks while querying the stream. For the asynchronous
+ * version of this function, see g_file_output_stream_query_info_async().
+ * While the stream is blocked, the stream will set the pending flag
+ * internally, and any other operations on the stream will fail with
+ * %G_IO_ERROR_PENDING.
*
- * Returns: (transfer full): the #GTypeClass for the type of @extension
+ * Can fail if the stream was already closed (with @error being set to
+ * %G_IO_ERROR_CLOSED), the stream has pending operations (with @error being
+ * set to %G_IO_ERROR_PENDING), or if querying info is not supported for
+ * the stream's interface (with @error being set to %G_IO_ERROR_NOT_SUPPORTED). In
+ * all cases of failure, %NULL will be returned.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be set, and %NULL will
+ * be returned.
+ *
+ * Returns: (transfer full): a #GFileInfo for the @stream, or %NULL on error.
*/
/**
- * g_io_module_new:
- * @filename: (type filename): filename of the shared library module.
+ * g_file_output_stream_query_info_async:
+ * @stream: a #GFileOutputStream.
+ * @attributes: a file attribute query string.
+ * @io_priority: the [I/O priority][gio-GIOScheduler] of the request
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @callback: callback to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
- * Creates a new GIOModule that will load the specific
- * shared library when in use.
+ * Asynchronously queries the @stream for a #GFileInfo. When completed,
+ * @callback will be called with a #GAsyncResult which can be used to
+ * finish the operation with g_file_output_stream_query_info_finish().
*
- * Returns: a #GIOModule from given @filename,
- * or %NULL on error.
+ * For the synchronous version of this function, see
+ * g_file_output_stream_query_info().
*/
/**
- * g_io_module_scope_block:
- * @scope: a module loading scope
- * @basename: the basename to block
+ * g_file_output_stream_query_info_finish:
+ * @stream: a #GFileOutputStream.
+ * @result: a #GAsyncResult.
+ * @error: a #GError, %NULL to ignore.
*
- * Block modules with the given @basename from being loaded when
- * this scope is used with g_io_modules_scan_all_in_directory_with_scope()
- * or g_io_modules_load_all_in_directory_with_scope().
+ * Finalizes the asynchronous query started
+ * by g_file_output_stream_query_info_async().
*
- * Since: 2.30
+ * Returns: (transfer full): A #GFileInfo for the finished query.
*/
/**
- * g_io_module_scope_free:
- * @scope: a module loading scope
+ * g_file_parse_name:
+ * @parse_name: a file name or path to be parsed
*
- * Free a module scope.
+ * Constructs a #GFile with the given @parse_name (i.e. something
+ * given by g_file_get_parse_name()). This operation never fails,
+ * but the returned object might not support any I/O operation if
+ * the @parse_name cannot be parsed.
*
- * Since: 2.30
+ * Returns: (transfer full): a new #GFile.
*/
/**
- * g_io_module_scope_new:
- * @flags: flags for the new scope
+ * g_file_peek_path:
+ * @file: input #GFile
*
- * Create a new scope for loading of IO modules. A scope can be used for
- * blocking duplicate modules, or blocking a module you don't want to load.
+ * Exactly like g_file_get_path(), but caches the result via
+ * g_object_set_qdata_full(). This is useful for example in C
+ * applications which mix `g_file_*` APIs with native ones. It
+ * also avoids an extra duplicated string when possible, so will be
+ * generally more efficient.
*
- * Specify the %G_IO_MODULE_SCOPE_BLOCK_DUPLICATES flag to block modules
- * which have the same base name as a module that has already been seen
- * in this scope.
+ * This call does no blocking I/O.
*
- * Returns: (transfer full): the new module scope
- * Since: 2.30
+ * Returns: (type filename) (nullable): string containing the #GFile's path,
+ * or %NULL if no such path exists. The returned string is owned by @file.
+ * Since: 2.56
*/
/**
- * g_io_modules_load_all_in_directory:
- * @dirname: (type filename): pathname for a directory containing modules
- * to load.
+ * g_file_poll_mountable:
+ * @file: input #GFile
+ * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @callback: (nullable): a #GAsyncReadyCallback to call
+ * when the request is satisfied, or %NULL
+ * @user_data: the data to pass to callback function
*
- * Loads all the modules in the specified directory.
+ * Polls a file of type #G_FILE_TYPE_MOUNTABLE.
*
- * If don't require all modules to be initialized (and thus registering
- * all gtypes) then you can use g_io_modules_scan_all_in_directory()
- * which allows delayed/lazy loading of modules.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: (element-type GIOModule) (transfer full): a list of #GIOModules loaded
- * from the directory,
- * All the modules are loaded into memory, if you want to
- * unload them (enabling on-demand loading) you must call
- * g_type_module_unuse() on all the modules. Free the list
- * with g_list_free().
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_mount_mountable_finish() to get
+ * the result of the operation.
+ *
+ * Since: 2.22
*/
/**
- * g_io_modules_load_all_in_directory_with_scope:
- * @dirname: (type filename): pathname for a directory containing modules
- * to load.
- * @scope: a scope to use when scanning the modules.
+ * g_file_poll_mountable_finish:
+ * @file: input #GFile
+ * @result: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Loads all the modules in the specified directory.
+ * Finishes a poll operation. See g_file_poll_mountable() for details.
*
- * If don't require all modules to be initialized (and thus registering
- * all gtypes) then you can use g_io_modules_scan_all_in_directory()
- * which allows delayed/lazy loading of modules.
+ * Finish an asynchronous poll operation that was polled
+ * with g_file_poll_mountable().
*
- * Returns: (element-type GIOModule) (transfer full): a list of #GIOModules loaded
- * from the directory,
- * All the modules are loaded into memory, if you want to
- * unload them (enabling on-demand loading) you must call
- * g_type_module_unuse() on all the modules. Free the list
- * with g_list_free().
- * Since: 2.30
+ * Returns: %TRUE if the operation finished successfully. %FALSE
+ * otherwise.
+ * Since: 2.22
*/
/**
- * g_io_modules_scan_all_in_directory:
- * @dirname: (type filename): pathname for a directory containing modules
- * to scan.
- *
- * Scans all the modules in the specified directory, ensuring that
- * any extension point implemented by a module is registered.
+ * g_file_query_default_handler:
+ * @file: a #GFile to open
+ * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * This may not actually load and initialize all the types in each
- * module, some modules may be lazily loaded and initialized when
- * an extension point it implementes is used with e.g.
- * g_io_extension_point_get_extensions() or
- * g_io_extension_point_get_extension_by_name().
+ * Returns the #GAppInfo that is registered as the default
+ * application to handle the file specified by @file.
*
- * If you need to guarantee that all types are loaded in all the modules,
- * use g_io_modules_load_all_in_directory().
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Since: 2.24
+ * Returns: (transfer full): a #GAppInfo if the handle was found,
+ * %NULL if there were errors.
+ * When you are done with it, release it with g_object_unref()
*/
/**
- * g_io_modules_scan_all_in_directory_with_scope:
- * @dirname: (type filename): pathname for a directory containing modules
- * to scan.
- * @scope: a scope to use when scanning the modules
+ * g_file_query_exists:
+ * @file: input #GFile
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
*
- * Scans all the modules in the specified directory, ensuring that
- * any extension point implemented by a module is registered.
+ * Utility function to check if a particular file exists. This is
+ * implemented using g_file_query_info() and as such does blocking I/O.
*
- * This may not actually load and initialize all the types in each
- * module, some modules may be lazily loaded and initialized when
- * an extension point it implementes is used with e.g.
- * g_io_extension_point_get_extensions() or
- * g_io_extension_point_get_extension_by_name().
+ * Note that in many cases it is [racy to first check for file existence](https://en.wikipedia.org/wiki/Time_of_check_to_time_of_use)
+ * and then execute something based on the outcome of that, because the
+ * file might have been created or removed in between the operations. The
+ * general approach to handling that is to not check, but just do the
+ * operation and handle the errors as they come.
*
- * If you need to guarantee that all types are loaded in all the modules,
- * use g_io_modules_load_all_in_directory().
+ * As an example of race-free checking, take the case of reading a file,
+ * and if it doesn't exist, creating it. There are two racy versions: read
+ * it, and on error create it; and: check if it exists, if not create it.
+ * These can both result in two processes creating the file (with perhaps
+ * a partially written file as the result). The correct approach is to
+ * always try to create the file with g_file_create() which will either
+ * atomically create the file or fail with a %G_IO_ERROR_EXISTS error.
*
- * Since: 2.30
+ * However, in many cases an existence check is useful in a user interface,
+ * for instance to make a menu item sensitive/insensitive, so that you don't
+ * have to fool users that something is possible and then just show an error
+ * dialog. If you do this, you should make sure to also handle the errors
+ * that can happen due to races when you execute the operation.
+ *
+ * Returns: %TRUE if the file exists (and can be detected without error),
+ * %FALSE otherwise (or if cancelled).
*/
/**
- * g_io_scheduler_cancel_all_jobs:
+ * g_file_query_file_type:
+ * @file: input #GFile
+ * @flags: a set of #GFileQueryInfoFlags passed to g_file_query_info()
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
*
- * Cancels all cancellable I/O jobs.
+ * Utility function to inspect the #GFileType of a file. This is
+ * implemented using g_file_query_info() and as such does blocking I/O.
*
- * A job is cancellable if a #GCancellable was passed into
- * g_io_scheduler_push_job().
+ * The primary use case of this method is to check if a file is
+ * a regular file, directory, or symlink.
*
- * Deprecated: You should never call this function, since you don't
- * know how other libraries in your program might be making use of
- * gioscheduler.
+ * Returns: The #GFileType of the file and #G_FILE_TYPE_UNKNOWN
+ * if the file does not exist
+ * Since: 2.18
*/
/**
- * g_io_scheduler_job_send_to_mainloop:
- * @job: a #GIOSchedulerJob
- * @func: a #GSourceFunc callback that will be called in the original thread
- * @user_data: data to pass to @func
- * @notify: (nullable): a #GDestroyNotify for @user_data, or %NULL
+ * g_file_query_filesystem_info:
+ * @file: input #GFile
+ * @attributes: an attribute query string
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError
*
- * Used from an I/O job to send a callback to be run in the thread
- * that the job was started from, waiting for the result (and thus
- * blocking the I/O job).
+ * Similar to g_file_query_info(), but obtains information
+ * about the filesystem the @file is on, rather than the file itself.
+ * For instance the amount of space available and the type of
+ * the filesystem.
*
- * Returns: The return value of @func
- * Deprecated: Use g_main_context_invoke().
- */
-
-
-/**
- * g_io_scheduler_job_send_to_mainloop_async:
- * @job: a #GIOSchedulerJob
- * @func: a #GSourceFunc callback that will be called in the original thread
- * @user_data: data to pass to @func
- * @notify: (nullable): a #GDestroyNotify for @user_data, or %NULL
+ * The @attributes value is a string that specifies the attributes
+ * that should be gathered. It is not an error if it's not possible
+ * to read a particular requested attribute from a file - it just
+ * won't be set. @attributes should be a comma-separated list of
+ * attributes or attribute wildcards. The wildcard "*" means all
+ * attributes, and a wildcard like "filesystem::*" means all attributes
+ * in the filesystem namespace. The standard namespace for filesystem
+ * attributes is "filesystem". Common attributes of interest are
+ * #G_FILE_ATTRIBUTE_FILESYSTEM_SIZE (the total size of the filesystem
+ * in bytes), #G_FILE_ATTRIBUTE_FILESYSTEM_FREE (number of bytes available),
+ * and #G_FILE_ATTRIBUTE_FILESYSTEM_TYPE (type of the filesystem).
*
- * Used from an I/O job to send a callback to be run asynchronously in
- * the thread that the job was started from. The callback will be run
- * when the main loop is available, but at that time the I/O job might
- * have finished. The return value from the callback is ignored.
+ * If @cancellable is not %NULL, then the operation can be cancelled
+ * by triggering the cancellable object from another thread. If the
+ * operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
+ * returned.
*
- * Note that if you are passing the @user_data from g_io_scheduler_push_job()
- * on to this function you have to ensure that it is not freed before
- * @func is called, either by passing %NULL as @notify to
- * g_io_scheduler_push_job() or by using refcounting for @user_data.
+ * If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will
+ * be returned. Other errors are possible too, and depend on what
+ * kind of filesystem the file is on.
*
- * Deprecated: Use g_main_context_invoke().
+ * Returns: (transfer full): a #GFileInfo or %NULL if there was an error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_io_scheduler_push_job:
- * @job_func: a #GIOSchedulerJobFunc.
- * @user_data: data to pass to @job_func
- * @notify: (nullable): a #GDestroyNotify for @user_data, or %NULL
- * @io_priority: the [I/O priority][io-priority]
- * of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- *
- * Schedules the I/O job to run in another thread.
+ * g_file_query_filesystem_info_async:
+ * @file: input #GFile
+ * @attributes: an attribute query string
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async): a #GAsyncReadyCallback to call
+ * when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * @notify will be called on @user_data after @job_func has returned,
- * regardless whether the job was cancelled or has run to completion.
+ * Asynchronously gets the requested information about the filesystem
+ * that the specified @file is on. The result is a #GFileInfo object
+ * that contains key-value attributes (such as type or size for the
+ * file).
*
- * If @cancellable is not %NULL, it can be used to cancel the I/O job
- * by calling g_cancellable_cancel() or by calling
- * g_io_scheduler_cancel_all_jobs().
+ * For more details, see g_file_query_filesystem_info() which is the
+ * synchronous version of this call.
*
- * Deprecated: use #GThreadPool or g_task_run_in_thread()
+ * When the operation is finished, @callback will be called. You can
+ * then call g_file_query_info_finish() to get the result of the
+ * operation.
*/
/**
- * g_io_stream_clear_pending:
- * @stream: a #GIOStream
+ * g_file_query_filesystem_info_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
+ * @error: a #GError
*
- * Clears the pending flag on @stream.
+ * Finishes an asynchronous filesystem info query.
+ * See g_file_query_filesystem_info_async().
*
- * Since: 2.22
+ * Returns: (transfer full): #GFileInfo for given @file
+ * or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_io_stream_close:
- * @stream: a #GIOStream
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * Closes the stream, releasing resources related to it. This will also
- * close the individual input and output streams, if they are not already
- * closed.
- *
- * Once the stream is closed, all other operations will return
- * %G_IO_ERROR_CLOSED. Closing a stream multiple times will not
- * return an error.
- *
- * Closing a stream will automatically flush any outstanding buffers
- * in the stream.
+ * g_file_query_info:
+ * @file: input #GFile
+ * @attributes: an attribute query string
+ * @flags: a set of #GFileQueryInfoFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError
*
- * Streams will be automatically closed when the last reference
- * is dropped, but you might want to call this function to make sure
- * resources are released as early as possible.
+ * Gets the requested information about specified @file.
+ * The result is a #GFileInfo object that contains key-value
+ * attributes (such as the type or size of the file).
*
- * Some streams might keep the backing store of the stream (e.g. a file
- * descriptor) open after the stream is closed. See the documentation for
- * the individual stream for details.
+ * The @attributes value is a string that specifies the file
+ * attributes that should be gathered. It is not an error if
+ * it's not possible to read a particular requested attribute
+ * from a file - it just won't be set. @attributes should be a
+ * comma-separated list of attributes or attribute wildcards.
+ * The wildcard "*" means all attributes, and a wildcard like
+ * "standard::*" means all attributes in the standard namespace.
+ * An example attribute query be "standard::*,owner::user".
+ * The standard attributes are available as defines, like
+ * #G_FILE_ATTRIBUTE_STANDARD_NAME.
*
- * On failure the first error that happened will be reported, but the
- * close operation will finish as much as possible. A stream that failed
- * to close will still return %G_IO_ERROR_CLOSED for all operations.
- * Still, it is important to check and report the error to the user,
- * otherwise there might be a loss of data as all data might not be written.
+ * If @cancellable is not %NULL, then the operation can be cancelled
+ * by triggering the cancellable object from another thread. If the
+ * operation was cancelled, the error %G_IO_ERROR_CANCELLED will be
+ * returned.
*
- * If @cancellable is not NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- * Cancelling a close will still leave the stream closed, but some streams
- * can use a faster close that doesn't block to e.g. check errors.
+ * For symlinks, normally the information about the target of the
+ * symlink is returned, rather than information about the symlink
+ * itself. However if you pass #G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS
+ * in @flags the information about the symlink itself will be returned.
+ * Also, for symlinks that point to non-existing files the information
+ * about the symlink itself will be returned.
*
- * The default implementation of this method just calls close on the
- * individual input/output streams.
+ * If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will be
+ * returned. Other errors are possible too, and depend on what kind of
+ * filesystem the file is on.
*
- * Returns: %TRUE on success, %FALSE on failure
- * Since: 2.22
+ * Returns: (transfer full): a #GFileInfo for the given @file, or %NULL
+ * on error. Free the returned object with g_object_unref().
*/
/**
- * g_io_stream_close_async:
- * @stream: a #GIOStream
- * @io_priority: the io priority of the request
- * @cancellable: (nullable): optional cancellable object
- * @callback: (scope async): callback to call when the request is satisfied
+ * g_file_query_info_async:
+ * @file: input #GFile
+ * @attributes: an attribute query string
+ * @flags: a set of #GFileQueryInfoFlags
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the
+ * request is satisfied
* @user_data: (closure): the data to pass to callback function
*
- * Requests an asynchronous close of the stream, releasing resources
- * related to it. When the operation is finished @callback will be
- * called. You can then call g_io_stream_close_finish() to get
- * the result of the operation.
- *
- * For behaviour details see g_io_stream_close().
+ * Asynchronously gets the requested information about specified @file.
+ * The result is a #GFileInfo object that contains key-value attributes
+ * (such as type or size for the file).
*
- * The asynchronous 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 more details, see g_file_query_info() which is the synchronous
+ * version of this call.
*
- * Since: 2.22
+ * When the operation is finished, @callback will be called. You can
+ * then call g_file_query_info_finish() to get the result of the operation.
*/
/**
- * g_io_stream_close_finish:
- * @stream: a #GIOStream
- * @result: a #GAsyncResult
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore
+ * g_file_query_info_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
+ * @error: a #GError
*
- * Closes a stream.
+ * Finishes an asynchronous file info query.
+ * See g_file_query_info_async().
*
- * Returns: %TRUE if stream was successfully closed, %FALSE otherwise.
- * Since: 2.22
+ * Returns: (transfer full): #GFileInfo for given @file
+ * or %NULL on error. Free the returned object with
+ * g_object_unref().
*/
/**
- * g_io_stream_get_input_stream:
- * @stream: a #GIOStream
+ * g_file_query_settable_attributes:
+ * @file: input #GFile
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Gets the input stream for this object. This is used
- * for reading.
+ * Obtain the list of settable attributes for the file.
*
- * Returns: (transfer none): a #GInputStream, owned by the #GIOStream.
- * Do not free.
- * Since: 2.22
+ * Returns the type and full attribute name of all the attributes
+ * that can be set on this file. This doesn't mean setting it will
+ * always succeed though, you might get an access failure, or some
+ * specific file may not support a specific attribute.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * Returns: a #GFileAttributeInfoList describing the settable attributes.
+ * When you are done with it, release it with
+ * g_file_attribute_info_list_unref()
*/
/**
- * g_io_stream_get_output_stream:
- * @stream: a #GIOStream
+ * g_file_query_writable_namespaces:
+ * @file: input #GFile
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Gets the output stream for this object. This is used for
- * writing.
+ * Obtain the list of attribute namespaces where new attributes
+ * can be created by a user. An example of this is extended
+ * attributes (in the "xattr" namespace).
*
- * Returns: (transfer none): a #GOutputStream, owned by the #GIOStream.
- * Do not free.
- * Since: 2.22
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * Returns: a #GFileAttributeInfoList describing the writable namespaces.
+ * When you are done with it, release it with
+ * g_file_attribute_info_list_unref()
*/
/**
- * g_io_stream_has_pending:
- * @stream: a #GIOStream
+ * g_file_read: (virtual read_fn)
+ * @file: #GFile to read
+ * @cancellable: (nullable): a #GCancellable
+ * @error: a #GError, or %NULL
*
- * Checks if a stream has pending actions.
+ * Opens a file for reading. The result is a #GFileInputStream that
+ * can be used to read the contents of the file.
*
- * Returns: %TRUE if @stream has pending actions.
- * Since: 2.22
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * If the file does not exist, the %G_IO_ERROR_NOT_FOUND error will be
+ * returned. If the file is a directory, the %G_IO_ERROR_IS_DIRECTORY
+ * error will be returned. Other errors are possible too, and depend
+ * on what kind of filesystem the file is on.
+ *
+ * Returns: (transfer full): #GFileInputStream or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_io_stream_is_closed:
- * @stream: a #GIOStream
+ * g_file_read_async:
+ * @file: input #GFile
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async): a #GAsyncReadyCallback to call
+ * when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Checks if a stream is closed.
+ * Asynchronously opens @file for reading.
*
- * Returns: %TRUE if the stream is closed.
- * Since: 2.22
+ * For more details, see g_file_read() which is
+ * the synchronous version of this call.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_read_finish() to get the result
+ * of the operation.
*/
/**
- * g_io_stream_set_pending:
- * @stream: a #GIOStream
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore
+ * g_file_read_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Sets @stream to have actions pending. If the pending flag is
- * already set or @stream is closed, it will return %FALSE and set
- * @error.
+ * Finishes an asynchronous file read operation started with
+ * g_file_read_async().
*
- * Returns: %TRUE if pending was previously unset and is now set.
- * Since: 2.22
+ * Returns: (transfer full): a #GFileInputStream or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_io_stream_splice_async:
- * @stream1: a #GIOStream.
- * @stream2: a #GIOStream.
- * @flags: a set of #GIOStreamSpliceFlags.
- * @io_priority: the io priority of the request.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
+ * g_file_replace:
+ * @file: input #GFile
+ * @etag: (nullable): an optional [entity tag][gfile-etag]
+ * for the current #GFile, or #NULL to ignore
+ * @make_backup: %TRUE if a backup should be created
+ * @flags: a set of #GFileCreateFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Asyncronously splice the output stream of @stream1 to the input stream of
- * @stream2, and splice the output stream of @stream2 to the input stream of
- * @stream1.
+ * Returns an output stream for overwriting the file, possibly
+ * creating a backup copy of the file first. If the file doesn't exist,
+ * it will be created.
*
- * When the operation is finished @callback will be called.
- * You can then call g_io_stream_splice_finish() to get the
- * result of the operation.
+ * This will try to replace the file in the safest way possible so
+ * that any errors during the writing will not affect an already
+ * existing copy of the file. For instance, for local files it
+ * may write to a temporary file and then atomically rename over
+ * the destination when the stream is closed.
*
- * Since: 2.28
+ * By default files created are generally readable by everyone,
+ * but if you pass #G_FILE_CREATE_PRIVATE in @flags the file
+ * will be made readable only to the current user, to the level that
+ * is supported on the target filesystem.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled
+ * 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 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
+ * a %G_IO_ERROR_CANT_CREATE_BACKUP error will be returned. If you
+ * want to replace anyway, try again with @make_backup set to %FALSE.
+ *
+ * If the file is a directory the %G_IO_ERROR_IS_DIRECTORY error will
+ * be returned, and if the file is some other form of non-regular file
+ * then a %G_IO_ERROR_NOT_REGULAR_FILE error will be returned. Some
+ * file systems don't allow all file names, and may return an
+ * %G_IO_ERROR_INVALID_FILENAME error, and if the name is to long
+ * %G_IO_ERROR_FILENAME_TOO_LONG will be returned. Other errors are
+ * possible too, and depend on what kind of filesystem the file is on.
+ *
+ * Returns: (transfer full): a #GFileOutputStream or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_io_stream_splice_finish:
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_file_replace_async:
+ * @file: input #GFile
+ * @etag: (nullable): an [entity tag][gfile-etag] for the current #GFile,
+ * or %NULL to ignore
+ * @make_backup: %TRUE if a backup should be created
+ * @flags: a set of #GFileCreateFlags
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async): a #GAsyncReadyCallback to call
+ * when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Finishes an asynchronous io stream splice operation.
+ * Asynchronously overwrites the file, replacing the contents,
+ * possibly creating a backup copy of the file first.
*
- * Returns: %TRUE on success, %FALSE otherwise.
- * Since: 2.28
+ * For more details, see g_file_replace() which is
+ * the synchronous version of this call.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_replace_finish() to get the result
+ * of the operation.
*/
/**
- * g_keyfile_settings_backend_new:
- * @filename: the filename of the keyfile
- * @root_path: the path under which all settings keys appear
- * @root_group: (nullable): the group name corresponding to
- * @root_path, or %NULL
+ * g_file_replace_contents:
+ * @file: input #GFile
+ * @contents: (element-type guint8) (array length=length): a string containing the new contents for @file
+ * @length: the length of @contents in bytes
+ * @etag: (nullable): the old [entity-tag][gfile-etag] for the document,
+ * or %NULL
+ * @make_backup: %TRUE if a backup should be created
+ * @flags: a set of #GFileCreateFlags
+ * @new_etag: (out) (optional): a location to a new [entity tag][gfile-etag]
+ * for the document. This should be freed with g_free() when no longer
+ * needed, or %NULL
+ * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Creates a keyfile-backed #GSettingsBackend.
+ * Replaces the contents of @file with @contents of @length bytes.
*
- * The filename of the keyfile to use is given by @filename.
+ * If @etag is specified (not %NULL), any existing file must have that etag,
+ * or the error %G_IO_ERROR_WRONG_ETAG will be returned.
*
- * All settings read to or written from the backend must fall under the
- * path given in @root_path (which must start and end with a slash and
- * not contain two consecutive slashes). @root_path may be "/".
+ * If @make_backup is %TRUE, this function will attempt to make a backup
+ * 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 @root_group is non-%NULL then it specifies the name of the keyfile
- * group used for keys that are written directly below @root_path. For
- * example, if @root_path is "/apps/example/" and @root_group is
- * "toplevel", then settings the key "/apps/example/enabled" to a value
- * of %TRUE will cause the following to appear in the keyfile:
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * |[
- * [toplevel]
- * enabled=true
- * ]|
+ * The returned @new_etag can be used to verify that the file hasn't
+ * changed the next time it is saved over.
*
- * If @root_group is %NULL then it is not permitted to store keys
- * directly below the @root_path.
+ * Returns: %TRUE if successful. If an error has occurred, this function
+ * will return %FALSE and set @error appropriately if present.
+ */
+
+
+/**
+ * g_file_replace_contents_async:
+ * @file: input #GFile
+ * @contents: (element-type guint8) (array length=length): string of contents to replace the file with
+ * @length: the length of @contents in bytes
+ * @etag: (nullable): a new [entity tag][gfile-etag] for the @file, or %NULL
+ * @make_backup: %TRUE if a backup should be created
+ * @flags: a set of #GFileCreateFlags
+ * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @callback: a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
- * For keys not stored directly below @root_path (ie: in a sub-path),
- * the name of the subpath (with the final slash stripped) is used as
- * the name of the keyfile group. To continue the example, if
- * "/apps/example/profiles/default/font-size" were set to
- * 12 then the following would appear in the keyfile:
+ * Starts an asynchronous replacement of @file with the given
+ * @contents of @length bytes. @etag will replace the document's
+ * current entity tag.
*
- * |[
- * [profiles/default]
- * font-size=12
- * ]|
+ * When this operation has completed, @callback will be called with
+ * @user_user data, and the operation can be finalized with
+ * g_file_replace_contents_finish().
*
- * The backend will refuse writes (and return writability as being
- * %FALSE) for keys outside of @root_path and, in the event that
- * @root_group is %NULL, also for keys directly under @root_path.
- * Writes will also be refused if the backend detects that it has the
- * inability to rewrite the keyfile (ie: the containing directory is not
- * writable).
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * There is no checking done for your key namespace clashing with the
- * syntax of the key file format. For example, if you have '[' or ']'
- * characters in your path names or '=' in your key names you may be in
- * trouble.
+ * If @make_backup is %TRUE, this function will attempt to
+ * make a backup of @file.
*
- * Returns: (transfer full): a keyfile-backed #GSettingsBackend
+ * Note that no copy of @content will be made, so it must stay valid
+ * until @callback is called. See g_file_replace_contents_bytes_async()
+ * for a #GBytes version that will automatically hold a reference to the
+ * contents (without copying) for the duration of the call.
*/
/**
- * g_list_model_get_item: (skip)
- * @list: a #GListModel
- * @position: the position of the item to fetch
+ * g_file_replace_contents_bytes_async:
+ * @file: input #GFile
+ * @contents: a #GBytes
+ * @etag: (nullable): a new [entity tag][gfile-etag] for the @file, or %NULL
+ * @make_backup: %TRUE if a backup should be created
+ * @flags: a set of #GFileCreateFlags
+ * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @callback: a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: the data to pass to callback function
*
- * Get the item at @position. If @position is greater than the number of
- * items in @list, %NULL is returned.
+ * Same as g_file_replace_contents_async() but takes a #GBytes input instead.
+ * This function will keep a ref on @contents until the operation is done.
+ * Unlike g_file_replace_contents_async() this allows forgetting about the
+ * content without waiting for the callback.
*
- * %NULL is never returned for an index that is smaller than the length
- * of the list. See g_list_model_get_n_items().
+ * When this operation has completed, @callback will be called with
+ * @user_user data, and the operation can be finalized with
+ * g_file_replace_contents_finish().
*
- * Returns: (transfer full) (nullable): the item at @position.
- * Since: 2.44
+ * Since: 2.40
*/
/**
- * g_list_model_get_item_type:
- * @list: a #GListModel
+ * g_file_replace_contents_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
+ * @new_etag: (out) (optional): a location of a new [entity tag][gfile-etag]
+ * for the document. This should be freed with g_free() when it is no
+ * longer needed, or %NULL
+ * @error: a #GError, or %NULL
*
- * 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.
+ * Finishes an asynchronous replace of the given @file. See
+ * g_file_replace_contents_async(). Sets @new_etag to the new entity
+ * tag for the document, if present.
*
- * The item type of a #GListModel can not change during the life of the
- * model.
+ * Returns: %TRUE on success, %FALSE on failure.
+ */
+
+
+/**
+ * g_file_replace_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Returns: the #GType of the items contained in @list.
- * Since: 2.44
+ * Finishes an asynchronous file replace operation started with
+ * g_file_replace_async().
+ *
+ * Returns: (transfer full): a #GFileOutputStream, or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_list_model_get_n_items:
- * @list: a #GListModel
+ * g_file_replace_readwrite:
+ * @file: a #GFile
+ * @etag: (nullable): an optional [entity tag][gfile-etag]
+ * for the current #GFile, or #NULL to ignore
+ * @make_backup: %TRUE if a backup should be created
+ * @flags: a set of #GFileCreateFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: return location for a #GError, or %NULL
*
- * Gets the number of items in @list.
+ * Returns an output stream for overwriting the file in readwrite mode,
+ * possibly creating a backup copy of the file first. If the file doesn't
+ * exist, it will be created.
*
- * 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.
+ * For details about the behaviour, see g_file_replace() which does the
+ * same thing but returns an output stream only.
*
- * Returns: the number of items in @list.
- * Since: 2.44
+ * Note that in many non-local file cases read and write streams are not
+ * supported, so make sure you really need to do read and write streaming,
+ * rather than just opening for reading or writing.
+ *
+ * Returns: (transfer full): a #GFileIOStream or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_list_model_get_object: (rename-to g_list_model_get_item)
- * @list: a #GListModel
- * @position: the position of the item to fetch
+ * g_file_replace_readwrite_async:
+ * @file: input #GFile
+ * @etag: (nullable): an [entity tag][gfile-etag] for the current #GFile,
+ * or %NULL to ignore
+ * @make_backup: %TRUE if a backup should be created
+ * @flags: a set of #GFileCreateFlags
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async): a #GAsyncReadyCallback to call
+ * when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Get the item at @position. If @position is greater than the number of
- * items in @list, %NULL is returned.
+ * Asynchronously overwrites the file in read-write mode,
+ * replacing the contents, possibly creating a backup copy
+ * of the file first.
*
- * %NULL is never returned for an index that is smaller than the length
- * of the list. See g_list_model_get_n_items().
+ * For more details, see g_file_replace_readwrite() which is
+ * the synchronous version of this call.
*
- * Returns: (transfer full) (nullable): the object at @position.
- * Since: 2.44
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_replace_readwrite_finish() to get
+ * the result of the operation.
+ *
+ * Since: 2.22
*/
/**
- * g_list_model_items_changed:
- * @list: a #GListModel
- * @position: the position at which @list changed
- * @removed: the number of items removed
- * @added: the number of items added
- *
- * Emits the #GListModel::items-changed signal on @list.
+ * g_file_replace_readwrite_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * 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.
+ * Finishes an asynchronous file replace operation started with
+ * g_file_replace_readwrite_async().
*
- * 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.
+ * Returns: (transfer full): a #GFileIOStream, or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
+ */
+
+
+/**
+ * g_file_resolve_relative_path:
+ * @file: input #GFile
+ * @relative_path: (type filename): a given relative path string
*
- * 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.
+ * Resolves a relative path for @file to an absolute path.
*
- * Since: 2.44
+ * This call does no blocking I/O.
+ *
+ * Returns: (transfer full): #GFile to the resolved path.
+ * %NULL if @relative_path is %NULL or if @file is invalid.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_list_store_append:
- * @store: a #GListStore
- * @item: (type GObject): the new item
+ * g_file_set_attribute:
+ * @file: input #GFile
+ * @attribute: a string containing the attribute's name
+ * @type: The type of the attribute
+ * @value_p: (nullable): a pointer to the value (or the pointer
+ * itself if the type is a pointer type)
+ * @flags: a set of #GFileQueryInfoFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Appends @item to @store. @item must be of type #GListStore:item-type.
+ * Sets an attribute in the file with attribute name @attribute to @value.
*
- * This function takes a ref on @item.
+ * Some attributes can be unset by setting @type to
+ * %G_FILE_ATTRIBUTE_TYPE_INVALID and @value_p to %NULL.
*
- * Use g_list_store_splice() to append multiple items at the same time
- * efficiently.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Since: 2.44
+ * Returns: %TRUE if the attribute was set, %FALSE otherwise.
*/
/**
- * g_list_store_insert:
- * @store: a #GListStore
- * @position: the position at which to insert the new item
- * @item: (type GObject): the new item
- *
- * 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.
+ * g_file_set_attribute_byte_string:
+ * @file: input #GFile
+ * @attribute: a string containing the attribute's name
+ * @value: a string containing the attribute's new value
+ * @flags: a #GFileQueryInfoFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * This function takes a ref on @item.
+ * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING to @value.
+ * If @attribute is of a different type, this operation will fail,
+ * returning %FALSE.
*
- * Use g_list_store_splice() to insert multiple items at the same time
- * efficiently.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Since: 2.44
+ * Returns: %TRUE if the @attribute was successfully set to @value
+ * in the @file, %FALSE otherwise.
*/
/**
- * g_list_store_insert_sorted:
- * @store: a #GListStore
- * @item: (type GObject): the new item
- * @compare_func: (scope call): pairwise comparison function for sorting
- * @user_data: (closure): user data for @compare_func
- *
- * Inserts @item into @store at a position to be determined by the
- * @compare_func.
+ * g_file_set_attribute_int32:
+ * @file: input #GFile
+ * @attribute: a string containing the attribute's name
+ * @value: a #gint32 containing the attribute's new value
+ * @flags: a #GFileQueryInfoFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * 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.
+ * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_INT32 to @value.
+ * If @attribute is of a different type, this operation will fail.
*
- * This function takes a ref on @item.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: the position at which @item was inserted
- * Since: 2.44
+ * Returns: %TRUE if the @attribute was successfully set to @value
+ * in the @file, %FALSE otherwise.
*/
/**
- * g_list_store_new:
- * @item_type: the #GType of items in the list
+ * g_file_set_attribute_int64:
+ * @file: input #GFile
+ * @attribute: a string containing the attribute's name
+ * @value: a #guint64 containing the attribute's new value
+ * @flags: a #GFileQueryInfoFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Creates a new #GListStore with items of type @item_type. @item_type
- * must be a subclass of #GObject.
+ * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_INT64 to @value.
+ * If @attribute is of a different type, this operation will fail.
*
- * Returns: a new #GListStore
- * Since: 2.44
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * Returns: %TRUE if the @attribute was successfully set, %FALSE otherwise.
*/
/**
- * g_list_store_remove:
- * @store: a #GListStore
- * @position: the position of the item that is to be removed
+ * g_file_set_attribute_string:
+ * @file: input #GFile
+ * @attribute: a string containing the attribute's name
+ * @value: a string containing the attribute's value
+ * @flags: #GFileQueryInfoFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Removes the item from @store that is at @position. @position must be
- * smaller than the current length of the list.
+ * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_STRING to @value.
+ * If @attribute is of a different type, this operation will fail.
*
- * Use g_list_store_splice() to remove multiple items at the same time
- * efficiently.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Since: 2.44
+ * Returns: %TRUE if the @attribute was successfully set, %FALSE otherwise.
*/
/**
- * g_list_store_remove_all:
- * @store: a #GListStore
+ * g_file_set_attribute_uint32:
+ * @file: input #GFile
+ * @attribute: a string containing the attribute's name
+ * @value: a #guint32 containing the attribute's new value
+ * @flags: a #GFileQueryInfoFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Removes all items from @store.
+ * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_UINT32 to @value.
+ * If @attribute is of a different type, this operation will fail.
*
- * Since: 2.44
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * Returns: %TRUE if the @attribute was successfully set to @value
+ * in the @file, %FALSE otherwise.
*/
/**
- * g_list_store_sort:
- * @store: a #GListStore
- * @compare_func: (scope call): pairwise comparison function for sorting
- * @user_data: (closure): user data for @compare_func
+ * g_file_set_attribute_uint64:
+ * @file: input #GFile
+ * @attribute: a string containing the attribute's name
+ * @value: a #guint64 containing the attribute's new value
+ * @flags: a #GFileQueryInfoFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Sort the items in @store according to @compare_func.
+ * Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_UINT64 to @value.
+ * If @attribute is of a different type, this operation will fail.
*
- * Since: 2.46
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * Returns: %TRUE if the @attribute was successfully set to @value
+ * in the @file, %FALSE otherwise.
*/
/**
- * g_list_store_splice:
- * @store: a #GListStore
- * @position: the position at which to make the change
- * @n_removals: the number of items to remove
- * @additions: (array length=n_additions) (element-type GObject): the items to add
- * @n_additions: the number of items to add
- *
- * 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.
+ * g_file_set_attributes_async:
+ * @file: input #GFile
+ * @info: a #GFileInfo
+ * @flags: a #GFileQueryInfoFlags
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): a #gpointer
*
- * This function takes a ref on each item in @additions.
+ * Asynchronously sets the attributes of @file with @info.
*
- * 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).
+ * For more details, see g_file_set_attributes_from_info(),
+ * which is the synchronous version of this call.
*
- * Since: 2.44
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_set_attributes_finish() to get
+ * the result of the operation.
*/
/**
- * g_loadable_icon_load:
- * @icon: a #GLoadableIcon.
- * @size: an integer.
- * @type: (out) (optional): a location to store the type of the loaded
- * icon, %NULL to ignore.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to
- * ignore.
- * @error: a #GError location to store the error occurring, or %NULL
- * to ignore.
+ * g_file_set_attributes_finish:
+ * @file: input #GFile
+ * @result: a #GAsyncResult
+ * @info: (out) (transfer full): a #GFileInfo
+ * @error: a #GError, or %NULL
*
- * Loads a loadable icon. For the asynchronous version of this function,
- * see g_loadable_icon_load_async().
+ * Finishes setting an attribute started in g_file_set_attributes_async().
*
- * Returns: (transfer full): a #GInputStream to read the icon from.
+ * Returns: %TRUE if the attributes were set correctly, %FALSE otherwise.
*/
/**
- * g_loadable_icon_load_async:
- * @icon: a #GLoadableIcon.
- * @size: an integer.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the
- * request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_file_set_attributes_from_info:
+ * @file: input #GFile
+ * @info: a #GFileInfo
+ * @flags: #GFileQueryInfoFlags
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Loads an icon asynchronously. To finish this function, see
- * g_loadable_icon_load_finish(). For the synchronous, blocking
- * version of this function, see g_loadable_icon_load().
- */
-
-
-/**
- * g_loadable_icon_load_finish:
- * @icon: a #GLoadableIcon.
- * @res: a #GAsyncResult.
- * @type: (out) (optional): a location to store the type of the loaded
- * icon, %NULL to ignore.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * Tries to set all attributes in the #GFileInfo on the target
+ * values, not stopping on the first error.
*
- * Finishes an asynchronous icon load started in g_loadable_icon_load_async().
+ * If there is any error during this operation then @error will
+ * be set to the first error. Error on particular fields are flagged
+ * by setting the "status" field in the attribute value to
+ * %G_FILE_ATTRIBUTE_STATUS_ERROR_SETTING, which means you can
+ * also detect further errors.
*
- * Returns: (transfer full): a #GInputStream to read the icon from.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * Returns: %FALSE if there was any error, %TRUE otherwise.
*/
/**
- * g_local_vfs_new:
+ * g_file_set_display_name:
+ * @file: input #GFile
+ * @display_name: a string
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * Returns a new #GVfs handle for a local vfs.
+ * Renames @file to the specified display name.
*
- * Returns: a new #GVfs handle.
+ * The display name is converted from UTF-8 to the correct encoding
+ * for the target filesystem if possible and the @file is renamed to this.
+ *
+ * If you want to implement a rename operation in the user interface the
+ * edit name (#G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME) should be used as the
+ * initial value in the rename widget, and then the result after editing
+ * should be passed to g_file_set_display_name().
+ *
+ * On success the resulting converted filename is returned.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * Returns: (transfer full): a #GFile specifying what @file was renamed to,
+ * or %NULL if there was an error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_memory_input_stream_add_bytes:
- * @stream: a #GMemoryInputStream
- * @bytes: input data
+ * g_file_set_display_name_async:
+ * @file: input #GFile
+ * @display_name: a string
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async): a #GAsyncReadyCallback to call
+ * when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Appends @bytes to data that can be read from the input stream.
+ * Asynchronously sets the display name for a given #GFile.
*
- * Since: 2.34
+ * For more details, see g_file_set_display_name() which is
+ * the synchronous version of this call.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_set_display_name_finish() to get
+ * the result of the operation.
*/
/**
- * g_memory_input_stream_add_data:
- * @stream: a #GMemoryInputStream
- * @data: (array length=len) (element-type guint8) (transfer full): input data
- * @len: length of the data, may be -1 if @data is a nul-terminated string
- * @destroy: (nullable): function that is called to free @data, or %NULL
+ * g_file_set_display_name_finish:
+ * @file: input #GFile
+ * @res: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Appends @data to data that can be read from the input stream
+ * Finishes setting a display name started with
+ * g_file_set_display_name_async().
+ *
+ * Returns: (transfer full): a #GFile or %NULL on error.
+ * Free the returned object with g_object_unref().
*/
/**
- * g_memory_input_stream_new:
+ * g_file_start_mountable:
+ * @file: input #GFile
+ * @flags: flags affecting the operation
+ * @start_operation: (nullable): a #GMountOperation, or %NULL to avoid user interaction
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @callback: (nullable): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL
+ * @user_data: the data to pass to callback function
*
- * Creates a new empty #GMemoryInputStream.
+ * Starts a file of type #G_FILE_TYPE_MOUNTABLE.
+ * Using @start_operation, you can request callbacks when, for instance,
+ * passwords are needed during authentication.
*
- * Returns: a new #GInputStream
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_mount_mountable_finish() to get
+ * the result of the operation.
+ *
+ * Since: 2.22
*/
/**
- * g_memory_input_stream_new_from_bytes:
- * @bytes: a #GBytes
+ * g_file_start_mountable_finish:
+ * @file: input #GFile
+ * @result: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Creates a new #GMemoryInputStream with data from the given @bytes.
+ * Finishes a start operation. See g_file_start_mountable() for details.
*
- * Returns: new #GInputStream read from @bytes
- * Since: 2.34
+ * Finish an asynchronous start operation that was started
+ * with g_file_start_mountable().
+ *
+ * Returns: %TRUE if the operation finished successfully. %FALSE
+ * otherwise.
+ * Since: 2.22
*/
/**
- * g_memory_input_stream_new_from_data:
- * @data: (array length=len) (element-type guint8) (transfer full): input data
- * @len: length of the data, may be -1 if @data is a nul-terminated string
- * @destroy: (nullable): function that is called to free @data, or %NULL
+ * g_file_stop_mountable:
+ * @file: input #GFile
+ * @flags: flags affecting the operation
+ * @mount_operation: (nullable): a #GMountOperation,
+ * or %NULL to avoid user interaction.
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (nullable): a #GAsyncReadyCallback to call
+ * when the request is satisfied, or %NULL
+ * @user_data: the data to pass to callback function
*
- * Creates a new #GMemoryInputStream with data in memory of a given size.
+ * Stops a file of type #G_FILE_TYPE_MOUNTABLE.
*
- * Returns: new #GInputStream read from @data of @len bytes.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_stop_mountable_finish() to get
+ * the result of the operation.
+ *
+ * Since: 2.22
*/
/**
- * g_memory_output_stream_get_data:
- * @ostream: a #GMemoryOutputStream
+ * g_file_stop_mountable_finish:
+ * @file: input #GFile
+ * @result: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Gets any loaded data from the @ostream.
+ * Finishes an stop operation, see g_file_stop_mountable() for details.
*
- * Note that the returned pointer may become invalid on the next
- * write or truncate operation on the stream.
+ * Finish an asynchronous stop operation that was started
+ * with g_file_stop_mountable().
*
- * Returns: (transfer none): pointer to the stream's data, or %NULL if the data
- * has been stolen
+ * Returns: %TRUE if the operation finished successfully.
+ * %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_memory_output_stream_get_data_size:
- * @ostream: a #GMemoryOutputStream
+ * g_file_supports_thread_contexts:
+ * @file: a #GFile
*
- * Returns the number of bytes from the start up to including the last
- * byte written in the stream that has not been truncated away.
+ * Checks if @file supports
+ * [thread-default contexts][g-main-context-push-thread-default-context].
+ * If this returns %FALSE, you cannot perform asynchronous operations on
+ * @file in a thread that has a thread-default context.
*
- * Returns: the number of bytes written to the stream
- * Since: 2.18
+ * Returns: Whether or not @file supports thread-default contexts.
+ * Since: 2.22
*/
/**
- * g_memory_output_stream_get_size:
- * @ostream: a #GMemoryOutputStream
- *
- * Gets the size of the currently allocated data area (available from
- * g_memory_output_stream_get_data()).
- *
- * You probably don't want to use this function on resizable streams.
- * See g_memory_output_stream_get_data_size() instead. For resizable
- * streams the size returned by this function is an implementation
- * detail and may be change at any time in response to operations on the
- * stream.
+ * g_file_trash: (virtual trash)
+ * @file: #GFile to send to trash
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @error: a #GError, or %NULL
*
- * If the stream is fixed-sized (ie: no realloc was passed to
- * g_memory_output_stream_new()) then this is the maximum size of the
- * stream and further writes will return %G_IO_ERROR_NO_SPACE.
+ * Sends @file to the "Trashcan", if possible. This is similar to
+ * deleting it, but the user can recover it before emptying the trashcan.
+ * Not all file systems support trashing, so this call can return the
+ * %G_IO_ERROR_NOT_SUPPORTED error.
*
- * In any case, if you want the number of bytes currently written to the
- * stream, use g_memory_output_stream_get_data_size().
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: the number of bytes allocated for the data buffer
+ * Returns: %TRUE on successful trash, %FALSE otherwise.
*/
/**
- * g_memory_output_stream_new: (skip)
- * @data: (nullable): pointer to a chunk of memory to use, or %NULL
- * @size: the size of @data
- * @realloc_function: (nullable): a function with realloc() semantics (like g_realloc())
- * to be called when @data needs to be grown, or %NULL
- * @destroy_function: (nullable): a function to be called on @data when the stream is
- * finalized, or %NULL
- *
- * Creates a new #GMemoryOutputStream.
- *
- * In most cases this is not the function you want. See
- * g_memory_output_stream_new_resizable() instead.
- *
- * If @data is non-%NULL, the stream will use that for its internal storage.
- *
- * If @realloc_fn is non-%NULL, it will be used for resizing the internal
- * storage when necessary and the stream will be considered resizable.
- * In that case, the stream will start out being (conceptually) empty.
- * @size is used only as a hint for how big @data is. Specifically,
- * seeking to the end of a newly-created stream will seek to zero, not
- * @size. Seeking past the end of the stream and then writing will
- * introduce a zero-filled gap.
- *
- * If @realloc_fn is %NULL then the stream is fixed-sized. Seeking to
- * the end will seek to @size exactly. Writing past the end will give
- * an 'out of space' error. Attempting to seek past the end will fail.
- * Unlike the resizable case, seeking to an offset within the stream and
- * writing will preserve the bytes passed in as @data before that point
- * and will return them as part of g_memory_output_stream_steal_data().
- * If you intend to seek you should probably therefore ensure that @data
- * is properly initialised.
- *
- * It is probably only meaningful to provide @data and @size in the case
- * that you want a fixed-sized stream. Put another way: if @realloc_fn
- * is non-%NULL then it makes most sense to give @data as %NULL and
- * @size as 0 (allowing #GMemoryOutputStream to do the initial
- * allocation for itself).
- *
- * |[<!-- language="C" -->
- * // a stream that can grow
- * stream = g_memory_output_stream_new (NULL, 0, realloc, free);
- *
- * // another stream that can grow
- * stream2 = g_memory_output_stream_new (NULL, 0, g_realloc, g_free);
+ * g_file_trash_async: (virtual trash_async)
+ * @file: input #GFile
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: a #GAsyncReadyCallback to call
+ * when the request is satisfied
+ * @user_data: the data to pass to callback function
*
- * // a fixed-size stream
- * data = malloc (200);
- * stream3 = g_memory_output_stream_new (data, 200, NULL, free);
- * ]|
+ * Asynchronously sends @file to the Trash location, if possible.
*
- * Returns: A newly created #GMemoryOutputStream object.
+ * Since: 2.38
*/
/**
- * g_memory_output_stream_new_resizable:
+ * g_file_trash_finish: (virtual trash_finish)
+ * @file: input #GFile
+ * @result: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Creates a new #GMemoryOutputStream, using g_realloc() and g_free()
- * for memory allocation.
+ * Finishes an asynchronous file trashing operation, started with
+ * g_file_trash_async().
*
- * Since: 2.36
+ * Returns: %TRUE on successful trash, %FALSE otherwise.
+ * Since: 2.38
*/
/**
- * g_memory_output_stream_steal_as_bytes:
- * @ostream: a #GMemoryOutputStream
+ * g_file_unmount_mountable:
+ * @file: input #GFile
+ * @flags: flags affecting the operation
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
+ * when the request is satisfied, or %NULL
+ * @user_data: (closure): the data to pass to callback function
*
- * Returns data from the @ostream as a #GBytes. @ostream must be
- * closed before calling this function.
+ * Unmounts a file of type G_FILE_TYPE_MOUNTABLE.
*
- * Returns: (transfer full): the stream's data
- * Since: 2.34
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_unmount_mountable_finish() to get
+ * the result of the operation.
+ *
+ * Deprecated: 2.22: Use g_file_unmount_mountable_with_operation() instead.
*/
/**
- * g_memory_output_stream_steal_data:
- * @ostream: a #GMemoryOutputStream
+ * g_file_unmount_mountable_finish:
+ * @file: input #GFile
+ * @result: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Gets any loaded data from the @ostream. Ownership of the data
- * is transferred to the caller; when no longer needed it must be
- * freed using the free function set in @ostream's
- * #GMemoryOutputStream:destroy-function property.
+ * Finishes an unmount operation, see g_file_unmount_mountable() for details.
*
- * @ostream must be closed before calling this function.
+ * Finish an asynchronous unmount operation that was started
+ * with g_file_unmount_mountable().
*
- * Returns: (transfer full): the stream's data, or %NULL if it has previously
- * been stolen
- * Since: 2.26
+ * Returns: %TRUE if the operation finished successfully.
+ * %FALSE otherwise.
+ * Deprecated: 2.22: Use g_file_unmount_mountable_with_operation_finish()
+ * instead.
*/
/**
- * g_memory_settings_backend_new:
+ * g_file_unmount_mountable_with_operation:
+ * @file: input #GFile
+ * @flags: flags affecting the operation
+ * @mount_operation: (nullable): a #GMountOperation,
+ * or %NULL to avoid user interaction
+ * @cancellable: (nullable): optional #GCancellable object,
+ * %NULL to ignore
+ * @callback: (scope async) (nullable): a #GAsyncReadyCallback to call
+ * when the request is satisfied, or %NULL
+ * @user_data: (closure): the data to pass to callback function
*
- * Creates a memory-backed #GSettingsBackend.
+ * Unmounts a file of type #G_FILE_TYPE_MOUNTABLE.
*
- * This backend allows changes to settings, but does not write them
- * to any backing storage, so the next time you run your application,
- * the memory backend will start out with the default values again.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: (transfer full): a newly created #GSettingsBackend
- * Since: 2.28
+ * When the operation is finished, @callback will be called.
+ * You can then call g_file_unmount_mountable_finish() to get
+ * the result of the operation.
+ *
+ * Since: 2.22
*/
/**
- * g_menu_append:
- * @menu: a #GMenu
- * @label: (nullable): the section label, or %NULL
- * @detailed_action: (nullable): the detailed action string, or %NULL
+ * g_file_unmount_mountable_with_operation_finish:
+ * @file: input #GFile
+ * @result: a #GAsyncResult
+ * @error: a #GError, or %NULL
*
- * Convenience function for appending a normal menu item to the end of
- * @menu. Combine g_menu_item_new() and g_menu_insert_item() for a more
- * flexible alternative.
+ * Finishes an unmount operation,
+ * see g_file_unmount_mountable_with_operation() for details.
*
- * Since: 2.32
+ * Finish an asynchronous unmount operation that was started
+ * with g_file_unmount_mountable_with_operation().
+ *
+ * Returns: %TRUE if the operation finished successfully.
+ * %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_menu_append_item:
- * @menu: a #GMenu
- * @item: a #GMenuItem to append
- *
- * Appends @item to the end of @menu.
+ * g_filename_completer_get_completion_suffix:
+ * @completer: the filename completer.
+ * @initial_text: text to be completed.
*
- * See g_menu_insert_item() for more information.
+ * Obtains a completion for @initial_text from @completer.
*
- * Since: 2.32
+ * Returns: a completed string, or %NULL if no completion exists.
+ * This string is not owned by GIO, so remember to g_free() it
+ * when finished.
*/
/**
- * g_menu_append_section:
- * @menu: a #GMenu
- * @label: (nullable): the section label, or %NULL
- * @section: a #GMenuModel with the items of the section
+ * g_filename_completer_get_completions:
+ * @completer: the filename completer.
+ * @initial_text: text to be completed.
*
- * Convenience function for appending a section menu item to the end of
- * @menu. Combine g_menu_item_new_section() and g_menu_insert_item() for a
- * more flexible alternative.
+ * Gets an array of completion strings for a given initial text.
*
- * Since: 2.32
+ * Returns: (array zero-terminated=1) (transfer full): array of strings with possible completions for @initial_text.
+ * This array must be freed by g_strfreev() when finished.
*/
/**
- * g_menu_append_submenu:
- * @menu: a #GMenu
- * @label: (nullable): the section label, or %NULL
- * @submenu: a #GMenuModel with the items of the submenu
+ * g_filename_completer_new:
*
- * Convenience function for appending a submenu menu item to the end of
- * @menu. Combine g_menu_item_new_submenu() and g_menu_insert_item() for a
- * more flexible alternative.
+ * Creates a new filename completer.
*
- * Since: 2.32
+ * Returns: a #GFilenameCompleter.
*/
/**
- * g_menu_attribute_iter_get_name:
- * @iter: a #GMenuAttributeIter
- *
- * Gets the name of the attribute at the current iterator position, as
- * a string.
- *
- * The iterator is not advanced.
+ * g_filename_completer_set_dirs_only:
+ * @completer: the filename completer.
+ * @dirs_only: a #gboolean.
*
- * Returns: the name of the attribute
- * Since: 2.32
+ * If @dirs_only is %TRUE, @completer will only
+ * complete directory names, and not file names.
*/
/**
- * g_menu_attribute_iter_get_next:
- * @iter: a #GMenuAttributeIter
- * @out_name: (out) (optional) (transfer none): the type of the attribute
- * @value: (out) (optional) (transfer full): the attribute value
- *
- * This function combines g_menu_attribute_iter_next() with
- * g_menu_attribute_iter_get_name() and g_menu_attribute_iter_get_value().
- *
- * First the iterator is advanced to the next (possibly first) attribute.
- * If that fails, then %FALSE is returned and there are no other
- * effects.
- *
- * If successful, @name and @value are set to the name and value of the
- * attribute that has just been advanced to. At this point,
- * g_menu_attribute_iter_get_name() and g_menu_attribute_iter_get_value() will
- * return the same values again.
+ * g_filter_input_stream_get_base_stream:
+ * @stream: a #GFilterInputStream.
*
- * The value returned in @name remains valid for as long as the iterator
- * remains at the current position. The value returned in @value must
- * be unreffed using g_variant_unref() when it is no longer in use.
+ * Gets the base stream for the filter stream.
*
- * Returns: %TRUE on success, or %FALSE if there is no additional
- * attribute
- * Since: 2.32
+ * Returns: (transfer none): a #GInputStream.
*/
/**
- * g_menu_attribute_iter_get_value:
- * @iter: a #GMenuAttributeIter
- *
- * Gets the value of the attribute at the current iterator position.
+ * g_filter_input_stream_get_close_base_stream:
+ * @stream: a #GFilterInputStream.
*
- * The iterator is not advanced.
+ * Returns whether the base stream will be closed when @stream is
+ * closed.
*
- * Returns: (transfer full): the value of the current attribute
- * Since: 2.32
+ * Returns: %TRUE if the base stream will be closed.
*/
/**
- * g_menu_attribute_iter_next:
- * @iter: a #GMenuAttributeIter
- *
- * Attempts to advance the iterator to the next (possibly first)
- * attribute.
- *
- * %TRUE is returned on success, or %FALSE if there are no more
- * attributes.
- *
- * You must call this function when you first acquire the iterator
- * to advance it to the first attribute (and determine if the first
- * attribute exists at all).
+ * g_filter_input_stream_set_close_base_stream:
+ * @stream: a #GFilterInputStream.
+ * @close_base: %TRUE to close the base stream.
*
- * Returns: %TRUE on success, or %FALSE when there are no more attributes
- * Since: 2.32
+ * Sets whether the base stream will be closed when @stream is closed.
*/
/**
- * g_menu_freeze:
- * @menu: a #GMenu
+ * g_filter_output_stream_get_base_stream:
+ * @stream: a #GFilterOutputStream.
*
- * Marks @menu as frozen.
+ * Gets the base stream for the filter stream.
*
- * After the menu is frozen, it is an error to attempt to make any
- * changes to it. In effect this means that the #GMenu API must no
- * longer be used.
+ * Returns: (transfer none): a #GOutputStream.
+ */
+
+
+/**
+ * g_filter_output_stream_get_close_base_stream:
+ * @stream: a #GFilterOutputStream.
*
- * This function causes g_menu_model_is_mutable() to begin returning
- * %FALSE, which has some positive performance implications.
+ * Returns whether the base stream will be closed when @stream is
+ * closed.
*
- * Since: 2.32
+ * Returns: %TRUE if the base stream will be closed.
*/
/**
- * g_menu_insert:
- * @menu: a #GMenu
- * @position: the position at which to insert the item
- * @label: (nullable): the section label, or %NULL
- * @detailed_action: (nullable): the detailed action string, or %NULL
- *
- * Convenience function for inserting a normal menu item into @menu.
- * Combine g_menu_item_new() and g_menu_insert_item() for a more flexible
- * alternative.
+ * g_filter_output_stream_set_close_base_stream:
+ * @stream: a #GFilterOutputStream.
+ * @close_base: %TRUE to close the base stream.
*
- * Since: 2.32
+ * Sets whether the base stream will be closed when @stream is closed.
*/
/**
- * g_menu_insert_item:
- * @menu: a #GMenu
- * @position: the position at which to insert the item
- * @item: the #GMenuItem to insert
+ * g_icon_deserialize:
+ * @value: a #GVariant created with g_icon_serialize()
*
- * Inserts @item into @menu.
+ * Deserializes a #GIcon previously serialized using g_icon_serialize().
*
- * The "insertion" is actually done by copying all of the attribute and
- * link values of @item and using them to form a new item within @menu.
- * As such, @item itself is not really inserted, but rather, a menu item
- * that is exactly the same as the one presently described by @item.
+ * Returns: (transfer full): a #GIcon, or %NULL when deserialization fails.
+ * Since: 2.38
+ */
+
+
+/**
+ * g_icon_equal:
+ * @icon1: (nullable): pointer to the first #GIcon.
+ * @icon2: (nullable): pointer to the second #GIcon.
*
- * This means that @item is essentially useless after the insertion
- * occurs. Any changes you make to it are ignored unless it is inserted
- * again (at which point its updated values will be copied).
+ * Checks if two icons are equal.
*
- * You should probably just free @item once you're done.
+ * Returns: %TRUE if @icon1 is equal to @icon2. %FALSE otherwise.
+ */
+
+
+/**
+ * g_icon_hash: (virtual hash)
+ * @icon: (not nullable): #gconstpointer to an icon object.
*
- * There are many convenience functions to take care of common cases.
- * See g_menu_insert(), g_menu_insert_section() and
- * g_menu_insert_submenu() as well as "prepend" and "append" variants of
- * each of these functions.
+ * Gets a hash for an icon.
*
- * Since: 2.32
+ * Returns: a #guint containing a hash for the @icon, suitable for
+ * use in a #GHashTable or similar data structure.
*/
/**
- * g_menu_insert_section:
- * @menu: a #GMenu
- * @position: the position at which to insert the item
- * @label: (nullable): the section label, or %NULL
- * @section: a #GMenuModel with the items of the section
+ * g_icon_new_for_string:
+ * @str: A string obtained via g_icon_to_string().
+ * @error: Return location for error.
*
- * Convenience function for inserting a section menu item into @menu.
- * Combine g_menu_item_new_section() and g_menu_insert_item() for a more
- * flexible alternative.
+ * Generate a #GIcon instance from @str. This function can fail if
+ * @str is not valid - see g_icon_to_string() for discussion.
*
- * Since: 2.32
+ * If your application or library provides one or more #GIcon
+ * implementations you need to ensure that each #GType is registered
+ * with the type system prior to calling g_icon_new_for_string().
+ *
+ * Returns: (transfer full): An object implementing the #GIcon
+ * interface or %NULL if @error is set.
+ * Since: 2.20
*/
/**
- * g_menu_insert_submenu:
- * @menu: a #GMenu
- * @position: the position at which to insert the item
- * @label: (nullable): the section label, or %NULL
- * @submenu: a #GMenuModel with the items of the submenu
+ * g_icon_serialize:
+ * @icon: a #GIcon
*
- * Convenience function for inserting a submenu menu item into @menu.
- * Combine g_menu_item_new_submenu() and g_menu_insert_item() for a more
- * flexible alternative.
+ * Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved
+ * back by calling g_icon_deserialize() on the returned value.
+ * As serialization will avoid using raw icon data when possible, it only
+ * makes sense to transfer the #GVariant between processes on the same machine,
+ * (as opposed to over the network), and within the same file system namespace.
*
- * Since: 2.32
+ * Returns: (transfer full): a #GVariant, or %NULL when serialization fails.
+ * Since: 2.38
*/
/**
- * g_menu_item_get_attribute:
- * @menu_item: a #GMenuItem
- * @attribute: the attribute name to query
- * @format_string: a #GVariant format string
- * @...: positional parameters, as per @format_string
+ * g_icon_to_string: (virtual to_tokens)
+ * @icon: a #GIcon.
*
- * Queries the named @attribute on @menu_item.
+ * Generates a textual representation of @icon that can be used for
+ * serialization such as when passing @icon to a different process or
+ * saving it to persistent storage. Use g_icon_new_for_string() to
+ * get @icon back from the returned string.
*
- * If the attribute exists and matches the #GVariantType corresponding
- * to @format_string then @format_string is used to deconstruct the
- * value into the positional parameters and %TRUE is returned.
+ * The encoding of the returned string is proprietary to #GIcon except
+ * in the following two cases
*
- * If the attribute does not exist, or it does exist but has the wrong
- * type, then the positional parameters are ignored and %FALSE is
- * returned.
+ * - If @icon is a #GFileIcon, the returned string is a native path
+ * (such as `/path/to/my icon.png`) without escaping
+ * if the #GFile for @icon is a native file. If the file is not
+ * native, the returned string is the result of g_file_get_uri()
+ * (such as `sftp://path/to/my%20icon.png`).
*
- * Returns: %TRUE if the named attribute was found with the expected
- * type
- * Since: 2.34
+ * - If @icon is a #GThemedIcon with exactly one name, the encoding is
+ * simply the name (such as `network-server`).
+ *
+ * Returns: (nullable): An allocated NUL-terminated UTF8 string or
+ * %NULL if @icon can't be serialized. Use g_free() to free.
+ * Since: 2.20
*/
/**
- * g_menu_item_get_attribute_value:
- * @menu_item: a #GMenuItem
- * @attribute: the attribute name to query
- * @expected_type: (nullable): the expected type of the attribute
- *
- * Queries the named @attribute on @menu_item.
+ * g_inet_address_equal:
+ * @address: A #GInetAddress.
+ * @other_address: Another #GInetAddress.
*
- * If @expected_type is specified and the attribute does not have this
- * type, %NULL is returned. %NULL is also returned if the attribute
- * simply does not exist.
+ * Checks if two #GInetAddress instances are equal, e.g. the same address.
*
- * Returns: (transfer full): the attribute value, or %NULL
- * Since: 2.34
+ * Returns: %TRUE if @address and @other_address are equal, %FALSE otherwise.
+ * Since: 2.30
*/
/**
- * g_menu_item_get_link:
- * @menu_item: a #GMenuItem
- * @link: the link name to query
+ * g_inet_address_get_family:
+ * @address: a #GInetAddress
*
- * Queries the named @link on @menu_item.
+ * Gets @address's family
*
- * Returns: (transfer full): the link, or %NULL
- * Since: 2.34
+ * Returns: @address's family
+ * Since: 2.22
*/
/**
- * g_menu_item_new:
- * @label: (nullable): the section label, or %NULL
- * @detailed_action: (nullable): the detailed action string, or %NULL
- *
- * Creates a new #GMenuItem.
- *
- * If @label is non-%NULL it is used to set the "label" attribute of the
- * new item.
+ * g_inet_address_get_is_any:
+ * @address: a #GInetAddress
*
- * If @detailed_action is non-%NULL it is used to set the "action" and
- * possibly the "target" attribute of the new item. See
- * g_menu_item_set_detailed_action() for more information.
+ * Tests whether @address is the "any" address for its family.
*
- * Returns: a new #GMenuItem
- * Since: 2.32
+ * Returns: %TRUE if @address is the "any" address for its family.
+ * Since: 2.22
*/
/**
- * g_menu_item_new_from_model:
- * @model: a #GMenuModel
- * @item_index: the index of an item in @model
- *
- * Creates a #GMenuItem as an exact copy of an existing menu item in a
- * #GMenuModel.
+ * g_inet_address_get_is_link_local:
+ * @address: a #GInetAddress
*
- * @item_index must be valid (ie: be sure to call
- * g_menu_model_get_n_items() first).
+ * Tests whether @address is a link-local address (that is, if it
+ * identifies a host on a local network that is not connected to the
+ * Internet).
*
- * Returns: a new #GMenuItem.
- * Since: 2.34
+ * Returns: %TRUE if @address is a link-local address.
+ * Since: 2.22
*/
/**
- * g_menu_item_new_section:
- * @label: (nullable): the section label, or %NULL
- * @section: a #GMenuModel with the items of the section
- *
- * Creates a new #GMenuItem representing a section.
- *
- * This is a convenience API around g_menu_item_new() and
- * g_menu_item_set_section().
+ * g_inet_address_get_is_loopback:
+ * @address: a #GInetAddress
*
- * The effect of having one menu appear as a section of another is
- * exactly as it sounds: the items from @section become a direct part of
- * the menu that @menu_item is added to.
+ * Tests whether @address is the loopback address for its family.
*
- * Visual separation is typically displayed between two non-empty
- * sections. If @label is non-%NULL then it will be encorporated into
- * this visual indication. This allows for labeled subsections of a
- * menu.
+ * Returns: %TRUE if @address is the loopback address for its family.
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_address_get_is_mc_global:
+ * @address: a #GInetAddress
*
- * As a simple example, consider a typical "Edit" menu from a simple
- * program. It probably contains an "Undo" and "Redo" item, followed by
- * a separator, followed by "Cut", "Copy" and "Paste".
+ * Tests whether @address is a global multicast address.
*
- * This would be accomplished by creating three #GMenu instances. The
- * first would be populated with the "Undo" and "Redo" items, and the
- * second with the "Cut", "Copy" and "Paste" items. The first and
- * second menus would then be added as submenus of the third. In XML
- * format, this would look something like the following:
- * |[
- * <menu id='edit-menu'>
- * <section>
- * <item label='Undo'/>
- * <item label='Redo'/>
- * </section>
- * <section>
- * <item label='Cut'/>
- * <item label='Copy'/>
- * <item label='Paste'/>
- * </section>
- * </menu>
- * ]|
+ * Returns: %TRUE if @address is a global multicast address.
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_address_get_is_mc_link_local:
+ * @address: a #GInetAddress
*
- * The following example is exactly equivalent. It is more illustrative
- * of the exact relationship between the menus and items (keeping in
- * mind that the 'link' element defines a new menu that is linked to the
- * containing one). The style of the second example is more verbose and
- * difficult to read (and therefore not recommended except for the
- * purpose of understanding what is really going on).
- * |[
- * <menu id='edit-menu'>
- * <item>
- * <link name='section'>
- * <item label='Undo'/>
- * <item label='Redo'/>
- * </link>
- * </item>
- * <item>
- * <link name='section'>
- * <item label='Cut'/>
- * <item label='Copy'/>
- * <item label='Paste'/>
- * </link>
- * </item>
- * </menu>
- * ]|
+ * Tests whether @address is a link-local multicast address.
*
- * Returns: a new #GMenuItem
- * Since: 2.32
+ * Returns: %TRUE if @address is a link-local multicast address.
+ * Since: 2.22
*/
/**
- * g_menu_item_new_submenu:
- * @label: (nullable): the section label, or %NULL
- * @submenu: a #GMenuModel with the items of the submenu
- *
- * Creates a new #GMenuItem representing a submenu.
+ * g_inet_address_get_is_mc_node_local:
+ * @address: a #GInetAddress
*
- * This is a convenience API around g_menu_item_new() and
- * g_menu_item_set_submenu().
+ * Tests whether @address is a node-local multicast address.
*
- * Returns: a new #GMenuItem
- * Since: 2.32
+ * Returns: %TRUE if @address is a node-local multicast address.
+ * Since: 2.22
*/
/**
- * g_menu_item_set_action_and_target:
- * @menu_item: a #GMenuItem
- * @action: (nullable): the name of the action for this item
- * @format_string: (nullable): a GVariant format string
- * @...: positional parameters, as per @format_string
- *
- * Sets or unsets the "action" and "target" attributes of @menu_item.
- *
- * If @action is %NULL then both the "action" and "target" attributes
- * are unset (and @format_string is ignored along with the positional
- * parameters).
- *
- * If @action is non-%NULL then the "action" attribute is set.
- * @format_string is then inspected. If it is non-%NULL then the proper
- * position parameters are collected to create a #GVariant instance to
- * use as the target value. If it is %NULL then the positional
- * parameters are ignored and the "target" attribute is unset.
- *
- * See also g_menu_item_set_action_and_target_value() for an equivalent
- * call that directly accepts a #GVariant. See
- * g_menu_item_set_detailed_action() for a more convenient version that
- * works with string-typed targets.
+ * g_inet_address_get_is_mc_org_local:
+ * @address: a #GInetAddress
*
- * See also g_menu_item_set_action_and_target_value() for a
- * description of the semantics of the action and target attributes.
+ * Tests whether @address is an organization-local multicast address.
*
- * Since: 2.32
+ * Returns: %TRUE if @address is an organization-local multicast address.
+ * Since: 2.22
*/
/**
- * g_menu_item_set_action_and_target_value:
- * @menu_item: a #GMenuItem
- * @action: (nullable): the name of the action for this item
- * @target_value: (nullable): a #GVariant to use as the action target
+ * g_inet_address_get_is_mc_site_local:
+ * @address: a #GInetAddress
*
- * Sets or unsets the "action" and "target" attributes of @menu_item.
+ * Tests whether @address is a site-local multicast address.
*
- * If @action is %NULL then both the "action" and "target" attributes
- * are unset (and @target_value is ignored).
+ * Returns: %TRUE if @address is a site-local multicast address.
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_address_get_is_multicast:
+ * @address: a #GInetAddress
*
- * If @action is non-%NULL then the "action" attribute is set. The
- * "target" attribute is then set to the value of @target_value if it is
- * non-%NULL or unset otherwise.
+ * Tests whether @address is a multicast address.
*
- * Normal menu items (ie: not submenu, section or other custom item
- * types) are expected to have the "action" attribute set to identify
- * the action that they are associated with. The state type of the
- * action help to determine the disposition of the menu item. See
- * #GAction and #GActionGroup for an overview of actions.
+ * Returns: %TRUE if @address is a multicast address.
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_address_get_is_site_local:
+ * @address: a #GInetAddress
*
- * In general, clicking on the menu item will result in activation of
- * the named action with the "target" attribute given as the parameter
- * to the action invocation. If the "target" attribute is not set then
- * the action is invoked with no parameter.
+ * Tests whether @address is a site-local address such as 10.0.0.1
+ * (that is, the address identifies a host on a local network that can
+ * not be reached directly from the Internet, but which may have
+ * outgoing Internet connectivity via a NAT or firewall).
*
- * If the action has no state then the menu item is usually drawn as a
- * plain menu item (ie: with no additional decoration).
+ * Returns: %TRUE if @address is a site-local address.
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_address_get_native_size:
+ * @address: a #GInetAddress
*
- * If the action has a boolean state then the menu item is usually drawn
- * as a toggle menu item (ie: with a checkmark or equivalent
- * indication). The item should be marked as 'toggled' or 'checked'
- * when the boolean state is %TRUE.
+ * Gets the size of the native raw binary address for @address. This
+ * is the size of the data that you get from g_inet_address_to_bytes().
*
- * If the action has a string state then the menu item is usually drawn
- * as a radio menu item (ie: with a radio bullet or equivalent
- * indication). The item should be marked as 'selected' when the string
- * state is equal to the value of the @target property.
+ * Returns: the number of bytes used for the native version of @address.
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_address_mask_equal:
+ * @mask: a #GInetAddressMask
+ * @mask2: another #GInetAddressMask
*
- * See g_menu_item_set_action_and_target() or
- * g_menu_item_set_detailed_action() for two equivalent calls that are
- * probably more convenient for most uses.
+ * Tests if @mask and @mask2 are the same mask.
*
+ * Returns: whether @mask and @mask2 are the same mask
* Since: 2.32
*/
/**
- * g_menu_item_set_attribute:
- * @menu_item: a #GMenuItem
- * @attribute: the attribute to set
- * @format_string: (nullable): a #GVariant format string, or %NULL
- * @...: positional parameters, as per @format_string
- *
- * Sets or unsets an attribute on @menu_item.
- *
- * The attribute to set or unset is specified by @attribute. This
- * can be one of the standard attribute names %G_MENU_ATTRIBUTE_LABEL,
- * %G_MENU_ATTRIBUTE_ACTION, %G_MENU_ATTRIBUTE_TARGET, or a custom
- * attribute name.
- * Attribute names are restricted to lowercase characters, numbers
- * and '-'. Furthermore, the names must begin with a lowercase character,
- * must not end with a '-', and must not contain consecutive dashes.
- *
- * If @format_string is non-%NULL then the proper position parameters
- * are collected to create a #GVariant instance to use as the attribute
- * value. If it is %NULL then the positional parameterrs are ignored
- * and the named attribute is unset.
+ * g_inet_address_mask_get_address:
+ * @mask: a #GInetAddressMask
*
- * See also g_menu_item_set_attribute_value() for an equivalent call
- * that directly accepts a #GVariant.
+ * Gets @mask's base address
*
+ * Returns: (transfer none): @mask's base address
* Since: 2.32
*/
/**
- * g_menu_item_set_attribute_value:
- * @menu_item: a #GMenuItem
- * @attribute: the attribute to set
- * @value: (nullable): a #GVariant to use as the value, or %NULL
- *
- * Sets or unsets an attribute on @menu_item.
- *
- * The attribute to set or unset is specified by @attribute. This
- * can be one of the standard attribute names %G_MENU_ATTRIBUTE_LABEL,
- * %G_MENU_ATTRIBUTE_ACTION, %G_MENU_ATTRIBUTE_TARGET, or a custom
- * attribute name.
- * Attribute names are restricted to lowercase characters, numbers
- * and '-'. Furthermore, the names must begin with a lowercase character,
- * must not end with a '-', and must not contain consecutive dashes.
- *
- * must consist only of lowercase
- * ASCII characters, digits and '-'.
- *
- * If @value is non-%NULL then it is used as the new value for the
- * attribute. If @value is %NULL then the attribute is unset. If
- * the @value #GVariant is floating, it is consumed.
+ * g_inet_address_mask_get_family:
+ * @mask: a #GInetAddressMask
*
- * See also g_menu_item_set_attribute() for a more convenient way to do
- * the same.
+ * Gets the #GSocketFamily of @mask's address
*
+ * Returns: the #GSocketFamily of @mask's address
* Since: 2.32
*/
/**
- * g_menu_item_set_detailed_action:
- * @menu_item: a #GMenuItem
- * @detailed_action: the "detailed" action string
- *
- * Sets the "action" and possibly the "target" attribute of @menu_item.
- *
- * The format of @detailed_action is the same format parsed by
- * g_action_parse_detailed_name().
- *
- * See g_menu_item_set_action_and_target() or
- * g_menu_item_set_action_and_target_value() for more flexible (but
- * slightly less convenient) alternatives.
+ * g_inet_address_mask_get_length:
+ * @mask: a #GInetAddressMask
*
- * See also g_menu_item_set_action_and_target_value() for a description of
- * the semantics of the action and target attributes.
+ * Gets @mask's length
*
+ * Returns: @mask's length
* Since: 2.32
*/
/**
- * g_menu_item_set_icon:
- * @menu_item: a #GMenuItem
- * @icon: a #GIcon, or %NULL
- *
- * Sets (or unsets) the icon on @menu_item.
- *
- * This call is the same as calling g_icon_serialize() and using the
- * result as the value to g_menu_item_set_attribute_value() for
- * %G_MENU_ATTRIBUTE_ICON.
- *
- * This API is only intended for use with "noun" menu items; things like
- * bookmarks or applications in an "Open With" menu. Don't use it on
- * menu items corresponding to verbs (eg: stock icons for 'Save' or
- * 'Quit').
+ * g_inet_address_mask_matches:
+ * @mask: a #GInetAddressMask
+ * @address: a #GInetAddress
*
- * If @icon is %NULL then the icon is unset.
+ * Tests if @address falls within the range described by @mask.
*
- * Since: 2.38
+ * Returns: whether @address falls within the range described by
+ * @mask.
+ * Since: 2.32
*/
/**
- * g_menu_item_set_label:
- * @menu_item: a #GMenuItem
- * @label: (nullable): the label to set, or %NULL to unset
- *
- * Sets or unsets the "label" attribute of @menu_item.
+ * g_inet_address_mask_new:
+ * @addr: a #GInetAddress
+ * @length: number of bits of @addr to use
+ * @error: return location for #GError, or %NULL
*
- * If @label is non-%NULL it is used as the label for the menu item. If
- * it is %NULL then the label attribute is unset.
+ * Creates a new #GInetAddressMask representing all addresses whose
+ * first @length bits match @addr.
*
+ * Returns: a new #GInetAddressMask, or %NULL on error
* Since: 2.32
*/
/**
- * g_menu_item_set_link:
- * @menu_item: a #GMenuItem
- * @link: type of link to establish or unset
- * @model: (nullable): the #GMenuModel to link to (or %NULL to unset)
- *
- * Creates a link from @menu_item to @model if non-%NULL, or unsets it.
+ * g_inet_address_mask_new_from_string:
+ * @mask_string: an IP address or address/length string
+ * @error: return location for #GError, or %NULL
*
- * Links are used to establish a relationship between a particular menu
- * item and another menu. For example, %G_MENU_LINK_SUBMENU is used to
- * associate a submenu with a particular menu item, and %G_MENU_LINK_SECTION
- * is used to create a section. Other types of link can be used, but there
- * is no guarantee that clients will be able to make sense of them.
- * Link types are restricted to lowercase characters, numbers
- * and '-'. Furthermore, the names must begin with a lowercase character,
- * must not end with a '-', and must not contain consecutive dashes.
+ * Parses @mask_string as an IP address and (optional) length, and
+ * creates a new #GInetAddressMask. The length, if present, is
+ * delimited by a "/". If it is not present, then the length is
+ * assumed to be the full length of the address.
*
+ * Returns: a new #GInetAddressMask corresponding to @string, or %NULL
+ * on error.
* Since: 2.32
*/
/**
- * g_menu_item_set_section:
- * @menu_item: a #GMenuItem
- * @section: (nullable): a #GMenuModel, or %NULL
- *
- * Sets or unsets the "section" link of @menu_item to @section.
+ * g_inet_address_mask_to_string:
+ * @mask: a #GInetAddressMask
*
- * The effect of having one menu appear as a section of another is
- * exactly as it sounds: the items from @section become a direct part of
- * the menu that @menu_item is added to. See g_menu_item_new_section()
- * for more information about what it means for a menu item to be a
- * section.
+ * Converts @mask back to its corresponding string form.
*
+ * Returns: a string corresponding to @mask.
* Since: 2.32
*/
/**
- * g_menu_item_set_submenu:
- * @menu_item: a #GMenuItem
- * @submenu: (nullable): a #GMenuModel, or %NULL
+ * g_inet_address_new_any:
+ * @family: the address family
*
- * Sets or unsets the "submenu" link of @menu_item to @submenu.
+ * Creates a #GInetAddress for the "any" address (unassigned/"don't
+ * care") for @family.
*
- * If @submenu is non-%NULL, it is linked to. If it is %NULL then the
- * link is unset.
+ * Returns: a new #GInetAddress corresponding to the "any" address
+ * for @family.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_address_new_from_bytes:
+ * @bytes: (array) (element-type guint8): raw address data
+ * @family: the address family of @bytes
*
- * The effect of having one menu appear as a submenu of another is
- * exactly as it sounds.
+ * Creates a new #GInetAddress from the given @family and @bytes.
+ * @bytes should be 4 bytes for %G_SOCKET_FAMILY_IPV4 and 16 bytes for
+ * %G_SOCKET_FAMILY_IPV6.
*
- * Since: 2.32
+ * Returns: a new #GInetAddress corresponding to @family and @bytes.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_menu_link_iter_get_name:
- * @iter: a #GMenuLinkIter
- *
- * Gets the name of the link at the current iterator position.
+ * g_inet_address_new_from_string:
+ * @string: a string representation of an IP address
*
- * The iterator is not advanced.
+ * Parses @string as an IP address and creates a new #GInetAddress.
*
- * Returns: the type of the link
- * Since: 2.32
+ * Returns: a new #GInetAddress corresponding to @string, or %NULL if
+ * @string could not be parsed.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_menu_link_iter_get_next:
- * @iter: a #GMenuLinkIter
- * @out_link: (out) (optional) (transfer none): the name of the link
- * @value: (out) (optional) (transfer full): the linked #GMenuModel
+ * g_inet_address_new_loopback:
+ * @family: the address family
*
- * This function combines g_menu_link_iter_next() with
- * g_menu_link_iter_get_name() and g_menu_link_iter_get_value().
+ * Creates a #GInetAddress for the loopback address for @family.
*
- * First the iterator is advanced to the next (possibly first) link.
- * If that fails, then %FALSE is returned and there are no other effects.
+ * Returns: a new #GInetAddress corresponding to the loopback address
+ * for @family.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_address_to_bytes: (skip)
+ * @address: a #GInetAddress
*
- * If successful, @out_link and @value are set to the name and #GMenuModel
- * of the link that has just been advanced to. At this point,
- * g_menu_link_iter_get_name() and g_menu_link_iter_get_value() will return the
- * same values again.
+ * Gets the raw binary address data from @address.
*
- * The value returned in @out_link remains valid for as long as the iterator
- * remains at the current position. The value returned in @value must
- * be unreffed using g_object_unref() when it is no longer in use.
+ * Returns: a pointer to an internal array of the bytes in @address,
+ * which should not be modified, stored, or freed. The size of this
+ * array can be gotten with g_inet_address_get_native_size().
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_address_to_string:
+ * @address: a #GInetAddress
*
- * Returns: %TRUE on success, or %FALSE if there is no additional link
- * Since: 2.32
+ * Converts @address to string form.
+ *
+ * Returns: a representation of @address as a string, which should be
+ * freed after use.
+ * Since: 2.22
*/
/**
- * g_menu_link_iter_get_value:
- * @iter: a #GMenuLinkIter
+ * g_inet_socket_address_get_address:
+ * @address: a #GInetSocketAddress
*
- * Gets the linked #GMenuModel at the current iterator position.
+ * Gets @address's #GInetAddress.
*
- * The iterator is not advanced.
+ * Returns: (transfer none): the #GInetAddress for @address, which must be
+ * g_object_ref()'d if it will be stored
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_socket_address_get_flowinfo:
+ * @address: a %G_SOCKET_FAMILY_IPV6 #GInetSocketAddress
*
- * Returns: (transfer full): the #GMenuModel that is linked to
+ * Gets the `sin6_flowinfo` field from @address,
+ * which must be an IPv6 address.
+ *
+ * Returns: the flowinfo field
* Since: 2.32
*/
/**
- * g_menu_link_iter_next:
- * @iter: a #GMenuLinkIter
+ * g_inet_socket_address_get_port:
+ * @address: a #GInetSocketAddress
*
- * Attempts to advance the iterator to the next (possibly first)
- * link.
+ * Gets @address's port.
*
- * %TRUE is returned on success, or %FALSE if there are no more links.
+ * Returns: the port for @address
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_socket_address_get_scope_id:
+ * @address: a %G_SOCKET_FAMILY_IPV6 #GInetAddress
*
- * You must call this function when you first acquire the iterator to
- * advance it to the first link (and determine if the first link exists
- * at all).
+ * Gets the `sin6_scope_id` field from @address,
+ * which must be an IPv6 address.
*
- * Returns: %TRUE on success, or %FALSE when there are no more links
+ * Returns: the scope id field
* Since: 2.32
*/
/**
- * g_menu_model_get_item_attribute:
- * @model: a #GMenuModel
- * @item_index: the index of the item
- * @attribute: the attribute to query
- * @format_string: a #GVariant format string
- * @...: positional parameters, as per @format_string
+ * g_inet_socket_address_new:
+ * @address: a #GInetAddress
+ * @port: a port number
*
- * Queries item at position @item_index in @model for the attribute
- * specified by @attribute.
+ * Creates a new #GInetSocketAddress for @address and @port.
*
- * If the attribute exists and matches the #GVariantType corresponding
- * to @format_string then @format_string is used to deconstruct the
- * value into the positional parameters and %TRUE is returned.
+ * Returns: a new #GInetSocketAddress
+ * Since: 2.22
+ */
+
+
+/**
+ * g_inet_socket_address_new_from_string:
+ * @address: the string form of an IP address
+ * @port: a port number
*
- * If the attribute does not exist, or it does exist but has the wrong
- * type, then the positional parameters are ignored and %FALSE is
- * returned.
+ * Creates a new #GInetSocketAddress for @address and @port.
*
- * This function is a mix of g_menu_model_get_item_attribute_value() and
- * g_variant_get(), followed by a g_variant_unref(). As such,
- * @format_string must make a complete copy of the data (since the
- * #GVariant may go away after the call to g_variant_unref()). In
- * particular, no '&' characters are allowed in @format_string.
+ * If @address is an IPv6 address, it can also contain a scope ID
+ * (separated from the address by a `%`).
*
- * Returns: %TRUE if the named attribute was found with the expected
- * type
- * Since: 2.32
+ * Returns: a new #GInetSocketAddress, or %NULL if @address cannot be
+ * parsed.
+ * Since: 2.40
*/
/**
- * g_menu_model_get_item_attribute_value:
- * @model: a #GMenuModel
- * @item_index: the index of the item
- * @attribute: the attribute to query
- * @expected_type: (nullable): the expected type of the attribute, or
- * %NULL
+ * g_initable_init:
+ * @initable: a #GInitable.
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Queries the item at position @item_index in @model for the attribute
- * specified by @attribute.
+ * Initializes the object implementing the interface.
*
- * If @expected_type is non-%NULL then it specifies the expected type of
- * the attribute. If it is %NULL then any type will be accepted.
+ * This method is intended for language bindings. If writing in C,
+ * g_initable_new() should typically be used instead.
*
- * If the attribute exists and matches @expected_type (or if the
- * expected type is unspecified) then the value is returned.
+ * The object must be initialized before any real use after initial
+ * construction, either with this function or g_async_initable_init_async().
*
- * If the attribute does not exist, or does not match the expected type
- * then %NULL is returned.
+ * Implementations may also support cancellation. If @cancellable is not %NULL,
+ * then initialization can be cancelled by triggering the cancellable object
+ * from another thread. If the operation was cancelled, the error
+ * %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL and
+ * the object doesn't support cancellable initialization the error
+ * %G_IO_ERROR_NOT_SUPPORTED will be returned.
+ *
+ * If the object is not initialized, or initialization returns with an
+ * error, then all operations on the object except g_object_ref() and
+ * g_object_unref() are considered to be invalid, and have undefined
+ * behaviour. See the [introduction][ginitable] for more details.
+ *
+ * Callers should not assume that a class which implements #GInitable can be
+ * initialized multiple times, unless the class explicitly documents itself as
+ * supporting this. Generally, a class’ implementation of init() can assume
+ * (and assert) that it will only be called once. Previously, this documentation
+ * recommended all #GInitable implementations should be idempotent; that
+ * recommendation was relaxed in GLib 2.54.
+ *
+ * If a class explicitly supports being initialized multiple times, it is
+ * recommended that the method is idempotent: multiple calls with the same
+ * arguments should return the same results. Only the first call initializes
+ * the object; further calls return the result of the first call.
+ *
+ * One reason why a class might need to support idempotent initialization is if
+ * it is designed to be used via the singleton pattern, with a
+ * #GObjectClass.constructor that sometimes returns an existing instance.
+ * In this pattern, a caller would expect to be able to call g_initable_init()
+ * on the result of g_object_new(), regardless of whether it is in fact a new
+ * instance.
+ *
+ * Returns: %TRUE if successful. If an error has occurred, this function will
+ * return %FALSE and set @error appropriately if present.
+ * Since: 2.22
+ */
+
+
+/**
+ * g_initable_new:
+ * @object_type: a #GType supporting #GInitable.
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
+ * @first_property_name: (nullable): the name of the first property, or %NULL if no
+ * properties
+ * @...: the value if the first property, followed by and other property
+ * value pairs, and ended by %NULL.
*
- * Returns: (transfer full): the value of the attribute
- * Since: 2.32
+ * Helper function for constructing #GInitable object. This is
+ * similar to g_object_new() but also initializes the object
+ * and returns %NULL, setting an error on failure.
+ *
+ * Returns: (type GObject.Object) (transfer full): a newly allocated
+ * #GObject, or %NULL on error
+ * Since: 2.22
*/
/**
- * g_menu_model_get_item_link:
- * @model: a #GMenuModel
- * @item_index: the index of the item
- * @link: the link to query
- *
- * Queries the item at position @item_index in @model for the link
- * specified by @link.
+ * g_initable_new_valist:
+ * @object_type: a #GType supporting #GInitable.
+ * @first_property_name: the name of the first property, followed by
+ * the value, and other property value pairs, and ended by %NULL.
+ * @var_args: The var args list generated from @first_property_name.
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * If the link exists, the linked #GMenuModel is returned. If the link
- * does not exist, %NULL is returned.
+ * Helper function for constructing #GInitable object. This is
+ * similar to g_object_new_valist() but also initializes the object
+ * and returns %NULL, setting an error on failure.
*
- * Returns: (transfer full): the linked #GMenuModel, or %NULL
- * Since: 2.32
+ * Returns: (type GObject.Object) (transfer full): a newly allocated
+ * #GObject, or %NULL on error
+ * Since: 2.22
*/
/**
- * g_menu_model_get_n_items:
- * @model: a #GMenuModel
+ * g_initable_newv:
+ * @object_type: a #GType supporting #GInitable.
+ * @n_parameters: the number of parameters in @parameters
+ * @parameters: (array length=n_parameters): the parameters to use to construct the object
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Query the number of items in @model.
+ * Helper function for constructing #GInitable object. This is
+ * similar to g_object_newv() but also initializes the object
+ * and returns %NULL, setting an error on failure.
*
- * Returns: the number of items
- * Since: 2.32
+ * Returns: (type GObject.Object) (transfer full): a newly allocated
+ * #GObject, or %NULL on error
+ * Since: 2.22
+ * Deprecated: 2.54: Use g_object_new_with_properties() and
+ * g_initable_init() instead. See #GParameter for more information.
*/
/**
- * g_menu_model_is_mutable:
- * @model: a #GMenuModel
- *
- * Queries if @model is mutable.
- *
- * An immutable #GMenuModel will never emit the #GMenuModel::items-changed
- * signal. Consumers of the model may make optimisations accordingly.
+ * g_input_stream_clear_pending:
+ * @stream: input stream
*
- * Returns: %TRUE if the model is mutable (ie: "items-changed" may be
- * emitted).
- * Since: 2.32
+ * Clears the pending flag on @stream.
*/
/**
- * g_menu_model_items_changed:
- * @model: a #GMenuModel
- * @position: the position of the change
- * @removed: the number of items removed
- * @added: the number of items added
+ * g_input_stream_close:
+ * @stream: A #GInputStream.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Requests emission of the #GMenuModel::items-changed signal on @model.
+ * Closes the stream, releasing resources related to it.
*
- * This function should never be called except by #GMenuModel
- * subclasses. Any other calls to this function will very likely lead
- * to a violation of the interface of the model.
+ * Once the stream is closed, all other operations will return %G_IO_ERROR_CLOSED.
+ * Closing a stream multiple times will not return an error.
*
- * The implementation should update its internal representation of the
- * menu before emitting the signal. The implementation should further
- * expect to receive queries about the new state of the menu (and
- * particularly added menu items) while signal handlers are running.
+ * Streams will be automatically closed when the last reference
+ * is dropped, but you might want to call this function to make sure
+ * resources are released as early as possible.
*
- * The implementation must dispatch this call directly from a mainloop
- * entry and not in response to calls -- particularly those from the
- * #GMenuModel API. Said another way: the menu must not change while
- * user code is running without returning to the mainloop.
+ * Some streams might keep the backing store of the stream (e.g. a file descriptor)
+ * open after the stream is closed. See the documentation for the individual
+ * stream for details.
*
- * Since: 2.32
+ * On failure the first error that happened will be reported, but the close
+ * operation will finish as much as possible. A stream that failed to
+ * close will still return %G_IO_ERROR_CLOSED for all operations. Still, it
+ * is important to check and report the error to the user.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Cancelling a close will still leave the stream closed, but some streams
+ * can use a faster close that doesn't block to e.g. check errors.
+ *
+ * Returns: %TRUE on success, %FALSE on failure
*/
/**
- * g_menu_model_iterate_item_attributes:
- * @model: a #GMenuModel
- * @item_index: the index of the item
+ * g_input_stream_close_async:
+ * @stream: A #GInputStream.
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional cancellable object
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Creates a #GMenuAttributeIter to iterate over the attributes of
- * the item at position @item_index in @model.
+ * Requests an asynchronous closes of the stream, releasing resources related to it.
+ * When the operation is finished @callback will be called.
+ * You can then call g_input_stream_close_finish() to get the result of the
+ * operation.
*
- * You must free the iterator with g_object_unref() when you are done.
+ * For behaviour details see g_input_stream_close().
*
- * Returns: (transfer full): a new #GMenuAttributeIter
- * Since: 2.32
+ * The asynchronous 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.
*/
/**
- * g_menu_model_iterate_item_links:
- * @model: a #GMenuModel
- * @item_index: the index of the item
- *
- * Creates a #GMenuLinkIter to iterate over the links of the item at
- * position @item_index in @model.
+ * g_input_stream_close_finish:
+ * @stream: a #GInputStream.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * You must free the iterator with g_object_unref() when you are done.
+ * Finishes closing a stream asynchronously, started from g_input_stream_close_async().
*
- * Returns: (transfer full): a new #GMenuLinkIter
- * Since: 2.32
+ * Returns: %TRUE if the stream was closed successfully.
*/
/**
- * g_menu_new:
- *
- * Creates a new #GMenu.
+ * g_input_stream_has_pending:
+ * @stream: input stream.
*
- * The new menu has no items.
+ * Checks if an input stream has pending actions.
*
- * Returns: a new #GMenu
- * Since: 2.32
+ * Returns: %TRUE if @stream has pending actions.
*/
/**
- * g_menu_prepend:
- * @menu: a #GMenu
- * @label: (nullable): the section label, or %NULL
- * @detailed_action: (nullable): the detailed action string, or %NULL
+ * g_input_stream_is_closed:
+ * @stream: input stream.
*
- * Convenience function for prepending a normal menu item to the start
- * of @menu. Combine g_menu_item_new() and g_menu_insert_item() for a more
- * flexible alternative.
+ * Checks if an input stream is closed.
*
- * Since: 2.32
+ * Returns: %TRUE if the stream is closed.
*/
/**
- * g_menu_prepend_item:
- * @menu: a #GMenu
- * @item: a #GMenuItem to prepend
+ * g_input_stream_read:
+ * @stream: a #GInputStream.
+ * @buffer: (array length=count) (element-type guint8): a buffer to
+ * read data into (which should be at least count bytes long).
+ * @count: the number of bytes that will be read from the stream
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Prepends @item to the start of @menu.
+ * Tries to read @count bytes from the stream into the buffer starting at
+ * @buffer. Will block during this read.
*
- * See g_menu_insert_item() for more information.
+ * If count is zero returns zero and does nothing. A value of @count
+ * larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
*
- * Since: 2.32
- */
-
-
-/**
- * g_menu_prepend_section:
- * @menu: a #GMenu
- * @label: (nullable): the section label, or %NULL
- * @section: a #GMenuModel with the items of the section
+ * On success, the number of bytes read into the buffer is returned.
+ * 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. Zero is returned on end of file
+ * (or if @count is zero), but never otherwise.
*
- * Convenience function for prepending a section menu item to the start
- * of @menu. Combine g_menu_item_new_section() and g_menu_insert_item() for
- * a more flexible alternative.
+ * The returned @buffer is not a nul-terminated string, it can contain nul bytes
+ * at any position, and this function doesn't nul-terminate the @buffer.
*
- * Since: 2.32
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
+ * operation was partially finished when the operation was cancelled the
+ * partial result will be returned, without an error.
+ *
+ * On error -1 is returned and @error is set accordingly.
+ *
+ * Returns: Number of bytes read, or -1 on error, or 0 on end of file.
*/
/**
- * g_menu_prepend_submenu:
- * @menu: a #GMenu
- * @label: (nullable): the section label, or %NULL
- * @submenu: a #GMenuModel with the items of the submenu
+ * g_input_stream_read_all:
+ * @stream: a #GInputStream.
+ * @buffer: (array length=count) (element-type guint8): a buffer to
+ * read data into (which should be at least count bytes long).
+ * @count: the number of bytes that will be read from the stream
+ * @bytes_read: (out): location to store the number of bytes that was read from the stream
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Convenience function for prepending a submenu menu item to the start
- * of @menu. Combine g_menu_item_new_submenu() and g_menu_insert_item() for
- * a more flexible alternative.
+ * Tries to read @count bytes from the stream into the buffer starting at
+ * @buffer. Will block during this read.
*
- * Since: 2.32
+ * This function is similar to g_input_stream_read(), except it tries to
+ * read as many bytes as requested, only stopping on an error or end of stream.
+ *
+ * On a successful read of @count bytes, or if we reached the end of the
+ * 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.
+ *
+ * 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().
+ *
+ * Returns: %TRUE on success, %FALSE if there was an error
*/
/**
- * g_menu_remove:
- * @menu: a #GMenu
- * @position: the position of the item to remove
+ * g_input_stream_read_all_async:
+ * @stream: A #GInputStream
+ * @buffer: (array length=count) (element-type guint8): a buffer to
+ * read data into (which should be at least count bytes long)
+ * @count: the number of bytes that will be read from the stream
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Removes an item from the menu.
+ * Request an asynchronous read of @count bytes from the stream into the
+ * buffer starting at @buffer.
*
- * @position gives the index of the item to remove.
+ * This is the asynchronous equivalent of g_input_stream_read_all().
*
- * It is an error if position is not in range the range from 0 to one
- * less than the number of items in the menu.
+ * Call g_input_stream_read_all_finish() to collect the result.
*
- * It is not possible to remove items by identity since items are added
- * to the menu simply by copying their links and attributes (ie:
- * identity of the item itself is not preserved).
+ * 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.32
+ * Since: 2.44
*/
/**
- * g_menu_remove_all:
- * @menu: a #GMenu
+ * g_input_stream_read_all_finish:
+ * @stream: a #GInputStream
+ * @result: a #GAsyncResult
+ * @bytes_read: (out): location to store the number of bytes that was read from the stream
+ * @error: a #GError location to store the error occurring, or %NULL to ignore
*
- * Removes all items in the menu.
+ * Finishes an asynchronous stream read operation started with
+ * g_input_stream_read_all_async().
*
- * Since: 2.38
+ * 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().
+ *
+ * Returns: %TRUE on success, %FALSE if there was an error
+ * Since: 2.44
*/
/**
- * g_mount_can_eject:
- * @mount: a #GMount.
+ * g_input_stream_read_async:
+ * @stream: A #GInputStream.
+ * @buffer: (array length=count) (element-type guint8): a buffer to
+ * read data into (which should be at least count bytes long).
+ * @count: the number of bytes that will be read from the stream
+ * @io_priority: the [I/O priority][io-priority]
+ * of the request.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Checks if @mount can be ejected.
+ * Request an asynchronous read of @count bytes from the stream into the buffer
+ * starting at @buffer. When the operation is finished @callback will be called.
+ * You can then call g_input_stream_read_finish() to get the result of the
+ * operation.
*
- * Returns: %TRUE if the @mount can be ejected.
+ * During an async request no other sync and async calls are allowed on @stream, and will
+ * result in %G_IO_ERROR_PENDING errors.
+ *
+ * A value of @count larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
+ *
+ * On success, the number of bytes read into the buffer will be passed to the
+ * 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 @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 %G_PRIORITY_DEFAULT.
+ *
+ * The asynchronous 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.
*/
/**
- * g_mount_can_unmount:
- * @mount: a #GMount.
+ * g_input_stream_read_bytes:
+ * @stream: a #GInputStream.
+ * @count: maximum number of bytes that will be read from the stream. Common
+ * values include 4096 and 8192.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Checks if @mount can be unmounted.
+ * Like g_input_stream_read(), this tries to read @count bytes from
+ * the stream in a blocking fashion. However, rather than reading into
+ * a user-supplied buffer, this will create a new #GBytes containing
+ * the data that was read. This may be easier to use from language
+ * bindings.
*
- * Returns: %TRUE if the @mount can be unmounted.
+ * If count is zero, returns a zero-length #GBytes and does nothing. A
+ * value of @count larger than %G_MAXSSIZE will cause a
+ * %G_IO_ERROR_INVALID_ARGUMENT error.
+ *
+ * On success, a new #GBytes is returned. It is not an error if the
+ * size of this object is not the same as the requested size, as it
+ * can happen e.g. near the end of a file. A zero-length #GBytes is
+ * returned on end of file (or if @count is zero), but never
+ * otherwise.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
+ * operation was partially finished when the operation was cancelled the
+ * partial result will be returned, without an error.
+ *
+ * On error %NULL is returned and @error is set accordingly.
+ *
+ * Returns: (transfer full): a new #GBytes, or %NULL on error
+ * Since: 2.34
*/
/**
- * g_mount_eject:
- * @mount: a #GMount.
- * @flags: flags affecting the unmount if required for eject
+ * g_input_stream_read_bytes_async:
+ * @stream: A #GInputStream.
+ * @count: the number of bytes that will be read from the stream
+ * @io_priority: the [I/O priority][io-priority] of the request
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
- * @user_data: user data passed to @callback.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Ejects a mount. This is an asynchronous operation, and is
- * finished by calling g_mount_eject_finish() with the @mount
- * and #GAsyncResult data returned in the @callback.
+ * Request an asynchronous read of @count bytes from the stream into a
+ * new #GBytes. When the operation is finished @callback will be
+ * called. You can then call g_input_stream_read_bytes_finish() to get the
+ * result of the operation.
*
- * Deprecated: 2.22: Use g_mount_eject_with_operation() instead.
+ * During an async request no other sync and async calls are allowed
+ * on @stream, and will result in %G_IO_ERROR_PENDING errors.
+ *
+ * A value of @count larger than %G_MAXSSIZE will cause a
+ * %G_IO_ERROR_INVALID_ARGUMENT error.
+ *
+ * On success, the new #GBytes will be passed to the callback. It is
+ * not an error if this is smaller than 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
+ * @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 %G_PRIORITY_DEFAULT.
+ *
+ * Since: 2.34
*/
/**
- * g_mount_eject_finish:
- * @mount: a #GMount.
+ * g_input_stream_read_bytes_finish:
+ * @stream: a #GInputStream.
* @result: a #GAsyncResult.
* @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * ignore.
*
- * Finishes ejecting a mount. If any errors occurred during the operation,
- * @error will be set to contain the errors and %FALSE will be returned.
+ * Finishes an asynchronous stream read-into-#GBytes operation.
*
- * Returns: %TRUE if the mount was successfully ejected. %FALSE otherwise.
- * Deprecated: 2.22: Use g_mount_eject_with_operation_finish() instead.
+ * Returns: (transfer full): the newly-allocated #GBytes, or %NULL on error
+ * Since: 2.34
*/
/**
- * g_mount_eject_with_operation:
- * @mount: a #GMount.
- * @flags: flags affecting the unmount if required for eject
- * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
- * user interaction.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
- * @user_data: user data passed to @callback.
+ * g_input_stream_read_finish:
+ * @stream: a #GInputStream.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Ejects a mount. This is an asynchronous operation, and is
- * finished by calling g_mount_eject_with_operation_finish() with the @mount
- * and #GAsyncResult data returned in the @callback.
+ * Finishes an asynchronous stream read operation.
*
- * Since: 2.22
+ * Returns: number of bytes read in, or -1 on error, or 0 on end of file.
*/
/**
- * g_mount_eject_with_operation_finish:
- * @mount: a #GMount.
- * @result: a #GAsyncResult.
+ * g_input_stream_set_pending:
+ * @stream: input stream
* @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * ignore.
*
- * Finishes ejecting a mount. If any errors occurred during the operation,
- * @error will be set to contain the errors and %FALSE will be returned.
+ * Sets @stream to have actions pending. If the pending flag is
+ * already set or @stream is closed, it will return %FALSE and set
+ * @error.
*
- * Returns: %TRUE if the mount was successfully ejected. %FALSE otherwise.
- * Since: 2.22
+ * Returns: %TRUE if pending was previously unset and is now set.
*/
/**
- * g_mount_get_default_location:
- * @mount: a #GMount.
+ * g_input_stream_skip:
+ * @stream: a #GInputStream.
+ * @count: the number of bytes that will be skipped from the stream
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Gets the default location of @mount. The default location of the given
- * @mount is a path that reflects the main entry point for the user (e.g.
- * the home directory, or the root of the volume).
+ * Tries to skip @count bytes from the stream. Will block during the operation.
*
- * Returns: (transfer full): a #GFile.
- * The returned object should be unreffed with
- * g_object_unref() when no longer needed.
+ * This is identical to g_input_stream_read(), from a behaviour standpoint,
+ * but the bytes that are skipped are not returned to the user. Some
+ * streams have an implementation that is more efficient than reading the data.
+ *
+ * This function is optional for inherited classes, as the default implementation
+ * emulates it using read.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
+ * operation was partially finished when the operation was cancelled the
+ * partial result will be returned, without an error.
+ *
+ * Returns: Number of bytes skipped, or -1 on error
*/
/**
- * g_mount_get_drive:
- * @mount: a #GMount.
+ * g_input_stream_skip_async:
+ * @stream: A #GInputStream.
+ * @count: the number of bytes that will be skipped from the stream
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Gets the drive for the @mount.
+ * Request an asynchronous skip of @count bytes from the stream.
+ * When the operation is finished @callback will be called.
+ * You can then call g_input_stream_skip_finish() to get the result
+ * of the operation.
*
- * This is a convenience method for getting the #GVolume and then
- * using that object to get the #GDrive.
+ * During an async request no other sync and async calls are allowed,
+ * and will result in %G_IO_ERROR_PENDING errors.
*
- * Returns: (transfer full) (nullable): a #GDrive or %NULL if @mount is not
- * associated with a volume or a drive.
- * The returned object should be unreffed with
- * g_object_unref() when no longer needed.
+ * A value of @count larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
+ *
+ * On success, the number of bytes skipped will be passed to the 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 skip
+ * as many bytes as requested. Zero is returned on end of file
+ * (or if @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 %G_PRIORITY_DEFAULT.
+ *
+ * The asynchronous 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.
*/
/**
- * g_mount_get_icon:
- * @mount: a #GMount.
+ * g_input_stream_skip_finish:
+ * @stream: a #GInputStream.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Gets the icon for @mount.
+ * Finishes a stream skip operation.
*
- * Returns: (transfer full): a #GIcon.
- * The returned object should be unreffed with
- * g_object_unref() when no longer needed.
+ * Returns: the size of the bytes skipped, or %-1 on error.
*/
/**
- * g_mount_get_name:
- * @mount: a #GMount.
+ * g_io_error_from_errno:
+ * @err_no: Error number as defined in errno.h.
*
- * Gets the name of @mount.
+ * Converts errno.h error codes into GIO error codes. The fallback
+ * value %G_IO_ERROR_FAILED is returned for error codes not currently
+ * handled (but note that future GLib releases may return a more
+ * specific value instead).
*
- * Returns: the name for the given @mount.
- * The returned string should be freed with g_free()
- * when no longer needed.
+ * As %errno is global and may be modified by intermediate function
+ * calls, you should save its value as soon as the call which sets it
+ *
+ * Returns: #GIOErrorEnum value for the given errno.h error number.
*/
/**
- * g_mount_get_root:
- * @mount: a #GMount.
+ * g_io_error_from_win32_error:
+ * @error_code: Windows error number.
*
- * Gets the root directory on @mount.
+ * Converts some common error codes (as returned from GetLastError()
+ * or WSAGetLastError()) into GIO error codes. The fallback value
+ * %G_IO_ERROR_FAILED is returned for error codes not currently
+ * handled (but note that future GLib releases may return a more
+ * specific value instead).
*
- * Returns: (transfer full): a #GFile.
- * The returned object should be unreffed with
- * g_object_unref() when no longer needed.
+ * You can use g_win32_error_message() to get a localized string
+ * corresponding to @error_code. (But note that unlike g_strerror(),
+ * g_win32_error_message() returns a string that must be freed.)
+ *
+ * Returns: #GIOErrorEnum value for the given error number.
+ * Since: 2.26
*/
/**
- * g_mount_get_sort_key:
- * @mount: A #GMount.
+ * g_io_error_quark:
*
- * Gets the sort key for @mount, if any.
+ * Gets the GIO Error Quark.
*
- * Returns: (nullable): Sorting key for @mount or %NULL if no such key is available.
- * Since: 2.32
+ * Returns: a #GQuark.
*/
/**
- * g_mount_get_symbolic_icon:
- * @mount: a #GMount.
+ * g_io_extension_get_name:
+ * @extension: a #GIOExtension
*
- * Gets the symbolic icon for @mount.
+ * Gets the name under which @extension was registered.
*
- * Returns: (transfer full): a #GIcon.
- * The returned object should be unreffed with
- * g_object_unref() when no longer needed.
- * Since: 2.34
+ * Note that the same type may be registered as extension
+ * for multiple extension points, under different names.
+ *
+ * Returns: the name of @extension.
*/
/**
- * g_mount_get_uuid:
- * @mount: a #GMount.
+ * g_io_extension_get_priority:
+ * @extension: a #GIOExtension
*
- * Gets the UUID for the @mount. The reference is typically based on
- * the file system UUID for the mount in question and should be
- * considered an opaque string. Returns %NULL if there is no UUID
- * available.
+ * Gets the priority with which @extension was registered.
*
- * Returns: (nullable) (transfer full): the UUID for @mount or %NULL if no UUID
- * can be computed.
- * The returned string should be freed with g_free()
- * when no longer needed.
+ * Returns: the priority of @extension
*/
/**
- * g_mount_get_volume:
- * @mount: a #GMount.
+ * g_io_extension_get_type:
+ * @extension: a #GIOExtension
*
- * Gets the volume for the @mount.
+ * Gets the type associated with @extension.
*
- * Returns: (transfer full) (nullable): a #GVolume or %NULL if @mount is not
- * associated with a volume.
- * The returned object should be unreffed with
- * g_object_unref() when no longer needed.
+ * Returns: the type of @extension
*/
/**
- * g_mount_guess_content_type:
- * @mount: a #GMount
- * @force_rescan: Whether to force a rescan of the content.
- * Otherwise a cached result will be used if available
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @callback: a #GAsyncReadyCallback
- * @user_data: user data passed to @callback
- *
- * Tries to guess the type of content stored on @mount. Returns one or
- * more textual identifiers of well-known content types (typically
- * prefixed with "x-content/"), e.g. x-content/image-dcf for camera
- * memory cards. See the
- * [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
- * specification for more on x-content types.
+ * g_io_extension_point_get_extension_by_name:
+ * @extension_point: a #GIOExtensionPoint
+ * @name: the name of the extension to get
*
- * This is an asynchronous operation (see
- * g_mount_guess_content_type_sync() for the synchronous version), and
- * is finished by calling g_mount_guess_content_type_finish() with the
- * @mount and #GAsyncResult data returned in the @callback.
+ * Finds a #GIOExtension for an extension point by name.
*
- * Since: 2.18
+ * Returns: (transfer none): the #GIOExtension for @extension_point that has the
+ * given name, or %NULL if there is no extension with that name
*/
/**
- * g_mount_guess_content_type_finish:
- * @mount: a #GMount
- * @result: a #GAsyncResult
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore
+ * g_io_extension_point_get_extensions:
+ * @extension_point: a #GIOExtensionPoint
*
- * Finishes guessing content types of @mount. If any errors occurred
- * during the operation, @error will be set to contain the errors and
- * %FALSE will be returned. In particular, you may get an
- * %G_IO_ERROR_NOT_SUPPORTED if the mount does not support content
- * guessing.
+ * Gets a list of all extensions that implement this extension point.
+ * The list is sorted by priority, beginning with the highest priority.
*
- * Returns: (transfer full) (element-type utf8): a %NULL-terminated array of content types or %NULL on error.
- * Caller should free this array with g_strfreev() when done with it.
- * Since: 2.18
+ * Returns: (element-type GIOExtension) (transfer none): a #GList of
+ * #GIOExtensions. The list is owned by GIO and should not be
+ * modified.
*/
/**
- * g_mount_guess_content_type_sync:
- * @mount: a #GMount
- * @force_rescan: Whether to force a rescan of the content.
- * Otherwise a cached result will be used if available
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore
- *
- * Tries to guess the type of content stored on @mount. Returns one or
- * more textual identifiers of well-known content types (typically
- * prefixed with "x-content/"), e.g. x-content/image-dcf for camera
- * memory cards. See the
- * [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
- * specification for more on x-content types.
+ * g_io_extension_point_get_required_type:
+ * @extension_point: a #GIOExtensionPoint
*
- * This is an synchronous operation and as such may block doing IO;
- * see g_mount_guess_content_type() for the asynchronous version.
+ * Gets the required type for @extension_point.
*
- * Returns: (transfer full) (element-type utf8): a %NULL-terminated array of content types or %NULL on error.
- * Caller should free this array with g_strfreev() when done with it.
- * Since: 2.18
+ * Returns: the #GType that all implementations must have,
+ * or #G_TYPE_INVALID if the extension point has no required type
*/
/**
- * g_mount_is_shadowed:
- * @mount: A #GMount.
- *
- * Determines if @mount is shadowed. Applications or libraries should
- * avoid displaying @mount in the user interface if it is shadowed.
- *
- * A mount is said to be shadowed if there exists one or more user
- * visible objects (currently #GMount objects) with a root that is
- * inside the root of @mount.
+ * g_io_extension_point_implement:
+ * @extension_point_name: the name of the extension point
+ * @type: the #GType to register as extension
+ * @extension_name: the name for the extension
+ * @priority: the priority for the extension
*
- * One application of shadow mounts is when exposing a single file
- * system that is used to address several logical volumes. In this
- * situation, a #GVolumeMonitor implementation would create two
- * #GVolume objects (for example, one for the camera functionality of
- * the device and one for a SD card reader on the device) with
- * activation URIs `gphoto2://[usb:001,002]/store1/`
- * and `gphoto2://[usb:001,002]/store2/`. When the
- * underlying mount (with root
- * `gphoto2://[usb:001,002]/`) is mounted, said
- * #GVolumeMonitor implementation would create two #GMount objects
- * (each with their root matching the corresponding volume activation
- * root) that would shadow the original mount.
+ * Registers @type as extension for the extension point with name
+ * @extension_point_name.
*
- * The proxy monitor in GVfs 2.26 and later, automatically creates and
- * manage shadow mounts (and shadows the underlying mount) if the
- * activation root on a #GVolume is set.
+ * If @type has already been registered as an extension for this
+ * extension point, the existing #GIOExtension object is returned.
*
- * Returns: %TRUE if @mount is shadowed.
- * Since: 2.20
+ * Returns: (transfer none): a #GIOExtension object for #GType
*/
/**
- * g_mount_operation_get_anonymous:
- * @op: a #GMountOperation.
+ * g_io_extension_point_lookup:
+ * @name: the name of the extension point
*
- * Check to see whether the mount operation is being used
- * for an anonymous user.
+ * Looks up an existing extension point.
*
- * Returns: %TRUE if mount operation is anonymous.
+ * Returns: (transfer none): the #GIOExtensionPoint, or %NULL if there
+ * is no registered extension point with the given name.
*/
/**
- * g_mount_operation_get_choice:
- * @op: a #GMountOperation.
+ * g_io_extension_point_register:
+ * @name: The name of the extension point
*
- * Gets a choice from the mount operation.
+ * Registers an extension point.
*
- * Returns: an integer containing an index of the user's choice from
- * the choice's list, or %0.
+ * Returns: (transfer none): the new #GIOExtensionPoint. This object is
+ * owned by GIO and should not be freed.
*/
/**
- * g_mount_operation_get_domain:
- * @op: a #GMountOperation.
- *
- * Gets the domain of the mount operation.
+ * g_io_extension_point_set_required_type:
+ * @extension_point: a #GIOExtensionPoint
+ * @type: the #GType to require
*
- * Returns: a string set to the domain.
+ * Sets the required type for @extension_point to @type.
+ * All implementations must henceforth have this type.
*/
/**
- * g_mount_operation_get_is_tcrypt_hidden_volume:
- * @op: a #GMountOperation.
+ * g_io_extension_ref_class:
+ * @extension: a #GIOExtension
*
- * Check to see whether the mount operation is being used
- * for a TCRYPT hidden volume.
+ * Gets a reference to the class for the type that is
+ * associated with @extension.
*
- * Returns: %TRUE if mount operation is for hidden volume.
- * Since: 2.58
+ * Returns: (transfer full): the #GTypeClass for the type of @extension
*/
/**
- * g_mount_operation_get_is_tcrypt_system_volume:
- * @op: a #GMountOperation.
+ * g_io_module_new:
+ * @filename: (type filename): filename of the shared library module.
*
- * Check to see whether the mount operation is being used
- * for a TCRYPT system volume.
+ * Creates a new GIOModule that will load the specific
+ * shared library when in use.
*
- * Returns: %TRUE if mount operation is for system volume.
- * Since: 2.58
+ * Returns: a #GIOModule from given @filename,
+ * or %NULL on error.
*/
/**
- * g_mount_operation_get_password:
- * @op: a #GMountOperation.
+ * g_io_module_scope_block:
+ * @scope: a module loading scope
+ * @basename: the basename to block
*
- * Gets a password from the mount operation.
+ * Block modules with the given @basename from being loaded when
+ * this scope is used with g_io_modules_scan_all_in_directory_with_scope()
+ * or g_io_modules_load_all_in_directory_with_scope().
*
- * Returns: a string containing the password within @op.
+ * Since: 2.30
*/
/**
- * g_mount_operation_get_password_save:
- * @op: a #GMountOperation.
+ * g_io_module_scope_free:
+ * @scope: a module loading scope
*
- * Gets the state of saving passwords for the mount operation.
+ * Free a module scope.
*
- * Returns: a #GPasswordSave flag.
+ * Since: 2.30
*/
/**
- * g_mount_operation_get_pim:
- * @op: a #GMountOperation.
+ * g_io_module_scope_new:
+ * @flags: flags for the new scope
*
- * Gets a PIM from the mount operation.
+ * Create a new scope for loading of IO modules. A scope can be used for
+ * blocking duplicate modules, or blocking a module you don't want to load.
*
- * Returns: The VeraCrypt PIM within @op.
- * Since: 2.58
+ * Specify the %G_IO_MODULE_SCOPE_BLOCK_DUPLICATES flag to block modules
+ * which have the same base name as a module that has already been seen
+ * in this scope.
+ *
+ * Returns: (transfer full): the new module scope
+ * Since: 2.30
*/
/**
- * g_mount_operation_get_username:
- * @op: a #GMountOperation.
+ * g_io_modules_load_all_in_directory:
+ * @dirname: (type filename): pathname for a directory containing modules
+ * to load.
*
- * Get the user name from the mount operation.
+ * Loads all the modules in the specified directory.
*
- * Returns: a string containing the user name.
+ * If don't require all modules to be initialized (and thus registering
+ * all gtypes) then you can use g_io_modules_scan_all_in_directory()
+ * which allows delayed/lazy loading of modules.
+ *
+ * Returns: (element-type GIOModule) (transfer full): a list of #GIOModules loaded
+ * from the directory,
+ * All the modules are loaded into memory, if you want to
+ * unload them (enabling on-demand loading) you must call
+ * g_type_module_unuse() on all the modules. Free the list
+ * with g_list_free().
*/
/**
- * g_mount_operation_new:
+ * g_io_modules_load_all_in_directory_with_scope:
+ * @dirname: (type filename): pathname for a directory containing modules
+ * to load.
+ * @scope: a scope to use when scanning the modules.
*
- * Creates a new mount operation.
+ * Loads all the modules in the specified directory.
*
- * Returns: a #GMountOperation.
+ * If don't require all modules to be initialized (and thus registering
+ * all gtypes) then you can use g_io_modules_scan_all_in_directory()
+ * which allows delayed/lazy loading of modules.
+ *
+ * Returns: (element-type GIOModule) (transfer full): a list of #GIOModules loaded
+ * from the directory,
+ * All the modules are loaded into memory, if you want to
+ * unload them (enabling on-demand loading) you must call
+ * g_type_module_unuse() on all the modules. Free the list
+ * with g_list_free().
+ * Since: 2.30
*/
/**
- * g_mount_operation_reply:
- * @op: a #GMountOperation
- * @result: a #GMountOperationResult
+ * g_io_modules_scan_all_in_directory:
+ * @dirname: (type filename): pathname for a directory containing modules
+ * to scan.
*
- * Emits the #GMountOperation::reply signal.
+ * Scans all the modules in the specified directory, ensuring that
+ * any extension point implemented by a module is registered.
+ *
+ * This may not actually load and initialize all the types in each
+ * module, some modules may be lazily loaded and initialized when
+ * an extension point it implementes is used with e.g.
+ * g_io_extension_point_get_extensions() or
+ * g_io_extension_point_get_extension_by_name().
+ *
+ * If you need to guarantee that all types are loaded in all the modules,
+ * use g_io_modules_load_all_in_directory().
+ *
+ * Since: 2.24
*/
/**
- * g_mount_operation_set_anonymous:
- * @op: a #GMountOperation.
- * @anonymous: boolean value.
+ * g_io_modules_scan_all_in_directory_with_scope:
+ * @dirname: (type filename): pathname for a directory containing modules
+ * to scan.
+ * @scope: a scope to use when scanning the modules
*
- * Sets the mount operation to use an anonymous user if @anonymous is %TRUE.
+ * Scans all the modules in the specified directory, ensuring that
+ * any extension point implemented by a module is registered.
+ *
+ * This may not actually load and initialize all the types in each
+ * module, some modules may be lazily loaded and initialized when
+ * an extension point it implementes is used with e.g.
+ * g_io_extension_point_get_extensions() or
+ * g_io_extension_point_get_extension_by_name().
+ *
+ * If you need to guarantee that all types are loaded in all the modules,
+ * use g_io_modules_load_all_in_directory().
+ *
+ * Since: 2.30
*/
/**
- * g_mount_operation_set_choice:
- * @op: a #GMountOperation.
- * @choice: an integer.
+ * g_io_scheduler_cancel_all_jobs:
*
- * Sets a default choice for the mount operation.
+ * Cancels all cancellable I/O jobs.
+ *
+ * A job is cancellable if a #GCancellable was passed into
+ * g_io_scheduler_push_job().
+ *
+ * Deprecated: You should never call this function, since you don't
+ * know how other libraries in your program might be making use of
+ * gioscheduler.
*/
/**
- * g_mount_operation_set_domain:
- * @op: a #GMountOperation.
- * @domain: the domain to set.
+ * g_io_scheduler_job_send_to_mainloop:
+ * @job: a #GIOSchedulerJob
+ * @func: a #GSourceFunc callback that will be called in the original thread
+ * @user_data: data to pass to @func
+ * @notify: (nullable): a #GDestroyNotify for @user_data, or %NULL
*
- * Sets the mount operation's domain.
+ * Used from an I/O job to send a callback to be run in the thread
+ * that the job was started from, waiting for the result (and thus
+ * blocking the I/O job).
+ *
+ * Returns: The return value of @func
+ * Deprecated: Use g_main_context_invoke().
*/
/**
- * g_mount_operation_set_is_tcrypt_hidden_volume:
- * @op: a #GMountOperation.
- * @hidden_volume: boolean value.
+ * g_io_scheduler_job_send_to_mainloop_async:
+ * @job: a #GIOSchedulerJob
+ * @func: a #GSourceFunc callback that will be called in the original thread
+ * @user_data: data to pass to @func
+ * @notify: (nullable): a #GDestroyNotify for @user_data, or %NULL
*
- * Sets the mount operation to use a hidden volume if @hidden_volume is %TRUE.
+ * Used from an I/O job to send a callback to be run asynchronously in
+ * the thread that the job was started from. The callback will be run
+ * when the main loop is available, but at that time the I/O job might
+ * have finished. The return value from the callback is ignored.
*
- * Since: 2.58
+ * Note that if you are passing the @user_data from g_io_scheduler_push_job()
+ * on to this function you have to ensure that it is not freed before
+ * @func is called, either by passing %NULL as @notify to
+ * g_io_scheduler_push_job() or by using refcounting for @user_data.
+ *
+ * Deprecated: Use g_main_context_invoke().
*/
/**
- * g_mount_operation_set_is_tcrypt_system_volume:
- * @op: a #GMountOperation.
- * @system_volume: boolean value.
+ * g_io_scheduler_push_job:
+ * @job_func: a #GIOSchedulerJobFunc.
+ * @user_data: data to pass to @job_func
+ * @notify: (nullable): a #GDestroyNotify for @user_data, or %NULL
+ * @io_priority: the [I/O priority][io-priority]
+ * of the request.
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
*
- * Sets the mount operation to use a system volume if @system_volume is %TRUE.
+ * Schedules the I/O job to run in another thread.
*
- * Since: 2.58
+ * @notify will be called on @user_data after @job_func has returned,
+ * regardless whether the job was cancelled or has run to completion.
+ *
+ * If @cancellable is not %NULL, it can be used to cancel the I/O job
+ * by calling g_cancellable_cancel() or by calling
+ * g_io_scheduler_cancel_all_jobs().
+ *
+ * Deprecated: use #GThreadPool or g_task_run_in_thread()
*/
/**
- * g_mount_operation_set_password:
- * @op: a #GMountOperation.
- * @password: password to set.
+ * g_io_stream_clear_pending:
+ * @stream: a #GIOStream
*
- * Sets the mount operation's password to @password.
+ * Clears the pending flag on @stream.
+ *
+ * Since: 2.22
*/
/**
- * g_mount_operation_set_password_save:
- * @op: a #GMountOperation.
- * @save: a set of #GPasswordSave flags.
+ * g_io_stream_close:
+ * @stream: a #GIOStream
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Sets the state of saving passwords for the mount operation.
+ * Closes the stream, releasing resources related to it. This will also
+ * close the individual input and output streams, if they are not already
+ * closed.
+ *
+ * Once the stream is closed, all other operations will return
+ * %G_IO_ERROR_CLOSED. Closing a stream multiple times will not
+ * return an error.
+ *
+ * Closing a stream will automatically flush any outstanding buffers
+ * in the stream.
+ *
+ * Streams will be automatically closed when the last reference
+ * is dropped, but you might want to call this function to make sure
+ * resources are released as early as possible.
+ *
+ * Some streams might keep the backing store of the stream (e.g. a file
+ * descriptor) open after the stream is closed. See the documentation for
+ * the individual stream for details.
+ *
+ * On failure the first error that happened will be reported, but the
+ * close operation will finish as much as possible. A stream that failed
+ * to close will still return %G_IO_ERROR_CLOSED for all operations.
+ * Still, it is important to check and report the error to the user,
+ * otherwise there might be a loss of data as all data might not be written.
+ *
+ * If @cancellable is not NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Cancelling a close will still leave the stream closed, but some streams
+ * can use a faster close that doesn't block to e.g. check errors.
+ *
+ * The default implementation of this method just calls close on the
+ * individual input/output streams.
+ *
+ * Returns: %TRUE on success, %FALSE on failure
+ * Since: 2.22
*/
/**
- * g_mount_operation_set_pim:
- * @op: a #GMountOperation.
- * @pim: an unsigned integer.
+ * g_io_stream_close_async:
+ * @stream: a #GIOStream
+ * @io_priority: the io priority of the request
+ * @cancellable: (nullable): optional cancellable object
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Sets the mount operation's PIM to @pim.
+ * Requests an asynchronous close of the stream, releasing resources
+ * related to it. When the operation is finished @callback will be
+ * called. You can then call g_io_stream_close_finish() to get
+ * the result of the operation.
+ *
+ * For behaviour details see g_io_stream_close().
+ *
+ * The asynchronous 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.
*
- * Since: 2.58
+ * Since: 2.22
*/
/**
- * g_mount_operation_set_username:
- * @op: a #GMountOperation.
- * @username: input username.
+ * g_io_stream_close_finish:
+ * @stream: a #GIOStream
+ * @result: a #GAsyncResult
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore
*
- * Sets the user name within @op to @username.
+ * Closes a stream.
+ *
+ * Returns: %TRUE if stream was successfully closed, %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_mount_remount:
- * @mount: a #GMount.
- * @flags: flags affecting the operation
- * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
- * user interaction.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
- * @user_data: user data passed to @callback.
+ * g_io_stream_get_input_stream:
+ * @stream: a #GIOStream
*
- * Remounts a mount. This is an asynchronous operation, and is
- * finished by calling g_mount_remount_finish() with the @mount
- * and #GAsyncResults data returned in the @callback.
+ * Gets the input stream for this object. This is used
+ * for reading.
*
- * Remounting is useful when some setting affecting the operation
- * of the volume has been changed, as these may need a remount to
- * take affect. While this is semantically equivalent with unmounting
- * and then remounting not all backends might need to actually be
- * unmounted.
+ * Returns: (transfer none): a #GInputStream, owned by the #GIOStream.
+ * Do not free.
+ * Since: 2.22
*/
/**
- * g_mount_remount_finish:
- * @mount: a #GMount.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_io_stream_get_output_stream:
+ * @stream: a #GIOStream
*
- * Finishes remounting a mount. If any errors occurred during the operation,
- * @error will be set to contain the errors and %FALSE will be returned.
+ * Gets the output stream for this object. This is used for
+ * writing.
*
- * Returns: %TRUE if the mount was successfully remounted. %FALSE otherwise.
+ * Returns: (transfer none): a #GOutputStream, owned by the #GIOStream.
+ * Do not free.
+ * Since: 2.22
*/
/**
- * g_mount_shadow:
- * @mount: A #GMount.
+ * g_io_stream_has_pending:
+ * @stream: a #GIOStream
*
- * Increments the shadow count on @mount. Usually used by
- * #GVolumeMonitor implementations when creating a shadow mount for
- * @mount, see g_mount_is_shadowed() for more information. The caller
- * will need to emit the #GMount::changed signal on @mount manually.
+ * Checks if a stream has pending actions.
*
- * Since: 2.20
+ * Returns: %TRUE if @stream has pending actions.
+ * Since: 2.22
*/
/**
- * g_mount_unmount:
- * @mount: a #GMount.
- * @flags: flags affecting the operation
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
- * @user_data: user data passed to @callback.
+ * g_io_stream_is_closed:
+ * @stream: a #GIOStream
*
- * Unmounts a mount. This is an asynchronous operation, and is
- * finished by calling g_mount_unmount_finish() with the @mount
- * and #GAsyncResult data returned in the @callback.
+ * Checks if a stream is closed.
*
- * Deprecated: 2.22: Use g_mount_unmount_with_operation() instead.
+ * Returns: %TRUE if the stream is closed.
+ * Since: 2.22
*/
/**
- * g_mount_unmount_finish:
- * @mount: a #GMount.
- * @result: a #GAsyncResult.
+ * g_io_stream_set_pending:
+ * @stream: a #GIOStream
* @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * ignore
*
- * Finishes unmounting a mount. If any errors occurred during the operation,
- * @error will be set to contain the errors and %FALSE will be returned.
+ * Sets @stream to have actions pending. If the pending flag is
+ * already set or @stream is closed, it will return %FALSE and set
+ * @error.
*
- * Returns: %TRUE if the mount was successfully unmounted. %FALSE otherwise.
- * Deprecated: 2.22: Use g_mount_unmount_with_operation_finish() instead.
+ * Returns: %TRUE if pending was previously unset and is now set.
+ * Since: 2.22
*/
/**
- * g_mount_unmount_with_operation:
- * @mount: a #GMount.
- * @flags: flags affecting the operation
- * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
- * user interaction.
+ * g_io_stream_splice_async:
+ * @stream1: a #GIOStream.
+ * @stream2: a #GIOStream.
+ * @flags: a set of #GIOStreamSpliceFlags.
+ * @io_priority: the io priority of the request.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
- * @user_data: user data passed to @callback.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
*
- * Unmounts a mount. This is an asynchronous operation, and is
- * finished by calling g_mount_unmount_with_operation_finish() with the @mount
- * and #GAsyncResult data returned in the @callback.
+ * Asyncronously splice the output stream of @stream1 to the input stream of
+ * @stream2, and splice the output stream of @stream2 to the input stream of
+ * @stream1.
*
- * Since: 2.22
+ * When the operation is finished @callback will be called.
+ * You can then call g_io_stream_splice_finish() to get the
+ * result of the operation.
+ *
+ * Since: 2.28
*/
/**
- * g_mount_unmount_with_operation_finish:
- * @mount: a #GMount.
+ * g_io_stream_splice_finish:
* @result: a #GAsyncResult.
* @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * ignore.
*
- * Finishes unmounting a mount. If any errors occurred during the operation,
- * @error will be set to contain the errors and %FALSE will be returned.
+ * Finishes an asynchronous io stream splice operation.
*
- * Returns: %TRUE if the mount was successfully unmounted. %FALSE otherwise.
- * Since: 2.22
+ * Returns: %TRUE on success, %FALSE otherwise.
+ * Since: 2.28
*/
/**
- * g_mount_unshadow:
- * @mount: A #GMount.
+ * g_keyfile_settings_backend_new:
+ * @filename: the filename of the keyfile
+ * @root_path: the path under which all settings keys appear
+ * @root_group: (nullable): the group name corresponding to
+ * @root_path, or %NULL
*
- * Decrements the shadow count on @mount. Usually used by
- * #GVolumeMonitor implementations when destroying a shadow mount for
- * @mount, see g_mount_is_shadowed() for more information. The caller
- * will need to emit the #GMount::changed signal on @mount manually.
+ * Creates a keyfile-backed #GSettingsBackend.
*
- * Since: 2.20
+ * The filename of the keyfile to use is given by @filename.
+ *
+ * All settings read to or written from the backend must fall under the
+ * path given in @root_path (which must start and end with a slash and
+ * not contain two consecutive slashes). @root_path may be "/".
+ *
+ * If @root_group is non-%NULL then it specifies the name of the keyfile
+ * group used for keys that are written directly below @root_path. For
+ * example, if @root_path is "/apps/example/" and @root_group is
+ * "toplevel", then settings the key "/apps/example/enabled" to a value
+ * of %TRUE will cause the following to appear in the keyfile:
+ *
+ * |[
+ * [toplevel]
+ * enabled=true
+ * ]|
+ *
+ * If @root_group is %NULL then it is not permitted to store keys
+ * directly below the @root_path.
+ *
+ * For keys not stored directly below @root_path (ie: in a sub-path),
+ * the name of the subpath (with the final slash stripped) is used as
+ * the name of the keyfile group. To continue the example, if
+ * "/apps/example/profiles/default/font-size" were set to
+ * 12 then the following would appear in the keyfile:
+ *
+ * |[
+ * [profiles/default]
+ * font-size=12
+ * ]|
+ *
+ * The backend will refuse writes (and return writability as being
+ * %FALSE) for keys outside of @root_path and, in the event that
+ * @root_group is %NULL, also for keys directly under @root_path.
+ * Writes will also be refused if the backend detects that it has the
+ * inability to rewrite the keyfile (ie: the containing directory is not
+ * writable).
+ *
+ * There is no checking done for your key namespace clashing with the
+ * syntax of the key file format. For example, if you have '[' or ']'
+ * characters in your path names or '=' in your key names you may be in
+ * trouble.
+ *
+ * Returns: (transfer full): a keyfile-backed #GSettingsBackend
*/
/**
- * g_native_socket_address_new:
- * @native: a native address object
- * @len: the length of @native, in bytes
+ * g_list_model_get_item: (skip)
+ * @list: a #GListModel
+ * @position: the position of the item to fetch
*
- * Creates a new #GNativeSocketAddress for @native and @len.
+ * Get the item at @position. If @position is greater than the number of
+ * items in @list, %NULL is returned.
*
- * Returns: a new #GNativeSocketAddress
- * Since: 2.46
+ * %NULL is never returned for an index that is smaller than the length
+ * of the list. See g_list_model_get_n_items().
+ *
+ * Returns: (transfer full) (nullable): the item at @position.
+ * Since: 2.44
*/
/**
- * g_network_address_get_hostname:
- * @addr: a #GNetworkAddress
+ * g_list_model_get_item_type:
+ * @list: a #GListModel
*
- * Gets @addr's hostname. This might be either UTF-8 or ASCII-encoded,
- * depending on what @addr was created with.
+ * 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.
*
- * Returns: @addr's hostname
- * Since: 2.22
+ * The item type of a #GListModel can not change during the life of the
+ * model.
+ *
+ * Returns: the #GType of the items contained in @list.
+ * Since: 2.44
*/
/**
- * g_network_address_get_port:
- * @addr: a #GNetworkAddress
+ * g_list_model_get_n_items:
+ * @list: a #GListModel
*
- * Gets @addr's port number
+ * Gets the number of items in @list.
*
- * Returns: @addr's port (which may be 0)
- * Since: 2.22
+ * 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.
+ *
+ * Returns: the number of items in @list.
+ * Since: 2.44
*/
/**
- * g_network_address_get_scheme:
- * @addr: a #GNetworkAddress
+ * g_list_model_get_object: (rename-to g_list_model_get_item)
+ * @list: a #GListModel
+ * @position: the position of the item to fetch
*
- * Gets @addr's scheme
+ * Get the item at @position. If @position is greater than the number of
+ * items in @list, %NULL is returned.
*
- * Returns: @addr's scheme (%NULL if not built from URI)
- * Since: 2.26
+ * %NULL is never returned for an index that is smaller than the length
+ * of the list. See g_list_model_get_n_items().
+ *
+ * Returns: (transfer full) (nullable): the object at @position.
+ * Since: 2.44
*/
/**
- * g_network_address_new:
- * @hostname: the hostname
- * @port: the port
+ * g_list_model_items_changed:
+ * @list: a #GListModel
+ * @position: the position at which @list changed
+ * @removed: the number of items removed
+ * @added: the number of items added
*
- * Creates a new #GSocketConnectable for connecting to the given
- * @hostname and @port.
+ * Emits the #GListModel::items-changed signal on @list.
*
- * 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.
+ * 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.
*
- * Returns: (transfer full) (type GNetworkAddress): the new #GNetworkAddress
- * Since: 2.22
+ * 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
*/
/**
- * g_network_address_new_loopback:
- * @port: the port
+ * g_list_store_append:
+ * @store: a #GListStore
+ * @item: (type GObject): the new item
*
- * 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.
+ * Appends @item to @store. @item must be of type #GListStore:item-type.
*
- * 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`.
+ * This function takes a ref on @item.
*
- * g_network_address_get_hostname() will always return `localhost` for
- * #GNetworkAddresses created with this constructor.
+ * Use g_list_store_splice() to append multiple items at the same time
+ * efficiently.
*
- * Returns: (transfer full) (type GNetworkAddress): the new #GNetworkAddress
* Since: 2.44
*/
/**
- * g_network_address_parse:
- * @host_and_port: the hostname and optionally a port
- * @default_port: the default port if not in @host_and_port
- * @error: a pointer to a #GError, or %NULL
+ * g_list_store_insert:
+ * @store: a #GListStore
+ * @position: the position at which to insert the new item
+ * @item: (type GObject): the new item
*
- * Creates a new #GSocketConnectable for connecting to the given
- * @hostname and @port. May fail and return %NULL in case
- * parsing @host_and_port fails.
+ * 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.
*
- * @host_and_port may be in any of a number of recognised formats; an IPv6
- * address, an IPv4 address, or a domain name (in which case a DNS
- * lookup is performed). Quoting with [] is supported for all address
- * types. A port override may be specified in the usual way with a
- * colon.
+ * This function takes a ref on @item.
*
- * If no port is specified in @host_and_port then @default_port will be
- * used as the port number to connect to.
+ * Use g_list_store_splice() to insert multiple items at the same time
+ * efficiently.
*
- * In general, @host_and_port is expected to be provided by the user
- * (allowing them to give the hostname, and a port override if necessary)
- * and @default_port is expected to be provided by the application.
+ * Since: 2.44
+ */
+
+
+/**
+ * g_list_store_insert_sorted:
+ * @store: a #GListStore
+ * @item: (type GObject): the new item
+ * @compare_func: (scope call): pairwise comparison function for sorting
+ * @user_data: (closure): user data for @compare_func
*
- * (The port component of @host_and_port can also be specified as a
- * service name rather than as a numeric port, but this functionality
- * is deprecated, because it depends on the contents of /etc/services,
- * which is generally quite sparse on platforms other than Linux.)
+ * Inserts @item into @store at a position to be determined by the
+ * @compare_func.
*
- * Returns: (transfer full) (type GNetworkAddress): the new
- * #GNetworkAddress, or %NULL on error
- * Since: 2.22
+ * 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.
+ *
+ * Returns: the position at which @item was inserted
+ * Since: 2.44
*/
/**
- * g_network_address_parse_uri:
- * @uri: the hostname and optionally a port
- * @default_port: The default port if none is found in the URI
- * @error: a pointer to a #GError, or %NULL
- *
- * Creates a new #GSocketConnectable for connecting to the given
- * @uri. May fail and return %NULL in case parsing @uri fails.
+ * g_list_store_new:
+ * @item_type: the #GType of items in the list
*
- * Using this rather than g_network_address_new() or
- * g_network_address_parse() allows #GSocketClient to determine
- * when to use application-specific proxy protocols.
+ * Creates a new #GListStore with items of type @item_type. @item_type
+ * must be a subclass of #GObject.
*
- * Returns: (transfer full) (type GNetworkAddress): the new
- * #GNetworkAddress, or %NULL on error
- * Since: 2.26
+ * Returns: a new #GListStore
+ * Since: 2.44
*/
/**
- * g_network_monitor_base_add_network:
- * @monitor: the #GNetworkMonitorBase
- * @network: a #GInetAddressMask
+ * g_list_store_remove:
+ * @store: a #GListStore
+ * @position: the position of the item that is to be removed
*
- * Adds @network to @monitor's list of available networks.
+ * Removes the item from @store that is at @position. @position must be
+ * smaller than the current length of the list.
*
- * Since: 2.32
+ * Use g_list_store_splice() to remove multiple items at the same time
+ * efficiently.
+ *
+ * Since: 2.44
*/
/**
- * g_network_monitor_base_remove_network:
- * @monitor: the #GNetworkMonitorBase
- * @network: a #GInetAddressMask
+ * g_list_store_remove_all:
+ * @store: a #GListStore
*
- * Removes @network from @monitor's list of available networks.
+ * Removes all items from @store.
*
- * Since: 2.32
+ * Since: 2.44
*/
/**
- * g_network_monitor_base_set_networks:
- * @monitor: the #GNetworkMonitorBase
- * @networks: (array length=length): an array of #GInetAddressMask
- * @length: length of @networks
+ * g_list_store_sort:
+ * @store: a #GListStore
+ * @compare_func: (scope call): pairwise comparison function for sorting
+ * @user_data: (closure): user data for @compare_func
*
- * Drops @monitor's current list of available networks and replaces
- * it with @networks.
+ * Sort the items in @store according to @compare_func.
+ *
+ * Since: 2.46
*/
/**
- * g_network_monitor_can_reach:
- * @monitor: a #GNetworkMonitor
- * @connectable: a #GSocketConnectable
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: return location for a #GError, or %NULL
+ * g_list_store_splice:
+ * @store: a #GListStore
+ * @position: the position at which to make the change
+ * @n_removals: the number of items to remove
+ * @additions: (array length=n_additions) (element-type GObject): the items to add
+ * @n_additions: the number of items to add
*
- * Attempts to determine whether or not the host pointed to by
- * @connectable can be reached, without actually trying to connect to
- * it.
+ * 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 may return %TRUE even when #GNetworkMonitor:network-available
- * is %FALSE, if, for example, @monitor can determine that
- * @connectable refers to a host on a local network.
+ * 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.
*
- * If @monitor believes that an attempt to connect to @connectable
- * will succeed, it will return %TRUE. Otherwise, it will return
- * %FALSE and set @error to an appropriate error (such as
- * %G_IO_ERROR_HOST_UNREACHABLE).
+ * This function takes a ref on each item in @additions.
*
- * Note that although this does not attempt to connect to
- * @connectable, it may still block for a brief period of time (eg,
- * trying to do multicast DNS on the local network), so if you do not
- * want to block, you should use g_network_monitor_can_reach_async().
+ * 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).
*
- * Returns: %TRUE if @connectable is reachable, %FALSE if not.
- * Since: 2.32
+ * Since: 2.44
*/
/**
- * g_network_monitor_can_reach_async:
- * @monitor: a #GNetworkMonitor
- * @connectable: a #GSocketConnectable
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback to call when the
- * request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_loadable_icon_load:
+ * @icon: a #GLoadableIcon.
+ * @size: an integer.
+ * @type: (out) (optional): a location to store the type of the loaded
+ * icon, %NULL to ignore.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to
+ * ignore.
+ * @error: a #GError location to store the error occurring, or %NULL
+ * to ignore.
*
- * Asynchronously attempts to determine whether or not the host
- * pointed to by @connectable can be reached, without actually
- * trying to connect to it.
+ * Loads a loadable icon. For the asynchronous version of this function,
+ * see g_loadable_icon_load_async().
*
- * For more details, see g_network_monitor_can_reach().
+ * Returns: (transfer full): a #GInputStream to read the icon from.
+ */
+
+
+/**
+ * g_loadable_icon_load_async:
+ * @icon: a #GLoadableIcon.
+ * @size: an integer.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the
+ * request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * When the operation is finished, @callback will be called.
- * You can then call g_network_monitor_can_reach_finish()
- * to get the result of the operation.
+ * Loads an icon asynchronously. To finish this function, see
+ * g_loadable_icon_load_finish(). For the synchronous, blocking
+ * version of this function, see g_loadable_icon_load().
*/
/**
- * g_network_monitor_can_reach_finish:
- * @monitor: a #GNetworkMonitor
- * @result: a #GAsyncResult
- * @error: return location for errors, or %NULL
+ * g_loadable_icon_load_finish:
+ * @icon: a #GLoadableIcon.
+ * @res: a #GAsyncResult.
+ * @type: (out) (optional): a location to store the type of the loaded
+ * icon, %NULL to ignore.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Finishes an async network connectivity test.
- * See g_network_monitor_can_reach_async().
+ * Finishes an asynchronous icon load started in g_loadable_icon_load_async().
*
- * Returns: %TRUE if network is reachable, %FALSE if not.
+ * Returns: (transfer full): a #GInputStream to read the icon from.
*/
/**
- * g_network_monitor_get_connectivity:
- * @monitor: the #GNetworkMonitor
- *
- * 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 "captive portal" that requires some sort
- * of login or acknowledgement before allowing full Internet access).
+ * g_local_vfs_new:
*
- * 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 "offline" behavior if the connection attempt fails.
+ * Returns a new #GVfs handle for a local vfs.
*
- * Returns: the network connectivity state
- * Since: 2.44
+ * Returns: a new #GVfs handle.
*/
/**
- * g_network_monitor_get_default:
+ * g_memory_input_stream_add_bytes:
+ * @stream: a #GMemoryInputStream
+ * @bytes: input data
*
- * Gets the default #GNetworkMonitor for the system.
+ * Appends @bytes to data that can be read from the input stream.
*
- * Returns: (transfer none): a #GNetworkMonitor
- * Since: 2.32
+ * Since: 2.34
*/
/**
- * g_network_monitor_get_network_available:
- * @monitor: the #GNetworkMonitor
- *
- * Checks if the network is available. "Available" here means that the
- * system has a default route available for at least one of IPv4 or
- * IPv6. It does not necessarily imply that the public Internet is
- * reachable. See #GNetworkMonitor:network-available for more details.
+ * g_memory_input_stream_add_data:
+ * @stream: a #GMemoryInputStream
+ * @data: (array length=len) (element-type guint8) (transfer full): input data
+ * @len: length of the data, may be -1 if @data is a nul-terminated string
+ * @destroy: (nullable): function that is called to free @data, or %NULL
*
- * Returns: whether the network is available
- * Since: 2.32
+ * Appends @data to data that can be read from the input stream
*/
/**
- * g_network_monitor_get_network_metered:
- * @monitor: the #GNetworkMonitor
+ * g_memory_input_stream_new:
*
- * Checks if the network is metered.
- * See #GNetworkMonitor:network-metered for more details.
+ * Creates a new empty #GMemoryInputStream.
*
- * Returns: whether the connection is metered
- * Since: 2.46
+ * Returns: a new #GInputStream
*/
/**
- * g_network_service_get_domain:
- * @srv: a #GNetworkService
+ * g_memory_input_stream_new_from_bytes:
+ * @bytes: a #GBytes
*
- * Gets the domain that @srv serves. This might be either UTF-8 or
- * ASCII-encoded, depending on what @srv was created with.
+ * Creates a new #GMemoryInputStream with data from the given @bytes.
*
- * Returns: @srv's domain name
- * Since: 2.22
+ * Returns: new #GInputStream read from @bytes
+ * Since: 2.34
*/
/**
- * g_network_service_get_protocol:
- * @srv: a #GNetworkService
+ * g_memory_input_stream_new_from_data:
+ * @data: (array length=len) (element-type guint8) (transfer full): input data
+ * @len: length of the data, may be -1 if @data is a nul-terminated string
+ * @destroy: (nullable): function that is called to free @data, or %NULL
*
- * Gets @srv's protocol name (eg, "tcp").
+ * Creates a new #GMemoryInputStream with data in memory of a given size.
*
- * Returns: @srv's protocol name
- * Since: 2.22
+ * Returns: new #GInputStream read from @data of @len bytes.
*/
/**
- * g_network_service_get_scheme:
- * @srv: a #GNetworkService
+ * g_memory_output_stream_get_data:
+ * @ostream: a #GMemoryOutputStream
*
- * Get's the URI scheme used to resolve proxies. By default, the service name
- * is used as scheme.
+ * Gets any loaded data from the @ostream.
*
- * Returns: @srv's scheme name
- * Since: 2.26
+ * Note that the returned pointer may become invalid on the next
+ * write or truncate operation on the stream.
+ *
+ * Returns: (transfer none): pointer to the stream's data, or %NULL if the data
+ * has been stolen
*/
/**
- * g_network_service_get_service:
- * @srv: a #GNetworkService
+ * g_memory_output_stream_get_data_size:
+ * @ostream: a #GMemoryOutputStream
*
- * Gets @srv's service name (eg, "ldap").
+ * Returns the number of bytes from the start up to including the last
+ * byte written in the stream that has not been truncated away.
*
- * Returns: @srv's service name
- * Since: 2.22
+ * Returns: the number of bytes written to the stream
+ * Since: 2.18
*/
/**
- * g_network_service_new:
- * @service: the service type to look up (eg, "ldap")
- * @protocol: the networking protocol to use for @service (eg, "tcp")
- * @domain: the DNS domain to look up the service in
+ * g_memory_output_stream_get_size:
+ * @ostream: a #GMemoryOutputStream
*
- * Creates a new #GNetworkService representing the given @service,
- * @protocol, and @domain. This will initially be unresolved; use the
- * #GSocketConnectable interface to resolve it.
+ * Gets the size of the currently allocated data area (available from
+ * g_memory_output_stream_get_data()).
*
- * Returns: (transfer full) (type GNetworkService): a new #GNetworkService
- * Since: 2.22
+ * You probably don't want to use this function on resizable streams.
+ * See g_memory_output_stream_get_data_size() instead. For resizable
+ * streams the size returned by this function is an implementation
+ * detail and may be change at any time in response to operations on the
+ * stream.
+ *
+ * If the stream is fixed-sized (ie: no realloc was passed to
+ * g_memory_output_stream_new()) then this is the maximum size of the
+ * stream and further writes will return %G_IO_ERROR_NO_SPACE.
+ *
+ * In any case, if you want the number of bytes currently written to the
+ * stream, use g_memory_output_stream_get_data_size().
+ *
+ * Returns: the number of bytes allocated for the data buffer
*/
/**
- * g_network_service_set_scheme:
- * @srv: a #GNetworkService
- * @scheme: a URI scheme
+ * g_memory_output_stream_new: (skip)
+ * @data: (nullable): pointer to a chunk of memory to use, or %NULL
+ * @size: the size of @data
+ * @realloc_function: (nullable): a function with realloc() semantics (like g_realloc())
+ * to be called when @data needs to be grown, or %NULL
+ * @destroy_function: (nullable): a function to be called on @data when the stream is
+ * finalized, or %NULL
*
- * Set's the URI scheme used to resolve proxies. By default, the service name
- * is used as scheme.
+ * Creates a new #GMemoryOutputStream.
*
- * Since: 2.26
+ * In most cases this is not the function you want. See
+ * g_memory_output_stream_new_resizable() instead.
+ *
+ * If @data is non-%NULL, the stream will use that for its internal storage.
+ *
+ * If @realloc_fn is non-%NULL, it will be used for resizing the internal
+ * storage when necessary and the stream will be considered resizable.
+ * In that case, the stream will start out being (conceptually) empty.
+ * @size is used only as a hint for how big @data is. Specifically,
+ * seeking to the end of a newly-created stream will seek to zero, not
+ * @size. Seeking past the end of the stream and then writing will
+ * introduce a zero-filled gap.
+ *
+ * If @realloc_fn is %NULL then the stream is fixed-sized. Seeking to
+ * the end will seek to @size exactly. Writing past the end will give
+ * an 'out of space' error. Attempting to seek past the end will fail.
+ * Unlike the resizable case, seeking to an offset within the stream and
+ * writing will preserve the bytes passed in as @data before that point
+ * and will return them as part of g_memory_output_stream_steal_data().
+ * If you intend to seek you should probably therefore ensure that @data
+ * is properly initialised.
+ *
+ * It is probably only meaningful to provide @data and @size in the case
+ * that you want a fixed-sized stream. Put another way: if @realloc_fn
+ * is non-%NULL then it makes most sense to give @data as %NULL and
+ * @size as 0 (allowing #GMemoryOutputStream to do the initial
+ * allocation for itself).
+ *
+ * |[<!-- language="C" -->
+ * // a stream that can grow
+ * stream = g_memory_output_stream_new (NULL, 0, realloc, free);
+ *
+ * // another stream that can grow
+ * stream2 = g_memory_output_stream_new (NULL, 0, g_realloc, g_free);
+ *
+ * // a fixed-size stream
+ * data = malloc (200);
+ * stream3 = g_memory_output_stream_new (data, 200, NULL, free);
+ * ]|
+ *
+ * Returns: A newly created #GMemoryOutputStream object.
*/
/**
- * g_networking_init:
+ * g_memory_output_stream_new_resizable:
*
- * Initializes the platform networking libraries (eg, on Windows, this
- * calls WSAStartup()). GLib will call this itself if it is needed, so
- * you only need to call it if you directly call system networking
- * functions (without calling any GLib networking functions first).
+ * Creates a new #GMemoryOutputStream, using g_realloc() and g_free()
+ * for memory allocation.
*
* Since: 2.36
*/
/**
- * g_notification_add_button:
- * @notification: a #GNotification
- * @label: label of the button
- * @detailed_action: a detailed action name
- *
- * Adds a button to @notification that activates the action in
- * @detailed_action when clicked. That action must be an
- * application-wide action (starting with "app."). If @detailed_action
- * contains a target, the action will be activated with that target as
- * its parameter.
+ * g_memory_output_stream_steal_as_bytes:
+ * @ostream: a #GMemoryOutputStream
*
- * See g_action_parse_detailed_name() for a description of the format
- * for @detailed_action.
+ * Returns data from the @ostream as a #GBytes. @ostream must be
+ * closed before calling this function.
*
- * Since: 2.40
+ * Returns: (transfer full): the stream's data
+ * Since: 2.34
*/
/**
- * g_notification_add_button_with_target: (skip)
- * @notification: a #GNotification
- * @label: label of the button
- * @action: an action name
- * @target_format: (nullable): a #GVariant format string, or %NULL
- * @...: positional parameters, as determined by @target_format
+ * g_memory_output_stream_steal_data:
+ * @ostream: a #GMemoryOutputStream
*
- * Adds a button to @notification that activates @action when clicked.
- * @action must be an application-wide action (it must start with "app.").
+ * Gets any loaded data from the @ostream. Ownership of the data
+ * is transferred to the caller; when no longer needed it must be
+ * freed using the free function set in @ostream's
+ * #GMemoryOutputStream:destroy-function property.
*
- * If @target_format is given, it is used to collect remaining
- * positional parameters into a #GVariant instance, similar to
- * g_variant_new(). @action will be activated with that #GVariant as its
- * parameter.
+ * @ostream must be closed before calling this function.
*
- * Since: 2.40
+ * Returns: (transfer full): the stream's data, or %NULL if it has previously
+ * been stolen
+ * Since: 2.26
*/
/**
- * g_notification_add_button_with_target_value: (rename-to g_notification_add_button_with_target)
- * @notification: a #GNotification
- * @label: label of the button
- * @action: an action name
- * @target: (nullable): a #GVariant to use as @action's parameter, or %NULL
+ * g_memory_settings_backend_new:
*
- * Adds a button to @notification that activates @action when clicked.
- * @action must be an application-wide action (it must start with "app.").
+ * Creates a memory-backed #GSettingsBackend.
*
- * If @target is non-%NULL, @action will be activated with @target as
- * its parameter.
+ * This backend allows changes to settings, but does not write them
+ * to any backing storage, so the next time you run your application,
+ * the memory backend will start out with the default values again.
*
- * Since: 2.40
+ * Returns: (transfer full): a newly created #GSettingsBackend
+ * Since: 2.28
*/
/**
- * g_notification_new:
- * @title: the title of the notification
- *
- * Creates a new #GNotification with @title as its title.
+ * g_menu_append:
+ * @menu: a #GMenu
+ * @label: (nullable): the section label, or %NULL
+ * @detailed_action: (nullable): the detailed action string, or %NULL
*
- * After populating @notification with more details, it can be sent to
- * the desktop shell with g_application_send_notification(). Changing
- * any properties after this call will not have any effect until
- * resending @notification.
+ * Convenience function for appending a normal menu item to the end of
+ * @menu. Combine g_menu_item_new() and g_menu_insert_item() for a more
+ * flexible alternative.
*
- * Returns: a new #GNotification instance
- * Since: 2.40
+ * Since: 2.32
*/
/**
- * g_notification_set_body:
- * @notification: a #GNotification
- * @body: (nullable): the new body for @notification, or %NULL
+ * g_menu_append_item:
+ * @menu: a #GMenu
+ * @item: a #GMenuItem to append
*
- * Sets the body of @notification to @body.
+ * Appends @item to the end of @menu.
*
- * Since: 2.40
+ * See g_menu_insert_item() for more information.
+ *
+ * Since: 2.32
*/
/**
- * g_notification_set_default_action:
- * @notification: a #GNotification
- * @detailed_action: a detailed action name
+ * g_menu_append_section:
+ * @menu: a #GMenu
+ * @label: (nullable): the section label, or %NULL
+ * @section: a #GMenuModel with the items of the section
*
- * Sets the default action of @notification to @detailed_action. This
- * action is activated when the notification is clicked on.
+ * Convenience function for appending a section menu item to the end of
+ * @menu. Combine g_menu_item_new_section() and g_menu_insert_item() for a
+ * more flexible alternative.
*
- * The action in @detailed_action must be an application-wide action (it
- * must start with "app."). If @detailed_action contains a target, the
- * given action will be activated with that target as its parameter.
- * See g_action_parse_detailed_name() for a description of the format
- * for @detailed_action.
+ * Since: 2.32
+ */
+
+
+/**
+ * g_menu_append_submenu:
+ * @menu: a #GMenu
+ * @label: (nullable): the section label, or %NULL
+ * @submenu: a #GMenuModel with the items of the submenu
*
- * When no default action is set, the application that the notification
- * was sent on is activated.
+ * Convenience function for appending a submenu menu item to the end of
+ * @menu. Combine g_menu_item_new_submenu() and g_menu_insert_item() for a
+ * more flexible alternative.
*
- * Since: 2.40
+ * Since: 2.32
*/
/**
- * g_notification_set_default_action_and_target: (skip)
- * @notification: a #GNotification
- * @action: an action name
- * @target_format: (nullable): a #GVariant format string, or %NULL
- * @...: positional parameters, as determined by @target_format
- *
- * Sets the default action of @notification to @action. This action is
- * activated when the notification is clicked on. It must be an
- * application-wide action (it must start with "app.").
+ * g_menu_attribute_iter_get_name:
+ * @iter: a #GMenuAttributeIter
*
- * If @target_format is given, it is used to collect remaining
- * positional parameters into a #GVariant instance, similar to
- * g_variant_new(). @action will be activated with that #GVariant as its
- * parameter.
+ * Gets the name of the attribute at the current iterator position, as
+ * a string.
*
- * When no default action is set, the application that the notification
- * was sent on is activated.
+ * The iterator is not advanced.
*
- * Since: 2.40
+ * Returns: the name of the attribute
+ * Since: 2.32
*/
/**
- * g_notification_set_default_action_and_target_value: (rename-to g_notification_set_default_action_and_target)
- * @notification: a #GNotification
- * @action: an action name
- * @target: (nullable): a #GVariant to use as @action's parameter, or %NULL
+ * g_menu_attribute_iter_get_next:
+ * @iter: a #GMenuAttributeIter
+ * @out_name: (out) (optional) (transfer none): the type of the attribute
+ * @value: (out) (optional) (transfer full): the attribute value
*
- * Sets the default action of @notification to @action. This action is
- * activated when the notification is clicked on. It must be an
- * application-wide action (start with "app.").
+ * This function combines g_menu_attribute_iter_next() with
+ * g_menu_attribute_iter_get_name() and g_menu_attribute_iter_get_value().
*
- * If @target is non-%NULL, @action will be activated with @target as
- * its parameter.
+ * First the iterator is advanced to the next (possibly first) attribute.
+ * If that fails, then %FALSE is returned and there are no other
+ * effects.
*
- * When no default action is set, the application that the notification
- * was sent on is activated.
+ * If successful, @name and @value are set to the name and value of the
+ * attribute that has just been advanced to. At this point,
+ * g_menu_attribute_iter_get_name() and g_menu_attribute_iter_get_value() will
+ * return the same values again.
*
- * Since: 2.40
+ * The value returned in @name remains valid for as long as the iterator
+ * remains at the current position. The value returned in @value must
+ * be unreffed using g_variant_unref() when it is no longer in use.
+ *
+ * Returns: %TRUE on success, or %FALSE if there is no additional
+ * attribute
+ * Since: 2.32
*/
/**
- * g_notification_set_icon:
- * @notification: a #GNotification
- * @icon: the icon to be shown in @notification, as a #GIcon
+ * g_menu_attribute_iter_get_value:
+ * @iter: a #GMenuAttributeIter
*
- * Sets the icon of @notification to @icon.
+ * Gets the value of the attribute at the current iterator position.
*
- * Since: 2.40
+ * The iterator is not advanced.
+ *
+ * Returns: (transfer full): the value of the current attribute
+ * Since: 2.32
*/
/**
- * g_notification_set_priority:
- * @notification: a #GNotification
- * @priority: a #GNotificationPriority
+ * g_menu_attribute_iter_next:
+ * @iter: a #GMenuAttributeIter
*
- * Sets the priority of @notification to @priority. See
- * #GNotificationPriority for possible values.
+ * Attempts to advance the iterator to the next (possibly first)
+ * attribute.
+ *
+ * %TRUE is returned on success, or %FALSE if there are no more
+ * attributes.
+ *
+ * You must call this function when you first acquire the iterator
+ * to advance it to the first attribute (and determine if the first
+ * attribute exists at all).
+ *
+ * Returns: %TRUE on success, or %FALSE when there are no more attributes
+ * Since: 2.32
*/
/**
- * g_notification_set_title:
- * @notification: a #GNotification
- * @title: the new title for @notification
+ * g_menu_freeze:
+ * @menu: a #GMenu
*
- * Sets the title of @notification to @title.
+ * Marks @menu as frozen.
*
- * Since: 2.40
+ * After the menu is frozen, it is an error to attempt to make any
+ * changes to it. In effect this means that the #GMenu API must no
+ * longer be used.
+ *
+ * This function causes g_menu_model_is_mutable() to begin returning
+ * %FALSE, which has some positive performance implications.
+ *
+ * Since: 2.32
*/
/**
- * g_notification_set_urgent:
- * @notification: a #GNotification
- * @urgent: %TRUE if @notification is urgent
+ * g_menu_insert:
+ * @menu: a #GMenu
+ * @position: the position at which to insert the item
+ * @label: (nullable): the section label, or %NULL
+ * @detailed_action: (nullable): the detailed action string, or %NULL
*
- * Deprecated in favor of g_notification_set_priority().
+ * Convenience function for inserting a normal menu item into @menu.
+ * Combine g_menu_item_new() and g_menu_insert_item() for a more flexible
+ * alternative.
*
- * Since: 2.40
- * Deprecated: 2.42: Since 2.42, this has been deprecated in favour of
- * g_notification_set_priority().
+ * Since: 2.32
*/
/**
- * g_null_settings_backend_new:
+ * g_menu_insert_item:
+ * @menu: a #GMenu
+ * @position: the position at which to insert the item
+ * @item: the #GMenuItem to insert
*
- * Creates a readonly #GSettingsBackend.
+ * Inserts @item into @menu.
*
- * This backend does not allow changes to settings, so all settings
- * will always have their default values.
+ * The "insertion" is actually done by copying all of the attribute and
+ * link values of @item and using them to form a new item within @menu.
+ * As such, @item itself is not really inserted, but rather, a menu item
+ * that is exactly the same as the one presently described by @item.
*
- * Returns: (transfer full): a newly created #GSettingsBackend
- * Since: 2.28
+ * This means that @item is essentially useless after the insertion
+ * occurs. Any changes you make to it are ignored unless it is inserted
+ * again (at which point its updated values will be copied).
+ *
+ * You should probably just free @item once you're done.
+ *
+ * There are many convenience functions to take care of common cases.
+ * See g_menu_insert(), g_menu_insert_section() and
+ * g_menu_insert_submenu() as well as "prepend" and "append" variants of
+ * each of these functions.
+ *
+ * Since: 2.32
*/
/**
- * g_output_stream_clear_pending:
- * @stream: output stream
+ * g_menu_insert_section:
+ * @menu: a #GMenu
+ * @position: the position at which to insert the item
+ * @label: (nullable): the section label, or %NULL
+ * @section: a #GMenuModel with the items of the section
*
- * Clears the pending flag on @stream.
+ * Convenience function for inserting a section menu item into @menu.
+ * Combine g_menu_item_new_section() and g_menu_insert_item() for a more
+ * flexible alternative.
+ *
+ * Since: 2.32
*/
/**
- * g_output_stream_close:
- * @stream: A #GOutputStream.
- * @cancellable: (nullable): optional cancellable object
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * Closes the stream, releasing resources related to it.
- *
- * Once the stream is closed, all other operations will return %G_IO_ERROR_CLOSED.
- * Closing a stream multiple times will not return an error.
+ * g_menu_insert_submenu:
+ * @menu: a #GMenu
+ * @position: the position at which to insert the item
+ * @label: (nullable): the section label, or %NULL
+ * @submenu: a #GMenuModel with the items of the submenu
*
- * Closing a stream will automatically flush any outstanding buffers in the
- * stream.
+ * Convenience function for inserting a submenu menu item into @menu.
+ * Combine g_menu_item_new_submenu() and g_menu_insert_item() for a more
+ * flexible alternative.
*
- * Streams will be automatically closed when the last reference
- * is dropped, but you might want to call this function to make sure
- * resources are released as early as possible.
+ * Since: 2.32
+ */
+
+
+/**
+ * g_menu_item_get_attribute:
+ * @menu_item: a #GMenuItem
+ * @attribute: the attribute name to query
+ * @format_string: a #GVariant format string
+ * @...: positional parameters, as per @format_string
*
- * Some streams might keep the backing store of the stream (e.g. a file descriptor)
- * open after the stream is closed. See the documentation for the individual
- * stream for details.
+ * Queries the named @attribute on @menu_item.
*
- * On failure the first error that happened will be reported, but the close
- * operation will finish as much as possible. A stream that failed to
- * close will still return %G_IO_ERROR_CLOSED for all operations. Still, it
- * is important to check and report the error to the user, otherwise
- * there might be a loss of data as all data might not be written.
+ * If the attribute exists and matches the #GVariantType corresponding
+ * to @format_string then @format_string is used to deconstruct the
+ * value into the positional parameters and %TRUE is returned.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
- * Cancelling a close will still leave the stream closed, but there some streams
- * can use a faster close that doesn't block to e.g. check errors. On
- * cancellation (as with any error) there is no guarantee that all written
- * data will reach the target.
+ * If the attribute does not exist, or it does exist but has the wrong
+ * type, then the positional parameters are ignored and %FALSE is
+ * returned.
*
- * Returns: %TRUE on success, %FALSE on failure
+ * Returns: %TRUE if the named attribute was found with the expected
+ * type
+ * Since: 2.34
*/
/**
- * g_output_stream_close_async:
- * @stream: A #GOutputStream.
- * @io_priority: the io priority of the request.
- * @cancellable: (nullable): optional cancellable object
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_menu_item_get_attribute_value:
+ * @menu_item: a #GMenuItem
+ * @attribute: the attribute name to query
+ * @expected_type: (nullable): the expected type of the attribute
*
- * Requests an asynchronous close of the stream, releasing resources
- * related to it. When the operation is finished @callback will be
- * called. You can then call g_output_stream_close_finish() to get
- * the result of the operation.
+ * Queries the named @attribute on @menu_item.
*
- * For behaviour details see g_output_stream_close().
+ * If @expected_type is specified and the attribute does not have this
+ * type, %NULL is returned. %NULL is also returned if the attribute
+ * simply does not exist.
*
- * The asynchronous 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.
+ * Returns: (transfer full): the attribute value, or %NULL
+ * Since: 2.34
*/
/**
- * g_output_stream_close_finish:
- * @stream: a #GOutputStream.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_menu_item_get_link:
+ * @menu_item: a #GMenuItem
+ * @link: the link name to query
*
- * Closes an output stream.
+ * Queries the named @link on @menu_item.
*
- * Returns: %TRUE if stream was successfully closed, %FALSE otherwise.
+ * Returns: (transfer full): the link, or %NULL
+ * Since: 2.34
*/
/**
- * g_output_stream_flush:
- * @stream: a #GOutputStream.
- * @cancellable: (nullable): optional cancellable object
- * @error: location to store the error occurring, or %NULL to ignore
+ * g_menu_item_new:
+ * @label: (nullable): the section label, or %NULL
+ * @detailed_action: (nullable): the detailed action string, or %NULL
*
- * Forces a write of all user-space buffered data for the given
- * @stream. Will block during the operation. Closing the stream will
- * implicitly cause a flush.
+ * Creates a new #GMenuItem.
*
- * This function is optional for inherited classes.
+ * If @label is non-%NULL it is used to set the "label" attribute of the
+ * new item.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * If @detailed_action is non-%NULL it is used to set the "action" and
+ * possibly the "target" attribute of the new item. See
+ * g_menu_item_set_detailed_action() for more information.
*
- * Returns: %TRUE on success, %FALSE on error
+ * Returns: a new #GMenuItem
+ * Since: 2.32
*/
/**
- * g_output_stream_flush_async:
- * @stream: a #GOutputStream.
- * @io_priority: the io priority of the request.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_menu_item_new_from_model:
+ * @model: a #GMenuModel
+ * @item_index: the index of an item in @model
*
- * Forces an asynchronous write of all user-space buffered data for
- * the given @stream.
- * For behaviour details see g_output_stream_flush().
+ * Creates a #GMenuItem as an exact copy of an existing menu item in a
+ * #GMenuModel.
*
- * When the operation is finished @callback will be
- * called. You can then call g_output_stream_flush_finish() to get the
- * result of the operation.
+ * @item_index must be valid (ie: be sure to call
+ * g_menu_model_get_n_items() first).
+ *
+ * Returns: a new #GMenuItem.
+ * Since: 2.34
*/
/**
- * g_output_stream_flush_finish:
- * @stream: a #GOutputStream.
- * @result: a GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_menu_item_new_section:
+ * @label: (nullable): the section label, or %NULL
+ * @section: a #GMenuModel with the items of the section
*
- * Finishes flushing an output stream.
+ * Creates a new #GMenuItem representing a section.
*
- * Returns: %TRUE if flush operation succeeded, %FALSE otherwise.
+ * This is a convenience API around g_menu_item_new() and
+ * g_menu_item_set_section().
+ *
+ * The effect of having one menu appear as a section of another is
+ * exactly as it sounds: the items from @section become a direct part of
+ * the menu that @menu_item is added to.
+ *
+ * Visual separation is typically displayed between two non-empty
+ * sections. If @label is non-%NULL then it will be encorporated into
+ * this visual indication. This allows for labeled subsections of a
+ * menu.
+ *
+ * As a simple example, consider a typical "Edit" menu from a simple
+ * program. It probably contains an "Undo" and "Redo" item, followed by
+ * a separator, followed by "Cut", "Copy" and "Paste".
+ *
+ * This would be accomplished by creating three #GMenu instances. The
+ * first would be populated with the "Undo" and "Redo" items, and the
+ * second with the "Cut", "Copy" and "Paste" items. The first and
+ * second menus would then be added as submenus of the third. In XML
+ * format, this would look something like the following:
+ * |[
+ * <menu id='edit-menu'>
+ * <section>
+ * <item label='Undo'/>
+ * <item label='Redo'/>
+ * </section>
+ * <section>
+ * <item label='Cut'/>
+ * <item label='Copy'/>
+ * <item label='Paste'/>
+ * </section>
+ * </menu>
+ * ]|
+ *
+ * The following example is exactly equivalent. It is more illustrative
+ * of the exact relationship between the menus and items (keeping in
+ * mind that the 'link' element defines a new menu that is linked to the
+ * containing one). The style of the second example is more verbose and
+ * difficult to read (and therefore not recommended except for the
+ * purpose of understanding what is really going on).
+ * |[
+ * <menu id='edit-menu'>
+ * <item>
+ * <link name='section'>
+ * <item label='Undo'/>
+ * <item label='Redo'/>
+ * </link>
+ * </item>
+ * <item>
+ * <link name='section'>
+ * <item label='Cut'/>
+ * <item label='Copy'/>
+ * <item label='Paste'/>
+ * </link>
+ * </item>
+ * </menu>
+ * ]|
+ *
+ * Returns: a new #GMenuItem
+ * Since: 2.32
*/
/**
- * g_output_stream_has_pending:
- * @stream: a #GOutputStream.
+ * g_menu_item_new_submenu:
+ * @label: (nullable): the section label, or %NULL
+ * @submenu: a #GMenuModel with the items of the submenu
*
- * Checks if an output stream has pending actions.
+ * Creates a new #GMenuItem representing a submenu.
*
- * Returns: %TRUE if @stream has pending actions.
+ * This is a convenience API around g_menu_item_new() and
+ * g_menu_item_set_submenu().
+ *
+ * Returns: a new #GMenuItem
+ * Since: 2.32
*/
/**
- * g_output_stream_is_closed:
- * @stream: a #GOutputStream.
+ * g_menu_item_set_action_and_target:
+ * @menu_item: a #GMenuItem
+ * @action: (nullable): the name of the action for this item
+ * @format_string: (nullable): a GVariant format string
+ * @...: positional parameters, as per @format_string
*
- * Checks if an output stream has already been closed.
+ * Sets or unsets the "action" and "target" attributes of @menu_item.
*
- * Returns: %TRUE if @stream is closed. %FALSE otherwise.
+ * If @action is %NULL then both the "action" and "target" attributes
+ * are unset (and @format_string is ignored along with the positional
+ * parameters).
+ *
+ * If @action is non-%NULL then the "action" attribute is set.
+ * @format_string is then inspected. If it is non-%NULL then the proper
+ * position parameters are collected to create a #GVariant instance to
+ * use as the target value. If it is %NULL then the positional
+ * parameters are ignored and the "target" attribute is unset.
+ *
+ * See also g_menu_item_set_action_and_target_value() for an equivalent
+ * call that directly accepts a #GVariant. See
+ * g_menu_item_set_detailed_action() for a more convenient version that
+ * works with string-typed targets.
+ *
+ * See also g_menu_item_set_action_and_target_value() for a
+ * description of the semantics of the action and target attributes.
+ *
+ * Since: 2.32
*/
/**
- * g_output_stream_is_closing:
- * @stream: a #GOutputStream.
+ * g_menu_item_set_action_and_target_value:
+ * @menu_item: a #GMenuItem
+ * @action: (nullable): the name of the action for this item
+ * @target_value: (nullable): a #GVariant to use as the action target
*
- * Checks if an output stream is being closed. This can be
- * used inside e.g. a flush implementation to see if the
- * flush (or other i/o operation) is called from within
- * the closing operation.
+ * Sets or unsets the "action" and "target" attributes of @menu_item.
*
- * Returns: %TRUE if @stream is being closed. %FALSE otherwise.
- * Since: 2.24
+ * If @action is %NULL then both the "action" and "target" attributes
+ * are unset (and @target_value is ignored).
+ *
+ * If @action is non-%NULL then the "action" attribute is set. The
+ * "target" attribute is then set to the value of @target_value if it is
+ * non-%NULL or unset otherwise.
+ *
+ * Normal menu items (ie: not submenu, section or other custom item
+ * types) are expected to have the "action" attribute set to identify
+ * the action that they are associated with. The state type of the
+ * action help to determine the disposition of the menu item. See
+ * #GAction and #GActionGroup for an overview of actions.
+ *
+ * In general, clicking on the menu item will result in activation of
+ * the named action with the "target" attribute given as the parameter
+ * to the action invocation. If the "target" attribute is not set then
+ * the action is invoked with no parameter.
+ *
+ * If the action has no state then the menu item is usually drawn as a
+ * plain menu item (ie: with no additional decoration).
+ *
+ * If the action has a boolean state then the menu item is usually drawn
+ * as a toggle menu item (ie: with a checkmark or equivalent
+ * indication). The item should be marked as 'toggled' or 'checked'
+ * when the boolean state is %TRUE.
+ *
+ * If the action has a string state then the menu item is usually drawn
+ * as a radio menu item (ie: with a radio bullet or equivalent
+ * indication). The item should be marked as 'selected' when the string
+ * state is equal to the value of the @target property.
+ *
+ * See g_menu_item_set_action_and_target() or
+ * g_menu_item_set_detailed_action() for two equivalent calls that are
+ * probably more convenient for most uses.
+ *
+ * Since: 2.32
*/
/**
- * g_output_stream_printf:
- * @stream: a #GOutputStream.
- * @bytes_written: (out) (optional): location to store the number of bytes that was
- * written to the stream
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
- * @format: the format string. See the printf() documentation
- * @...: the parameters to insert into the format string
+ * g_menu_item_set_attribute:
+ * @menu_item: a #GMenuItem
+ * @attribute: the attribute to set
+ * @format_string: (nullable): a #GVariant format string, or %NULL
+ * @...: positional parameters, as per @format_string
*
- * This is a utility function around g_output_stream_write_all(). It
- * uses g_strdup_vprintf() to turn @format and @... into a string that
- * is then written to @stream.
+ * Sets or unsets an attribute on @menu_item.
*
- * See the documentation of g_output_stream_write_all() about the
- * behavior of the actual write operation.
+ * The attribute to set or unset is specified by @attribute. This
+ * can be one of the standard attribute names %G_MENU_ATTRIBUTE_LABEL,
+ * %G_MENU_ATTRIBUTE_ACTION, %G_MENU_ATTRIBUTE_TARGET, or a custom
+ * attribute name.
+ * Attribute names are restricted to lowercase characters, numbers
+ * and '-'. Furthermore, the names must begin with a lowercase character,
+ * must not end with a '-', and must not contain consecutive dashes.
*
- * Note that partial writes cannot be properly checked with this
- * function due to the variable length of the written string, if you
- * need precise control over partial write failures, you need to
- * create you own printf()-like wrapper around g_output_stream_write()
- * or g_output_stream_write_all().
+ * If @format_string is non-%NULL then the proper position parameters
+ * are collected to create a #GVariant instance to use as the attribute
+ * value. If it is %NULL then the positional parameterrs are ignored
+ * and the named attribute is unset.
*
- * Since: 2.40
- * Returns: %TRUE on success, %FALSE if there was an error
+ * See also g_menu_item_set_attribute_value() for an equivalent call
+ * that directly accepts a #GVariant.
+ *
+ * Since: 2.32
*/
/**
- * g_output_stream_set_pending:
- * @stream: a #GOutputStream.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_menu_item_set_attribute_value:
+ * @menu_item: a #GMenuItem
+ * @attribute: the attribute to set
+ * @value: (nullable): a #GVariant to use as the value, or %NULL
*
- * Sets @stream to have actions pending. If the pending flag is
- * already set or @stream is closed, it will return %FALSE and set
- * @error.
+ * Sets or unsets an attribute on @menu_item.
*
- * Returns: %TRUE if pending was previously unset and is now set.
+ * The attribute to set or unset is specified by @attribute. This
+ * can be one of the standard attribute names %G_MENU_ATTRIBUTE_LABEL,
+ * %G_MENU_ATTRIBUTE_ACTION, %G_MENU_ATTRIBUTE_TARGET, or a custom
+ * attribute name.
+ * Attribute names are restricted to lowercase characters, numbers
+ * and '-'. Furthermore, the names must begin with a lowercase character,
+ * must not end with a '-', and must not contain consecutive dashes.
+ *
+ * must consist only of lowercase
+ * ASCII characters, digits and '-'.
+ *
+ * If @value is non-%NULL then it is used as the new value for the
+ * attribute. If @value is %NULL then the attribute is unset. If
+ * the @value #GVariant is floating, it is consumed.
+ *
+ * See also g_menu_item_set_attribute() for a more convenient way to do
+ * the same.
+ *
+ * Since: 2.32
*/
/**
- * g_output_stream_splice:
- * @stream: a #GOutputStream.
- * @source: a #GInputStream.
- * @flags: a set of #GOutputStreamSpliceFlags.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_menu_item_set_detailed_action:
+ * @menu_item: a #GMenuItem
+ * @detailed_action: the "detailed" action string
*
- * Splices an input stream into an output stream.
+ * Sets the "action" and possibly the "target" attribute of @menu_item.
*
- * Returns: a #gssize containing the size of the data spliced, or
- * -1 if an error occurred. Note that if the number of bytes
- * spliced is greater than %G_MAXSSIZE, then that will be
- * returned, and there is no way to determine the actual number
- * of bytes spliced.
+ * The format of @detailed_action is the same format parsed by
+ * g_action_parse_detailed_name().
+ *
+ * See g_menu_item_set_action_and_target() or
+ * g_menu_item_set_action_and_target_value() for more flexible (but
+ * slightly less convenient) alternatives.
+ *
+ * See also g_menu_item_set_action_and_target_value() for a description of
+ * the semantics of the action and target attributes.
+ *
+ * Since: 2.32
*/
/**
- * g_output_stream_splice_async:
- * @stream: a #GOutputStream.
- * @source: a #GInputStream.
- * @flags: a set of #GOutputStreamSpliceFlags.
- * @io_priority: the io priority of the request.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
+ * g_menu_item_set_icon:
+ * @menu_item: a #GMenuItem
+ * @icon: a #GIcon, or %NULL
*
- * Splices a stream asynchronously.
- * When the operation is finished @callback will be called.
- * You can then call g_output_stream_splice_finish() to get the
- * result of the operation.
+ * Sets (or unsets) the icon on @menu_item.
*
- * For the synchronous, blocking version of this function, see
- * g_output_stream_splice().
+ * This call is the same as calling g_icon_serialize() and using the
+ * result as the value to g_menu_item_set_attribute_value() for
+ * %G_MENU_ATTRIBUTE_ICON.
+ *
+ * This API is only intended for use with "noun" menu items; things like
+ * bookmarks or applications in an "Open With" menu. Don't use it on
+ * menu items corresponding to verbs (eg: stock icons for 'Save' or
+ * 'Quit').
+ *
+ * If @icon is %NULL then the icon is unset.
+ *
+ * Since: 2.38
*/
/**
- * g_output_stream_splice_finish:
- * @stream: a #GOutputStream.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_menu_item_set_label:
+ * @menu_item: a #GMenuItem
+ * @label: (nullable): the label to set, or %NULL to unset
*
- * Finishes an asynchronous stream splice operation.
+ * Sets or unsets the "label" attribute of @menu_item.
*
- * Returns: a #gssize of the number of bytes spliced. Note that if the
- * number of bytes spliced is greater than %G_MAXSSIZE, then that
- * will be returned, and there is no way to determine the actual
- * number of bytes spliced.
+ * If @label is non-%NULL it is used as the label for the menu item. If
+ * it is %NULL then the label attribute is unset.
+ *
+ * Since: 2.32
*/
/**
- * g_output_stream_vprintf:
- * @stream: a #GOutputStream.
- * @bytes_written: (out) (optional): location to store the number of bytes that was
- * written to the stream
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
- * @format: the format string. See the printf() documentation
- * @args: the parameters to insert into the format string
- *
- * This is a utility function around g_output_stream_write_all(). It
- * uses g_strdup_vprintf() to turn @format and @args into a string that
- * is then written to @stream.
+ * g_menu_item_set_link:
+ * @menu_item: a #GMenuItem
+ * @link: type of link to establish or unset
+ * @model: (nullable): the #GMenuModel to link to (or %NULL to unset)
*
- * See the documentation of g_output_stream_write_all() about the
- * behavior of the actual write operation.
+ * Creates a link from @menu_item to @model if non-%NULL, or unsets it.
*
- * Note that partial writes cannot be properly checked with this
- * function due to the variable length of the written string, if you
- * need precise control over partial write failures, you need to
- * create you own printf()-like wrapper around g_output_stream_write()
- * or g_output_stream_write_all().
+ * Links are used to establish a relationship between a particular menu
+ * item and another menu. For example, %G_MENU_LINK_SUBMENU is used to
+ * associate a submenu with a particular menu item, and %G_MENU_LINK_SECTION
+ * is used to create a section. Other types of link can be used, but there
+ * is no guarantee that clients will be able to make sense of them.
+ * Link types are restricted to lowercase characters, numbers
+ * and '-'. Furthermore, the names must begin with a lowercase character,
+ * must not end with a '-', and must not contain consecutive dashes.
*
- * Since: 2.40
- * Returns: %TRUE on success, %FALSE if there was an error
+ * Since: 2.32
*/
/**
- * g_output_stream_write: (virtual write_fn)
- * @stream: a #GOutputStream.
- * @buffer: (array length=count) (element-type guint8): the buffer containing the data to write.
- * @count: the number of bytes to write
- * @cancellable: (nullable): optional cancellable object
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * Tries to write @count bytes from @buffer into the stream. Will block
- * during the operation.
- *
- * If count is 0, returns 0 and does nothing. A value of @count
- * larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
- *
- * On success, the number of bytes written to the stream is returned.
- * 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, or if there is not enough
- * storage in the stream. All writes block until at least one byte
- * is written or an error occurs; 0 is never returned (unless
- * @count is 0).
+ * g_menu_item_set_section:
+ * @menu_item: a #GMenuItem
+ * @section: (nullable): a #GMenuModel, or %NULL
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- * operation was partially finished when the operation was cancelled the
- * partial result will be returned, without an error.
+ * Sets or unsets the "section" link of @menu_item to @section.
*
- * On error -1 is returned and @error is set accordingly.
+ * The effect of having one menu appear as a section of another is
+ * exactly as it sounds: the items from @section become a direct part of
+ * the menu that @menu_item is added to. See g_menu_item_new_section()
+ * for more information about what it means for a menu item to be a
+ * section.
*
- * Returns: Number of bytes written, or -1 on error
+ * Since: 2.32
*/
/**
- * g_output_stream_write_all:
- * @stream: a #GOutputStream.
- * @buffer: (array length=count) (element-type guint8): the buffer containing the data to write.
- * @count: the number of bytes to write
- * @bytes_written: (out) (optional): location to store the number of bytes that was
- * written to the stream
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
+ * g_menu_item_set_submenu:
+ * @menu_item: a #GMenuItem
+ * @submenu: (nullable): a #GMenuModel, or %NULL
*
- * Tries to write @count bytes from @buffer into the stream. Will block
- * during the operation.
+ * Sets or unsets the "submenu" link of @menu_item to @submenu.
*
- * This function is similar to g_output_stream_write(), except it tries to
- * write as many bytes as requested, only stopping on an error.
+ * If @submenu is non-%NULL, it is linked to. If it is %NULL then the
+ * link is unset.
*
- * On a successful write of @count bytes, %TRUE is returned, and @bytes_written
- * is set to @count.
+ * The effect of having one menu appear as a submenu of another is
+ * exactly as it sounds.
+ *
+ * Since: 2.32
+ */
+
+
+/**
+ * g_menu_link_iter_get_name:
+ * @iter: a #GMenuLinkIter
*
- * If there is an error during the operation %FALSE is returned and @error
- * is set to indicate the error status.
+ * Gets the name of the link at the current iterator position.
*
- * 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().
+ * The iterator is not advanced.
*
- * Returns: %TRUE on success, %FALSE if there was an error
+ * Returns: the type of the link
+ * Since: 2.32
*/
/**
- * g_output_stream_write_all_async:
- * @stream: A #GOutputStream
- * @buffer: (array length=count) (element-type guint8): the buffer containing the data to write
- * @count: the number of bytes to write
- * @io_priority: the io priority of the request
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
- *
- * 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.
+ * g_menu_link_iter_get_next:
+ * @iter: a #GMenuLinkIter
+ * @out_link: (out) (optional) (transfer none): the name of the link
+ * @value: (out) (optional) (transfer full): the linked #GMenuModel
*
- * This is the asynchronous version of g_output_stream_write_all().
+ * This function combines g_menu_link_iter_next() with
+ * g_menu_link_iter_get_name() and g_menu_link_iter_get_value().
*
- * Call g_output_stream_write_all_finish() to collect the result.
+ * First the iterator is advanced to the next (possibly first) link.
+ * If that fails, then %FALSE is returned and there are no other effects.
*
- * 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.
+ * If successful, @out_link and @value are set to the name and #GMenuModel
+ * of the link that has just been advanced to. At this point,
+ * g_menu_link_iter_get_name() and g_menu_link_iter_get_value() will return the
+ * same values again.
*
- * Note that no copy of @buffer will be made, so it must stay valid
- * until @callback is called.
+ * The value returned in @out_link remains valid for as long as the iterator
+ * remains at the current position. The value returned in @value must
+ * be unreffed using g_object_unref() when it is no longer in use.
*
- * Since: 2.44
+ * Returns: %TRUE on success, or %FALSE if there is no additional link
+ * Since: 2.32
*/
/**
- * g_output_stream_write_all_finish:
- * @stream: a #GOutputStream
- * @result: a #GAsyncResult
- * @bytes_written: (out) (optional): location to store the number of bytes that was written to the stream
- * @error: a #GError location to store the error occurring, or %NULL to ignore.
+ * g_menu_link_iter_get_value:
+ * @iter: a #GMenuLinkIter
*
- * Finishes an asynchronous stream write operation started with
- * g_output_stream_write_all_async().
+ * Gets the linked #GMenuModel at the current iterator position.
*
- * 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().
+ * The iterator is not advanced.
*
- * Returns: %TRUE on success, %FALSE if there was an error
- * Since: 2.44
+ * Returns: (transfer full): the #GMenuModel that is linked to
+ * Since: 2.32
*/
/**
- * g_output_stream_write_async:
- * @stream: A #GOutputStream.
- * @buffer: (array length=count) (element-type guint8): the buffer containing the data to write.
- * @count: the number of bytes to write
- * @io_priority: the io priority of the request.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_menu_link_iter_next:
+ * @iter: a #GMenuLinkIter
*
- * 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_finish() to get the result of the
- * operation.
+ * Attempts to advance the iterator to the next (possibly first)
+ * link.
*
- * During an async request no other sync and async calls are allowed,
- * and will result in %G_IO_ERROR_PENDING errors.
+ * %TRUE is returned on success, or %FALSE if there are no more links.
*
- * A value of @count larger than %G_MAXSSIZE will cause a
- * %G_IO_ERROR_INVALID_ARGUMENT error.
+ * You must call this function when you first acquire the iterator to
+ * advance it to the first link (and determine if the first link exists
+ * at all).
*
- * On success, the number of bytes written will be passed to the
- * @callback. 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.
+ * Returns: %TRUE on success, or %FALSE when there are no more links
+ * Since: 2.32
+ */
+
+
+/**
+ * g_menu_model_get_item_attribute:
+ * @model: a #GMenuModel
+ * @item_index: the index of the item
+ * @attribute: the attribute to query
+ * @format_string: a #GVariant format string
+ * @...: positional parameters, as per @format_string
*
- * You are guaranteed that this method will never fail with
- * %G_IO_ERROR_WOULD_BLOCK - if @stream can't accept more data, the
- * method will just wait until this changes.
+ * Queries item at position @item_index in @model for the attribute
+ * specified by @attribute.
*
- * 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.
+ * If the attribute exists and matches the #GVariantType corresponding
+ * to @format_string then @format_string is used to deconstruct the
+ * value into the positional parameters and %TRUE is returned.
*
- * The asynchronous 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.
+ * If the attribute does not exist, or it does exist but has the wrong
+ * type, then the positional parameters are ignored and %FALSE is
+ * returned.
*
- * For the synchronous, blocking version of this function, see
- * g_output_stream_write().
+ * This function is a mix of g_menu_model_get_item_attribute_value() and
+ * g_variant_get(), followed by a g_variant_unref(). As such,
+ * @format_string must make a complete copy of the data (since the
+ * #GVariant may go away after the call to g_variant_unref()). In
+ * particular, no '&' characters are allowed in @format_string.
*
- * Note that no copy of @buffer will be made, so it must stay valid
- * until @callback is called. See g_output_stream_write_bytes_async()
- * for a #GBytes version that will automatically hold a reference to
- * the contents (without copying) for the duration of the call.
+ * Returns: %TRUE if the named attribute was found with the expected
+ * type
+ * Since: 2.32
*/
/**
- * g_output_stream_write_bytes:
- * @stream: a #GOutputStream.
- * @bytes: the #GBytes to write
- * @cancellable: (nullable): optional cancellable object
- * @error: location to store the error occurring, or %NULL to ignore
+ * g_menu_model_get_item_attribute_value:
+ * @model: a #GMenuModel
+ * @item_index: the index of the item
+ * @attribute: the attribute to query
+ * @expected_type: (nullable): the expected type of the attribute, or
+ * %NULL
*
- * A wrapper function for g_output_stream_write() which takes a
- * #GBytes as input. This can be more convenient for use by language
- * bindings or in other cases where the refcounted nature of #GBytes
- * is helpful over a bare pointer interface.
+ * Queries the item at position @item_index in @model for the attribute
+ * specified by @attribute.
*
- * However, note that this function may still perform partial writes,
- * just like g_output_stream_write(). If that occurs, to continue
- * writing, you will need to create a new #GBytes containing just the
- * remaining bytes, using g_bytes_new_from_bytes(). Passing the same
- * #GBytes instance multiple times potentially can result in duplicated
- * data in the output stream.
+ * If @expected_type is non-%NULL then it specifies the expected type of
+ * the attribute. If it is %NULL then any type will be accepted.
*
- * Returns: Number of bytes written, or -1 on error
+ * If the attribute exists and matches @expected_type (or if the
+ * expected type is unspecified) then the value is returned.
+ *
+ * If the attribute does not exist, or does not match the expected type
+ * then %NULL is returned.
+ *
+ * Returns: (transfer full): the value of the attribute
+ * Since: 2.32
*/
/**
- * g_output_stream_write_bytes_async:
- * @stream: A #GOutputStream.
- * @bytes: The bytes to write
- * @io_priority: the io priority of the request.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): callback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_menu_model_get_item_link:
+ * @model: a #GMenuModel
+ * @item_index: the index of the item
+ * @link: the link to query
*
- * This function is similar to g_output_stream_write_async(), but
- * takes a #GBytes as input. Due to the refcounted nature of #GBytes,
- * this allows the stream to avoid taking a copy of the data.
+ * Queries the item at position @item_index in @model for the link
+ * specified by @link.
*
- * However, note that this function may still perform partial writes,
- * just like g_output_stream_write_async(). If that occurs, to continue
- * writing, you will need to create a new #GBytes containing just the
- * remaining bytes, using g_bytes_new_from_bytes(). Passing the same
- * #GBytes instance multiple times potentially can result in duplicated
- * data in the output stream.
+ * If the link exists, the linked #GMenuModel is returned. If the link
+ * does not exist, %NULL is returned.
*
- * For the synchronous, blocking version of this function, see
- * g_output_stream_write_bytes().
+ * Returns: (transfer full): the linked #GMenuModel, or %NULL
+ * Since: 2.32
*/
/**
- * g_output_stream_write_bytes_finish:
- * @stream: a #GOutputStream.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_menu_model_get_n_items:
+ * @model: a #GMenuModel
*
- * Finishes a stream write-from-#GBytes operation.
+ * Query the number of items in @model.
*
- * Returns: a #gssize containing the number of bytes written to the stream.
+ * Returns: the number of items
+ * Since: 2.32
*/
/**
- * g_output_stream_write_finish:
- * @stream: a #GOutputStream.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_menu_model_is_mutable:
+ * @model: a #GMenuModel
*
- * Finishes a stream write operation.
+ * Queries if @model is mutable.
*
- * Returns: a #gssize containing the number of bytes written to the stream.
+ * An immutable #GMenuModel will never emit the #GMenuModel::items-changed
+ * signal. Consumers of the model may make optimisations accordingly.
+ *
+ * Returns: %TRUE if the model is mutable (ie: "items-changed" may be
+ * emitted).
+ * Since: 2.32
*/
/**
- * g_permission_acquire:
- * @permission: a #GPermission instance
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a pointer to a %NULL #GError, or %NULL
- *
- * Attempts to acquire the permission represented by @permission.
+ * g_menu_model_items_changed:
+ * @model: a #GMenuModel
+ * @position: the position of the change
+ * @removed: the number of items removed
+ * @added: the number of items added
*
- * The precise method by which this happens depends on the permission
- * and the underlying authentication mechanism. A simple example is
- * that a dialog may appear asking the user to enter their password.
+ * Requests emission of the #GMenuModel::items-changed signal on @model.
*
- * You should check with g_permission_get_can_acquire() before calling
- * this function.
+ * This function should never be called except by #GMenuModel
+ * subclasses. Any other calls to this function will very likely lead
+ * to a violation of the interface of the model.
*
- * If the permission is acquired then %TRUE is returned. Otherwise,
- * %FALSE is returned and @error is set appropriately.
+ * The implementation should update its internal representation of the
+ * menu before emitting the signal. The implementation should further
+ * expect to receive queries about the new state of the menu (and
+ * particularly added menu items) while signal handlers are running.
*
- * This call is blocking, likely for a very long time (in the case that
- * user interaction is required). See g_permission_acquire_async() for
- * the non-blocking version.
+ * The implementation must dispatch this call directly from a mainloop
+ * entry and not in response to calls -- particularly those from the
+ * #GMenuModel API. Said another way: the menu must not change while
+ * user code is running without returning to the mainloop.
*
- * Returns: %TRUE if the permission was successfully acquired
- * Since: 2.26
+ * Since: 2.32
*/
/**
- * g_permission_acquire_async:
- * @permission: a #GPermission instance
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: the #GAsyncReadyCallback to call when done
- * @user_data: the user data to pass to @callback
+ * g_menu_model_iterate_item_attributes:
+ * @model: a #GMenuModel
+ * @item_index: the index of the item
*
- * Attempts to acquire the permission represented by @permission.
+ * Creates a #GMenuAttributeIter to iterate over the attributes of
+ * the item at position @item_index in @model.
*
- * This is the first half of the asynchronous version of
- * g_permission_acquire().
+ * You must free the iterator with g_object_unref() when you are done.
*
- * Since: 2.26
+ * Returns: (transfer full): a new #GMenuAttributeIter
+ * Since: 2.32
*/
/**
- * g_permission_acquire_finish:
- * @permission: a #GPermission instance
- * @result: the #GAsyncResult given to the #GAsyncReadyCallback
- * @error: a pointer to a %NULL #GError, or %NULL
+ * g_menu_model_iterate_item_links:
+ * @model: a #GMenuModel
+ * @item_index: the index of the item
*
- * Collects the result of attempting to acquire the permission
- * represented by @permission.
+ * Creates a #GMenuLinkIter to iterate over the links of the item at
+ * position @item_index in @model.
*
- * This is the second half of the asynchronous version of
- * g_permission_acquire().
+ * You must free the iterator with g_object_unref() when you are done.
*
- * Returns: %TRUE if the permission was successfully acquired
- * Since: 2.26
+ * Returns: (transfer full): a new #GMenuLinkIter
+ * Since: 2.32
*/
/**
- * g_permission_get_allowed:
- * @permission: a #GPermission instance
+ * g_menu_new:
*
- * Gets the value of the 'allowed' property. This property is %TRUE if
- * the caller currently has permission to perform the action that
- * @permission represents the permission to perform.
+ * Creates a new #GMenu.
*
- * Returns: the value of the 'allowed' property
- * Since: 2.26
+ * The new menu has no items.
+ *
+ * Returns: a new #GMenu
+ * Since: 2.32
*/
/**
- * g_permission_get_can_acquire:
- * @permission: a #GPermission instance
+ * g_menu_prepend:
+ * @menu: a #GMenu
+ * @label: (nullable): the section label, or %NULL
+ * @detailed_action: (nullable): the detailed action string, or %NULL
*
- * Gets the value of the 'can-acquire' property. This property is %TRUE
- * if it is generally possible to acquire the permission by calling
- * g_permission_acquire().
+ * Convenience function for prepending a normal menu item to the start
+ * of @menu. Combine g_menu_item_new() and g_menu_insert_item() for a more
+ * flexible alternative.
*
- * Returns: the value of the 'can-acquire' property
- * Since: 2.26
+ * Since: 2.32
*/
/**
- * g_permission_get_can_release:
- * @permission: a #GPermission instance
+ * g_menu_prepend_item:
+ * @menu: a #GMenu
+ * @item: a #GMenuItem to prepend
*
- * Gets the value of the 'can-release' property. This property is %TRUE
- * if it is generally possible to release the permission by calling
- * g_permission_release().
+ * Prepends @item to the start of @menu.
*
- * Returns: the value of the 'can-release' property
- * Since: 2.26
+ * See g_menu_insert_item() for more information.
+ *
+ * Since: 2.32
*/
/**
- * g_permission_impl_update:
- * @permission: a #GPermission instance
- * @allowed: the new value for the 'allowed' property
- * @can_acquire: the new value for the 'can-acquire' property
- * @can_release: the new value for the 'can-release' property
- *
- * This function is called by the #GPermission implementation to update
- * the properties of the permission. You should never call this
- * function except from a #GPermission implementation.
+ * g_menu_prepend_section:
+ * @menu: a #GMenu
+ * @label: (nullable): the section label, or %NULL
+ * @section: a #GMenuModel with the items of the section
*
- * GObject notify signals are generated, as appropriate.
+ * Convenience function for prepending a section menu item to the start
+ * of @menu. Combine g_menu_item_new_section() and g_menu_insert_item() for
+ * a more flexible alternative.
*
- * Since: 2.26
+ * Since: 2.32
*/
/**
- * g_permission_release:
- * @permission: a #GPermission instance
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a pointer to a %NULL #GError, or %NULL
+ * g_menu_prepend_submenu:
+ * @menu: a #GMenu
+ * @label: (nullable): the section label, or %NULL
+ * @submenu: a #GMenuModel with the items of the submenu
*
- * Attempts to release the permission represented by @permission.
+ * Convenience function for prepending a submenu menu item to the start
+ * of @menu. Combine g_menu_item_new_submenu() and g_menu_insert_item() for
+ * a more flexible alternative.
*
- * The precise method by which this happens depends on the permission
- * and the underlying authentication mechanism. In most cases the
- * permission will be dropped immediately without further action.
+ * Since: 2.32
+ */
+
+
+/**
+ * g_menu_remove:
+ * @menu: a #GMenu
+ * @position: the position of the item to remove
*
- * You should check with g_permission_get_can_release() before calling
- * this function.
+ * Removes an item from the menu.
*
- * If the permission is released then %TRUE is returned. Otherwise,
- * %FALSE is returned and @error is set appropriately.
+ * @position gives the index of the item to remove.
*
- * This call is blocking, likely for a very long time (in the case that
- * user interaction is required). See g_permission_release_async() for
- * the non-blocking version.
+ * It is an error if position is not in range the range from 0 to one
+ * less than the number of items in the menu.
*
- * Returns: %TRUE if the permission was successfully released
- * Since: 2.26
+ * It is not possible to remove items by identity since items are added
+ * to the menu simply by copying their links and attributes (ie:
+ * identity of the item itself is not preserved).
+ *
+ * Since: 2.32
*/
/**
- * g_permission_release_async:
- * @permission: a #GPermission instance
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: the #GAsyncReadyCallback to call when done
- * @user_data: the user data to pass to @callback
- *
- * Attempts to release the permission represented by @permission.
+ * g_menu_remove_all:
+ * @menu: a #GMenu
*
- * This is the first half of the asynchronous version of
- * g_permission_release().
+ * Removes all items in the menu.
*
- * Since: 2.26
+ * Since: 2.38
*/
/**
- * g_permission_release_finish:
- * @permission: a #GPermission instance
- * @result: the #GAsyncResult given to the #GAsyncReadyCallback
- * @error: a pointer to a %NULL #GError, or %NULL
+ * g_mount_can_eject:
+ * @mount: a #GMount.
*
- * Collects the result of attempting to release the permission
- * represented by @permission.
+ * Checks if @mount can be ejected.
*
- * This is the second half of the asynchronous version of
- * g_permission_release().
+ * Returns: %TRUE if the @mount can be ejected.
+ */
+
+
+/**
+ * g_mount_can_unmount:
+ * @mount: a #GMount.
*
- * Returns: %TRUE if the permission was successfully released
- * Since: 2.26
+ * Checks if @mount can be unmounted.
+ *
+ * Returns: %TRUE if the @mount can be unmounted.
*/
/**
- * g_pollable_input_stream_can_poll:
- * @stream: a #GPollableInputStream.
+ * g_mount_eject:
+ * @mount: a #GMount.
+ * @flags: flags affecting the unmount if required for eject
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
+ * @user_data: user data passed to @callback.
*
- * Checks if @stream is actually pollable. Some classes may implement
- * #GPollableInputStream but have only certain instances of that class
- * be pollable. If this method returns %FALSE, then the behavior of
- * other #GPollableInputStream methods is undefined.
+ * Ejects a mount. This is an asynchronous operation, and is
+ * finished by calling g_mount_eject_finish() with the @mount
+ * and #GAsyncResult data returned in the @callback.
*
- * For any given stream, the value returned by this method is constant;
- * a stream cannot switch from pollable to non-pollable or vice versa.
+ * Deprecated: 2.22: Use g_mount_eject_with_operation() instead.
+ */
+
+
+/**
+ * g_mount_eject_finish:
+ * @mount: a #GMount.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Returns: %TRUE if @stream is pollable, %FALSE if not.
- * Since: 2.28
+ * Finishes ejecting a mount. If any errors occurred during the operation,
+ * @error will be set to contain the errors and %FALSE will be returned.
+ *
+ * Returns: %TRUE if the mount was successfully ejected. %FALSE otherwise.
+ * Deprecated: 2.22: Use g_mount_eject_with_operation_finish() instead.
*/
/**
- * g_pollable_input_stream_create_source:
- * @stream: a #GPollableInputStream.
- * @cancellable: (nullable): a #GCancellable, or %NULL
+ * g_mount_eject_with_operation:
+ * @mount: a #GMount.
+ * @flags: flags affecting the unmount if required for eject
+ * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
+ * @user_data: user data passed to @callback.
*
- * Creates a #GSource that triggers when @stream can be read, or
- * @cancellable is triggered or an error occurs. The callback on the
- * source is of the #GPollableSourceFunc type.
+ * Ejects a mount. This is an asynchronous operation, and is
+ * finished by calling g_mount_eject_with_operation_finish() with the @mount
+ * and #GAsyncResult data returned in the @callback.
+ *
+ * Since: 2.22
+ */
+
+
+/**
+ * g_mount_eject_with_operation_finish:
+ * @mount: a #GMount.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * As with g_pollable_input_stream_is_readable(), it is possible that
- * the stream may not actually be readable even after the source
- * triggers, so you should use g_pollable_input_stream_read_nonblocking()
- * rather than g_input_stream_read() from the callback.
+ * Finishes ejecting a mount. If any errors occurred during the operation,
+ * @error will be set to contain the errors and %FALSE will be returned.
*
- * Returns: (transfer full): a new #GSource
- * Since: 2.28
+ * Returns: %TRUE if the mount was successfully ejected. %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_pollable_input_stream_is_readable:
- * @stream: a #GPollableInputStream.
- *
- * Checks if @stream can be read.
+ * g_mount_get_default_location:
+ * @mount: a #GMount.
*
- * Note that some stream types may not be able to implement this 100%
- * reliably, and it is possible that a call to g_input_stream_read()
- * after this returns %TRUE would still block. To guarantee
- * non-blocking behavior, you should always use
- * g_pollable_input_stream_read_nonblocking(), which will return a
- * %G_IO_ERROR_WOULD_BLOCK error rather than blocking.
+ * Gets the default location of @mount. The default location of the given
+ * @mount is a path that reflects the main entry point for the user (e.g.
+ * the home directory, or the root of the volume).
*
- * Returns: %TRUE if @stream is readable, %FALSE if not. If an error
- * has occurred on @stream, this will result in
- * g_pollable_input_stream_is_readable() returning %TRUE, and the
- * next attempt to read will return the error.
- * Since: 2.28
+ * Returns: (transfer full): a #GFile.
+ * The returned object should be unreffed with
+ * g_object_unref() when no longer needed.
*/
/**
- * g_pollable_input_stream_read_nonblocking: (virtual read_nonblocking)
- * @stream: a #GPollableInputStream
- * @buffer: (array length=count) (element-type guint8): a buffer to
- * read data into (which should be at least @count bytes long).
- * @count: the number of bytes you want to read
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_mount_get_drive:
+ * @mount: a #GMount.
*
- * Attempts to read up to @count bytes from @stream into @buffer, as
- * with g_input_stream_read(). If @stream is not currently readable,
- * this will immediately return %G_IO_ERROR_WOULD_BLOCK, and you can
- * use g_pollable_input_stream_create_source() to create a #GSource
- * that will be triggered when @stream is readable.
+ * Gets the drive for the @mount.
*
- * Note that since this method never blocks, you cannot actually
- * use @cancellable to cancel it. However, it will return an error
- * if @cancellable has already been cancelled when you call, which
- * may happen if you call this method after a source triggers due
- * to having been cancelled.
+ * This is a convenience method for getting the #GVolume and then
+ * using that object to get the #GDrive.
*
- * Returns: the number of bytes read, or -1 on error (including
- * %G_IO_ERROR_WOULD_BLOCK).
+ * Returns: (transfer full) (nullable): a #GDrive or %NULL if @mount is not
+ * associated with a volume or a drive.
+ * The returned object should be unreffed with
+ * g_object_unref() when no longer needed.
*/
/**
- * g_pollable_output_stream_can_poll:
- * @stream: a #GPollableOutputStream.
- *
- * Checks if @stream is actually pollable. Some classes may implement
- * #GPollableOutputStream but have only certain instances of that
- * class be pollable. If this method returns %FALSE, then the behavior
- * of other #GPollableOutputStream methods is undefined.
+ * g_mount_get_icon:
+ * @mount: a #GMount.
*
- * For any given stream, the value returned by this method is constant;
- * a stream cannot switch from pollable to non-pollable or vice versa.
+ * Gets the icon for @mount.
*
- * Returns: %TRUE if @stream is pollable, %FALSE if not.
- * Since: 2.28
+ * Returns: (transfer full): a #GIcon.
+ * The returned object should be unreffed with
+ * g_object_unref() when no longer needed.
*/
/**
- * g_pollable_output_stream_create_source:
- * @stream: a #GPollableOutputStream.
- * @cancellable: (nullable): a #GCancellable, or %NULL
- *
- * Creates a #GSource that triggers when @stream can be written, or
- * @cancellable is triggered or an error occurs. The callback on the
- * source is of the #GPollableSourceFunc type.
+ * g_mount_get_name:
+ * @mount: a #GMount.
*
- * As with g_pollable_output_stream_is_writable(), it is possible that
- * the stream may not actually be writable even after the source
- * triggers, so you should use g_pollable_output_stream_write_nonblocking()
- * rather than g_output_stream_write() from the callback.
+ * Gets the name of @mount.
*
- * Returns: (transfer full): a new #GSource
- * Since: 2.28
+ * Returns: the name for the given @mount.
+ * The returned string should be freed with g_free()
+ * when no longer needed.
*/
/**
- * g_pollable_output_stream_is_writable:
- * @stream: a #GPollableOutputStream.
- *
- * Checks if @stream can be written.
+ * g_mount_get_root:
+ * @mount: a #GMount.
*
- * Note that some stream types may not be able to implement this 100%
- * reliably, and it is possible that a call to g_output_stream_write()
- * after this returns %TRUE would still block. To guarantee
- * non-blocking behavior, you should always use
- * g_pollable_output_stream_write_nonblocking(), which will return a
- * %G_IO_ERROR_WOULD_BLOCK error rather than blocking.
+ * Gets the root directory on @mount.
*
- * Returns: %TRUE if @stream is writable, %FALSE if not. If an error
- * has occurred on @stream, this will result in
- * g_pollable_output_stream_is_writable() returning %TRUE, and the
- * next attempt to write will return the error.
- * Since: 2.28
+ * Returns: (transfer full): a #GFile.
+ * The returned object should be unreffed with
+ * g_object_unref() when no longer needed.
*/
/**
- * g_pollable_output_stream_write_nonblocking: (virtual write_nonblocking)
- * @stream: a #GPollableOutputStream
- * @buffer: (array length=count) (element-type guint8): a buffer to write
- * data from
- * @count: the number of bytes you want to write
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Attempts to write up to @count bytes from @buffer to @stream, as
- * with g_output_stream_write(). If @stream is not currently writable,
- * this will immediately return %G_IO_ERROR_WOULD_BLOCK, and you can
- * use g_pollable_output_stream_create_source() to create a #GSource
- * that will be triggered when @stream is writable.
- *
- * Note that since this method never blocks, you cannot actually
- * use @cancellable to cancel it. However, it will return an error
- * if @cancellable has already been cancelled when you call, which
- * may happen if you call this method after a source triggers due
- * to having been cancelled.
+ * g_mount_get_sort_key:
+ * @mount: A #GMount.
*
- * Also note that if %G_IO_ERROR_WOULD_BLOCK is returned some underlying
- * transports like D/TLS require that you send the same @buffer and @count.
+ * Gets the sort key for @mount, if any.
*
- * Returns: the number of bytes written, or -1 on error (including
- * %G_IO_ERROR_WOULD_BLOCK).
+ * Returns: (nullable): Sorting key for @mount or %NULL if no such key is available.
+ * Since: 2.32
*/
/**
- * g_pollable_source_new:
- * @pollable_stream: the stream associated with the new source
+ * g_mount_get_symbolic_icon:
+ * @mount: a #GMount.
*
- * Utility method for #GPollableInputStream and #GPollableOutputStream
- * implementations. Creates a new #GSource that expects a callback of
- * type #GPollableSourceFunc. The new source does not actually do
- * anything on its own; use g_source_add_child_source() to add other
- * sources to it to cause it to trigger.
+ * Gets the symbolic icon for @mount.
*
- * Returns: (transfer full): the new #GSource.
- * Since: 2.28
+ * Returns: (transfer full): a #GIcon.
+ * The returned object should be unreffed with
+ * g_object_unref() when no longer needed.
+ * Since: 2.34
*/
/**
- * g_pollable_source_new_full:
- * @pollable_stream: (type GObject): the stream associated with the
- * new source
- * @child_source: (nullable): optional child source to attach
- * @cancellable: (nullable): optional #GCancellable to attach
+ * g_mount_get_uuid:
+ * @mount: a #GMount.
*
- * Utility method for #GPollableInputStream and #GPollableOutputStream
- * implementations. Creates a new #GSource, as with
- * g_pollable_source_new(), but also attaching @child_source (with a
- * dummy callback), and @cancellable, if they are non-%NULL.
+ * Gets the UUID for the @mount. The reference is typically based on
+ * the file system UUID for the mount in question and should be
+ * considered an opaque string. Returns %NULL if there is no UUID
+ * available.
*
- * Returns: (transfer full): the new #GSource.
- * Since: 2.34
+ * Returns: (nullable) (transfer full): the UUID for @mount or %NULL if no UUID
+ * can be computed.
+ * The returned string should be freed with g_free()
+ * when no longer needed.
*/
/**
- * g_pollable_stream_read:
- * @stream: a #GInputStream
- * @buffer: (array length=count) (element-type guint8): a buffer to
- * read data into
- * @count: the number of bytes to read
- * @blocking: whether to do blocking I/O
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
- *
- * Tries to read from @stream, as with g_input_stream_read() (if
- * @blocking is %TRUE) or g_pollable_input_stream_read_nonblocking()
- * (if @blocking is %FALSE). This can be used to more easily share
- * code between blocking and non-blocking implementations of a method.
+ * g_mount_get_volume:
+ * @mount: a #GMount.
*
- * If @blocking is %FALSE, then @stream must be a
- * #GPollableInputStream for which g_pollable_input_stream_can_poll()
- * returns %TRUE, or else the behavior is undefined. If @blocking is
- * %TRUE, then @stream does not need to be a #GPollableInputStream.
+ * Gets the volume for the @mount.
*
- * Returns: the number of bytes read, or -1 on error.
- * Since: 2.34
+ * Returns: (transfer full) (nullable): a #GVolume or %NULL if @mount is not
+ * associated with a volume.
+ * The returned object should be unreffed with
+ * g_object_unref() when no longer needed.
*/
/**
- * g_pollable_stream_write:
- * @stream: a #GOutputStream.
- * @buffer: (array length=count) (element-type guint8): the buffer
- * containing the data to write.
- * @count: the number of bytes to write
- * @blocking: whether to do blocking I/O
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
+ * g_mount_guess_content_type:
+ * @mount: a #GMount
+ * @force_rescan: Whether to force a rescan of the content.
+ * Otherwise a cached result will be used if available
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @callback: a #GAsyncReadyCallback
+ * @user_data: user data passed to @callback
*
- * Tries to write to @stream, as with g_output_stream_write() (if
- * @blocking is %TRUE) or g_pollable_output_stream_write_nonblocking()
- * (if @blocking is %FALSE). This can be used to more easily share
- * code between blocking and non-blocking implementations of a method.
+ * Tries to guess the type of content stored on @mount. Returns one or
+ * more textual identifiers of well-known content types (typically
+ * prefixed with "x-content/"), e.g. x-content/image-dcf for camera
+ * memory cards. See the
+ * [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
+ * specification for more on x-content types.
*
- * If @blocking is %FALSE, then @stream must be a
- * #GPollableOutputStream for which
- * g_pollable_output_stream_can_poll() returns %TRUE or else the
- * behavior is undefined. If @blocking is %TRUE, then @stream does not
- * need to be a #GPollableOutputStream.
+ * This is an asynchronous operation (see
+ * g_mount_guess_content_type_sync() for the synchronous version), and
+ * is finished by calling g_mount_guess_content_type_finish() with the
+ * @mount and #GAsyncResult data returned in the @callback.
*
- * Returns: the number of bytes written, or -1 on error.
- * Since: 2.34
+ * Since: 2.18
*/
/**
- * g_pollable_stream_write_all:
- * @stream: a #GOutputStream.
- * @buffer: (array length=count) (element-type guint8): the buffer
- * containing the data to write.
- * @count: the number of bytes to write
- * @blocking: whether to do blocking I/O
- * @bytes_written: (out): location to store the number of bytes that was
- * written to the stream
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: location to store the error occurring, or %NULL to ignore
+ * g_mount_guess_content_type_finish:
+ * @mount: a #GMount
+ * @result: a #GAsyncResult
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore
*
- * Tries to write @count bytes to @stream, as with
- * g_output_stream_write_all(), but using g_pollable_stream_write()
- * rather than g_output_stream_write().
+ * Finishes guessing content types of @mount. If any errors occurred
+ * during the operation, @error will be set to contain the errors and
+ * %FALSE will be returned. In particular, you may get an
+ * %G_IO_ERROR_NOT_SUPPORTED if the mount does not support content
+ * guessing.
*
- * On a successful write of @count bytes, %TRUE is returned, and
- * @bytes_written is set to @count.
+ * Returns: (transfer full) (element-type utf8): a %NULL-terminated array of content types or %NULL on error.
+ * Caller should free this array with g_strfreev() when done with it.
+ * Since: 2.18
+ */
+
+
+/**
+ * g_mount_guess_content_type_sync:
+ * @mount: a #GMount
+ * @force_rescan: Whether to force a rescan of the content.
+ * Otherwise a cached result will be used if available
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore
*
- * If there is an error during the operation (including
- * %G_IO_ERROR_WOULD_BLOCK in the non-blocking case), %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.
+ * Tries to guess the type of content stored on @mount. Returns one or
+ * more textual identifiers of well-known content types (typically
+ * prefixed with "x-content/"), e.g. x-content/image-dcf for camera
+ * memory cards. See the
+ * [shared-mime-info](http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec)
+ * specification for more on x-content types.
*
- * As with g_pollable_stream_write(), if @blocking is %FALSE, then
- * @stream must be a #GPollableOutputStream for which
- * g_pollable_output_stream_can_poll() returns %TRUE or else the
- * behavior is undefined. If @blocking is %TRUE, then @stream does not
- * need to be a #GPollableOutputStream.
+ * This is an synchronous operation and as such may block doing IO;
+ * see g_mount_guess_content_type() for the asynchronous version.
*
- * Returns: %TRUE on success, %FALSE if there was an error
- * Since: 2.34
+ * Returns: (transfer full) (element-type utf8): a %NULL-terminated array of content types or %NULL on error.
+ * Caller should free this array with g_strfreev() when done with it.
+ * Since: 2.18
*/
/**
- * g_property_action_new:
- * @name: the name of the action to create
- * @object: (type GObject.Object): the object that has the property
- * to wrap
- * @property_name: the name of the property
+ * g_mount_is_shadowed:
+ * @mount: A #GMount.
*
- * Creates a #GAction corresponding to the value of property
- * @property_name on @object.
+ * Determines if @mount is shadowed. Applications or libraries should
+ * avoid displaying @mount in the user interface if it is shadowed.
*
- * The property must be existent and readable and writable (and not
- * construct-only).
+ * A mount is said to be shadowed if there exists one or more user
+ * visible objects (currently #GMount objects) with a root that is
+ * inside the root of @mount.
*
- * This function takes a reference on @object and doesn't release it
- * until the action is destroyed.
+ * One application of shadow mounts is when exposing a single file
+ * system that is used to address several logical volumes. In this
+ * situation, a #GVolumeMonitor implementation would create two
+ * #GVolume objects (for example, one for the camera functionality of
+ * the device and one for a SD card reader on the device) with
+ * activation URIs `gphoto2://[usb:001,002]/store1/`
+ * and `gphoto2://[usb:001,002]/store2/`. When the
+ * underlying mount (with root
+ * `gphoto2://[usb:001,002]/`) is mounted, said
+ * #GVolumeMonitor implementation would create two #GMount objects
+ * (each with their root matching the corresponding volume activation
+ * root) that would shadow the original mount.
*
- * Returns: a new #GPropertyAction
- * Since: 2.38
+ * The proxy monitor in GVfs 2.26 and later, automatically creates and
+ * manage shadow mounts (and shadows the underlying mount) if the
+ * activation root on a #GVolume is set.
+ *
+ * Returns: %TRUE if @mount is shadowed.
+ * Since: 2.20
*/
/**
- * g_proxy_address_get_destination_hostname:
- * @proxy: a #GProxyAddress
+ * g_mount_operation_get_anonymous:
+ * @op: a #GMountOperation.
*
- * Gets @proxy's destination hostname; that is, the name of the host
- * that will be connected to via the proxy, not the name of the proxy
- * itself.
+ * Check to see whether the mount operation is being used
+ * for an anonymous user.
*
- * Returns: the @proxy's destination hostname
- * Since: 2.26
+ * Returns: %TRUE if mount operation is anonymous.
*/
/**
- * g_proxy_address_get_destination_port:
- * @proxy: a #GProxyAddress
+ * g_mount_operation_get_choice:
+ * @op: a #GMountOperation.
*
- * Gets @proxy's destination port; that is, the port on the
- * destination host that will be connected to via the proxy, not the
- * port number of the proxy itself.
+ * Gets a choice from the mount operation.
*
- * Returns: the @proxy's destination port
- * Since: 2.26
+ * Returns: an integer containing an index of the user's choice from
+ * the choice's list, or %0.
*/
/**
- * g_proxy_address_get_destination_protocol:
- * @proxy: a #GProxyAddress
+ * g_mount_operation_get_domain:
+ * @op: a #GMountOperation.
*
- * Gets the protocol that is being spoken to the destination
- * server; eg, "http" or "ftp".
+ * Gets the domain of the mount operation.
*
- * Returns: the @proxy's destination protocol
- * Since: 2.34
+ * Returns: a string set to the domain.
*/
/**
- * g_proxy_address_get_password:
- * @proxy: a #GProxyAddress
+ * g_mount_operation_get_is_tcrypt_hidden_volume:
+ * @op: a #GMountOperation.
*
- * Gets @proxy's password.
+ * Check to see whether the mount operation is being used
+ * for a TCRYPT hidden volume.
*
- * Returns: the @proxy's password
- * Since: 2.26
+ * Returns: %TRUE if mount operation is for hidden volume.
+ * Since: 2.58
*/
/**
- * g_proxy_address_get_protocol:
- * @proxy: a #GProxyAddress
+ * g_mount_operation_get_is_tcrypt_system_volume:
+ * @op: a #GMountOperation.
*
- * Gets @proxy's protocol. eg, "socks" or "http"
+ * Check to see whether the mount operation is being used
+ * for a TCRYPT system volume.
*
- * Returns: the @proxy's protocol
- * Since: 2.26
+ * Returns: %TRUE if mount operation is for system volume.
+ * Since: 2.58
*/
/**
- * g_proxy_address_get_uri:
- * @proxy: a #GProxyAddress
+ * g_mount_operation_get_password:
+ * @op: a #GMountOperation.
*
- * Gets the proxy URI that @proxy was constructed from.
+ * Gets a password from the mount operation.
*
- * Returns: the @proxy's URI, or %NULL if unknown
- * Since: 2.34
+ * Returns: a string containing the password within @op.
*/
/**
- * g_proxy_address_get_username:
- * @proxy: a #GProxyAddress
+ * g_mount_operation_get_password_save:
+ * @op: a #GMountOperation.
*
- * Gets @proxy's username.
+ * Gets the state of saving passwords for the mount operation.
*
- * Returns: the @proxy's username
- * Since: 2.26
+ * Returns: a #GPasswordSave flag.
*/
/**
- * g_proxy_address_new:
- * @inetaddr: The proxy server #GInetAddress.
- * @port: The proxy server port.
- * @protocol: The proxy protocol to support, in lower case (e.g. socks, http).
- * @dest_hostname: The destination hostname the proxy should tunnel to.
- * @dest_port: The destination port to tunnel to.
- * @username: (nullable): The username to authenticate to the proxy server
- * (or %NULL).
- * @password: (nullable): The password to authenticate to the proxy server
- * (or %NULL).
- *
- * Creates a new #GProxyAddress for @inetaddr with @protocol that should
- * tunnel through @dest_hostname and @dest_port.
+ * g_mount_operation_get_pim:
+ * @op: a #GMountOperation.
*
- * (Note that this method doesn't set the #GProxyAddress:uri or
- * #GProxyAddress:destination-protocol fields; use g_object_new()
- * directly if you want to set those.)
+ * Gets a PIM from the mount operation.
*
- * Returns: a new #GProxyAddress
- * Since: 2.26
+ * Returns: The VeraCrypt PIM within @op.
+ * Since: 2.58
*/
/**
- * g_proxy_connect:
- * @proxy: a #GProxy
- * @connection: a #GIOStream
- * @proxy_address: a #GProxyAddress
- * @cancellable: (nullable): a #GCancellable
- * @error: return #GError
+ * g_mount_operation_get_username:
+ * @op: a #GMountOperation.
*
- * Given @connection to communicate with a proxy (eg, a
- * #GSocketConnection that is connected to the proxy server), this
- * does the necessary handshake to connect to @proxy_address, and if
- * required, wraps the #GIOStream to handle proxy payload.
+ * Get the user name from the mount operation.
*
- * Returns: (transfer full): a #GIOStream that will replace @connection. This might
- * be the same as @connection, in which case a reference
- * will be added.
- * Since: 2.26
+ * Returns: a string containing the user name.
*/
/**
- * g_proxy_connect_async:
- * @proxy: a #GProxy
- * @connection: a #GIOStream
- * @proxy_address: a #GProxyAddress
- * @cancellable: (nullable): a #GCancellable
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): callback data
+ * g_mount_operation_new:
*
- * Asynchronous version of g_proxy_connect().
+ * Creates a new mount operation.
*
- * Since: 2.26
+ * Returns: a #GMountOperation.
*/
/**
- * g_proxy_connect_finish:
- * @proxy: a #GProxy
- * @result: a #GAsyncResult
- * @error: return #GError
- *
- * See g_proxy_connect().
+ * g_mount_operation_reply:
+ * @op: a #GMountOperation
+ * @result: a #GMountOperationResult
*
- * Returns: (transfer full): a #GIOStream.
- * Since: 2.26
+ * Emits the #GMountOperation::reply signal.
*/
/**
- * g_proxy_get_default_for_protocol:
- * @protocol: the proxy protocol name (e.g. http, socks, etc)
- *
- * Lookup "gio-proxy" extension point for a proxy implementation that supports
- * specified protocol.
+ * g_mount_operation_set_anonymous:
+ * @op: a #GMountOperation.
+ * @anonymous: boolean value.
*
- * Returns: (transfer full): return a #GProxy or NULL if protocol
- * is not supported.
- * Since: 2.26
+ * Sets the mount operation to use an anonymous user if @anonymous is %TRUE.
*/
/**
- * g_proxy_resolver_get_default:
- *
- * Gets the default #GProxyResolver for the system.
+ * g_mount_operation_set_choice:
+ * @op: a #GMountOperation.
+ * @choice: an integer.
*
- * Returns: (transfer none): the default #GProxyResolver.
- * Since: 2.26
+ * Sets a default choice for the mount operation.
*/
/**
- * g_proxy_resolver_is_supported:
- * @resolver: a #GProxyResolver
- *
- * Checks if @resolver can be used on this system. (This is used
- * internally; g_proxy_resolver_get_default() will only return a proxy
- * resolver that returns %TRUE for this method.)
+ * g_mount_operation_set_domain:
+ * @op: a #GMountOperation.
+ * @domain: the domain to set.
*
- * Returns: %TRUE if @resolver is supported.
- * Since: 2.26
+ * Sets the mount operation's domain.
*/
/**
- * g_proxy_resolver_lookup:
- * @resolver: a #GProxyResolver
- * @uri: a URI representing the destination to connect to
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: return location for a #GError, or %NULL
- *
- * Looks into the system proxy configuration to determine what proxy,
- * if any, to use to connect to @uri. The returned proxy URIs are of
- * the form `<protocol>://[user[:password]@]host:port` or
- * `direct://`, where <protocol> could be http, rtsp, socks
- * or other proxying protocol.
- *
- * If you don't know what network protocol is being used on the
- * socket, you should use `none` as the URI protocol.
- * In this case, the resolver might still return a generic proxy type
- * (such as SOCKS), but would not return protocol-specific proxy types
- * (such as http).
+ * g_mount_operation_set_is_tcrypt_hidden_volume:
+ * @op: a #GMountOperation.
+ * @hidden_volume: boolean value.
*
- * `direct://` is used when no proxy is needed.
- * Direct connection should not be attempted unless it is part of the
- * returned array of proxies.
+ * Sets the mount operation to use a hidden volume if @hidden_volume is %TRUE.
*
- * Returns: (transfer full) (array zero-terminated=1): A
- * NULL-terminated array of proxy URIs. Must be freed
- * with g_strfreev().
- * Since: 2.26
+ * Since: 2.58
*/
/**
- * g_proxy_resolver_lookup_async:
- * @resolver: a #GProxyResolver
- * @uri: a URI representing the destination to connect to
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): callback to call after resolution completes
- * @user_data: (closure): data for @callback
+ * g_mount_operation_set_is_tcrypt_system_volume:
+ * @op: a #GMountOperation.
+ * @system_volume: boolean value.
*
- * Asynchronous lookup of proxy. See g_proxy_resolver_lookup() for more
- * details.
+ * Sets the mount operation to use a system volume if @system_volume is %TRUE.
*
- * Since: 2.26
+ * Since: 2.58
*/
/**
- * g_proxy_resolver_lookup_finish:
- * @resolver: a #GProxyResolver
- * @result: the result passed to your #GAsyncReadyCallback
- * @error: return location for a #GError, or %NULL
- *
- * Call this function to obtain the array of proxy URIs when
- * g_proxy_resolver_lookup_async() is complete. See
- * g_proxy_resolver_lookup() for more details.
+ * g_mount_operation_set_password:
+ * @op: a #GMountOperation.
+ * @password: password to set.
*
- * Returns: (transfer full) (array zero-terminated=1): A
- * NULL-terminated array of proxy URIs. Must be freed
- * with g_strfreev().
- * Since: 2.26
+ * Sets the mount operation's password to @password.
*/
/**
- * g_proxy_supports_hostname:
- * @proxy: a #GProxy
- *
- * Some proxy protocols expect to be passed a hostname, which they
- * will resolve to an IP address themselves. Others, like SOCKS4, do
- * not allow this. This function will return %FALSE if @proxy is
- * implementing such a protocol. When %FALSE is returned, the caller
- * should resolve the destination hostname first, and then pass a
- * #GProxyAddress containing the stringified IP address to
- * g_proxy_connect() or g_proxy_connect_async().
+ * g_mount_operation_set_password_save:
+ * @op: a #GMountOperation.
+ * @save: a set of #GPasswordSave flags.
*
- * Returns: %TRUE if hostname resolution is supported.
- * Since: 2.26
+ * Sets the state of saving passwords for the mount operation.
*/
/**
- * g_remote_action_group_activate_action_full:
- * @remote: a #GDBusActionGroup
- * @action_name: the name of the action to activate
- * @parameter: (nullable): the optional parameter to the activation
- * @platform_data: the platform data to send
- *
- * Activates the remote action.
- *
- * This is the same as g_action_group_activate_action() except that it
- * allows for provision of "platform data" to be sent along with the
- * activation request. This typically contains details such as the user
- * interaction timestamp or startup notification information.
+ * g_mount_operation_set_pim:
+ * @op: a #GMountOperation.
+ * @pim: an unsigned integer.
*
- * @platform_data must be non-%NULL and must have the type
- * %G_VARIANT_TYPE_VARDICT. If it is floating, it will be consumed.
+ * Sets the mount operation's PIM to @pim.
*
- * Since: 2.32
+ * Since: 2.58
*/
/**
- * g_remote_action_group_change_action_state_full:
- * @remote: a #GRemoteActionGroup
- * @action_name: the name of the action to change the state of
- * @value: the new requested value for the state
- * @platform_data: the platform data to send
- *
- * Changes the state of a remote action.
- *
- * This is the same as g_action_group_change_action_state() except that
- * it allows for provision of "platform data" to be sent along with the
- * state change request. This typically contains details such as the
- * user interaction timestamp or startup notification information.
- *
- * @platform_data must be non-%NULL and must have the type
- * %G_VARIANT_TYPE_VARDICT. If it is floating, it will be consumed.
+ * g_mount_operation_set_username:
+ * @op: a #GMountOperation.
+ * @username: input username.
*
- * Since: 2.32
+ * Sets the user name within @op to @username.
*/
/**
- * g_resolver_error_quark:
+ * g_mount_remount:
+ * @mount: a #GMount.
+ * @flags: flags affecting the operation
+ * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
+ * @user_data: user data passed to @callback.
*
- * Gets the #GResolver Error Quark.
+ * Remounts a mount. This is an asynchronous operation, and is
+ * finished by calling g_mount_remount_finish() with the @mount
+ * and #GAsyncResults data returned in the @callback.
*
- * Returns: a #GQuark.
- * Since: 2.22
+ * Remounting is useful when some setting affecting the operation
+ * of the volume has been changed, as these may need a remount to
+ * take affect. While this is semantically equivalent with unmounting
+ * and then remounting not all backends might need to actually be
+ * unmounted.
*/
/**
- * g_resolver_free_addresses: (skip)
- * @addresses: a #GList of #GInetAddress
+ * g_mount_remount_finish:
+ * @mount: a #GMount.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Frees @addresses (which should be the return value from
- * g_resolver_lookup_by_name() or g_resolver_lookup_by_name_finish()).
- * (This is a convenience method; you can also simply free the results
- * by hand.)
+ * Finishes remounting a mount. If any errors occurred during the operation,
+ * @error will be set to contain the errors and %FALSE will be returned.
*
- * Since: 2.22
+ * Returns: %TRUE if the mount was successfully remounted. %FALSE otherwise.
*/
/**
- * g_resolver_free_targets: (skip)
- * @targets: a #GList of #GSrvTarget
+ * g_mount_shadow:
+ * @mount: A #GMount.
*
- * Frees @targets (which should be the return value from
- * g_resolver_lookup_service() or g_resolver_lookup_service_finish()).
- * (This is a convenience method; you can also simply free the
- * results by hand.)
+ * Increments the shadow count on @mount. Usually used by
+ * #GVolumeMonitor implementations when creating a shadow mount for
+ * @mount, see g_mount_is_shadowed() for more information. The caller
+ * will need to emit the #GMount::changed signal on @mount manually.
*
- * Since: 2.22
+ * Since: 2.20
*/
/**
- * g_resolver_get_default:
+ * g_mount_unmount:
+ * @mount: a #GMount.
+ * @flags: flags affecting the operation
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
+ * @user_data: user data passed to @callback.
*
- * Gets the default #GResolver. You should unref it when you are done
- * with it. #GResolver may use its reference count as a hint about how
- * many threads it should allocate for concurrent DNS resolutions.
+ * Unmounts a mount. This is an asynchronous operation, and is
+ * finished by calling g_mount_unmount_finish() with the @mount
+ * and #GAsyncResult data returned in the @callback.
*
- * Returns: (transfer full): the default #GResolver.
- * Since: 2.22
+ * Deprecated: 2.22: Use g_mount_unmount_with_operation() instead.
*/
/**
- * g_resolver_lookup_by_address:
- * @resolver: a #GResolver
- * @address: the address to reverse-resolve
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: return location for a #GError, or %NULL
- *
- * Synchronously reverse-resolves @address to determine its
- * associated hostname.
- *
- * If the DNS resolution fails, @error (if non-%NULL) will be set to
- * a value from #GResolverError.
+ * g_mount_unmount_finish:
+ * @mount: a #GMount.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * If @cancellable is non-%NULL, it can be used to cancel the
- * operation, in which case @error (if non-%NULL) will be set to
- * %G_IO_ERROR_CANCELLED.
+ * Finishes unmounting a mount. If any errors occurred during the operation,
+ * @error will be set to contain the errors and %FALSE will be returned.
*
- * Returns: a hostname (either ASCII-only, or in ASCII-encoded
- * form), or %NULL on error.
- * Since: 2.22
+ * Returns: %TRUE if the mount was successfully unmounted. %FALSE otherwise.
+ * Deprecated: 2.22: Use g_mount_unmount_with_operation_finish() instead.
*/
/**
- * g_resolver_lookup_by_address_async:
- * @resolver: a #GResolver
- * @address: the address to reverse-resolve
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): callback to call after resolution completes
- * @user_data: (closure): data for @callback
+ * g_mount_unmount_with_operation:
+ * @mount: a #GMount.
+ * @flags: flags affecting the operation
+ * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL.
+ * @user_data: user data passed to @callback.
*
- * Begins asynchronously reverse-resolving @address to determine its
- * associated hostname, and eventually calls @callback, which must
- * call g_resolver_lookup_by_address_finish() to get the final result.
+ * Unmounts a mount. This is an asynchronous operation, and is
+ * finished by calling g_mount_unmount_with_operation_finish() with the @mount
+ * and #GAsyncResult data returned in the @callback.
*
* Since: 2.22
*/
/**
- * g_resolver_lookup_by_address_finish:
- * @resolver: a #GResolver
- * @result: the result passed to your #GAsyncReadyCallback
- * @error: return location for a #GError, or %NULL
- *
- * Retrieves the result of a previous call to
- * g_resolver_lookup_by_address_async().
+ * g_mount_unmount_with_operation_finish:
+ * @mount: a #GMount.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * If the DNS resolution failed, @error (if non-%NULL) will be set to
- * a value from #GResolverError. If the operation was cancelled,
- * @error will be set to %G_IO_ERROR_CANCELLED.
+ * Finishes unmounting a mount. If any errors occurred during the operation,
+ * @error will be set to contain the errors and %FALSE will be returned.
*
- * Returns: a hostname (either ASCII-only, or in ASCII-encoded
- * form), or %NULL on error.
+ * Returns: %TRUE if the mount was successfully unmounted. %FALSE otherwise.
* Since: 2.22
*/
/**
- * g_resolver_lookup_by_name:
- * @resolver: a #GResolver
- * @hostname: the hostname to look up
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: return location for a #GError, or %NULL
- *
- * Synchronously resolves @hostname to determine its associated IP
- * address(es). @hostname may be an ASCII-only or UTF-8 hostname, or
- * the textual form of an IP address (in which case this just becomes
- * a wrapper around g_inet_address_new_from_string()).
- *
- * On success, g_resolver_lookup_by_name() will return a non-empty #GList of
- * #GInetAddress, sorted in order of preference and guaranteed to not
- * contain duplicates. That is, if using the result to connect to
- * @hostname, you should attempt to connect to the first address
- * first, then the second if the first fails, etc. If you are using
- * the result to listen on a socket, it is appropriate to add each
- * result using e.g. g_socket_listener_add_address().
- *
- * If the DNS resolution fails, @error (if non-%NULL) will be set to a
- * value from #GResolverError and %NULL will be returned.
- *
- * If @cancellable is non-%NULL, it can be used to cancel the
- * operation, in which case @error (if non-%NULL) will be set to
- * %G_IO_ERROR_CANCELLED.
+ * g_mount_unshadow:
+ * @mount: A #GMount.
*
- * If you are planning to connect to a socket on the resolved IP
- * address, it may be easier to create a #GNetworkAddress and use its
- * #GSocketConnectable interface.
+ * Decrements the shadow count on @mount. Usually used by
+ * #GVolumeMonitor implementations when destroying a shadow mount for
+ * @mount, see g_mount_is_shadowed() for more information. The caller
+ * will need to emit the #GMount::changed signal on @mount manually.
*
- * Returns: (element-type GInetAddress) (transfer full): a non-empty #GList
- * of #GInetAddress, or %NULL on error. You
- * must unref each of the addresses and free the list when you are
- * done with it. (You can use g_resolver_free_addresses() to do this.)
- * Since: 2.22
+ * Since: 2.20
*/
/**
- * g_resolver_lookup_by_name_async:
- * @resolver: a #GResolver
- * @hostname: the hostname to look up the address of
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): callback to call after resolution completes
- * @user_data: (closure): data for @callback
+ * g_native_socket_address_new:
+ * @native: a native address object
+ * @len: the length of @native, in bytes
*
- * Begins asynchronously resolving @hostname to determine its
- * associated IP address(es), and eventually calls @callback, which
- * must call g_resolver_lookup_by_name_finish() to get the result.
- * See g_resolver_lookup_by_name() for more details.
+ * Creates a new #GNativeSocketAddress for @native and @len.
*
- * Since: 2.22
+ * Returns: a new #GNativeSocketAddress
+ * Since: 2.46
*/
/**
- * g_resolver_lookup_by_name_finish:
- * @resolver: a #GResolver
- * @result: the result passed to your #GAsyncReadyCallback
- * @error: return location for a #GError, or %NULL
- *
- * Retrieves the result of a call to
- * g_resolver_lookup_by_name_async().
+ * g_network_address_get_hostname:
+ * @addr: a #GNetworkAddress
*
- * If the DNS resolution failed, @error (if non-%NULL) will be set to
- * a value from #GResolverError. If the operation was cancelled,
- * @error will be set to %G_IO_ERROR_CANCELLED.
+ * Gets @addr's hostname. This might be either UTF-8 or ASCII-encoded,
+ * depending on what @addr was created with.
*
- * Returns: (element-type GInetAddress) (transfer full): a #GList
- * of #GInetAddress, or %NULL on error. See g_resolver_lookup_by_name()
- * for more details.
+ * Returns: @addr's hostname
* Since: 2.22
*/
/**
- * g_resolver_lookup_records:
- * @resolver: a #GResolver
- * @rrname: the DNS name to lookup the record for
- * @record_type: the type of DNS record to lookup
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: return location for a #GError, or %NULL
- *
- * Synchronously performs a DNS record lookup for the given @rrname and returns
- * a list of records as #GVariant tuples. See #GResolverRecordType for
- * information on what the records contain for each @record_type.
- *
- * If the DNS resolution fails, @error (if non-%NULL) will be set to
- * a value from #GResolverError and %NULL will be returned.
+ * g_network_address_get_port:
+ * @addr: a #GNetworkAddress
*
- * If @cancellable is non-%NULL, it can be used to cancel the
- * operation, in which case @error (if non-%NULL) will be set to
- * %G_IO_ERROR_CANCELLED.
+ * Gets @addr's port number
*
- * Returns: (element-type GVariant) (transfer full): a non-empty #GList of
- * #GVariant, or %NULL on error. You must free each of the records and the list
- * when you are done with it. (You can use g_list_free_full() with
- * g_variant_unref() to do this.)
- * Since: 2.34
+ * Returns: @addr's port (which may be 0)
+ * Since: 2.22
*/
/**
- * g_resolver_lookup_records_async:
- * @resolver: a #GResolver
- * @rrname: the DNS name to lookup the record for
- * @record_type: the type of DNS record to lookup
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): callback to call after resolution completes
- * @user_data: (closure): data for @callback
+ * g_network_address_get_scheme:
+ * @addr: a #GNetworkAddress
*
- * Begins asynchronously performing a DNS lookup for the given
- * @rrname, and eventually calls @callback, which must call
- * g_resolver_lookup_records_finish() to get the final result. See
- * g_resolver_lookup_records() for more details.
+ * Gets @addr's scheme
*
- * Since: 2.34
+ * Returns: @addr's scheme (%NULL if not built from URI)
+ * Since: 2.26
*/
/**
- * g_resolver_lookup_records_finish:
- * @resolver: a #GResolver
- * @result: the result passed to your #GAsyncReadyCallback
- * @error: return location for a #GError, or %NULL
+ * g_network_address_new:
+ * @hostname: the hostname
+ * @port: the port
*
- * Retrieves the result of a previous call to
- * g_resolver_lookup_records_async(). Returns a non-empty list of records as
- * #GVariant tuples. See #GResolverRecordType for information on what the
- * records contain.
+ * Creates a new #GSocketConnectable for connecting to the given
+ * @hostname and @port.
*
- * If the DNS resolution failed, @error (if non-%NULL) will be set to
- * a value from #GResolverError. If the operation was cancelled,
- * @error will be set to %G_IO_ERROR_CANCELLED.
+ * 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.
*
- * Returns: (element-type GVariant) (transfer full): a non-empty #GList of
- * #GVariant, or %NULL on error. You must free each of the records and the list
- * when you are done with it. (You can use g_list_free_full() with
- * g_variant_unref() to do this.)
- * Since: 2.34
+ * Returns: (transfer full) (type GNetworkAddress): the new #GNetworkAddress
+ * Since: 2.22
*/
/**
- * g_resolver_lookup_service:
- * @resolver: a #GResolver
- * @service: the service type to look up (eg, "ldap")
- * @protocol: the networking protocol to use for @service (eg, "tcp")
- * @domain: the DNS domain to look up the service in
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: return location for a #GError, or %NULL
- *
- * Synchronously performs a DNS SRV lookup for the given @service and
- * @protocol in the given @domain and returns an array of #GSrvTarget.
- * @domain may be an ASCII-only or UTF-8 hostname. Note also that the
- * @service and @protocol arguments do not include the leading underscore
- * that appears in the actual DNS entry.
- *
- * On success, g_resolver_lookup_service() will return a non-empty #GList of
- * #GSrvTarget, sorted in order of preference. (That is, you should
- * attempt to connect to the first target first, then the second if
- * the first fails, etc.)
+ * g_network_address_new_loopback:
+ * @port: the port
*
- * If the DNS resolution fails, @error (if non-%NULL) will be set to
- * a value from #GResolverError and %NULL will be returned.
+ * 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.
*
- * If @cancellable is non-%NULL, it can be used to cancel the
- * operation, in which case @error (if non-%NULL) will be set to
- * %G_IO_ERROR_CANCELLED.
+ * 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`.
*
- * If you are planning to connect to the service, it is usually easier
- * to create a #GNetworkService and use its #GSocketConnectable
- * interface.
+ * g_network_address_get_hostname() will always return `localhost` for
+ * #GNetworkAddresses created with this constructor.
*
- * Returns: (element-type GSrvTarget) (transfer full): a non-empty #GList of
- * #GSrvTarget, or %NULL on error. You must free each of the targets and the
- * list when you are done with it. (You can use g_resolver_free_targets() to do
- * this.)
- * Since: 2.22
+ * Returns: (transfer full) (type GNetworkAddress): the new #GNetworkAddress
+ * Since: 2.44
*/
/**
- * g_resolver_lookup_service_async:
- * @resolver: a #GResolver
- * @service: the service type to look up (eg, "ldap")
- * @protocol: the networking protocol to use for @service (eg, "tcp")
- * @domain: the DNS domain to look up the service in
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): callback to call after resolution completes
- * @user_data: (closure): data for @callback
+ * g_network_address_parse:
+ * @host_and_port: the hostname and optionally a port
+ * @default_port: the default port if not in @host_and_port
+ * @error: a pointer to a #GError, or %NULL
*
- * Begins asynchronously performing a DNS SRV lookup for the given
- * @service and @protocol in the given @domain, and eventually calls
- * @callback, which must call g_resolver_lookup_service_finish() to
- * get the final result. See g_resolver_lookup_service() for more
- * details.
+ * Creates a new #GSocketConnectable for connecting to the given
+ * @hostname and @port. May fail and return %NULL in case
+ * parsing @host_and_port fails.
*
- * Since: 2.22
- */
-
-
-/**
- * g_resolver_lookup_service_finish:
- * @resolver: a #GResolver
- * @result: the result passed to your #GAsyncReadyCallback
- * @error: return location for a #GError, or %NULL
+ * @host_and_port may be in any of a number of recognised formats; an IPv6
+ * address, an IPv4 address, or a domain name (in which case a DNS
+ * lookup is performed). Quoting with [] is supported for all address
+ * types. A port override may be specified in the usual way with a
+ * colon.
*
- * Retrieves the result of a previous call to
- * g_resolver_lookup_service_async().
+ * If no port is specified in @host_and_port then @default_port will be
+ * used as the port number to connect to.
*
- * If the DNS resolution failed, @error (if non-%NULL) will be set to
- * a value from #GResolverError. If the operation was cancelled,
- * @error will be set to %G_IO_ERROR_CANCELLED.
+ * In general, @host_and_port is expected to be provided by the user
+ * (allowing them to give the hostname, and a port override if necessary)
+ * and @default_port is expected to be provided by the application.
*
- * Returns: (element-type GSrvTarget) (transfer full): a non-empty #GList of
- * #GSrvTarget, or %NULL on error. See g_resolver_lookup_service() for more
- * details.
+ * (The port component of @host_and_port can also be specified as a
+ * service name rather than as a numeric port, but this functionality
+ * is deprecated, because it depends on the contents of /etc/services,
+ * which is generally quite sparse on platforms other than Linux.)
+ *
+ * Returns: (transfer full) (type GNetworkAddress): the new
+ * #GNetworkAddress, or %NULL on error
* Since: 2.22
*/
/**
- * g_resolver_set_default:
- * @resolver: the new default #GResolver
- *
- * Sets @resolver to be the application's default resolver (reffing
- * @resolver, and unreffing the previous default resolver, if any).
- * Future calls to g_resolver_get_default() will return this resolver.
+ * g_network_address_parse_uri:
+ * @uri: the hostname and optionally a port
+ * @default_port: The default port if none is found in the URI
+ * @error: a pointer to a #GError, or %NULL
*
- * This can be used if an application wants to perform any sort of DNS
- * caching or "pinning"; it can implement its own #GResolver that
- * calls the original default resolver for DNS operations, and
- * implements its own cache policies on top of that, and then set
- * itself as the default resolver for all later code to use.
+ * Creates a new #GSocketConnectable for connecting to the given
+ * @uri. May fail and return %NULL in case parsing @uri fails.
*
- * Since: 2.22
+ * Using this rather than g_network_address_new() or
+ * g_network_address_parse() allows #GSocketClient to determine
+ * when to use application-specific proxy protocols.
+ *
+ * Returns: (transfer full) (type GNetworkAddress): the new
+ * #GNetworkAddress, or %NULL on error
+ * Since: 2.26
*/
/**
- * g_resource_enumerate_children:
- * @resource: A #GResource
- * @path: A pathname inside the resource
- * @lookup_flags: A #GResourceLookupFlags
- * @error: return location for a #GError, or %NULL
- *
- * Returns all the names of children at the specified @path in the resource.
- * The return result is a %NULL terminated list of strings which should
- * be released with g_strfreev().
- *
- * If @path is invalid or does not exist in the #GResource,
- * %G_RESOURCE_ERROR_NOT_FOUND will be returned.
+ * g_network_monitor_base_add_network:
+ * @monitor: the #GNetworkMonitorBase
+ * @network: a #GInetAddressMask
*
- * @lookup_flags controls the behaviour of the lookup.
+ * Adds @network to @monitor's list of available networks.
*
- * Returns: (array zero-terminated=1) (transfer full): an array of constant strings
* Since: 2.32
*/
/**
- * g_resource_error_quark:
+ * g_network_monitor_base_remove_network:
+ * @monitor: the #GNetworkMonitorBase
+ * @network: a #GInetAddressMask
*
- * Gets the #GResource Error Quark.
+ * Removes @network from @monitor's list of available networks.
*
- * Returns: a #GQuark
* Since: 2.32
*/
/**
- * g_resource_get_info:
- * @resource: A #GResource
- * @path: A pathname inside the resource
- * @lookup_flags: A #GResourceLookupFlags
- * @size: (out) (optional): a location to place the length of the contents of the file,
- * or %NULL if the length is not needed
- * @flags: (out) (optional): a location to place the flags about the file,
- * or %NULL if the length is not needed
- * @error: return location for a #GError, or %NULL
- *
- * Looks for a file at the specified @path in the resource and
- * if found returns information about it.
- *
- * @lookup_flags controls the behaviour of the lookup.
+ * g_network_monitor_base_set_networks:
+ * @monitor: the #GNetworkMonitorBase
+ * @networks: (array length=length): an array of #GInetAddressMask
+ * @length: length of @networks
*
- * Returns: %TRUE if the file was found. %FALSE if there were errors
- * Since: 2.32
+ * Drops @monitor's current list of available networks and replaces
+ * it with @networks.
*/
/**
- * g_resource_load:
- * @filename: (type filename): the path of a filename to load, in the GLib filename encoding
+ * g_network_monitor_can_reach:
+ * @monitor: a #GNetworkMonitor
+ * @connectable: a #GSocketConnectable
+ * @cancellable: (nullable): a #GCancellable, or %NULL
* @error: return location for a #GError, or %NULL
*
- * Loads a binary resource bundle and creates a #GResource representation of it, allowing
- * you to query it for data.
+ * Attempts to determine whether or not the host pointed to by
+ * @connectable can be reached, without actually trying to connect to
+ * it.
*
- * If you want to use this resource in the global resource namespace you need
- * to register it with g_resources_register().
+ * This may return %TRUE even when #GNetworkMonitor:network-available
+ * is %FALSE, if, for example, @monitor can determine that
+ * @connectable refers to a host on a local network.
*
- * Returns: (transfer full): a new #GResource, or %NULL on error
+ * If @monitor believes that an attempt to connect to @connectable
+ * will succeed, it will return %TRUE. Otherwise, it will return
+ * %FALSE and set @error to an appropriate error (such as
+ * %G_IO_ERROR_HOST_UNREACHABLE).
+ *
+ * Note that although this does not attempt to connect to
+ * @connectable, it may still block for a brief period of time (eg,
+ * trying to do multicast DNS on the local network), so if you do not
+ * want to block, you should use g_network_monitor_can_reach_async().
+ *
+ * Returns: %TRUE if @connectable is reachable, %FALSE if not.
* Since: 2.32
*/
/**
- * g_resource_lookup_data:
- * @resource: A #GResource
- * @path: A pathname inside the resource
- * @lookup_flags: A #GResourceLookupFlags
- * @error: return location for a #GError, or %NULL
+ * g_network_monitor_can_reach_async:
+ * @monitor: a #GNetworkMonitor
+ * @connectable: a #GSocketConnectable
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the
+ * request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Looks for a file at the specified @path in the resource and
- * returns a #GBytes that lets you directly access the data in
- * memory.
+ * Asynchronously attempts to determine whether or not the host
+ * pointed to by @connectable can be reached, without actually
+ * trying to connect to it.
*
- * The data is always followed by a zero byte, so you
- * can safely use the data as a C string. However, that byte
- * is not included in the size of the GBytes.
+ * For more details, see g_network_monitor_can_reach().
*
- * For uncompressed resource files this is a pointer directly into
- * the resource bundle, which is typically in some readonly data section
- * in the program binary. For compressed files we allocate memory on
- * the heap and automatically uncompress the data.
+ * When the operation is finished, @callback will be called.
+ * You can then call g_network_monitor_can_reach_finish()
+ * to get the result of the operation.
+ */
+
+
+/**
+ * g_network_monitor_can_reach_finish:
+ * @monitor: a #GNetworkMonitor
+ * @result: a #GAsyncResult
+ * @error: return location for errors, or %NULL
*
- * @lookup_flags controls the behaviour of the lookup.
+ * Finishes an async network connectivity test.
+ * See g_network_monitor_can_reach_async().
*
- * Returns: (transfer full): #GBytes or %NULL on error.
- * Free the returned object with g_bytes_unref()
- * Since: 2.32
+ * Returns: %TRUE if network is reachable, %FALSE if not.
*/
/**
- * g_resource_new_from_data:
- * @data: A #GBytes
- * @error: return location for a #GError, or %NULL
+ * g_network_monitor_get_connectivity:
+ * @monitor: the #GNetworkMonitor
*
- * Creates a GResource from a reference to the binary resource bundle.
- * This will keep a reference to @data while the resource lives, so
- * the data should not be modified or freed.
+ * Gets a more detailed networking state than
+ * g_network_monitor_get_network_available().
*
- * If you want to use this resource in the global resource namespace you need
- * to register it with g_resources_register().
+ * If #GNetworkMonitor:network-available is %FALSE, then the
+ * connectivity state will be %G_NETWORK_CONNECTIVITY_LOCAL.
*
- * Note: @data must be backed by memory that is at least pointer aligned.
- * Otherwise this function will internally create a copy of the memory since
- * GLib 2.56, or in older versions fail and exit the process.
+ * 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 "captive portal" that requires some sort
+ * of login or acknowledgement before allowing full Internet access).
*
- * Returns: (transfer full): a new #GResource, or %NULL on error
- * Since: 2.32
+ * 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 "offline" behavior if the connection attempt fails.
+ *
+ * Returns: the network connectivity state
+ * Since: 2.44
*/
/**
- * g_resource_open_stream:
- * @resource: A #GResource
- * @path: A pathname inside the resource
- * @lookup_flags: A #GResourceLookupFlags
- * @error: return location for a #GError, or %NULL
- *
- * Looks for a file at the specified @path in the resource and
- * returns a #GInputStream that lets you read the data.
+ * g_network_monitor_get_default:
*
- * @lookup_flags controls the behaviour of the lookup.
+ * Gets the default #GNetworkMonitor for the system.
*
- * Returns: (transfer full): #GInputStream or %NULL on error.
- * Free the returned object with g_object_unref()
+ * Returns: (transfer none): a #GNetworkMonitor
* Since: 2.32
*/
/**
- * g_resource_ref:
- * @resource: A #GResource
+ * g_network_monitor_get_network_available:
+ * @monitor: the #GNetworkMonitor
*
- * Atomically increments the reference count of @resource by one. This
- * function is MT-safe and may be called from any thread.
+ * Checks if the network is available. "Available" here means that the
+ * system has a default route available for at least one of IPv4 or
+ * IPv6. It does not necessarily imply that the public Internet is
+ * reachable. See #GNetworkMonitor:network-available for more details.
*
- * Returns: The passed in #GResource
+ * Returns: whether the network is available
* Since: 2.32
*/
/**
- * g_resource_unref:
- * @resource: A #GResource
+ * g_network_monitor_get_network_metered:
+ * @monitor: the #GNetworkMonitor
*
- * Atomically decrements the reference count of @resource by one. If the
- * 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.
+ * Checks if the network is metered.
+ * See #GNetworkMonitor:network-metered for more details.
*
- * Since: 2.32
+ * Returns: whether the connection is metered
+ * Since: 2.46
*/
/**
- * g_resources_enumerate_children:
- * @path: A pathname inside the resource
- * @lookup_flags: A #GResourceLookupFlags
- * @error: return location for a #GError, or %NULL
- *
- * Returns all the names of children at the specified @path in the set of
- * globally registered resources.
- * The return result is a %NULL terminated list of strings which should
- * be released with g_strfreev().
+ * g_network_service_get_domain:
+ * @srv: a #GNetworkService
*
- * @lookup_flags controls the behaviour of the lookup.
+ * Gets the domain that @srv serves. This might be either UTF-8 or
+ * ASCII-encoded, depending on what @srv was created with.
*
- * Returns: (array zero-terminated=1) (transfer full): an array of constant strings
- * Since: 2.32
+ * Returns: @srv's domain name
+ * Since: 2.22
*/
/**
- * g_resources_get_info:
- * @path: A pathname inside the resource
- * @lookup_flags: A #GResourceLookupFlags
- * @size: (out) (optional): a location to place the length of the contents of the file,
- * or %NULL if the length is not needed
- * @flags: (out) (optional): a location to place the #GResourceFlags about the file,
- * or %NULL if the flags are not needed
- * @error: return location for a #GError, or %NULL
- *
- * Looks for a file at the specified @path in the set of
- * globally registered resources and if found returns information about it.
+ * g_network_service_get_protocol:
+ * @srv: a #GNetworkService
*
- * @lookup_flags controls the behaviour of the lookup.
+ * Gets @srv's protocol name (eg, "tcp").
*
- * Returns: %TRUE if the file was found. %FALSE if there were errors
- * Since: 2.32
+ * Returns: @srv's protocol name
+ * Since: 2.22
*/
/**
- * g_resources_lookup_data:
- * @path: A pathname inside the resource
- * @lookup_flags: A #GResourceLookupFlags
- * @error: return location for a #GError, or %NULL
- *
- * Looks for a file at the specified @path in the set of
- * globally registered resources and returns a #GBytes that
- * lets you directly access the data in memory.
+ * g_network_service_get_scheme:
+ * @srv: a #GNetworkService
*
- * The data is always followed by a zero byte, so you
- * can safely use the data as a C string. However, that byte
- * is not included in the size of the GBytes.
+ * Get's the URI scheme used to resolve proxies. By default, the service name
+ * is used as scheme.
*
- * For uncompressed resource files this is a pointer directly into
- * the resource bundle, which is typically in some readonly data section
- * in the program binary. For compressed files we allocate memory on
- * the heap and automatically uncompress the data.
+ * Returns: @srv's scheme name
+ * Since: 2.26
+ */
+
+
+/**
+ * g_network_service_get_service:
+ * @srv: a #GNetworkService
*
- * @lookup_flags controls the behaviour of the lookup.
+ * Gets @srv's service name (eg, "ldap").
*
- * Returns: (transfer full): #GBytes or %NULL on error.
- * Free the returned object with g_bytes_unref()
- * Since: 2.32
+ * Returns: @srv's service name
+ * Since: 2.22
*/
/**
- * g_resources_open_stream:
- * @path: A pathname inside the resource
- * @lookup_flags: A #GResourceLookupFlags
- * @error: return location for a #GError, or %NULL
- *
- * Looks for a file at the specified @path in the set of
- * globally registered resources and returns a #GInputStream
- * that lets you read the data.
+ * g_network_service_new:
+ * @service: the service type to look up (eg, "ldap")
+ * @protocol: the networking protocol to use for @service (eg, "tcp")
+ * @domain: the DNS domain to look up the service in
*
- * @lookup_flags controls the behaviour of the lookup.
+ * Creates a new #GNetworkService representing the given @service,
+ * @protocol, and @domain. This will initially be unresolved; use the
+ * #GSocketConnectable interface to resolve it.
*
- * Returns: (transfer full): #GInputStream or %NULL on error.
- * Free the returned object with g_object_unref()
- * Since: 2.32
+ * Returns: (transfer full) (type GNetworkService): a new #GNetworkService
+ * Since: 2.22
*/
/**
- * g_resources_register:
- * @resource: A #GResource
+ * g_network_service_set_scheme:
+ * @srv: a #GNetworkService
+ * @scheme: a URI scheme
*
- * Registers the resource with the process-global set of resources.
- * Once a resource is registered the files in it can be accessed
- * with the global resource lookup functions like g_resources_lookup_data().
+ * Set's the URI scheme used to resolve proxies. By default, the service name
+ * is used as scheme.
*
- * Since: 2.32
+ * Since: 2.26
*/
/**
- * g_resources_unregister:
- * @resource: A #GResource
+ * g_networking_init:
*
- * Unregisters the resource from the process-global set of resources.
+ * Initializes the platform networking libraries (eg, on Windows, this
+ * calls WSAStartup()). GLib will call this itself if it is needed, so
+ * you only need to call it if you directly call system networking
+ * functions (without calling any GLib networking functions first).
*
- * Since: 2.32
+ * Since: 2.36
*/
/**
- * g_seekable_can_seek:
- * @seekable: a #GSeekable.
+ * g_notification_add_button:
+ * @notification: a #GNotification
+ * @label: label of the button
+ * @detailed_action: a detailed action name
*
- * Tests if the stream supports the #GSeekableIface.
+ * Adds a button to @notification that activates the action in
+ * @detailed_action when clicked. That action must be an
+ * application-wide action (starting with "app."). If @detailed_action
+ * contains a target, the action will be activated with that target as
+ * its parameter.
*
- * Returns: %TRUE if @seekable can be seeked. %FALSE otherwise.
+ * See g_action_parse_detailed_name() for a description of the format
+ * for @detailed_action.
+ *
+ * Since: 2.40
*/
/**
- * g_seekable_can_truncate:
- * @seekable: a #GSeekable.
+ * g_notification_add_button_with_target: (skip)
+ * @notification: a #GNotification
+ * @label: label of the button
+ * @action: an action name
+ * @target_format: (nullable): a #GVariant format string, or %NULL
+ * @...: positional parameters, as determined by @target_format
*
- * Tests if the length of the stream can be adjusted with
- * g_seekable_truncate().
+ * Adds a button to @notification that activates @action when clicked.
+ * @action must be an application-wide action (it must start with "app.").
*
- * Returns: %TRUE if the stream can be truncated, %FALSE otherwise.
+ * If @target_format is given, it is used to collect remaining
+ * positional parameters into a #GVariant instance, similar to
+ * g_variant_new(). @action will be activated with that #GVariant as its
+ * parameter.
+ *
+ * Since: 2.40
*/
/**
- * g_seekable_seek:
- * @seekable: a #GSeekable.
- * @offset: a #goffset.
- * @type: a #GSeekType.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_notification_add_button_with_target_value: (rename-to g_notification_add_button_with_target)
+ * @notification: a #GNotification
+ * @label: label of the button
+ * @action: an action name
+ * @target: (nullable): a #GVariant to use as @action's parameter, or %NULL
*
- * Seeks in the stream by the given @offset, modified by @type.
+ * Adds a button to @notification that activates @action when clicked.
+ * @action must be an application-wide action (it must start with "app.").
*
- * Attempting to seek past the end of the stream will have different
- * results depending on if the stream is fixed-sized or resizable. If
- * the stream is resizable then seeking past the end and then writing
- * will result in zeros filling the empty space. Seeking past the end
- * of a resizable stream and reading will result in EOF. Seeking past
- * the end of a fixed-sized stream will fail.
+ * If @target is non-%NULL, @action will be activated with @target as
+ * its parameter.
*
- * Any operation that would result in a negative offset will fail.
+ * Since: 2.40
+ */
+
+
+/**
+ * g_notification_new:
+ * @title: the title of the notification
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Creates a new #GNotification with @title as its title.
*
- * Returns: %TRUE if successful. If an error
- * has occurred, this function will return %FALSE and set @error
- * appropriately if present.
+ * After populating @notification with more details, it can be sent to
+ * the desktop shell with g_application_send_notification(). Changing
+ * any properties after this call will not have any effect until
+ * resending @notification.
+ *
+ * Returns: a new #GNotification instance
+ * Since: 2.40
*/
/**
- * g_seekable_tell:
- * @seekable: a #GSeekable.
+ * g_notification_set_body:
+ * @notification: a #GNotification
+ * @body: (nullable): the new body for @notification, or %NULL
*
- * Tells the current position within the stream.
+ * Sets the body of @notification to @body.
*
- * Returns: the offset from the beginning of the buffer.
+ * Since: 2.40
*/
/**
- * g_seekable_truncate: (virtual truncate_fn)
- * @seekable: a #GSeekable.
- * @offset: new length for @seekable, in bytes.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_notification_set_default_action:
+ * @notification: a #GNotification
+ * @detailed_action: a detailed action name
*
- * Sets the length of the stream to @offset. If the stream was previously
- * larger than @offset, the extra data is discarded. If the stream was
- * previouly shorter than @offset, it is extended with NUL ('\0') bytes.
+ * Sets the default action of @notification to @detailed_action. This
+ * action is activated when the notification is clicked on.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
- * operation was partially finished when the operation was cancelled the
- * partial result will be returned, without an error.
+ * The action in @detailed_action must be an application-wide action (it
+ * must start with "app."). If @detailed_action contains a target, the
+ * given action will be activated with that target as its parameter.
+ * See g_action_parse_detailed_name() for a description of the format
+ * for @detailed_action.
*
- * Returns: %TRUE if successful. If an error
- * has occurred, this function will return %FALSE and set @error
- * appropriately if present.
+ * When no default action is set, the application that the notification
+ * was sent on is activated.
+ *
+ * Since: 2.40
*/
/**
- * g_settings_apply:
- * @settings: a #GSettings instance
+ * g_notification_set_default_action_and_target: (skip)
+ * @notification: a #GNotification
+ * @action: an action name
+ * @target_format: (nullable): a #GVariant format string, or %NULL
+ * @...: positional parameters, as determined by @target_format
*
- * Applies any changes that have been made to the settings. This
- * function does nothing unless @settings is in 'delay-apply' mode;
- * see g_settings_delay(). In the normal case settings are always
- * applied immediately.
+ * Sets the default action of @notification to @action. This action is
+ * activated when the notification is clicked on. It must be an
+ * application-wide action (it must start with "app.").
+ *
+ * If @target_format is given, it is used to collect remaining
+ * positional parameters into a #GVariant instance, similar to
+ * g_variant_new(). @action will be activated with that #GVariant as its
+ * parameter.
+ *
+ * When no default action is set, the application that the notification
+ * was sent on is activated.
+ *
+ * Since: 2.40
*/
/**
- * g_settings_backend_changed:
- * @backend: a #GSettingsBackend implementation
- * @key: the name of the key
- * @origin_tag: the origin tag
+ * g_notification_set_default_action_and_target_value: (rename-to g_notification_set_default_action_and_target)
+ * @notification: a #GNotification
+ * @action: an action name
+ * @target: (nullable): a #GVariant to use as @action's parameter, or %NULL
*
- * Signals that a single key has possibly changed. Backend
- * implementations should call this if a key has possibly changed its
- * value.
+ * Sets the default action of @notification to @action. This action is
+ * activated when the notification is clicked on. It must be an
+ * application-wide action (start with "app.").
*
- * @key must be a valid key (ie starting with a slash, not containing
- * '//', and not ending with a slash).
+ * If @target is non-%NULL, @action will be activated with @target as
+ * its parameter.
*
- * The implementation must call this function during any call to
- * g_settings_backend_write(), before the call returns (except in the
- * case that no keys are actually changed and it cares to detect this
- * fact). It may not rely on the existence of a mainloop for
- * dispatching the signal later.
+ * When no default action is set, the application that the notification
+ * was sent on is activated.
*
- * The implementation may call this function at any other time it likes
- * in response to other events (such as changes occurring outside of the
- * program). These calls may originate from a mainloop or may originate
- * in response to any other action (including from calls to
- * g_settings_backend_write()).
+ * Since: 2.40
+ */
+
+
+/**
+ * g_notification_set_icon:
+ * @notification: a #GNotification
+ * @icon: the icon to be shown in @notification, as a #GIcon
*
- * In the case that this call is in response to a call to
- * g_settings_backend_write() then @origin_tag must be set to the same
- * value that was passed to that call.
+ * Sets the icon of @notification to @icon.
+ *
+ * Since: 2.40
+ */
+
+
+/**
+ * g_notification_set_priority:
+ * @notification: a #GNotification
+ * @priority: a #GNotificationPriority
*
- * Since: 2.26
+ * Sets the priority of @notification to @priority. See
+ * #GNotificationPriority for possible values.
*/
/**
- * g_settings_backend_changed_tree:
- * @backend: a #GSettingsBackend implementation
- * @tree: a #GTree containing the changes
- * @origin_tag: the origin tag
+ * g_notification_set_title:
+ * @notification: a #GNotification
+ * @title: the new title for @notification
*
- * This call is a convenience wrapper. It gets the list of changes from
- * @tree, computes the longest common prefix and calls
- * g_settings_backend_changed().
+ * Sets the title of @notification to @title.
*
- * Since: 2.26
+ * Since: 2.40
*/
/**
- * g_settings_backend_flatten_tree:
- * @tree: a #GTree containing the changes
- * @path: (out): the location to save the path
- * @keys: (out) (transfer container) (array zero-terminated=1): the
- * location to save the relative keys
- * @values: (out) (optional) (transfer container) (array zero-terminated=1):
- * the location to save the values, or %NULL
- *
- * Calculate the longest common prefix of all keys in a tree and write
- * out an array of the key names relative to that prefix and,
- * optionally, the value to store at each of those keys.
+ * g_notification_set_urgent:
+ * @notification: a #GNotification
+ * @urgent: %TRUE if @notification is urgent
*
- * You must free the value returned in @path, @keys and @values using
- * g_free(). You should not attempt to free or unref the contents of
- * @keys or @values.
+ * Deprecated in favor of g_notification_set_priority().
*
- * Since: 2.26
+ * Since: 2.40
+ * Deprecated: 2.42: Since 2.42, this has been deprecated in favour of
+ * g_notification_set_priority().
*/
/**
- * g_settings_backend_get_default:
+ * g_null_settings_backend_new:
*
- * Returns the default #GSettingsBackend. It is possible to override
- * the default by setting the `GSETTINGS_BACKEND` environment variable
- * to the name of a settings backend.
+ * Creates a readonly #GSettingsBackend.
*
- * The user gets a reference to the backend.
+ * This backend does not allow changes to settings, so all settings
+ * will always have their default values.
*
- * Returns: (transfer full): the default #GSettingsBackend
+ * Returns: (transfer full): a newly created #GSettingsBackend
* Since: 2.28
*/
/**
- * g_settings_backend_keys_changed:
- * @backend: a #GSettingsBackend implementation
- * @path: the path containing the changes
- * @items: (array zero-terminated=1): the %NULL-terminated list of changed keys
- * @origin_tag: the origin tag
- *
- * Signals that a list of keys have possibly changed. Backend
- * implementations should call this if keys have possibly changed their
- * values.
- *
- * @path must be a valid path (ie starting and ending with a slash and
- * not containing '//'). Each string in @items must form a valid key
- * name when @path is prefixed to it (ie: each item must not start or
- * end with '/' and must not contain '//').
- *
- * The meaning of this signal is that any of the key names resulting
- * from the contatenation of @path with each item in @items may have
- * changed.
- *
- * The same rules for when notifications must occur apply as per
- * g_settings_backend_changed(). These two calls can be used
- * interchangeably if exactly one item has changed (although in that
- * case g_settings_backend_changed() is definitely preferred).
- *
- * For efficiency reasons, the implementation should strive for @path to
- * be as long as possible (ie: the longest common prefix of all of the
- * keys that were changed) but this is not strictly required.
+ * g_output_stream_clear_pending:
+ * @stream: output stream
*
- * Since: 2.26
+ * Clears the pending flag on @stream.
*/
/**
- * g_settings_backend_path_changed:
- * @backend: a #GSettingsBackend implementation
- * @path: the path containing the changes
- * @origin_tag: the origin tag
+ * g_output_stream_close:
+ * @stream: A #GOutputStream.
+ * @cancellable: (nullable): optional cancellable object
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Signals that all keys below a given path may have possibly changed.
- * Backend implementations should call this if an entire path of keys
- * have possibly changed their values.
+ * Closes the stream, releasing resources related to it.
*
- * @path must be a valid path (ie starting and ending with a slash and
- * not containing '//').
+ * Once the stream is closed, all other operations will return %G_IO_ERROR_CLOSED.
+ * Closing a stream multiple times will not return an error.
*
- * The meaning of this signal is that any of the key which has a name
- * starting with @path may have changed.
+ * Closing a stream will automatically flush any outstanding buffers in the
+ * stream.
*
- * The same rules for when notifications must occur apply as per
- * g_settings_backend_changed(). This call might be an appropriate
- * reasponse to a 'reset' call but implementations are also free to
- * explicitly list the keys that were affected by that call if they can
- * easily do so.
+ * Streams will be automatically closed when the last reference
+ * is dropped, but you might want to call this function to make sure
+ * resources are released as early as possible.
*
- * For efficiency reasons, the implementation should strive for @path to
- * be as long as possible (ie: the longest common prefix of all of the
- * keys that were changed) but this is not strictly required. As an
- * example, if this function is called with the path of "/" then every
- * single key in the application will be notified of a possible change.
+ * Some streams might keep the backing store of the stream (e.g. a file descriptor)
+ * open after the stream is closed. See the documentation for the individual
+ * stream for details.
*
- * Since: 2.26
+ * On failure the first error that happened will be reported, but the close
+ * operation will finish as much as possible. A stream that failed to
+ * close will still return %G_IO_ERROR_CLOSED for all operations. Still, it
+ * is important to check and report the error to the user, otherwise
+ * there might be a loss of data as all data might not be written.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Cancelling a close will still leave the stream closed, but there some streams
+ * can use a faster close that doesn't block to e.g. check errors. On
+ * cancellation (as with any error) there is no guarantee that all written
+ * data will reach the target.
+ *
+ * Returns: %TRUE on success, %FALSE on failure
*/
/**
- * g_settings_backend_path_writable_changed:
- * @backend: a #GSettingsBackend implementation
- * @path: the name of the path
+ * g_output_stream_close_async:
+ * @stream: A #GOutputStream.
+ * @io_priority: the io priority of the request.
+ * @cancellable: (nullable): optional cancellable object
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Signals that the writability of all keys below a given path may have
- * changed.
+ * Requests an asynchronous close of the stream, releasing resources
+ * related to it. When the operation is finished @callback will be
+ * called. You can then call g_output_stream_close_finish() to get
+ * the result of the operation.
*
- * Since GSettings performs no locking operations for itself, this call
- * will always be made in response to external events.
+ * For behaviour details see g_output_stream_close().
*
- * Since: 2.26
+ * The asynchronous 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.
*/
/**
- * g_settings_backend_writable_changed:
- * @backend: a #GSettingsBackend implementation
- * @key: the name of the key
- *
- * Signals that the writability of a single key has possibly changed.
+ * g_output_stream_close_finish:
+ * @stream: a #GOutputStream.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Since GSettings performs no locking operations for itself, this call
- * will always be made in response to external events.
+ * Closes an output stream.
*
- * Since: 2.26
+ * Returns: %TRUE if stream was successfully closed, %FALSE otherwise.
*/
/**
- * g_settings_bind:
- * @settings: a #GSettings object
- * @key: the key to bind
- * @object: (type GObject.Object): a #GObject
- * @property: the name of the property to bind
- * @flags: flags for the binding
- *
- * Create a binding between the @key in the @settings object
- * and the property @property of @object.
+ * g_output_stream_flush:
+ * @stream: a #GOutputStream.
+ * @cancellable: (nullable): optional cancellable object
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * The binding uses the default GIO mapping functions to map
- * between the settings and property values. These functions
- * handle booleans, numeric types and string types in a
- * straightforward way. Use g_settings_bind_with_mapping() if
- * you need a custom mapping, or map between types that are not
- * supported by the default mapping functions.
+ * Forces a write of all user-space buffered data for the given
+ * @stream. Will block during the operation. Closing the stream will
+ * implicitly cause a flush.
*
- * Unless the @flags include %G_SETTINGS_BIND_NO_SENSITIVITY, this
- * function also establishes a binding between the writability of
- * @key and the "sensitive" property of @object (if @object has
- * a boolean property by that name). See g_settings_bind_writable()
- * for more details about writable bindings.
+ * This function is optional for inherited classes.
*
- * Note that the lifecycle of the binding is tied to @object,
- * and that you can have only one binding per object property.
- * If you bind the same property twice on the same object, the second
- * binding overrides the first one.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Since: 2.26
+ * Returns: %TRUE on success, %FALSE on error
*/
/**
- * g_settings_bind_with_mapping: (skip)
- * @settings: a #GSettings object
- * @key: the key to bind
- * @object: (type GObject.Object): a #GObject
- * @property: the name of the property to bind
- * @flags: flags for the binding
- * @get_mapping: a function that gets called to convert values
- * from @settings to @object, or %NULL to use the default GIO mapping
- * @set_mapping: a function that gets called to convert values
- * from @object to @settings, or %NULL to use the default GIO mapping
- * @user_data: data that gets passed to @get_mapping and @set_mapping
- * @destroy: #GDestroyNotify function for @user_data
+ * g_output_stream_flush_async:
+ * @stream: a #GOutputStream.
+ * @io_priority: the io priority of the request.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Create a binding between the @key in the @settings object
- * and the property @property of @object.
+ * Forces an asynchronous write of all user-space buffered data for
+ * the given @stream.
+ * For behaviour details see g_output_stream_flush().
*
- * The binding uses the provided mapping functions to map between
- * settings and property values.
+ * When the operation is finished @callback will be
+ * called. You can then call g_output_stream_flush_finish() to get the
+ * result of the operation.
+ */
+
+
+/**
+ * g_output_stream_flush_finish:
+ * @stream: a #GOutputStream.
+ * @result: a GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Note that the lifecycle of the binding is tied to @object,
- * and that you can have only one binding per object property.
- * If you bind the same property twice on the same object, the second
- * binding overrides the first one.
+ * Finishes flushing an output stream.
*
- * Since: 2.26
+ * Returns: %TRUE if flush operation succeeded, %FALSE otherwise.
*/
/**
- * g_settings_bind_writable:
- * @settings: a #GSettings object
- * @key: the key to bind
- * @object: (type GObject.Object): a #GObject
- * @property: the name of a boolean property to bind
- * @inverted: whether to 'invert' the value
+ * g_output_stream_has_pending:
+ * @stream: a #GOutputStream.
*
- * Create a binding between the writability of @key in the
- * @settings object and the property @property of @object.
- * The property must be boolean; "sensitive" or "visible"
- * properties of widgets are the most likely candidates.
+ * Checks if an output stream has pending actions.
*
- * Writable bindings are always uni-directional; changes of the
- * writability of the setting will be propagated to the object
- * property, not the other way.
+ * Returns: %TRUE if @stream has pending actions.
+ */
+
+
+/**
+ * g_output_stream_is_closed:
+ * @stream: a #GOutputStream.
*
- * When the @inverted argument is %TRUE, the binding inverts the
- * value as it passes from the setting to the object, i.e. @property
- * will be set to %TRUE if the key is not writable.
+ * Checks if an output stream has already been closed.
*
- * Note that the lifecycle of the binding is tied to @object,
- * and that you can have only one binding per object property.
- * If you bind the same property twice on the same object, the second
- * binding overrides the first one.
+ * Returns: %TRUE if @stream is closed. %FALSE otherwise.
+ */
+
+
+/**
+ * g_output_stream_is_closing:
+ * @stream: a #GOutputStream.
*
- * Since: 2.26
+ * Checks if an output stream is being closed. This can be
+ * used inside e.g. a flush implementation to see if the
+ * flush (or other i/o operation) is called from within
+ * the closing operation.
+ *
+ * Returns: %TRUE if @stream is being closed. %FALSE otherwise.
+ * Since: 2.24
*/
/**
- * g_settings_create_action:
- * @settings: a #GSettings
- * @key: the name of a key in @settings
+ * g_output_stream_printf:
+ * @stream: a #GOutputStream.
+ * @bytes_written: (out) (optional): location to store the number of bytes that was
+ * written to the stream
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
+ * @format: the format string. See the printf() documentation
+ * @...: the parameters to insert into the format string
*
- * Creates a #GAction corresponding to a given #GSettings key.
+ * This is a utility function around g_output_stream_write_all(). It
+ * uses g_strdup_vprintf() to turn @format and @... into a string that
+ * is then written to @stream.
*
- * The action has the same name as the key.
+ * See the documentation of g_output_stream_write_all() about the
+ * behavior of the actual write operation.
*
- * The value of the key becomes the state of the action and the action
- * is enabled when the key is writable. Changing the state of the
- * action results in the key being written to. Changes to the value or
- * writability of the key cause appropriate change notifications to be
- * emitted for the action.
+ * Note that partial writes cannot be properly checked with this
+ * function due to the variable length of the written string, if you
+ * need precise control over partial write failures, you need to
+ * create you own printf()-like wrapper around g_output_stream_write()
+ * or g_output_stream_write_all().
*
- * For boolean-valued keys, action activations take no parameter and
- * result in the toggling of the value. For all other types,
- * activations take the new value for the key (which must have the
- * correct type).
+ * Since: 2.40
+ * Returns: %TRUE on success, %FALSE if there was an error
+ */
+
+
+/**
+ * g_output_stream_set_pending:
+ * @stream: a #GOutputStream.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Returns: (transfer full): a new #GAction
- * Since: 2.32
+ * Sets @stream to have actions pending. If the pending flag is
+ * already set or @stream is closed, it will return %FALSE and set
+ * @error.
+ *
+ * Returns: %TRUE if pending was previously unset and is now set.
*/
/**
- * g_settings_delay:
- * @settings: a #GSettings object
+ * g_output_stream_splice:
+ * @stream: a #GOutputStream.
+ * @source: a #GInputStream.
+ * @flags: a set of #GOutputStreamSpliceFlags.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Changes the #GSettings object into 'delay-apply' mode. In this
- * mode, changes to @settings are not immediately propagated to the
- * backend, but kept locally until g_settings_apply() is called.
+ * Splices an input stream into an output stream.
*
- * Since: 2.26
+ * Returns: a #gssize containing the size of the data spliced, or
+ * -1 if an error occurred. Note that if the number of bytes
+ * spliced is greater than %G_MAXSSIZE, then that will be
+ * returned, and there is no way to determine the actual number
+ * of bytes spliced.
*/
/**
- * g_settings_get:
- * @settings: a #GSettings object
- * @key: the key to get the value for
- * @format: a #GVariant format string
- * @...: arguments as per @format
+ * g_output_stream_splice_async:
+ * @stream: a #GOutputStream.
+ * @source: a #GInputStream.
+ * @flags: a set of #GOutputStreamSpliceFlags.
+ * @io_priority: the io priority of the request.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
*
- * Gets the value that is stored at @key in @settings.
+ * Splices a stream asynchronously.
+ * When the operation is finished @callback will be called.
+ * You can then call g_output_stream_splice_finish() to get the
+ * result of the operation.
*
- * A convenience function that combines g_settings_get_value() with
- * g_variant_get().
+ * For the synchronous, blocking version of this function, see
+ * g_output_stream_splice().
+ */
+
+
+/**
+ * g_output_stream_splice_finish:
+ * @stream: a #GOutputStream.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * It is a programmer error to give a @key that isn't contained in the
- * schema for @settings or for the #GVariantType of @format to mismatch
- * the type given in the schema.
+ * Finishes an asynchronous stream splice operation.
*
- * Since: 2.26
+ * Returns: a #gssize of the number of bytes spliced. Note that if the
+ * number of bytes spliced is greater than %G_MAXSSIZE, then that
+ * will be returned, and there is no way to determine the actual
+ * number of bytes spliced.
*/
/**
- * g_settings_get_boolean:
- * @settings: a #GSettings object
- * @key: the key to get the value for
+ * g_output_stream_vprintf:
+ * @stream: a #GOutputStream.
+ * @bytes_written: (out) (optional): location to store the number of bytes that was
+ * written to the stream
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
+ * @format: the format string. See the printf() documentation
+ * @args: the parameters to insert into the format string
*
- * Gets the value that is stored at @key in @settings.
+ * This is a utility function around g_output_stream_write_all(). It
+ * uses g_strdup_vprintf() to turn @format and @args into a string that
+ * is then written to @stream.
*
- * A convenience variant of g_settings_get() for booleans.
+ * See the documentation of g_output_stream_write_all() about the
+ * behavior of the actual write operation.
*
- * It is a programmer error to give a @key that isn't specified as
- * having a boolean type in the schema for @settings.
+ * Note that partial writes cannot be properly checked with this
+ * function due to the variable length of the written string, if you
+ * need precise control over partial write failures, you need to
+ * create you own printf()-like wrapper around g_output_stream_write()
+ * or g_output_stream_write_all().
*
- * Returns: a boolean
- * Since: 2.26
+ * Since: 2.40
+ * Returns: %TRUE on success, %FALSE if there was an error
*/
/**
- * g_settings_get_child:
- * @settings: a #GSettings object
- * @name: the name of the child schema
+ * g_output_stream_write: (virtual write_fn)
+ * @stream: a #GOutputStream.
+ * @buffer: (array length=count) (element-type guint8): the buffer containing the data to write.
+ * @count: the number of bytes to write
+ * @cancellable: (nullable): optional cancellable object
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Creates a child settings object which has a base path of
- * `base-path/@name`, where `base-path` is the base path of
- * @settings.
+ * Tries to write @count bytes from @buffer into the stream. Will block
+ * during the operation.
*
- * The schema for the child settings object must have been declared
- * in the schema of @settings using a <child> element.
+ * If count is 0, returns 0 and does nothing. A value of @count
+ * larger than %G_MAXSSIZE will cause a %G_IO_ERROR_INVALID_ARGUMENT error.
*
- * Returns: (transfer full): a 'child' settings object
- * Since: 2.26
+ * On success, the number of bytes written to the stream is returned.
+ * 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, or if there is not enough
+ * storage in the stream. All writes block until at least one byte
+ * is written or an error occurs; 0 is never returned (unless
+ * @count is 0).
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
+ * operation was partially finished when the operation was cancelled the
+ * partial result will be returned, without an error.
+ *
+ * On error -1 is returned and @error is set accordingly.
+ *
+ * Returns: Number of bytes written, or -1 on error
*/
/**
- * g_settings_get_default_value:
- * @settings: a #GSettings object
- * @key: the key to get the default value for
- *
- * Gets the "default value" of a key.
+ * g_output_stream_write_all:
+ * @stream: a #GOutputStream.
+ * @buffer: (array length=count) (element-type guint8): the buffer containing the data to write.
+ * @count: the number of bytes to write
+ * @bytes_written: (out) (optional): location to store the number of bytes that was
+ * written to the stream
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * This is the value that would be read if g_settings_reset() were to be
- * called on the key.
+ * Tries to write @count bytes from @buffer into the stream. Will block
+ * during the operation.
*
- * Note that this may be a different value than returned by
- * g_settings_schema_key_get_default_value() if the system administrator
- * has provided a default value.
+ * This function is similar to g_output_stream_write(), except it tries to
+ * write as many bytes as requested, only stopping on an error.
*
- * Comparing the return values of g_settings_get_default_value() and
- * g_settings_get_value() is not sufficient for determining if a value
- * has been set because the user may have explicitly set the value to
- * something that happens to be equal to the default. The difference
- * here is that if the default changes in the future, the user's key
- * will still be set.
+ * On a successful write of @count bytes, %TRUE is returned, and @bytes_written
+ * is set to @count.
*
- * This function may be useful for adding an indication to a UI of what
- * the default value was before the user set it.
+ * If there is an error during the operation %FALSE is returned and @error
+ * is set to indicate the error status.
*
- * It is a programmer error to give a @key that isn't contained in the
- * schema for @settings.
+ * 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().
*
- * Returns: (nullable) (transfer full): the default value
- * Since: 2.40
+ * Returns: %TRUE on success, %FALSE if there was an error
*/
/**
- * g_settings_get_double:
- * @settings: a #GSettings object
- * @key: the key to get the value for
+ * g_output_stream_write_all_async:
+ * @stream: A #GOutputStream
+ * @buffer: (array length=count) (element-type guint8): the buffer containing the data to write
+ * @count: the number of bytes to write
+ * @io_priority: the io priority of the request
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Gets the value that is stored at @key in @settings.
+ * 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.
*
- * A convenience variant of g_settings_get() for doubles.
+ * This is the asynchronous version of g_output_stream_write_all().
*
- * It is a programmer error to give a @key that isn't specified as
- * having a 'double' type in the schema for @settings.
+ * Call g_output_stream_write_all_finish() to collect the result.
*
- * Returns: a double
- * Since: 2.26
+ * 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
*/
/**
- * g_settings_get_enum:
- * @settings: a #GSettings object
- * @key: the key to get the value for
- *
- * Gets the value that is stored in @settings for @key and converts it
- * to the enum value that it represents.
- *
- * In order to use this function the type of the value must be a string
- * and it must be marked in the schema file as an enumerated type.
+ * g_output_stream_write_all_finish:
+ * @stream: a #GOutputStream
+ * @result: a #GAsyncResult
+ * @bytes_written: (out) (optional): location to store the number of bytes that was written to the stream
+ * @error: a #GError location to store the error occurring, or %NULL to ignore.
*
- * It is a programmer error to give a @key that isn't contained in the
- * schema for @settings or is not marked as an enumerated type.
+ * Finishes an asynchronous stream write operation started with
+ * g_output_stream_write_all_async().
*
- * If the value stored in the configuration database is not a valid
- * value for the enumerated type then this function will return the
- * default value.
+ * 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().
*
- * Returns: the enum value
- * Since: 2.26
+ * Returns: %TRUE on success, %FALSE if there was an error
+ * Since: 2.44
*/
/**
- * g_settings_get_flags:
- * @settings: a #GSettings object
- * @key: the key to get the value for
+ * g_output_stream_write_async:
+ * @stream: A #GOutputStream.
+ * @buffer: (array length=count) (element-type guint8): the buffer containing the data to write.
+ * @count: the number of bytes to write
+ * @io_priority: the io priority of the request.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Gets the value that is stored in @settings for @key and converts it
- * to the flags value that it represents.
+ * 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_finish() to get the result of the
+ * operation.
*
- * In order to use this function the type of the value must be an array
- * of strings and it must be marked in the schema file as an flags type.
+ * During an async request no other sync and async calls are allowed,
+ * and will result in %G_IO_ERROR_PENDING errors.
*
- * It is a programmer error to give a @key that isn't contained in the
- * schema for @settings or is not marked as a flags type.
+ * A value of @count larger than %G_MAXSSIZE will cause a
+ * %G_IO_ERROR_INVALID_ARGUMENT error.
*
- * If the value stored in the configuration database is not a valid
- * value for the flags type then this function will return the default
- * value.
+ * On success, the number of bytes written will be passed to the
+ * @callback. 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.
*
- * Returns: the flags value
- * Since: 2.26
+ * You are guaranteed that this method will never fail with
+ * %G_IO_ERROR_WOULD_BLOCK - if @stream can't accept more data, the
+ * method will just wait until this changes.
+ *
+ * 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.
+ *
+ * The asynchronous 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
+ * g_output_stream_write().
+ *
+ * Note that no copy of @buffer will be made, so it must stay valid
+ * until @callback is called. See g_output_stream_write_bytes_async()
+ * for a #GBytes version that will automatically hold a reference to
+ * the contents (without copying) for the duration of the call.
*/
/**
- * g_settings_get_has_unapplied:
- * @settings: a #GSettings object
+ * g_output_stream_write_bytes:
+ * @stream: a #GOutputStream.
+ * @bytes: the #GBytes to write
+ * @cancellable: (nullable): optional cancellable object
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Returns whether the #GSettings object has any unapplied
- * changes. This can only be the case if it is in 'delayed-apply' mode.
+ * A wrapper function for g_output_stream_write() which takes a
+ * #GBytes as input. This can be more convenient for use by language
+ * bindings or in other cases where the refcounted nature of #GBytes
+ * is helpful over a bare pointer interface.
*
- * Returns: %TRUE if @settings has unapplied changes
- * Since: 2.26
+ * However, note that this function may still perform partial writes,
+ * just like g_output_stream_write(). If that occurs, to continue
+ * writing, you will need to create a new #GBytes containing just the
+ * remaining bytes, using g_bytes_new_from_bytes(). Passing the same
+ * #GBytes instance multiple times potentially can result in duplicated
+ * data in the output stream.
+ *
+ * Returns: Number of bytes written, or -1 on error
*/
/**
- * g_settings_get_int:
- * @settings: a #GSettings object
- * @key: the key to get the value for
- *
- * Gets the value that is stored at @key in @settings.
+ * g_output_stream_write_bytes_async:
+ * @stream: A #GOutputStream.
+ * @bytes: The bytes to write
+ * @io_priority: the io priority of the request.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * A convenience variant of g_settings_get() for 32-bit integers.
+ * This function is similar to g_output_stream_write_async(), but
+ * takes a #GBytes as input. Due to the refcounted nature of #GBytes,
+ * this allows the stream to avoid taking a copy of the data.
*
- * It is a programmer error to give a @key that isn't specified as
- * having a int32 type in the schema for @settings.
+ * However, note that this function may still perform partial writes,
+ * just like g_output_stream_write_async(). If that occurs, to continue
+ * writing, you will need to create a new #GBytes containing just the
+ * remaining bytes, using g_bytes_new_from_bytes(). Passing the same
+ * #GBytes instance multiple times potentially can result in duplicated
+ * data in the output stream.
*
- * Returns: an integer
- * Since: 2.26
+ * For the synchronous, blocking version of this function, see
+ * g_output_stream_write_bytes().
*/
/**
- * g_settings_get_int64:
- * @settings: a #GSettings object
- * @key: the key to get the value for
+ * g_output_stream_write_bytes_finish:
+ * @stream: a #GOutputStream.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Gets the value that is stored at @key in @settings.
+ * Finishes a stream write-from-#GBytes operation.
*
- * A convenience variant of g_settings_get() for 64-bit integers.
+ * Returns: a #gssize containing the number of bytes written to the stream.
+ */
+
+
+/**
+ * g_output_stream_write_finish:
+ * @stream: a #GOutputStream.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * It is a programmer error to give a @key that isn't specified as
- * having a int64 type in the schema for @settings.
+ * Finishes a stream write operation.
*
- * Returns: a 64-bit integer
- * Since: 2.50
+ * Returns: a #gssize containing the number of bytes written to the stream.
*/
/**
- * g_settings_get_mapped:
- * @settings: a #GSettings object
- * @key: the key to get the value for
- * @mapping: (scope call): the function to map the value in the
- * settings database to the value used by the application
- * @user_data: user data for @mapping
- *
- * Gets the value that is stored at @key in @settings, subject to
- * application-level validation/mapping.
+ * g_permission_acquire:
+ * @permission: a #GPermission instance
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a pointer to a %NULL #GError, or %NULL
*
- * You should use this function when the application needs to perform
- * some processing on the value of the key (for example, parsing). The
- * @mapping function performs that processing. If the function
- * indicates that the processing was unsuccessful (due to a parse error,
- * for example) then the mapping is tried again with another value.
+ * Attempts to acquire the permission represented by @permission.
*
- * This allows a robust 'fall back to defaults' behaviour to be
- * implemented somewhat automatically.
+ * The precise method by which this happens depends on the permission
+ * and the underlying authentication mechanism. A simple example is
+ * that a dialog may appear asking the user to enter their password.
*
- * The first value that is tried is the user's setting for the key. If
- * the mapping function fails to map this value, other values may be
- * tried in an unspecified order (system or site defaults, translated
- * schema default values, untranslated schema default values, etc).
+ * You should check with g_permission_get_can_acquire() before calling
+ * this function.
*
- * If the mapping function fails for all possible values, one additional
- * attempt is made: the mapping function is called with a %NULL value.
- * If the mapping function still indicates failure at this point then
- * the application will be aborted.
+ * If the permission is acquired then %TRUE is returned. Otherwise,
+ * %FALSE is returned and @error is set appropriately.
*
- * The result parameter for the @mapping function is pointed to a
- * #gpointer which is initially set to %NULL. The same pointer is given
- * to each invocation of @mapping. The final value of that #gpointer is
- * what is returned by this function. %NULL is valid; it is returned
- * just as any other value would be.
+ * This call is blocking, likely for a very long time (in the case that
+ * user interaction is required). See g_permission_acquire_async() for
+ * the non-blocking version.
*
- * Returns: (transfer full): the result, which may be %NULL
+ * Returns: %TRUE if the permission was successfully acquired
+ * Since: 2.26
*/
/**
- * g_settings_get_range:
- * @settings: a #GSettings
- * @key: the key to query the range of
+ * g_permission_acquire_async:
+ * @permission: a #GPermission instance
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: the #GAsyncReadyCallback to call when done
+ * @user_data: the user data to pass to @callback
*
- * Queries the range of a key.
+ * Attempts to acquire the permission represented by @permission.
*
- * Since: 2.28
- * Deprecated: 2.40: Use g_settings_schema_key_get_range() instead.
+ * This is the first half of the asynchronous version of
+ * g_permission_acquire().
+ *
+ * Since: 2.26
*/
/**
- * g_settings_get_string:
- * @settings: a #GSettings object
- * @key: the key to get the value for
- *
- * Gets the value that is stored at @key in @settings.
+ * g_permission_acquire_finish:
+ * @permission: a #GPermission instance
+ * @result: the #GAsyncResult given to the #GAsyncReadyCallback
+ * @error: a pointer to a %NULL #GError, or %NULL
*
- * A convenience variant of g_settings_get() for strings.
+ * Collects the result of attempting to acquire the permission
+ * represented by @permission.
*
- * It is a programmer error to give a @key that isn't specified as
- * having a string type in the schema for @settings.
+ * This is the second half of the asynchronous version of
+ * g_permission_acquire().
*
- * Returns: a newly-allocated string
+ * Returns: %TRUE if the permission was successfully acquired
* Since: 2.26
*/
/**
- * g_settings_get_strv:
- * @settings: a #GSettings object
- * @key: the key to get the value for
- *
- * A convenience variant of g_settings_get() for string arrays.
+ * g_permission_get_allowed:
+ * @permission: a #GPermission instance
*
- * It is a programmer error to give a @key that isn't specified as
- * having an array of strings type in the schema for @settings.
+ * Gets the value of the 'allowed' property. This property is %TRUE if
+ * the caller currently has permission to perform the action that
+ * @permission represents the permission to perform.
*
- * Returns: (array zero-terminated=1) (transfer full): a
- * newly-allocated, %NULL-terminated array of strings, the value that
- * is stored at @key in @settings.
+ * Returns: the value of the 'allowed' property
* Since: 2.26
*/
/**
- * g_settings_get_uint:
- * @settings: a #GSettings object
- * @key: the key to get the value for
- *
- * Gets the value that is stored at @key in @settings.
- *
- * A convenience variant of g_settings_get() for 32-bit unsigned
- * integers.
+ * g_permission_get_can_acquire:
+ * @permission: a #GPermission instance
*
- * It is a programmer error to give a @key that isn't specified as
- * having a uint32 type in the schema for @settings.
+ * Gets the value of the 'can-acquire' property. This property is %TRUE
+ * if it is generally possible to acquire the permission by calling
+ * g_permission_acquire().
*
- * Returns: an unsigned integer
- * Since: 2.30
+ * Returns: the value of the 'can-acquire' property
+ * Since: 2.26
*/
/**
- * g_settings_get_uint64:
- * @settings: a #GSettings object
- * @key: the key to get the value for
- *
- * Gets the value that is stored at @key in @settings.
- *
- * A convenience variant of g_settings_get() for 64-bit unsigned
- * integers.
+ * g_permission_get_can_release:
+ * @permission: a #GPermission instance
*
- * It is a programmer error to give a @key that isn't specified as
- * having a uint64 type in the schema for @settings.
+ * Gets the value of the 'can-release' property. This property is %TRUE
+ * if it is generally possible to release the permission by calling
+ * g_permission_release().
*
- * Returns: a 64-bit unsigned integer
- * Since: 2.50
+ * Returns: the value of the 'can-release' property
+ * Since: 2.26
*/
/**
- * g_settings_get_user_value:
- * @settings: a #GSettings object
- * @key: the key to get the user value for
- *
- * Checks the "user value" of a key, if there is one.
- *
- * The user value of a key is the last value that was set by the user.
- *
- * After calling g_settings_reset() this function should always return
- * %NULL (assuming something is not wrong with the system
- * configuration).
- *
- * It is possible that g_settings_get_value() will return a different
- * value than this function. This can happen in the case that the user
- * set a value for a key that was subsequently locked down by the system
- * administrator -- this function will return the user's old value.
+ * g_permission_impl_update:
+ * @permission: a #GPermission instance
+ * @allowed: the new value for the 'allowed' property
+ * @can_acquire: the new value for the 'can-acquire' property
+ * @can_release: the new value for the 'can-release' property
*
- * This function may be useful for adding a "reset" option to a UI or
- * for providing indication that a particular value has been changed.
+ * This function is called by the #GPermission implementation to update
+ * the properties of the permission. You should never call this
+ * function except from a #GPermission implementation.
*
- * It is a programmer error to give a @key that isn't contained in the
- * schema for @settings.
+ * GObject notify signals are generated, as appropriate.
*
- * Returns: (nullable) (transfer full): the user's value, if set
- * Since: 2.40
+ * Since: 2.26
*/
/**
- * g_settings_get_value:
- * @settings: a #GSettings object
- * @key: the key to get the value for
+ * g_permission_release:
+ * @permission: a #GPermission instance
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a pointer to a %NULL #GError, or %NULL
*
- * Gets the value that is stored in @settings for @key.
+ * Attempts to release the permission represented by @permission.
*
- * It is a programmer error to give a @key that isn't contained in the
- * schema for @settings.
+ * The precise method by which this happens depends on the permission
+ * and the underlying authentication mechanism. In most cases the
+ * permission will be dropped immediately without further action.
*
- * Returns: a new #GVariant
+ * You should check with g_permission_get_can_release() before calling
+ * this function.
+ *
+ * If the permission is released then %TRUE is returned. Otherwise,
+ * %FALSE is returned and @error is set appropriately.
+ *
+ * This call is blocking, likely for a very long time (in the case that
+ * user interaction is required). See g_permission_release_async() for
+ * the non-blocking version.
+ *
+ * Returns: %TRUE if the permission was successfully released
* Since: 2.26
*/
/**
- * g_settings_is_writable:
- * @settings: a #GSettings object
- * @name: the name of a key
+ * g_permission_release_async:
+ * @permission: a #GPermission instance
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: the #GAsyncReadyCallback to call when done
+ * @user_data: the user data to pass to @callback
*
- * Finds out if a key can be written or not
+ * Attempts to release the permission represented by @permission.
+ *
+ * This is the first half of the asynchronous version of
+ * g_permission_release().
*
- * Returns: %TRUE if the key @name is writable
* Since: 2.26
*/
/**
- * g_settings_list_children:
- * @settings: a #GSettings object
- *
- * Gets the list of children on @settings.
- *
- * The list is exactly the list of strings for which it is not an error
- * to call g_settings_get_child().
- *
- * For GSettings objects that are lists, this value can change at any
- * time. Note that there is a race condition here: you may
- * request a child after listing it only for it to have been destroyed
- * in the meantime. For this reason, g_settings_get_child() may return
- * %NULL even for a child that was listed by this function.
+ * g_permission_release_finish:
+ * @permission: a #GPermission instance
+ * @result: the #GAsyncResult given to the #GAsyncReadyCallback
+ * @error: a pointer to a %NULL #GError, or %NULL
*
- * For GSettings objects that are not lists, you should probably not be
- * calling this function from "normal" code (since you should already
- * know what children are in your schema). This function may still be
- * useful there for introspection reasons, however.
+ * Collects the result of attempting to release the permission
+ * represented by @permission.
*
- * You should free the return value with g_strfreev() when you are done
- * with it.
+ * This is the second half of the asynchronous version of
+ * g_permission_release().
*
- * Returns: (transfer full) (element-type utf8): a list of the children on @settings
+ * Returns: %TRUE if the permission was successfully released
+ * Since: 2.26
*/
/**
- * g_settings_list_keys:
- * @settings: a #GSettings object
- *
- * Introspects the list of keys on @settings.
+ * g_pollable_input_stream_can_poll:
+ * @stream: a #GPollableInputStream.
*
- * You should probably not be calling this function from "normal" code
- * (since you should already know what keys are in your schema). This
- * function is intended for introspection reasons.
+ * Checks if @stream is actually pollable. Some classes may implement
+ * #GPollableInputStream but have only certain instances of that class
+ * be pollable. If this method returns %FALSE, then the behavior of
+ * other #GPollableInputStream methods is undefined.
*
- * You should free the return value with g_strfreev() when you are done
- * with it.
+ * For any given stream, the value returned by this method is constant;
+ * a stream cannot switch from pollable to non-pollable or vice versa.
*
- * Returns: (transfer full) (element-type utf8): a list of the keys on @settings
+ * Returns: %TRUE if @stream is pollable, %FALSE if not.
+ * Since: 2.28
*/
/**
- * g_settings_list_relocatable_schemas:
+ * g_pollable_input_stream_create_source:
+ * @stream: a #GPollableInputStream.
+ * @cancellable: (nullable): a #GCancellable, or %NULL
*
- * Deprecated.
+ * Creates a #GSource that triggers when @stream can be read, or
+ * @cancellable is triggered or an error occurs. The callback on the
+ * source is of the #GPollableSourceFunc type.
*
- * Returns: (element-type utf8) (transfer none): a list of relocatable
- * #GSettings schemas that are available. The list must not be
- * modified or freed.
+ * As with g_pollable_input_stream_is_readable(), it is possible that
+ * the stream may not actually be readable even after the source
+ * triggers, so you should use g_pollable_input_stream_read_nonblocking()
+ * rather than g_input_stream_read() from the callback.
+ *
+ * Returns: (transfer full): a new #GSource
* Since: 2.28
- * Deprecated: 2.40: Use g_settings_schema_source_list_schemas() instead
*/
/**
- * g_settings_list_schemas:
+ * g_pollable_input_stream_is_readable:
+ * @stream: a #GPollableInputStream.
*
- * Deprecated.
+ * Checks if @stream can be read.
*
- * Returns: (element-type utf8) (transfer none): a list of #GSettings
- * schemas that are available. The list must not be modified or
- * freed.
- * Since: 2.26
- * 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.
+ * Note that some stream types may not be able to implement this 100%
+ * reliably, and it is possible that a call to g_input_stream_read()
+ * after this returns %TRUE would still block. To guarantee
+ * non-blocking behavior, you should always use
+ * g_pollable_input_stream_read_nonblocking(), which will return a
+ * %G_IO_ERROR_WOULD_BLOCK error rather than blocking.
+ *
+ * Returns: %TRUE if @stream is readable, %FALSE if not. If an error
+ * has occurred on @stream, this will result in
+ * g_pollable_input_stream_is_readable() returning %TRUE, and the
+ * next attempt to read will return the error.
+ * Since: 2.28
*/
/**
- * g_settings_new:
- * @schema_id: the id of the schema
+ * g_pollable_input_stream_read_nonblocking: (virtual read_nonblocking)
+ * @stream: a #GPollableInputStream
+ * @buffer: (array length=count) (element-type guint8): a buffer to
+ * read data into (which should be at least @count bytes long).
+ * @count: the number of bytes you want to read
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Creates a new #GSettings object with the schema specified by
- * @schema_id.
+ * Attempts to read up to @count bytes from @stream into @buffer, as
+ * with g_input_stream_read(). If @stream is not currently readable,
+ * this will immediately return %G_IO_ERROR_WOULD_BLOCK, and you can
+ * use g_pollable_input_stream_create_source() to create a #GSource
+ * that will be triggered when @stream is readable.
*
- * Signals on the newly created #GSettings object will be dispatched
- * via the thread-default #GMainContext in effect at the time of the
- * call to g_settings_new(). The new #GSettings will hold a reference
- * on the context. See g_main_context_push_thread_default().
+ * Note that since this method never blocks, you cannot actually
+ * use @cancellable to cancel it. However, it will return an error
+ * if @cancellable has already been cancelled when you call, which
+ * may happen if you call this method after a source triggers due
+ * to having been cancelled.
*
- * Returns: a new #GSettings object
- * Since: 2.26
+ * Returns: the number of bytes read, or -1 on error (including
+ * %G_IO_ERROR_WOULD_BLOCK).
*/
/**
- * g_settings_new_full:
- * @schema: a #GSettingsSchema
- * @backend: (nullable): a #GSettingsBackend
- * @path: (nullable): the path to use
- *
- * Creates a new #GSettings object with a given schema, backend and
- * path.
- *
- * It should be extremely rare that you ever want to use this function.
- * It is made available for advanced use-cases (such as plugin systems
- * that want to provide access to schemas loaded from custom locations,
- * etc).
- *
- * At the most basic level, a #GSettings object is a pure composition of
- * 4 things: a #GSettingsSchema, a #GSettingsBackend, a path within that
- * backend, and a #GMainContext to which signals are dispatched.
- *
- * This constructor therefore gives you full control over constructing
- * #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()).
+ * g_pollable_output_stream_can_poll:
+ * @stream: a #GPollableOutputStream.
*
- * If @backend is %NULL then the default backend is used.
+ * Checks if @stream is actually pollable. Some classes may implement
+ * #GPollableOutputStream but have only certain instances of that
+ * class be pollable. If this method returns %FALSE, then the behavior
+ * of other #GPollableOutputStream methods is undefined.
*
- * If @path is %NULL then the path from the schema is used. It is an
- * 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.
+ * For any given stream, the value returned by this method is constant;
+ * a stream cannot switch from pollable to non-pollable or vice versa.
*
- * Returns: a new #GSettings object
- * Since: 2.32
+ * Returns: %TRUE if @stream is pollable, %FALSE if not.
+ * Since: 2.28
*/
/**
- * g_settings_new_with_backend:
- * @schema_id: the id of the schema
- * @backend: the #GSettingsBackend to use
+ * g_pollable_output_stream_create_source:
+ * @stream: a #GPollableOutputStream.
+ * @cancellable: (nullable): a #GCancellable, or %NULL
*
- * Creates a new #GSettings object with the schema specified by
- * @schema_id and a given #GSettingsBackend.
+ * Creates a #GSource that triggers when @stream can be written, or
+ * @cancellable is triggered or an error occurs. The callback on the
+ * source is of the #GPollableSourceFunc type.
*
- * Creating a #GSettings object with a different backend allows accessing
- * settings from a database other than the usual one. For example, it may make
- * sense to pass a backend corresponding to the "defaults" settings database on
- * the system to get a settings object that modifies the system default
- * settings instead of the settings for this user.
+ * As with g_pollable_output_stream_is_writable(), it is possible that
+ * the stream may not actually be writable even after the source
+ * triggers, so you should use g_pollable_output_stream_write_nonblocking()
+ * rather than g_output_stream_write() from the callback.
*
- * Returns: a new #GSettings object
- * Since: 2.26
+ * Returns: (transfer full): a new #GSource
+ * Since: 2.28
*/
/**
- * g_settings_new_with_backend_and_path:
- * @schema_id: the id of the schema
- * @backend: the #GSettingsBackend to use
- * @path: the path to use
+ * g_pollable_output_stream_is_writable:
+ * @stream: a #GPollableOutputStream.
*
- * Creates a new #GSettings object with the schema specified by
- * @schema_id and a given #GSettingsBackend and path.
+ * Checks if @stream can be written.
*
- * This is a mix of g_settings_new_with_backend() and
- * g_settings_new_with_path().
+ * Note that some stream types may not be able to implement this 100%
+ * reliably, and it is possible that a call to g_output_stream_write()
+ * after this returns %TRUE would still block. To guarantee
+ * non-blocking behavior, you should always use
+ * g_pollable_output_stream_write_nonblocking(), which will return a
+ * %G_IO_ERROR_WOULD_BLOCK error rather than blocking.
*
- * Returns: a new #GSettings object
- * Since: 2.26
+ * Returns: %TRUE if @stream is writable, %FALSE if not. If an error
+ * has occurred on @stream, this will result in
+ * g_pollable_output_stream_is_writable() returning %TRUE, and the
+ * next attempt to write will return the error.
+ * Since: 2.28
*/
/**
- * g_settings_new_with_path:
- * @schema_id: the id of the schema
- * @path: the path to use
- *
- * Creates a new #GSettings object with the relocatable schema specified
- * by @schema_id and a given path.
+ * g_pollable_output_stream_write_nonblocking: (virtual write_nonblocking)
+ * @stream: a #GPollableOutputStream
+ * @buffer: (array length=count) (element-type guint8): a buffer to write
+ * data from
+ * @count: the number of bytes you want to write
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * You only need to do this if you want to directly create a settings
- * object with a schema that doesn't have a specified path of its own.
- * That's quite rare.
+ * Attempts to write up to @count bytes from @buffer to @stream, as
+ * with g_output_stream_write(). If @stream is not currently writable,
+ * this will immediately return %G_IO_ERROR_WOULD_BLOCK, and you can
+ * use g_pollable_output_stream_create_source() to create a #GSource
+ * that will be triggered when @stream is writable.
*
- * It is a programmer error to call this function for a schema that
- * has an explicitly specified path.
+ * Note that since this method never blocks, you cannot actually
+ * use @cancellable to cancel it. However, it will return an error
+ * if @cancellable has already been cancelled when you call, which
+ * may happen if you call this method after a source triggers due
+ * to having been cancelled.
*
- * It is a programmer error if @path is not a valid path. A valid path
- * begins and ends with '/' and does not contain two consecutive '/'
- * characters.
+ * Also note that if %G_IO_ERROR_WOULD_BLOCK is returned some underlying
+ * transports like D/TLS require that you send the same @buffer and @count.
*
- * Returns: a new #GSettings object
- * Since: 2.26
+ * Returns: the number of bytes written, or -1 on error (including
+ * %G_IO_ERROR_WOULD_BLOCK).
*/
/**
- * g_settings_range_check:
- * @settings: a #GSettings
- * @key: the key to check
- * @value: the value to check
+ * g_pollable_source_new:
+ * @pollable_stream: the stream associated with the new source
*
- * Checks if the given @value is of the correct type and within the
- * permitted range for @key.
+ * Utility method for #GPollableInputStream and #GPollableOutputStream
+ * implementations. Creates a new #GSource that expects a callback of
+ * type #GPollableSourceFunc. The new source does not actually do
+ * anything on its own; use g_source_add_child_source() to add other
+ * sources to it to cause it to trigger.
*
- * Returns: %TRUE if @value is valid for @key
+ * Returns: (transfer full): the new #GSource.
* Since: 2.28
- * Deprecated: 2.40: Use g_settings_schema_key_range_check() instead.
*/
/**
- * g_settings_reset:
- * @settings: a #GSettings object
- * @key: the name of a key
+ * g_pollable_source_new_full:
+ * @pollable_stream: (type GObject): the stream associated with the
+ * new source
+ * @child_source: (nullable): optional child source to attach
+ * @cancellable: (nullable): optional #GCancellable to attach
*
- * Resets @key to its default value.
+ * Utility method for #GPollableInputStream and #GPollableOutputStream
+ * implementations. Creates a new #GSource, as with
+ * g_pollable_source_new(), but also attaching @child_source (with a
+ * dummy callback), and @cancellable, if they are non-%NULL.
*
- * This call resets the key, as much as possible, to its default value.
- * That might the value specified in the schema or the one set by the
- * administrator.
+ * Returns: (transfer full): the new #GSource.
+ * Since: 2.34
*/
/**
- * g_settings_revert:
- * @settings: a #GSettings instance
+ * g_pollable_stream_read:
+ * @stream: a #GInputStream
+ * @buffer: (array length=count) (element-type guint8): a buffer to
+ * read data into
+ * @count: the number of bytes to read
+ * @blocking: whether to do blocking I/O
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Reverts all non-applied changes to the settings. This function
- * does nothing unless @settings is in 'delay-apply' mode; see
- * g_settings_delay(). In the normal case settings are always applied
- * immediately.
+ * Tries to read from @stream, as with g_input_stream_read() (if
+ * @blocking is %TRUE) or g_pollable_input_stream_read_nonblocking()
+ * (if @blocking is %FALSE). This can be used to more easily share
+ * code between blocking and non-blocking implementations of a method.
*
- * Change notifications will be emitted for affected keys.
+ * If @blocking is %FALSE, then @stream must be a
+ * #GPollableInputStream for which g_pollable_input_stream_can_poll()
+ * returns %TRUE, or else the behavior is undefined. If @blocking is
+ * %TRUE, then @stream does not need to be a #GPollableInputStream.
+ *
+ * Returns: the number of bytes read, or -1 on error.
+ * Since: 2.34
*/
/**
- * g_settings_schema_get_id:
- * @schema: a #GSettingsSchema
+ * g_pollable_stream_write:
+ * @stream: a #GOutputStream.
+ * @buffer: (array length=count) (element-type guint8): the buffer
+ * containing the data to write.
+ * @count: the number of bytes to write
+ * @blocking: whether to do blocking I/O
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Get the ID of @schema.
+ * Tries to write to @stream, as with g_output_stream_write() (if
+ * @blocking is %TRUE) or g_pollable_output_stream_write_nonblocking()
+ * (if @blocking is %FALSE). This can be used to more easily share
+ * code between blocking and non-blocking implementations of a method.
*
- * Returns: (transfer none): the ID
+ * If @blocking is %FALSE, then @stream must be a
+ * #GPollableOutputStream for which
+ * g_pollable_output_stream_can_poll() returns %TRUE or else the
+ * behavior is undefined. If @blocking is %TRUE, then @stream does not
+ * need to be a #GPollableOutputStream.
+ *
+ * Returns: the number of bytes written, or -1 on error.
+ * Since: 2.34
*/
/**
- * g_settings_schema_get_key:
- * @schema: a #GSettingsSchema
- * @name: the name of a key
+ * g_pollable_stream_write_all:
+ * @stream: a #GOutputStream.
+ * @buffer: (array length=count) (element-type guint8): the buffer
+ * containing the data to write.
+ * @count: the number of bytes to write
+ * @blocking: whether to do blocking I/O
+ * @bytes_written: (out): location to store the number of bytes that was
+ * written to the stream
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: location to store the error occurring, or %NULL to ignore
*
- * Gets the key named @name from @schema.
+ * Tries to write @count bytes to @stream, as with
+ * g_output_stream_write_all(), but using g_pollable_stream_write()
+ * rather than g_output_stream_write().
*
- * It is a programmer error to request a key that does not exist. See
- * g_settings_schema_list_keys().
+ * On a successful write of @count bytes, %TRUE is returned, and
+ * @bytes_written is set to @count.
*
- * Returns: (transfer full): the #GSettingsSchemaKey for @name
- * Since: 2.40
+ * If there is an error during the operation (including
+ * %G_IO_ERROR_WOULD_BLOCK in the non-blocking case), %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.
+ *
+ * As with g_pollable_stream_write(), if @blocking is %FALSE, then
+ * @stream must be a #GPollableOutputStream for which
+ * g_pollable_output_stream_can_poll() returns %TRUE or else the
+ * behavior is undefined. If @blocking is %TRUE, then @stream does not
+ * need to be a #GPollableOutputStream.
+ *
+ * Returns: %TRUE on success, %FALSE if there was an error
+ * Since: 2.34
*/
/**
- * g_settings_schema_get_path:
- * @schema: a #GSettingsSchema
+ * g_property_action_new:
+ * @name: the name of the action to create
+ * @object: (type GObject.Object): the object that has the property
+ * to wrap
+ * @property_name: the name of the property
*
- * Gets the path associated with @schema, or %NULL.
+ * Creates a #GAction corresponding to the value of property
+ * @property_name on @object.
*
- * Schemas may be single-instance or relocatable. Single-instance
- * schemas correspond to exactly one set of keys in the backend
- * database: those located at the path returned by this function.
+ * The property must be existent and readable and writable (and not
+ * construct-only).
*
- * Relocatable schemas can be referenced by other schemas and can
- * threfore describe multiple sets of keys at different locations. For
- * relocatable schemas, this function will return %NULL.
+ * This function takes a reference on @object and doesn't release it
+ * until the action is destroyed.
*
- * Returns: (transfer none): the path of the schema, or %NULL
- * Since: 2.32
+ * Returns: a new #GPropertyAction
+ * Since: 2.38
*/
/**
- * g_settings_schema_has_key:
- * @schema: a #GSettingsSchema
- * @name: the name of a key
+ * g_proxy_address_get_destination_hostname:
+ * @proxy: a #GProxyAddress
*
- * Checks if @schema has a key named @name.
+ * Gets @proxy's destination hostname; that is, the name of the host
+ * that will be connected to via the proxy, not the name of the proxy
+ * itself.
*
- * Returns: %TRUE if such a key exists
- * Since: 2.40
+ * Returns: the @proxy's destination hostname
+ * Since: 2.26
*/
/**
- * g_settings_schema_key_get_default_value:
- * @key: a #GSettingsSchemaKey
- *
- * Gets the default value for @key.
+ * g_proxy_address_get_destination_port:
+ * @proxy: a #GProxyAddress
*
- * Note that this is the default value according to the schema. System
- * administrator defaults and lockdown are not visible via this API.
+ * Gets @proxy's destination port; that is, the port on the
+ * destination host that will be connected to via the proxy, not the
+ * port number of the proxy itself.
*
- * Returns: (transfer full): the default value for the key
- * Since: 2.40
+ * Returns: the @proxy's destination port
+ * Since: 2.26
*/
/**
- * g_settings_schema_key_get_description:
- * @key: a #GSettingsSchemaKey
- *
- * Gets the description for @key.
- *
- * If no description has been provided in the schema for @key, returns
- * %NULL.
- *
- * The description can be one sentence to several paragraphs in length.
- * Paragraphs are delimited with a double newline. Descriptions can be
- * translated and the value returned from this function is is the
- * current locale.
+ * g_proxy_address_get_destination_protocol:
+ * @proxy: a #GProxyAddress
*
- * This function is slow. The summary and description information for
- * the schemas is not stored in the compiled schema database so this
- * function has to parse all of the source XML files in the schema
- * directory.
+ * Gets the protocol that is being spoken to the destination
+ * server; eg, "http" or "ftp".
*
- * Returns: the description for @key, or %NULL
+ * Returns: the @proxy's destination protocol
* Since: 2.34
*/
/**
- * g_settings_schema_key_get_name:
- * @key: a #GSettingsSchemaKey
+ * g_proxy_address_get_password:
+ * @proxy: a #GProxyAddress
*
- * Gets the name of @key.
+ * Gets @proxy's password.
*
- * Returns: the name of @key.
- * Since: 2.44
+ * Returns: the @proxy's password
+ * Since: 2.26
*/
/**
- * g_settings_schema_key_get_range:
- * @key: a #GSettingsSchemaKey
- *
- * Queries the range of a key.
- *
- * This function will return a #GVariant that fully describes the range
- * of values that are valid for @key.
- *
- * The type of #GVariant returned is `(sv)`. The string describes
- * the type of range restriction in effect. The type and meaning of
- * the value contained in the variant depends on the string.
- *
- * If the string is `'type'` then the variant contains an empty array.
- * The element type of that empty array is the expected type of value
- * and all values of that type are valid.
- *
- * If the string is `'enum'` then the variant contains an array
- * enumerating the possible values. Each item in the array is
- * a possible valid value and no other values are valid.
- *
- * If the string is `'flags'` then the variant contains an array. Each
- * item in the array is a value that may appear zero or one times in an
- * array to be used as the value for this key. For example, if the
- * variant contained the array `['x', 'y']` then the valid values for
- * the key would be `[]`, `['x']`, `['y']`, `['x', 'y']` and
- * `['y', 'x']`.
- *
- * Finally, if the string is `'range'` then the variant contains a pair
- * of like-typed values -- the minimum and maximum permissible values
- * for this key.
- *
- * This information should not be used by normal programs. It is
- * considered to be a hint for introspection purposes. Normal programs
- * should already know what is permitted by their own schema. The
- * format may change in any way in the future -- but particularly, new
- * forms may be added to the possibilities described above.
+ * g_proxy_address_get_protocol:
+ * @proxy: a #GProxyAddress
*
- * You should free the returned value with g_variant_unref() when it is
- * no longer needed.
+ * Gets @proxy's protocol. eg, "socks" or "http"
*
- * Returns: (transfer full): a #GVariant describing the range
- * Since: 2.40
+ * Returns: the @proxy's protocol
+ * Since: 2.26
*/
/**
- * g_settings_schema_key_get_summary:
- * @key: a #GSettingsSchemaKey
- *
- * Gets the summary for @key.
- *
- * If no summary has been provided in the schema for @key, returns
- * %NULL.
- *
- * The summary is a short description of the purpose of the key; usually
- * one short sentence. Summaries can be translated and the value
- * returned from this function is is the current locale.
+ * g_proxy_address_get_uri:
+ * @proxy: a #GProxyAddress
*
- * This function is slow. The summary and description information for
- * the schemas is not stored in the compiled schema database so this
- * function has to parse all of the source XML files in the schema
- * directory.
+ * Gets the proxy URI that @proxy was constructed from.
*
- * Returns: the summary for @key, or %NULL
+ * Returns: the @proxy's URI, or %NULL if unknown
* Since: 2.34
*/
/**
- * g_settings_schema_key_get_value_type:
- * @key: a #GSettingsSchemaKey
+ * g_proxy_address_get_username:
+ * @proxy: a #GProxyAddress
*
- * Gets the #GVariantType of @key.
+ * Gets @proxy's username.
*
- * Returns: (transfer none): the type of @key
- * Since: 2.40
+ * Returns: the @proxy's username
+ * Since: 2.26
*/
/**
- * g_settings_schema_key_range_check:
- * @key: a #GSettingsSchemaKey
- * @value: the value to check
+ * g_proxy_address_new:
+ * @inetaddr: The proxy server #GInetAddress.
+ * @port: The proxy server port.
+ * @protocol: The proxy protocol to support, in lower case (e.g. socks, http).
+ * @dest_hostname: The destination hostname the proxy should tunnel to.
+ * @dest_port: The destination port to tunnel to.
+ * @username: (nullable): The username to authenticate to the proxy server
+ * (or %NULL).
+ * @password: (nullable): The password to authenticate to the proxy server
+ * (or %NULL).
*
- * Checks if the given @value is of the correct type and within the
- * permitted range for @key.
+ * Creates a new #GProxyAddress for @inetaddr with @protocol that should
+ * tunnel through @dest_hostname and @dest_port.
*
- * It is a programmer error if @value is not of the correct type -- you
- * must check for this first.
+ * (Note that this method doesn't set the #GProxyAddress:uri or
+ * #GProxyAddress:destination-protocol fields; use g_object_new()
+ * directly if you want to set those.)
*
- * Returns: %TRUE if @value is valid for @key
- * Since: 2.40
+ * Returns: a new #GProxyAddress
+ * Since: 2.26
*/
/**
- * g_settings_schema_key_ref:
- * @key: a #GSettingsSchemaKey
+ * g_proxy_connect:
+ * @proxy: a #GProxy
+ * @connection: a #GIOStream
+ * @proxy_address: a #GProxyAddress
+ * @cancellable: (nullable): a #GCancellable
+ * @error: return #GError
*
- * Increase the reference count of @key, returning a new reference.
+ * Given @connection to communicate with a proxy (eg, a
+ * #GSocketConnection that is connected to the proxy server), this
+ * does the necessary handshake to connect to @proxy_address, and if
+ * required, wraps the #GIOStream to handle proxy payload.
*
- * Returns: a new reference to @key
- * Since: 2.40
+ * Returns: (transfer full): a #GIOStream that will replace @connection. This might
+ * be the same as @connection, in which case a reference
+ * will be added.
+ * Since: 2.26
*/
/**
- * g_settings_schema_key_unref:
- * @key: a #GSettingsSchemaKey
+ * g_proxy_connect_async:
+ * @proxy: a #GProxy
+ * @connection: a #GIOStream
+ * @proxy_address: a #GProxyAddress
+ * @cancellable: (nullable): a #GCancellable
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): callback data
*
- * Decrease the reference count of @key, possibly freeing it.
+ * Asynchronous version of g_proxy_connect().
*
- * Since: 2.40
+ * Since: 2.26
*/
/**
- * g_settings_schema_list_children:
- * @schema: a #GSettingsSchema
- *
- * Gets the list of children in @schema.
+ * g_proxy_connect_finish:
+ * @proxy: a #GProxy
+ * @result: a #GAsyncResult
+ * @error: return #GError
*
- * You should free the return value with g_strfreev() when you are done
- * with it.
+ * See g_proxy_connect().
*
- * Returns: (transfer full) (element-type utf8): a list of the children on @settings
- * Since: 2.44
+ * Returns: (transfer full): a #GIOStream.
+ * Since: 2.26
*/
/**
- * g_settings_schema_list_keys:
- * @schema: a #GSettingsSchema
+ * g_proxy_get_default_for_protocol:
+ * @protocol: the proxy protocol name (e.g. http, socks, etc)
*
- * Introspects the list of keys on @schema.
+ * Lookup "gio-proxy" extension point for a proxy implementation that supports
+ * specified protocol.
*
- * You should probably not be calling this function from "normal" code
- * (since you should already know what keys are in your schema). This
- * function is intended for introspection reasons.
+ * Returns: (transfer full): return a #GProxy or NULL if protocol
+ * is not supported.
+ * Since: 2.26
+ */
+
+
+/**
+ * g_proxy_resolver_get_default:
*
- * Returns: (transfer full) (element-type utf8): a list of the keys on
- * @schema
- * Since: 2.46
+ * Gets the default #GProxyResolver for the system.
+ *
+ * Returns: (transfer none): the default #GProxyResolver.
+ * Since: 2.26
*/
/**
- * g_settings_schema_ref:
- * @schema: a #GSettingsSchema
+ * g_proxy_resolver_is_supported:
+ * @resolver: a #GProxyResolver
*
- * Increase the reference count of @schema, returning a new reference.
+ * Checks if @resolver can be used on this system. (This is used
+ * internally; g_proxy_resolver_get_default() will only return a proxy
+ * resolver that returns %TRUE for this method.)
*
- * Returns: a new reference to @schema
- * Since: 2.32
+ * Returns: %TRUE if @resolver is supported.
+ * Since: 2.26
*/
/**
- * g_settings_schema_source_get_default:
- *
- * Gets the default system schema source.
+ * g_proxy_resolver_lookup:
+ * @resolver: a #GProxyResolver
+ * @uri: a URI representing the destination to connect to
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: return location for a #GError, or %NULL
*
- * This function is not required for normal uses of #GSettings but it
- * may be useful to authors of plugin management systems or to those who
- * want to introspect the content of schemas.
+ * Looks into the system proxy configuration to determine what proxy,
+ * if any, to use to connect to @uri. The returned proxy URIs are of
+ * the form `<protocol>://[user[:password]@]host:port` or
+ * `direct://`, where <protocol> could be http, rtsp, socks
+ * or other proxying protocol.
*
- * If no schemas are installed, %NULL will be returned.
+ * If you don't know what network protocol is being used on the
+ * socket, you should use `none` as the URI protocol.
+ * In this case, the resolver might still return a generic proxy type
+ * (such as SOCKS), but would not return protocol-specific proxy types
+ * (such as http).
*
- * The returned source may actually consist of multiple schema sources
- * from different directories, depending on which directories were given
- * in `XDG_DATA_DIRS` and `GSETTINGS_SCHEMA_DIR`. For this reason, all
- * lookups performed against the default source should probably be done
- * recursively.
+ * `direct://` is used when no proxy is needed.
+ * Direct connection should not be attempted unless it is part of the
+ * returned array of proxies.
*
- * Returns: (transfer none) (nullable): the default schema source
- * Since: 2.32
+ * Returns: (transfer full) (array zero-terminated=1): A
+ * NULL-terminated array of proxy URIs. Must be freed
+ * with g_strfreev().
+ * Since: 2.26
*/
/**
- * g_settings_schema_source_list_schemas:
- * @source: a #GSettingsSchemaSource
- * @recursive: if we should recurse
- * @non_relocatable: (out) (transfer full) (array zero-terminated=1): the
- * list of non-relocatable schemas
- * @relocatable: (out) (transfer full) (array zero-terminated=1): the list
- * of relocatable schemas
- *
- * Lists the schemas in a given source.
- *
- * If @recursive is %TRUE then include parent sources. If %FALSE then
- * only include the schemas from one source (ie: one directory). You
- * probably want %TRUE.
- *
- * Non-relocatable schemas are those for which you can call
- * g_settings_new(). Relocatable schemas are those for which you must
- * use g_settings_new_with_path().
+ * g_proxy_resolver_lookup_async:
+ * @resolver: a #GProxyResolver
+ * @uri: a URI representing the destination to connect to
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): callback to call after resolution completes
+ * @user_data: (closure): data for @callback
*
- * Do not call this function from normal programs. This is designed for
- * use by database editors, commandline tools, etc.
+ * Asynchronous lookup of proxy. See g_proxy_resolver_lookup() for more
+ * details.
*
- * Since: 2.40
+ * Since: 2.26
*/
/**
- * g_settings_schema_source_lookup:
- * @source: a #GSettingsSchemaSource
- * @schema_id: a schema ID
- * @recursive: %TRUE if the lookup should be recursive
- *
- * Looks up a schema with the identifier @schema_id in @source.
- *
- * This function is not required for normal uses of #GSettings but it
- * may be useful to authors of plugin management systems or to those who
- * want to introspect the content of schemas.
- *
- * If the schema isn't found directly in @source and @recursive is %TRUE
- * then the parent sources will also be checked.
+ * g_proxy_resolver_lookup_finish:
+ * @resolver: a #GProxyResolver
+ * @result: the result passed to your #GAsyncReadyCallback
+ * @error: return location for a #GError, or %NULL
*
- * If the schema isn't found, %NULL is returned.
+ * Call this function to obtain the array of proxy URIs when
+ * g_proxy_resolver_lookup_async() is complete. See
+ * g_proxy_resolver_lookup() for more details.
*
- * Returns: (nullable) (transfer full): a new #GSettingsSchema
- * Since: 2.32
+ * Returns: (transfer full) (array zero-terminated=1): A
+ * NULL-terminated array of proxy URIs. Must be freed
+ * with g_strfreev().
+ * Since: 2.26
*/
/**
- * g_settings_schema_source_new_from_directory:
- * @directory: (type filename): the filename of a directory
- * @parent: (nullable): a #GSettingsSchemaSource, or %NULL
- * @trusted: %TRUE, if the directory is trusted
- * @error: a pointer to a #GError pointer set to %NULL, or %NULL
- *
- * Attempts to create a new schema source corresponding to the contents
- * of the given directory.
- *
- * This function is not required for normal uses of #GSettings but it
- * may be useful to authors of plugin management systems.
- *
- * The directory should contain a file called `gschemas.compiled` as
- * produced by the [glib-compile-schemas][glib-compile-schemas] tool.
- *
- * If @trusted is %TRUE then `gschemas.compiled` is trusted not to be
- * corrupted. This assumption has a performance advantage, but can result
- * in crashes or inconsistent behaviour in the case of a corrupted file.
- * Generally, you should set @trusted to %TRUE for files installed by the
- * system and to %FALSE for files in the home directory.
- *
- * If @parent is non-%NULL then there are two effects.
- *
- * First, if g_settings_schema_source_lookup() is called with the
- * @recursive flag set to %TRUE and the schema can not be found in the
- * source, the lookup will recurse to the parent.
- *
- * Second, any references to other schemas specified within this
- * source (ie: `child` or `extends`) references may be resolved
- * from the @parent.
+ * g_proxy_supports_hostname:
+ * @proxy: a #GProxy
*
- * For this second reason, except in very unusual situations, the
- * @parent should probably be given as the default schema source, as
- * returned by g_settings_schema_source_get_default().
+ * Some proxy protocols expect to be passed a hostname, which they
+ * will resolve to an IP address themselves. Others, like SOCKS4, do
+ * not allow this. This function will return %FALSE if @proxy is
+ * implementing such a protocol. When %FALSE is returned, the caller
+ * should resolve the destination hostname first, and then pass a
+ * #GProxyAddress containing the stringified IP address to
+ * g_proxy_connect() or g_proxy_connect_async().
*
- * Since: 2.32
+ * Returns: %TRUE if hostname resolution is supported.
+ * Since: 2.26
*/
/**
- * g_settings_schema_source_ref:
- * @source: a #GSettingsSchemaSource
+ * g_remote_action_group_activate_action_full:
+ * @remote: a #GDBusActionGroup
+ * @action_name: the name of the action to activate
+ * @parameter: (nullable): the optional parameter to the activation
+ * @platform_data: the platform data to send
*
- * Increase the reference count of @source, returning a new reference.
+ * Activates the remote action.
+ *
+ * This is the same as g_action_group_activate_action() except that it
+ * allows for provision of "platform data" to be sent along with the
+ * activation request. This typically contains details such as the user
+ * interaction timestamp or startup notification information.
+ *
+ * @platform_data must be non-%NULL and must have the type
+ * %G_VARIANT_TYPE_VARDICT. If it is floating, it will be consumed.
*
- * Returns: a new reference to @source
* Since: 2.32
*/
/**
- * g_settings_schema_source_unref:
- * @source: a #GSettingsSchemaSource
+ * g_remote_action_group_change_action_state_full:
+ * @remote: a #GRemoteActionGroup
+ * @action_name: the name of the action to change the state of
+ * @value: the new requested value for the state
+ * @platform_data: the platform data to send
*
- * Decrease the reference count of @source, possibly freeing it.
+ * Changes the state of a remote action.
+ *
+ * This is the same as g_action_group_change_action_state() except that
+ * it allows for provision of "platform data" to be sent along with the
+ * state change request. This typically contains details such as the
+ * user interaction timestamp or startup notification information.
+ *
+ * @platform_data must be non-%NULL and must have the type
+ * %G_VARIANT_TYPE_VARDICT. If it is floating, it will be consumed.
*
* Since: 2.32
*/
/**
- * g_settings_schema_unref:
- * @schema: a #GSettingsSchema
+ * g_resolver_error_quark:
*
- * Decrease the reference count of @schema, possibly freeing it.
+ * Gets the #GResolver Error Quark.
*
- * Since: 2.32
+ * Returns: a #GQuark.
+ * Since: 2.22
*/
/**
- * g_settings_set:
- * @settings: a #GSettings object
- * @key: the name of the key to set
- * @format: a #GVariant format string
- * @...: arguments as per @format
- *
- * Sets @key in @settings to @value.
- *
- * A convenience function that combines g_settings_set_value() with
- * g_variant_new().
+ * g_resolver_free_addresses: (skip)
+ * @addresses: a #GList of #GInetAddress
*
- * It is a programmer error to give a @key that isn't contained in the
- * schema for @settings or for the #GVariantType of @format to mismatch
- * the type given in the schema.
+ * Frees @addresses (which should be the return value from
+ * g_resolver_lookup_by_name() or g_resolver_lookup_by_name_finish()).
+ * (This is a convenience method; you can also simply free the results
+ * by hand.)
*
- * Returns: %TRUE if setting the key succeeded,
- * %FALSE if the key was not writable
- * Since: 2.26
+ * Since: 2.22
*/
/**
- * g_settings_set_boolean:
- * @settings: a #GSettings object
- * @key: the name of the key to set
- * @value: the value to set it to
- *
- * Sets @key in @settings to @value.
- *
- * A convenience variant of g_settings_set() for booleans.
+ * g_resolver_free_targets: (skip)
+ * @targets: a #GList of #GSrvTarget
*
- * It is a programmer error to give a @key that isn't specified as
- * having a boolean type in the schema for @settings.
+ * Frees @targets (which should be the return value from
+ * g_resolver_lookup_service() or g_resolver_lookup_service_finish()).
+ * (This is a convenience method; you can also simply free the
+ * results by hand.)
*
- * Returns: %TRUE if setting the key succeeded,
- * %FALSE if the key was not writable
- * Since: 2.26
+ * Since: 2.22
*/
/**
- * g_settings_set_double:
- * @settings: a #GSettings object
- * @key: the name of the key to set
- * @value: the value to set it to
- *
- * Sets @key in @settings to @value.
- *
- * A convenience variant of g_settings_set() for doubles.
+ * g_resolver_get_default:
*
- * It is a programmer error to give a @key that isn't specified as
- * having a 'double' type in the schema for @settings.
+ * Gets the default #GResolver. You should unref it when you are done
+ * with it. #GResolver may use its reference count as a hint about how
+ * many threads it should allocate for concurrent DNS resolutions.
*
- * Returns: %TRUE if setting the key succeeded,
- * %FALSE if the key was not writable
- * Since: 2.26
+ * Returns: (transfer full): the default #GResolver.
+ * Since: 2.22
*/
/**
- * g_settings_set_enum:
- * @settings: a #GSettings object
- * @key: a key, within @settings
- * @value: an enumerated value
+ * g_resolver_lookup_by_address:
+ * @resolver: a #GResolver
+ * @address: the address to reverse-resolve
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: return location for a #GError, or %NULL
*
- * Looks up the enumerated type nick for @value and writes it to @key,
- * within @settings.
+ * Synchronously reverse-resolves @address to determine its
+ * associated hostname.
*
- * It is a programmer error to give a @key that isn't contained in the
- * schema for @settings or is not marked as an enumerated type, or for
- * @value not to be a valid value for the named type.
+ * If the DNS resolution fails, @error (if non-%NULL) will be set to
+ * a value from #GResolverError.
*
- * After performing the write, accessing @key directly with
- * g_settings_get_string() will return the 'nick' associated with
- * @value.
+ * If @cancellable is non-%NULL, it can be used to cancel the
+ * operation, in which case @error (if non-%NULL) will be set to
+ * %G_IO_ERROR_CANCELLED.
*
- * Returns: %TRUE, if the set succeeds
+ * Returns: a hostname (either ASCII-only, or in ASCII-encoded
+ * form), or %NULL on error.
+ * Since: 2.22
*/
/**
- * g_settings_set_flags:
- * @settings: a #GSettings object
- * @key: a key, within @settings
- * @value: a flags value
- *
- * Looks up the flags type nicks for the bits specified by @value, puts
- * them in an array of strings and writes the array to @key, within
- * @settings.
- *
- * It is a programmer error to give a @key that isn't contained in the
- * schema for @settings or is not marked as a flags type, or for @value
- * to contain any bits that are not value for the named type.
+ * g_resolver_lookup_by_address_async:
+ * @resolver: a #GResolver
+ * @address: the address to reverse-resolve
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): callback to call after resolution completes
+ * @user_data: (closure): data for @callback
*
- * After performing the write, accessing @key directly with
- * g_settings_get_strv() will return an array of 'nicks'; one for each
- * bit in @value.
+ * Begins asynchronously reverse-resolving @address to determine its
+ * associated hostname, and eventually calls @callback, which must
+ * call g_resolver_lookup_by_address_finish() to get the final result.
*
- * Returns: %TRUE, if the set succeeds
+ * Since: 2.22
*/
/**
- * g_settings_set_int:
- * @settings: a #GSettings object
- * @key: the name of the key to set
- * @value: the value to set it to
- *
- * Sets @key in @settings to @value.
+ * g_resolver_lookup_by_address_finish:
+ * @resolver: a #GResolver
+ * @result: the result passed to your #GAsyncReadyCallback
+ * @error: return location for a #GError, or %NULL
*
- * A convenience variant of g_settings_set() for 32-bit integers.
+ * Retrieves the result of a previous call to
+ * g_resolver_lookup_by_address_async().
*
- * It is a programmer error to give a @key that isn't specified as
- * having a int32 type in the schema for @settings.
+ * If the DNS resolution failed, @error (if non-%NULL) will be set to
+ * a value from #GResolverError. If the operation was cancelled,
+ * @error will be set to %G_IO_ERROR_CANCELLED.
*
- * Returns: %TRUE if setting the key succeeded,
- * %FALSE if the key was not writable
- * Since: 2.26
+ * Returns: a hostname (either ASCII-only, or in ASCII-encoded
+ * form), or %NULL on error.
+ * Since: 2.22
*/
/**
- * g_settings_set_int64:
- * @settings: a #GSettings object
- * @key: the name of the key to set
- * @value: the value to set it to
+ * g_resolver_lookup_by_name:
+ * @resolver: a #GResolver
+ * @hostname: the hostname to look up
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: return location for a #GError, or %NULL
*
- * Sets @key in @settings to @value.
+ * Synchronously resolves @hostname to determine its associated IP
+ * address(es). @hostname may be an ASCII-only or UTF-8 hostname, or
+ * the textual form of an IP address (in which case this just becomes
+ * a wrapper around g_inet_address_new_from_string()).
*
- * A convenience variant of g_settings_set() for 64-bit integers.
+ * On success, g_resolver_lookup_by_name() will return a non-empty #GList of
+ * #GInetAddress, sorted in order of preference and guaranteed to not
+ * contain duplicates. That is, if using the result to connect to
+ * @hostname, you should attempt to connect to the first address
+ * first, then the second if the first fails, etc. If you are using
+ * the result to listen on a socket, it is appropriate to add each
+ * result using e.g. g_socket_listener_add_address().
*
- * It is a programmer error to give a @key that isn't specified as
- * having a int64 type in the schema for @settings.
+ * If the DNS resolution fails, @error (if non-%NULL) will be set to a
+ * value from #GResolverError and %NULL will be returned.
*
- * Returns: %TRUE if setting the key succeeded,
- * %FALSE if the key was not writable
- * Since: 2.50
+ * If @cancellable is non-%NULL, it can be used to cancel the
+ * operation, in which case @error (if non-%NULL) will be set to
+ * %G_IO_ERROR_CANCELLED.
+ *
+ * If you are planning to connect to a socket on the resolved IP
+ * address, it may be easier to create a #GNetworkAddress and use its
+ * #GSocketConnectable interface.
+ *
+ * Returns: (element-type GInetAddress) (transfer full): a non-empty #GList
+ * of #GInetAddress, or %NULL on error. You
+ * must unref each of the addresses and free the list when you are
+ * done with it. (You can use g_resolver_free_addresses() to do this.)
+ * Since: 2.22
*/
/**
- * g_settings_set_string:
- * @settings: a #GSettings object
- * @key: the name of the key to set
- * @value: the value to set it to
- *
- * Sets @key in @settings to @value.
- *
- * A convenience variant of g_settings_set() for strings.
+ * g_resolver_lookup_by_name_async:
+ * @resolver: a #GResolver
+ * @hostname: the hostname to look up the address of
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): callback to call after resolution completes
+ * @user_data: (closure): data for @callback
*
- * It is a programmer error to give a @key that isn't specified as
- * having a string type in the schema for @settings.
+ * Begins asynchronously resolving @hostname to determine its
+ * associated IP address(es), and eventually calls @callback, which
+ * must call g_resolver_lookup_by_name_finish() to get the result.
+ * See g_resolver_lookup_by_name() for more details.
*
- * Returns: %TRUE if setting the key succeeded,
- * %FALSE if the key was not writable
- * Since: 2.26
+ * Since: 2.22
*/
/**
- * g_settings_set_strv:
- * @settings: a #GSettings object
- * @key: the name of the key to set
- * @value: (nullable) (array zero-terminated=1): the value to set it to, or %NULL
- *
- * Sets @key in @settings to @value.
+ * g_resolver_lookup_by_name_finish:
+ * @resolver: a #GResolver
+ * @result: the result passed to your #GAsyncReadyCallback
+ * @error: return location for a #GError, or %NULL
*
- * A convenience variant of g_settings_set() for string arrays. If
- * @value is %NULL, then @key is set to be the empty array.
+ * Retrieves the result of a call to
+ * g_resolver_lookup_by_name_async().
*
- * It is a programmer error to give a @key that isn't specified as
- * having an array of strings type in the schema for @settings.
+ * If the DNS resolution failed, @error (if non-%NULL) will be set to
+ * a value from #GResolverError. If the operation was cancelled,
+ * @error will be set to %G_IO_ERROR_CANCELLED.
*
- * Returns: %TRUE if setting the key succeeded,
- * %FALSE if the key was not writable
- * Since: 2.26
+ * Returns: (element-type GInetAddress) (transfer full): a #GList
+ * of #GInetAddress, or %NULL on error. See g_resolver_lookup_by_name()
+ * for more details.
+ * Since: 2.22
*/
/**
- * g_settings_set_uint:
- * @settings: a #GSettings object
- * @key: the name of the key to set
- * @value: the value to set it to
+ * g_resolver_lookup_records:
+ * @resolver: a #GResolver
+ * @rrname: the DNS name to lookup the record for
+ * @record_type: the type of DNS record to lookup
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: return location for a #GError, or %NULL
*
- * Sets @key in @settings to @value.
+ * Synchronously performs a DNS record lookup for the given @rrname and returns
+ * a list of records as #GVariant tuples. See #GResolverRecordType for
+ * information on what the records contain for each @record_type.
*
- * A convenience variant of g_settings_set() for 32-bit unsigned
- * integers.
+ * If the DNS resolution fails, @error (if non-%NULL) will be set to
+ * a value from #GResolverError and %NULL will be returned.
*
- * It is a programmer error to give a @key that isn't specified as
- * having a uint32 type in the schema for @settings.
+ * If @cancellable is non-%NULL, it can be used to cancel the
+ * operation, in which case @error (if non-%NULL) will be set to
+ * %G_IO_ERROR_CANCELLED.
*
- * Returns: %TRUE if setting the key succeeded,
- * %FALSE if the key was not writable
- * Since: 2.30
+ * Returns: (element-type GVariant) (transfer full): a non-empty #GList of
+ * #GVariant, or %NULL on error. You must free each of the records and the list
+ * when you are done with it. (You can use g_list_free_full() with
+ * g_variant_unref() to do this.)
+ * Since: 2.34
*/
/**
- * g_settings_set_uint64:
- * @settings: a #GSettings object
- * @key: the name of the key to set
- * @value: the value to set it to
- *
- * Sets @key in @settings to @value.
- *
- * A convenience variant of g_settings_set() for 64-bit unsigned
- * integers.
+ * g_resolver_lookup_records_async:
+ * @resolver: a #GResolver
+ * @rrname: the DNS name to lookup the record for
+ * @record_type: the type of DNS record to lookup
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): callback to call after resolution completes
+ * @user_data: (closure): data for @callback
*
- * It is a programmer error to give a @key that isn't specified as
- * having a uint64 type in the schema for @settings.
+ * Begins asynchronously performing a DNS lookup for the given
+ * @rrname, and eventually calls @callback, which must call
+ * g_resolver_lookup_records_finish() to get the final result. See
+ * g_resolver_lookup_records() for more details.
*
- * Returns: %TRUE if setting the key succeeded,
- * %FALSE if the key was not writable
- * Since: 2.50
+ * Since: 2.34
*/
/**
- * g_settings_set_value:
- * @settings: a #GSettings object
- * @key: the name of the key to set
- * @value: a #GVariant of the correct type
- *
- * Sets @key in @settings to @value.
+ * g_resolver_lookup_records_finish:
+ * @resolver: a #GResolver
+ * @result: the result passed to your #GAsyncReadyCallback
+ * @error: return location for a #GError, or %NULL
*
- * It is a programmer error to give a @key that isn't contained in the
- * schema for @settings or for @value to have the incorrect type, per
- * the schema.
+ * Retrieves the result of a previous call to
+ * g_resolver_lookup_records_async(). Returns a non-empty list of records as
+ * #GVariant tuples. See #GResolverRecordType for information on what the
+ * records contain.
*
- * If @value is floating then this function consumes the reference.
+ * If the DNS resolution failed, @error (if non-%NULL) will be set to
+ * a value from #GResolverError. If the operation was cancelled,
+ * @error will be set to %G_IO_ERROR_CANCELLED.
*
- * Returns: %TRUE if setting the key succeeded,
- * %FALSE if the key was not writable
- * Since: 2.26
+ * Returns: (element-type GVariant) (transfer full): a non-empty #GList of
+ * #GVariant, or %NULL on error. You must free each of the records and the list
+ * when you are done with it. (You can use g_list_free_full() with
+ * g_variant_unref() to do this.)
+ * Since: 2.34
*/
/**
- * g_settings_sync:
+ * g_resolver_lookup_service:
+ * @resolver: a #GResolver
+ * @service: the service type to look up (eg, "ldap")
+ * @protocol: the networking protocol to use for @service (eg, "tcp")
+ * @domain: the DNS domain to look up the service in
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: return location for a #GError, or %NULL
*
- * Ensures that all pending operations are complete for the default backend.
+ * Synchronously performs a DNS SRV lookup for the given @service and
+ * @protocol in the given @domain and returns an array of #GSrvTarget.
+ * @domain may be an ASCII-only or UTF-8 hostname. Note also that the
+ * @service and @protocol arguments do not include the leading underscore
+ * that appears in the actual DNS entry.
*
- * Writes made to a #GSettings are handled asynchronously. For this
- * reason, it is very unlikely that the changes have it to disk by the
- * time g_settings_set() returns.
+ * On success, g_resolver_lookup_service() will return a non-empty #GList of
+ * #GSrvTarget, sorted in order of preference. (That is, you should
+ * attempt to connect to the first target first, then the second if
+ * the first fails, etc.)
*
- * This call will block until all of the writes have made it to the
- * backend. Since the mainloop is not running, no change notifications
- * will be dispatched during this call (but some may be queued by the
- * time the call is done).
- */
-
-
-/**
- * g_settings_unbind:
- * @object: (type GObject.Object): the object
- * @property: the property whose binding is removed
+ * If the DNS resolution fails, @error (if non-%NULL) will be set to
+ * a value from #GResolverError and %NULL will be returned.
*
- * Removes an existing binding for @property on @object.
+ * If @cancellable is non-%NULL, it can be used to cancel the
+ * operation, in which case @error (if non-%NULL) will be set to
+ * %G_IO_ERROR_CANCELLED.
*
- * Note that bindings are automatically removed when the
- * object is finalized, so it is rarely necessary to call this
- * function.
+ * If you are planning to connect to the service, it is usually easier
+ * to create a #GNetworkService and use its #GSocketConnectable
+ * interface.
*
- * Since: 2.26
+ * Returns: (element-type GSrvTarget) (transfer full): a non-empty #GList of
+ * #GSrvTarget, or %NULL on error. You must free each of the targets and the
+ * list when you are done with it. (You can use g_resolver_free_targets() to do
+ * this.)
+ * Since: 2.22
*/
/**
- * g_simple_action_group_add_entries:
- * @simple: a #GSimpleActionGroup
- * @entries: (array length=n_entries): a pointer to the first item in
- * an array of #GActionEntry structs
- * @n_entries: the length of @entries, or -1
- * @user_data: the user data for signal connections
+ * g_resolver_lookup_service_async:
+ * @resolver: a #GResolver
+ * @service: the service type to look up (eg, "ldap")
+ * @protocol: the networking protocol to use for @service (eg, "tcp")
+ * @domain: the DNS domain to look up the service in
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): callback to call after resolution completes
+ * @user_data: (closure): data for @callback
*
- * A convenience function for creating multiple #GSimpleAction instances
- * and adding them to the action group.
+ * Begins asynchronously performing a DNS SRV lookup for the given
+ * @service and @protocol in the given @domain, and eventually calls
+ * @callback, which must call g_resolver_lookup_service_finish() to
+ * get the final result. See g_resolver_lookup_service() for more
+ * details.
*
- * Since: 2.30
- * Deprecated: 2.38: Use g_action_map_add_action_entries()
+ * Since: 2.22
*/
/**
- * g_simple_action_group_insert:
- * @simple: a #GSimpleActionGroup
- * @action: a #GAction
- *
- * Adds an action to the action group.
+ * g_resolver_lookup_service_finish:
+ * @resolver: a #GResolver
+ * @result: the result passed to your #GAsyncReadyCallback
+ * @error: return location for a #GError, or %NULL
*
- * If the action group already contains an action with the same name as
- * @action then the old action is dropped from the group.
+ * Retrieves the result of a previous call to
+ * g_resolver_lookup_service_async().
*
- * The action group takes its own reference on @action.
+ * If the DNS resolution failed, @error (if non-%NULL) will be set to
+ * a value from #GResolverError. If the operation was cancelled,
+ * @error will be set to %G_IO_ERROR_CANCELLED.
*
- * Since: 2.28
- * Deprecated: 2.38: Use g_action_map_add_action()
+ * Returns: (element-type GSrvTarget) (transfer full): a non-empty #GList of
+ * #GSrvTarget, or %NULL on error. See g_resolver_lookup_service() for more
+ * details.
+ * Since: 2.22
*/
/**
- * g_simple_action_group_lookup:
- * @simple: a #GSimpleActionGroup
- * @action_name: the name of an action
+ * g_resolver_set_default:
+ * @resolver: the new default #GResolver
*
- * Looks up the action with the name @action_name in the group.
+ * Sets @resolver to be the application's default resolver (reffing
+ * @resolver, and unreffing the previous default resolver, if any).
+ * Future calls to g_resolver_get_default() will return this resolver.
*
- * If no such action exists, returns %NULL.
+ * This can be used if an application wants to perform any sort of DNS
+ * caching or "pinning"; it can implement its own #GResolver that
+ * calls the original default resolver for DNS operations, and
+ * implements its own cache policies on top of that, and then set
+ * itself as the default resolver for all later code to use.
*
- * Returns: (transfer none): a #GAction, or %NULL
- * Since: 2.28
- * Deprecated: 2.38: Use g_action_map_lookup_action()
+ * Since: 2.22
*/
/**
- * g_simple_action_group_new:
+ * g_resource_enumerate_children:
+ * @resource: A #GResource
+ * @path: A pathname inside the resource
+ * @lookup_flags: A #GResourceLookupFlags
+ * @error: return location for a #GError, or %NULL
*
- * Creates a new, empty, #GSimpleActionGroup.
+ * Returns all the names of children at the specified @path in the resource.
+ * The return result is a %NULL terminated list of strings which should
+ * be released with g_strfreev().
*
- * Returns: a new #GSimpleActionGroup
- * Since: 2.28
+ * If @path is invalid or does not exist in the #GResource,
+ * %G_RESOURCE_ERROR_NOT_FOUND will be returned.
+ *
+ * @lookup_flags controls the behaviour of the lookup.
+ *
+ * Returns: (array zero-terminated=1) (transfer full): an array of constant strings
+ * Since: 2.32
*/
/**
- * g_simple_action_group_remove:
- * @simple: a #GSimpleActionGroup
- * @action_name: the name of the action
- *
- * Removes the named action from the action group.
+ * g_resource_error_quark:
*
- * If no action of this name is in the group then nothing happens.
+ * Gets the #GResource Error Quark.
*
- * Since: 2.28
- * Deprecated: 2.38: Use g_action_map_remove_action()
+ * Returns: a #GQuark
+ * Since: 2.32
*/
/**
- * g_simple_action_new:
- * @name: the name of the action
- * @parameter_type: (nullable): the type of parameter that will be passed to
- * handlers for the #GSimpleAction::activate signal, or %NULL for no parameter
+ * g_resource_get_info:
+ * @resource: A #GResource
+ * @path: A pathname inside the resource
+ * @lookup_flags: A #GResourceLookupFlags
+ * @size: (out) (optional): a location to place the length of the contents of the file,
+ * or %NULL if the length is not needed
+ * @flags: (out) (optional): a location to place the flags about the file,
+ * or %NULL if the length is not needed
+ * @error: return location for a #GError, or %NULL
*
- * Creates a new action.
+ * Looks for a file at the specified @path in the resource and
+ * if found returns information about it.
*
- * The created action is stateless. See g_simple_action_new_stateful() to create
- * an action that has state.
+ * @lookup_flags controls the behaviour of the lookup.
*
- * Returns: a new #GSimpleAction
- * Since: 2.28
+ * Returns: %TRUE if the file was found. %FALSE if there were errors
+ * Since: 2.32
*/
/**
- * g_simple_action_new_stateful:
- * @name: the name of the action
- * @parameter_type: (nullable): the type of the parameter that will be passed to
- * handlers for the #GSimpleAction::activate signal, or %NULL for no parameter
- * @state: the initial state of the action
+ * g_resource_load:
+ * @filename: (type filename): the path of a filename to load, in the GLib filename encoding
+ * @error: return location for a #GError, or %NULL
*
- * Creates a new stateful action.
+ * Loads a binary resource bundle and creates a #GResource representation of it, allowing
+ * you to query it for data.
*
- * All future state values must have the same #GVariantType as the initial
- * @state.
+ * If you want to use this resource in the global resource namespace you need
+ * to register it with g_resources_register().
*
- * If the @state #GVariant is floating, it is consumed.
+ * If @filename is empty or the data in it is corrupt,
+ * %G_RESOURCE_ERROR_INTERNAL will be returned. If @filename doesn’t exist, or
+ * there is an error in reading it, an error from g_mapped_file_new() will be
+ * returned.
*
- * Returns: a new #GSimpleAction
- * Since: 2.28
+ * Returns: (transfer full): a new #GResource, or %NULL on error
+ * Since: 2.32
*/
/**
- * g_simple_action_set_enabled:
- * @simple: a #GSimpleAction
- * @enabled: whether the action is enabled
+ * g_resource_lookup_data:
+ * @resource: A #GResource
+ * @path: A pathname inside the resource
+ * @lookup_flags: A #GResourceLookupFlags
+ * @error: return location for a #GError, or %NULL
*
- * Sets the action as enabled or not.
+ * Looks for a file at the specified @path in the resource and
+ * returns a #GBytes that lets you directly access the data in
+ * memory.
*
- * An action must be enabled in order to be activated or in order to
- * have its state changed from outside callers.
+ * The data is always followed by a zero byte, so you
+ * can safely use the data as a C string. However, that byte
+ * is not included in the size of the GBytes.
*
- * This should only be called by the implementor of the action. Users
- * of the action should not attempt to modify its enabled flag.
+ * For uncompressed resource files this is a pointer directly into
+ * the resource bundle, which is typically in some readonly data section
+ * in the program binary. For compressed files we allocate memory on
+ * the heap and automatically uncompress the data.
*
- * Since: 2.28
+ * @lookup_flags controls the behaviour of the lookup.
+ *
+ * Returns: (transfer full): #GBytes or %NULL on error.
+ * Free the returned object with g_bytes_unref()
+ * Since: 2.32
*/
/**
- * g_simple_action_set_state:
- * @simple: a #GSimpleAction
- * @value: the new #GVariant for the state
+ * g_resource_new_from_data:
+ * @data: A #GBytes
+ * @error: return location for a #GError, or %NULL
*
- * Sets the state of the action.
+ * Creates a GResource from a reference to the binary resource bundle.
+ * This will keep a reference to @data while the resource lives, so
+ * the data should not be modified or freed.
*
- * This directly updates the 'state' property to the given value.
+ * If you want to use this resource in the global resource namespace you need
+ * to register it with g_resources_register().
*
- * This should only be called by the implementor of the action. Users
- * of the action should not attempt to directly modify the 'state'
- * property. Instead, they should call g_action_change_state() to
- * request the change.
+ * Note: @data must be backed by memory that is at least pointer aligned.
+ * Otherwise this function will internally create a copy of the memory since
+ * GLib 2.56, or in older versions fail and exit the process.
*
- * If the @value GVariant is floating, it is consumed.
+ * If @data is empty or corrupt, %G_RESOURCE_ERROR_INTERNAL will be returned.
*
- * Since: 2.30
+ * Returns: (transfer full): a new #GResource, or %NULL on error
+ * Since: 2.32
*/
/**
- * g_simple_action_set_state_hint:
- * @simple: a #GSimpleAction
- * @state_hint: (nullable): a #GVariant representing the state hint
+ * g_resource_open_stream:
+ * @resource: A #GResource
+ * @path: A pathname inside the resource
+ * @lookup_flags: A #GResourceLookupFlags
+ * @error: return location for a #GError, or %NULL
*
- * Sets the state hint for the action.
+ * Looks for a file at the specified @path in the resource and
+ * returns a #GInputStream that lets you read the data.
*
- * See g_action_get_state_hint() for more information about
- * action state hints.
+ * @lookup_flags controls the behaviour of the lookup.
*
- * Since: 2.44
+ * Returns: (transfer full): #GInputStream or %NULL on error.
+ * Free the returned object with g_object_unref()
+ * Since: 2.32
*/
/**
- * g_simple_async_report_error_in_idle: (skip)
- * @object: (nullable): a #GObject, or %NULL.
- * @callback: a #GAsyncReadyCallback.
- * @user_data: user data passed to @callback.
- * @domain: a #GQuark containing the error domain (usually #G_IO_ERROR).
- * @code: a specific error code.
- * @format: a formatted error reporting string.
- * @...: a list of variables to fill in @format.
+ * g_resource_ref:
+ * @resource: A #GResource
*
- * Reports an error in an asynchronous function in an idle function by
- * directly setting the contents of the #GAsyncResult with the given error
- * information.
+ * Atomically increments the reference count of @resource by one. This
+ * function is MT-safe and may be called from any thread.
*
- * Deprecated: 2.46: Use g_task_report_error().
+ * Returns: The passed in #GResource
+ * Since: 2.32
*/
/**
- * g_simple_async_report_gerror_in_idle:
- * @object: (nullable): a #GObject, or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
- * @error: the #GError to report
+ * g_resource_unref:
+ * @resource: A #GResource
*
- * 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.
+ * Atomically decrements the reference count of @resource by one. If the
+ * 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.
*
- * Deprecated: 2.46: Use g_task_report_error().
+ * Since: 2.32
*/
/**
- * g_simple_async_report_take_gerror_in_idle: (skip)
- * @object: (nullable): a #GObject, or %NULL
- * @callback: a #GAsyncReadyCallback.
- * @user_data: user data passed to @callback.
- * @error: the #GError to report
+ * g_resources_enumerate_children:
+ * @path: A pathname inside the resource
+ * @lookup_flags: A #GResourceLookupFlags
+ * @error: return location for a #GError, or %NULL
*
- * Reports an error in an idle function. Similar to
- * g_simple_async_report_gerror_in_idle(), but takes over the caller's
- * ownership of @error, so the caller does not have to free it any more.
+ * Returns all the names of children at the specified @path in the set of
+ * globally registered resources.
+ * The return result is a %NULL terminated list of strings which should
+ * be released with g_strfreev().
*
- * Since: 2.28
- * Deprecated: 2.46: Use g_task_report_error().
+ * @lookup_flags controls the behaviour of the lookup.
+ *
+ * Returns: (array zero-terminated=1) (transfer full): an array of constant strings
+ * Since: 2.32
*/
/**
- * g_simple_async_result_complete:
- * @simple: a #GSimpleAsyncResult.
+ * g_resources_get_info:
+ * @path: A pathname inside the resource
+ * @lookup_flags: A #GResourceLookupFlags
+ * @size: (out) (optional): a location to place the length of the contents of the file,
+ * or %NULL if the length is not needed
+ * @flags: (out) (optional): a location to place the #GResourceFlags about the file,
+ * or %NULL if the flags are not needed
+ * @error: return location for a #GError, or %NULL
*
- * Completes an asynchronous I/O job immediately. Must be called in
- * the thread where the asynchronous result was to be delivered, as it
- * invokes the callback directly. If you are in a different thread use
- * g_simple_async_result_complete_in_idle().
+ * Looks for a file at the specified @path in the set of
+ * globally registered resources and if found returns information about it.
*
- * Calling this function takes a reference to @simple for as long as
- * is needed to complete the call.
+ * @lookup_flags controls the behaviour of the lookup.
*
- * Deprecated: 2.46: Use #GTask instead.
+ * Returns: %TRUE if the file was found. %FALSE if there were errors
+ * Since: 2.32
*/
/**
- * g_simple_async_result_complete_in_idle:
- * @simple: a #GSimpleAsyncResult.
+ * g_resources_lookup_data:
+ * @path: A pathname inside the resource
+ * @lookup_flags: A #GResourceLookupFlags
+ * @error: return location for a #GError, or %NULL
*
- * Completes an asynchronous function in an idle handler in the
- * [thread-default main context][g-main-context-push-thread-default]
- * of the thread that @simple was initially created in
- * (and re-pushes that context around the invocation of the callback).
+ * Looks for a file at the specified @path in the set of
+ * globally registered resources and returns a #GBytes that
+ * lets you directly access the data in memory.
*
- * Calling this function takes a reference to @simple for as long as
- * is needed to complete the call.
+ * The data is always followed by a zero byte, so you
+ * can safely use the data as a C string. However, that byte
+ * is not included in the size of the GBytes.
*
- * Deprecated: 2.46: Use #GTask instead.
- */
-
-
-/**
- * g_simple_async_result_get_op_res_gboolean:
- * @simple: a #GSimpleAsyncResult.
+ * For uncompressed resource files this is a pointer directly into
+ * the resource bundle, which is typically in some readonly data section
+ * in the program binary. For compressed files we allocate memory on
+ * the heap and automatically uncompress the data.
*
- * Gets the operation result boolean from within the asynchronous result.
+ * @lookup_flags controls the behaviour of the lookup.
*
- * Returns: %TRUE if the operation's result was %TRUE, %FALSE
- * if the operation's result was %FALSE.
- * Deprecated: 2.46: Use #GTask and g_task_propagate_boolean() instead.
+ * Returns: (transfer full): #GBytes or %NULL on error.
+ * Free the returned object with g_bytes_unref()
+ * Since: 2.32
*/
/**
- * g_simple_async_result_get_op_res_gpointer: (skip)
- * @simple: a #GSimpleAsyncResult.
- *
- * Gets a pointer result as returned by the asynchronous function.
+ * g_resources_open_stream:
+ * @path: A pathname inside the resource
+ * @lookup_flags: A #GResourceLookupFlags
+ * @error: return location for a #GError, or %NULL
*
- * Returns: a pointer from the result.
- * Deprecated: 2.46: Use #GTask and g_task_propagate_pointer() instead.
- */
-
-
-/**
- * g_simple_async_result_get_op_res_gssize:
- * @simple: a #GSimpleAsyncResult.
+ * Looks for a file at the specified @path in the set of
+ * globally registered resources and returns a #GInputStream
+ * that lets you read the data.
*
- * Gets a gssize from the asynchronous result.
+ * @lookup_flags controls the behaviour of the lookup.
*
- * Returns: a gssize returned from the asynchronous function.
- * Deprecated: 2.46: Use #GTask and g_task_propagate_int() instead.
+ * Returns: (transfer full): #GInputStream or %NULL on error.
+ * Free the returned object with g_object_unref()
+ * Since: 2.32
*/
/**
- * g_simple_async_result_get_source_tag: (skip)
- * @simple: a #GSimpleAsyncResult.
+ * g_resources_register:
+ * @resource: A #GResource
*
- * Gets the source tag for the #GSimpleAsyncResult.
+ * Registers the resource with the process-global set of resources.
+ * Once a resource is registered the files in it can be accessed
+ * with the global resource lookup functions like g_resources_lookup_data().
*
- * Returns: a #gpointer to the source object for the #GSimpleAsyncResult.
- * Deprecated: 2.46.: Use #GTask and g_task_get_source_tag() instead.
+ * Since: 2.32
*/
/**
- * g_simple_async_result_is_valid:
- * @result: the #GAsyncResult passed to the _finish function.
- * @source: (nullable): the #GObject passed to the _finish function.
- * @source_tag: (nullable): the asynchronous function.
- *
- * Ensures that the data passed to the _finish function of an async
- * operation is consistent. Three checks are performed.
+ * g_resources_unregister:
+ * @resource: A #GResource
*
- * First, @result is checked to ensure that it is really a
- * #GSimpleAsyncResult. Second, @source is checked to ensure that it
- * matches the source object of @result. Third, @source_tag is
- * checked to ensure that it is equal to the @source_tag argument given
- * to g_simple_async_result_new() (which, by convention, is a pointer
- * to the _async function corresponding to the _finish function from
- * which this function is called). (Alternatively, if either
- * @source_tag or @result's source tag is %NULL, then the source tag
- * check is skipped.)
+ * Unregisters the resource from the process-global set of resources.
*
- * Returns: #TRUE if all checks passed or #FALSE if any failed.
- * Since: 2.20
- * Deprecated: 2.46: Use #GTask and g_task_is_valid() instead.
+ * Since: 2.32
*/
/**
- * g_simple_async_result_new:
- * @source_object: (nullable): a #GObject, or %NULL.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
- * @source_tag: the asynchronous function.
- *
- * Creates a #GSimpleAsyncResult.
- *
- * The common convention is to create the #GSimpleAsyncResult in the
- * function that starts the asynchronous operation and use that same
- * function as the @source_tag.
+ * g_seekable_can_seek:
+ * @seekable: a #GSeekable.
*
- * If your operation supports cancellation with #GCancellable (which it
- * probably should) then you should provide the user's cancellable to
- * g_simple_async_result_set_check_cancellable() immediately after
- * this function returns.
+ * Tests if the stream supports the #GSeekableIface.
*
- * Returns: a #GSimpleAsyncResult.
- * Deprecated: 2.46: Use g_task_new() instead.
+ * Returns: %TRUE if @seekable can be seeked. %FALSE otherwise.
*/
/**
- * g_simple_async_result_new_error:
- * @source_object: (nullable): a #GObject, or %NULL.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
- * @domain: a #GQuark.
- * @code: an error code.
- * @format: a string with format characters.
- * @...: a list of values to insert into @format.
+ * g_seekable_can_truncate:
+ * @seekable: a #GSeekable.
*
- * Creates a new #GSimpleAsyncResult with a set error.
+ * Tests if the length of the stream can be adjusted with
+ * g_seekable_truncate().
*
- * Returns: a #GSimpleAsyncResult.
- * Deprecated: 2.46: Use g_task_new() and g_task_return_new_error() instead.
+ * Returns: %TRUE if the stream can be truncated, %FALSE otherwise.
*/
/**
- * g_simple_async_result_new_from_error:
- * @source_object: (nullable): a #GObject, or %NULL.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @user_data: (closure): user data passed to @callback.
- * @error: a #GError
+ * g_seekable_seek:
+ * @seekable: a #GSeekable.
+ * @offset: a #goffset.
+ * @type: a #GSeekType.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Creates a #GSimpleAsyncResult from an error condition.
+ * Seeks in the stream by the given @offset, modified by @type.
*
- * Returns: a #GSimpleAsyncResult.
- * Deprecated: 2.46: Use g_task_new() and g_task_return_error() instead.
- */
-
-
-/**
- * g_simple_async_result_new_take_error: (skip)
- * @source_object: (nullable): a #GObject, or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data passed to @callback
- * @error: a #GError
+ * Attempting to seek past the end of the stream will have different
+ * results depending on if the stream is fixed-sized or resizable. If
+ * the stream is resizable then seeking past the end and then writing
+ * will result in zeros filling the empty space. Seeking past the end
+ * of a resizable stream and reading will result in EOF. Seeking past
+ * the end of a fixed-sized stream will fail.
*
- * Creates a #GSimpleAsyncResult from an error condition, and takes over the
- * caller's ownership of @error, so the caller does not need to free it anymore.
+ * Any operation that would result in a negative offset will fail.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: a #GSimpleAsyncResult
- * Since: 2.28
- * Deprecated: 2.46: Use g_task_new() and g_task_return_error() instead.
+ * Returns: %TRUE if successful. If an error
+ * has occurred, this function will return %FALSE and set @error
+ * appropriately if present.
*/
/**
- * g_simple_async_result_propagate_error:
- * @simple: a #GSimpleAsyncResult.
- * @dest: (out): a location to propagate the error to.
- *
- * Propagates an error from within the simple asynchronous result to
- * a given destination.
+ * g_seekable_tell:
+ * @seekable: a #GSeekable.
*
- * 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.
+ * Tells the current position within the stream.
*
- * Returns: %TRUE if the error was propagated to @dest. %FALSE otherwise.
- * Deprecated: 2.46: Use #GTask instead.
+ * Returns: the offset from the beginning of the buffer.
*/
/**
- * g_simple_async_result_run_in_thread: (skip)
- * @simple: a #GSimpleAsyncResult.
- * @func: a #GSimpleAsyncThreadFunc.
- * @io_priority: the io priority of the request.
+ * g_seekable_truncate: (virtual truncate_fn)
+ * @seekable: a #GSeekable.
+ * @offset: new length for @seekable, in bytes.
* @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Runs the asynchronous job in a separate thread and then calls
- * g_simple_async_result_complete_in_idle() on @simple to return
- * the result to the appropriate main loop.
+ * Sets the length of the stream to @offset. If the stream was previously
+ * larger than @offset, the extra data is discarded. If the stream was
+ * previouly shorter than @offset, it is extended with NUL ('\0') bytes.
*
- * Calling this function takes a reference to @simple for as long as
- * is needed to run the job and report its completion.
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. If an
+ * operation was partially finished when the operation was cancelled the
+ * partial result will be returned, without an error.
*
- * Deprecated: 2.46: Use #GTask and g_task_run_in_thread() instead.
+ * Returns: %TRUE if successful. If an error
+ * has occurred, this function will return %FALSE and set @error
+ * appropriately if present.
*/
/**
- * g_simple_async_result_set_check_cancellable:
- * @simple: a #GSimpleAsyncResult
- * @check_cancellable: (nullable): a #GCancellable to check, or %NULL to unset
+ * g_settings_apply:
+ * @settings: a #GSettings instance
*
- * Sets a #GCancellable to check before dispatching results.
+ * Applies any changes that have been made to the settings. This
+ * function does nothing unless @settings is in 'delay-apply' mode;
+ * see g_settings_delay(). In the normal case settings are always
+ * applied immediately.
+ */
+
+
+/**
+ * g_settings_backend_changed:
+ * @backend: a #GSettingsBackend implementation
+ * @key: the name of the key
+ * @origin_tag: the origin tag
*
- * This function has one very specific purpose: the provided cancellable
- * is checked at the time of g_simple_async_result_propagate_error() If
- * it is cancelled, these functions will return an "Operation was
- * cancelled" error (%G_IO_ERROR_CANCELLED).
+ * Signals that a single key has possibly changed. Backend
+ * implementations should call this if a key has possibly changed its
+ * value.
*
- * Implementors of cancellable asynchronous functions should use this in
- * order to provide a guarantee to their callers that cancelling an
- * async operation will reliably result in an error being returned for
- * that operation (even if a positive result for the operation has
- * already been sent as an idle to the main context to be dispatched).
+ * @key must be a valid key (ie starting with a slash, not containing
+ * '//', and not ending with a slash).
*
- * The checking described above is done regardless of any call to the
- * unrelated g_simple_async_result_set_handle_cancellation() function.
+ * The implementation must call this function during any call to
+ * g_settings_backend_write(), before the call returns (except in the
+ * case that no keys are actually changed and it cares to detect this
+ * fact). It may not rely on the existence of a mainloop for
+ * dispatching the signal later.
*
- * Since: 2.32
- * Deprecated: 2.46: Use #GTask instead.
+ * The implementation may call this function at any other time it likes
+ * in response to other events (such as changes occurring outside of the
+ * program). These calls may originate from a mainloop or may originate
+ * in response to any other action (including from calls to
+ * g_settings_backend_write()).
+ *
+ * In the case that this call is in response to a call to
+ * g_settings_backend_write() then @origin_tag must be set to the same
+ * value that was passed to that call.
+ *
+ * Since: 2.26
*/
/**
- * g_simple_async_result_set_error: (skip)
- * @simple: a #GSimpleAsyncResult.
- * @domain: a #GQuark (usually #G_IO_ERROR).
- * @code: an error code.
- * @format: a formatted error reporting string.
- * @...: a list of variables to fill in @format.
+ * g_settings_backend_changed_tree:
+ * @backend: a #GSettingsBackend implementation
+ * @tree: a #GTree containing the changes
+ * @origin_tag: the origin tag
*
- * Sets an error within the asynchronous result without a #GError.
+ * This call is a convenience wrapper. It gets the list of changes from
+ * @tree, computes the longest common prefix and calls
+ * g_settings_backend_changed().
*
- * Deprecated: 2.46: Use #GTask and g_task_return_new_error() instead.
+ * Since: 2.26
*/
/**
- * g_simple_async_result_set_error_va: (skip)
- * @simple: a #GSimpleAsyncResult.
- * @domain: a #GQuark (usually #G_IO_ERROR).
- * @code: an error code.
- * @format: a formatted error reporting string.
- * @args: va_list of arguments.
+ * g_settings_backend_flatten_tree:
+ * @tree: a #GTree containing the changes
+ * @path: (out): the location to save the path
+ * @keys: (out) (transfer container) (array zero-terminated=1): the
+ * location to save the relative keys
+ * @values: (out) (optional) (transfer container) (array zero-terminated=1):
+ * the location to save the values, or %NULL
*
- * Sets an error within the asynchronous result without a #GError.
- * Unless writing a binding, see g_simple_async_result_set_error().
+ * Calculate the longest common prefix of all keys in a tree and write
+ * out an array of the key names relative to that prefix and,
+ * optionally, the value to store at each of those keys.
*
- * Deprecated: 2.46: Use #GTask and g_task_return_error() instead.
+ * You must free the value returned in @path, @keys and @values using
+ * g_free(). You should not attempt to free or unref the contents of
+ * @keys or @values.
+ *
+ * Since: 2.26
*/
/**
- * g_simple_async_result_set_from_error:
- * @simple: a #GSimpleAsyncResult.
- * @error: #GError.
+ * g_settings_backend_get_default:
*
- * Sets the result from a #GError.
+ * Returns the default #GSettingsBackend. It is possible to override
+ * the default by setting the `GSETTINGS_BACKEND` environment variable
+ * to the name of a settings backend.
*
- * Deprecated: 2.46: Use #GTask and g_task_return_error() instead.
+ * The user gets a reference to the backend.
+ *
+ * Returns: (transfer full): the default #GSettingsBackend
+ * Since: 2.28
*/
/**
- * g_simple_async_result_set_handle_cancellation:
- * @simple: a #GSimpleAsyncResult.
- * @handle_cancellation: a #gboolean.
+ * g_settings_backend_keys_changed:
+ * @backend: a #GSettingsBackend implementation
+ * @path: the path containing the changes
+ * @items: (array zero-terminated=1): the %NULL-terminated list of changed keys
+ * @origin_tag: the origin tag
*
- * Sets whether to handle cancellation within the asynchronous operation.
+ * Signals that a list of keys have possibly changed. Backend
+ * implementations should call this if keys have possibly changed their
+ * values.
*
- * 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().
+ * @path must be a valid path (ie starting and ending with a slash and
+ * not containing '//'). Each string in @items must form a valid key
+ * name when @path is prefixed to it (ie: each item must not start or
+ * end with '/' and must not contain '//').
*
- * Deprecated: 2.46
+ * The meaning of this signal is that any of the key names resulting
+ * from the contatenation of @path with each item in @items may have
+ * changed.
+ *
+ * The same rules for when notifications must occur apply as per
+ * g_settings_backend_changed(). These two calls can be used
+ * interchangeably if exactly one item has changed (although in that
+ * case g_settings_backend_changed() is definitely preferred).
+ *
+ * For efficiency reasons, the implementation should strive for @path to
+ * be as long as possible (ie: the longest common prefix of all of the
+ * keys that were changed) but this is not strictly required.
+ *
+ * Since: 2.26
*/
/**
- * g_simple_async_result_set_op_res_gboolean:
- * @simple: a #GSimpleAsyncResult.
- * @op_res: a #gboolean.
+ * g_settings_backend_path_changed:
+ * @backend: a #GSettingsBackend implementation
+ * @path: the path containing the changes
+ * @origin_tag: the origin tag
*
- * Sets the operation result to a boolean within the asynchronous result.
+ * Signals that all keys below a given path may have possibly changed.
+ * Backend implementations should call this if an entire path of keys
+ * have possibly changed their values.
*
- * Deprecated: 2.46: Use #GTask and g_task_return_boolean() instead.
+ * @path must be a valid path (ie starting and ending with a slash and
+ * not containing '//').
+ *
+ * The meaning of this signal is that any of the key which has a name
+ * starting with @path may have changed.
+ *
+ * The same rules for when notifications must occur apply as per
+ * g_settings_backend_changed(). This call might be an appropriate
+ * reasponse to a 'reset' call but implementations are also free to
+ * explicitly list the keys that were affected by that call if they can
+ * easily do so.
+ *
+ * For efficiency reasons, the implementation should strive for @path to
+ * be as long as possible (ie: the longest common prefix of all of the
+ * keys that were changed) but this is not strictly required. As an
+ * example, if this function is called with the path of "/" then every
+ * single key in the application will be notified of a possible change.
+ *
+ * Since: 2.26
*/
/**
- * g_simple_async_result_set_op_res_gpointer: (skip)
- * @simple: a #GSimpleAsyncResult.
- * @op_res: a pointer result from an asynchronous function.
- * @destroy_op_res: a #GDestroyNotify function.
+ * g_settings_backend_path_writable_changed:
+ * @backend: a #GSettingsBackend implementation
+ * @path: the name of the path
*
- * Sets the operation result within the asynchronous result to a pointer.
+ * Signals that the writability of all keys below a given path may have
+ * changed.
*
- * Deprecated: 2.46: Use #GTask and g_task_return_pointer() instead.
+ * Since GSettings performs no locking operations for itself, this call
+ * will always be made in response to external events.
+ *
+ * Since: 2.26
*/
/**
- * g_simple_async_result_set_op_res_gssize:
- * @simple: a #GSimpleAsyncResult.
- * @op_res: a #gssize.
+ * g_settings_backend_writable_changed:
+ * @backend: a #GSettingsBackend implementation
+ * @key: the name of the key
*
- * Sets the operation result within the asynchronous result to
- * the given @op_res.
+ * Signals that the writability of a single key has possibly changed.
*
- * Deprecated: 2.46: Use #GTask and g_task_return_int() instead.
+ * Since GSettings performs no locking operations for itself, this call
+ * will always be made in response to external events.
+ *
+ * Since: 2.26
*/
/**
- * g_simple_async_result_take_error: (skip)
- * @simple: a #GSimpleAsyncResult
- * @error: a #GError
+ * g_settings_bind:
+ * @settings: a #GSettings object
+ * @key: the key to bind
+ * @object: (type GObject.Object): a #GObject
+ * @property: the name of the property to bind
+ * @flags: flags for the binding
*
- * Sets the result from @error, and takes over the caller's ownership
- * of @error, so the caller does not need to free it any more.
+ * Create a binding between the @key in the @settings object
+ * and the property @property of @object.
*
- * Since: 2.28
- * Deprecated: 2.46: Use #GTask and g_task_return_error() instead.
+ * The binding uses the default GIO mapping functions to map
+ * between the settings and property values. These functions
+ * handle booleans, numeric types and string types in a
+ * straightforward way. Use g_settings_bind_with_mapping() if
+ * you need a custom mapping, or map between types that are not
+ * supported by the default mapping functions.
+ *
+ * Unless the @flags include %G_SETTINGS_BIND_NO_SENSITIVITY, this
+ * function also establishes a binding between the writability of
+ * @key and the "sensitive" property of @object (if @object has
+ * a boolean property by that name). See g_settings_bind_writable()
+ * for more details about writable bindings.
+ *
+ * Note that the lifecycle of the binding is tied to @object,
+ * and that you can have only one binding per object property.
+ * If you bind the same property twice on the same object, the second
+ * binding overrides the first one.
+ *
+ * Since: 2.26
*/
/**
- * g_simple_io_stream_new:
- * @input_stream: a #GInputStream.
- * @output_stream: a #GOutputStream.
+ * g_settings_bind_with_mapping: (skip)
+ * @settings: a #GSettings object
+ * @key: the key to bind
+ * @object: (type GObject.Object): a #GObject
+ * @property: the name of the property to bind
+ * @flags: flags for the binding
+ * @get_mapping: a function that gets called to convert values
+ * from @settings to @object, or %NULL to use the default GIO mapping
+ * @set_mapping: a function that gets called to convert values
+ * from @object to @settings, or %NULL to use the default GIO mapping
+ * @user_data: data that gets passed to @get_mapping and @set_mapping
+ * @destroy: #GDestroyNotify function for @user_data
*
- * Creates a new #GSimpleIOStream wrapping @input_stream and @output_stream.
- * See also #GIOStream.
+ * Create a binding between the @key in the @settings object
+ * and the property @property of @object.
*
- * Returns: a new #GSimpleIOStream instance.
- * Since: 2.44
+ * The binding uses the provided mapping functions to map between
+ * settings and property values.
+ *
+ * Note that the lifecycle of the binding is tied to @object,
+ * and that you can have only one binding per object property.
+ * If you bind the same property twice on the same object, the second
+ * binding overrides the first one.
+ *
+ * Since: 2.26
*/
/**
- * g_simple_permission_new:
- * @allowed: %TRUE if the action is allowed
+ * g_settings_bind_writable:
+ * @settings: a #GSettings object
+ * @key: the key to bind
+ * @object: (type GObject.Object): a #GObject
+ * @property: the name of a boolean property to bind
+ * @inverted: whether to 'invert' the value
*
- * Creates a new #GPermission instance that represents an action that is
- * either always or never allowed.
+ * Create a binding between the writability of @key in the
+ * @settings object and the property @property of @object.
+ * The property must be boolean; "sensitive" or "visible"
+ * properties of widgets are the most likely candidates.
+ *
+ * Writable bindings are always uni-directional; changes of the
+ * writability of the setting will be propagated to the object
+ * property, not the other way.
+ *
+ * When the @inverted argument is %TRUE, the binding inverts the
+ * value as it passes from the setting to the object, i.e. @property
+ * will be set to %TRUE if the key is not writable.
+ *
+ * Note that the lifecycle of the binding is tied to @object,
+ * and that you can have only one binding per object property.
+ * If you bind the same property twice on the same object, the second
+ * binding overrides the first one.
*
- * Returns: the #GSimplePermission, as a #GPermission
* Since: 2.26
*/
/**
- * g_simple_proxy_resolver_new:
- * @default_proxy: (nullable): the default proxy to use, eg
- * "socks://192.168.1.1"
- * @ignore_hosts: (nullable): an optional list of hosts/IP addresses
- * to not use a proxy for.
+ * g_settings_create_action:
+ * @settings: a #GSettings
+ * @key: the name of a key in @settings
*
- * Creates a new #GSimpleProxyResolver. See
- * #GSimpleProxyResolver:default-proxy and
- * #GSimpleProxyResolver:ignore-hosts for more details on how the
- * arguments are interpreted.
+ * Creates a #GAction corresponding to a given #GSettings key.
*
- * Returns: (transfer full): a new #GSimpleProxyResolver
- * Since: 2.36
+ * The action has the same name as the key.
+ *
+ * The value of the key becomes the state of the action and the action
+ * is enabled when the key is writable. Changing the state of the
+ * action results in the key being written to. Changes to the value or
+ * writability of the key cause appropriate change notifications to be
+ * emitted for the action.
+ *
+ * For boolean-valued keys, action activations take no parameter and
+ * result in the toggling of the value. For all other types,
+ * activations take the new value for the key (which must have the
+ * correct type).
+ *
+ * Returns: (transfer full): a new #GAction
+ * Since: 2.32
*/
/**
- * g_simple_proxy_resolver_set_default_proxy:
- * @resolver: a #GSimpleProxyResolver
- * @default_proxy: the default proxy to use
- *
- * Sets the default proxy on @resolver, to be used for any URIs that
- * don't match #GSimpleProxyResolver:ignore-hosts or a proxy set
- * via g_simple_proxy_resolver_set_uri_proxy().
+ * g_settings_delay:
+ * @settings: a #GSettings object
*
- * If @default_proxy starts with "socks://",
- * #GSimpleProxyResolver will treat it as referring to all three of
- * the socks5, socks4a, and socks4 proxy types.
+ * Changes the #GSettings object into 'delay-apply' mode. In this
+ * mode, changes to @settings are not immediately propagated to the
+ * backend, but kept locally until g_settings_apply() is called.
*
- * Since: 2.36
+ * Since: 2.26
*/
/**
- * g_simple_proxy_resolver_set_ignore_hosts:
- * @resolver: a #GSimpleProxyResolver
- * @ignore_hosts: %NULL-terminated list of hosts/IP addresses
- * to not use a proxy for
+ * g_settings_get:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
+ * @format: a #GVariant format string
+ * @...: arguments as per @format
*
- * Sets the list of ignored hosts.
+ * Gets the value that is stored at @key in @settings.
*
- * See #GSimpleProxyResolver:ignore-hosts for more details on how the
- * @ignore_hosts argument is interpreted.
+ * A convenience function that combines g_settings_get_value() with
+ * g_variant_get().
*
- * Since: 2.36
+ * It is a programmer error to give a @key that isn't contained in the
+ * schema for @settings or for the #GVariantType of @format to mismatch
+ * the type given in the schema.
+ *
+ * Since: 2.26
*/
/**
- * g_simple_proxy_resolver_set_uri_proxy:
- * @resolver: a #GSimpleProxyResolver
- * @uri_scheme: the URI scheme to add a proxy for
- * @proxy: the proxy to use for @uri_scheme
+ * g_settings_get_boolean:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
*
- * Adds a URI-scheme-specific proxy to @resolver; URIs whose scheme
- * matches @uri_scheme (and which don't match
- * #GSimpleProxyResolver:ignore-hosts) will be proxied via @proxy.
+ * Gets the value that is stored at @key in @settings.
*
- * As with #GSimpleProxyResolver:default-proxy, if @proxy starts with
- * "socks://", #GSimpleProxyResolver will treat it
- * as referring to all three of the socks5, socks4a, and socks4 proxy
- * types.
+ * A convenience variant of g_settings_get() for booleans.
*
- * Since: 2.36
+ * It is a programmer error to give a @key that isn't specified as
+ * having a boolean type in the schema for @settings.
+ *
+ * Returns: a boolean
+ * Since: 2.26
*/
/**
- * g_socket_accept:
- * @socket: a #GSocket.
- * @cancellable: (nullable): a %GCancellable or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Accept incoming connections on a connection-based socket. This removes
- * the first outstanding connection request from the listening socket and
- * creates a #GSocket object for it.
+ * g_settings_get_child:
+ * @settings: a #GSettings object
+ * @name: the name of the child schema
*
- * The @socket must be bound to a local address with g_socket_bind() and
- * must be listening for incoming connections (g_socket_listen()).
+ * Creates a child settings object which has a base path of
+ * `base-path/@name`, where `base-path` is the base path of
+ * @settings.
*
- * If there are no outstanding connections then the operation will block
- * or return %G_IO_ERROR_WOULD_BLOCK if non-blocking I/O is enabled.
- * To be notified of an incoming connection, wait for the %G_IO_IN condition.
+ * The schema for the child settings object must have been declared
+ * in the schema of @settings using a <child> element.
*
- * Returns: (transfer full): a new #GSocket, or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * Returns: (transfer full): a 'child' settings object
+ * Since: 2.26
*/
/**
- * g_socket_address_enumerator_next:
- * @enumerator: a #GSocketAddressEnumerator
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: a #GError.
+ * g_settings_get_default_value:
+ * @settings: a #GSettings object
+ * @key: the key to get the default value for
*
- * Retrieves the next #GSocketAddress from @enumerator. Note that this
- * may block for some amount of time. (Eg, a #GNetworkAddress may need
- * to do a DNS lookup before it can return an address.) Use
- * g_socket_address_enumerator_next_async() if you need to avoid
- * blocking.
+ * Gets the "default value" of a key.
*
- * If @enumerator is expected to yield addresses, but for some reason
- * is unable to (eg, because of a DNS error), then the first call to
- * g_socket_address_enumerator_next() will return an appropriate error
- * in *@error. However, if the first call to
- * g_socket_address_enumerator_next() succeeds, then any further
- * internal errors (other than @cancellable being triggered) will be
- * ignored.
+ * This is the value that would be read if g_settings_reset() were to be
+ * called on the key.
*
- * Returns: (transfer full): a #GSocketAddress (owned by the caller), or %NULL on
- * error (in which case *@error will be set) or if there are no
- * more addresses.
+ * Note that this may be a different value than returned by
+ * g_settings_schema_key_get_default_value() if the system administrator
+ * has provided a default value.
+ *
+ * Comparing the return values of g_settings_get_default_value() and
+ * g_settings_get_value() is not sufficient for determining if a value
+ * has been set because the user may have explicitly set the value to
+ * something that happens to be equal to the default. The difference
+ * here is that if the default changes in the future, the user's key
+ * will still be set.
+ *
+ * This function may be useful for adding an indication to a UI of what
+ * the default value was before the user set it.
+ *
+ * It is a programmer error to give a @key that isn't contained in the
+ * schema for @settings.
+ *
+ * Returns: (nullable) (transfer full): the default value
+ * Since: 2.40
*/
/**
- * g_socket_address_enumerator_next_async:
- * @enumerator: a #GSocketAddressEnumerator
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request
- * is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_settings_get_double:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
+ *
+ * Gets the value that is stored at @key in @settings.
+ *
+ * A convenience variant of g_settings_get() for doubles.
*
- * Asynchronously retrieves the next #GSocketAddress from @enumerator
- * and then calls @callback, which must call
- * g_socket_address_enumerator_next_finish() to get the result.
+ * It is a programmer error to give a @key that isn't specified as
+ * having a 'double' type in the schema for @settings.
+ *
+ * Returns: a double
+ * Since: 2.26
*/
/**
- * g_socket_address_enumerator_next_finish:
- * @enumerator: a #GSocketAddressEnumerator
- * @result: a #GAsyncResult
- * @error: a #GError
+ * g_settings_get_enum:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
*
- * Retrieves the result of a completed call to
- * g_socket_address_enumerator_next_async(). See
- * g_socket_address_enumerator_next() for more information about
- * error handling.
+ * Gets the value that is stored in @settings for @key and converts it
+ * to the enum value that it represents.
*
- * Returns: (transfer full): a #GSocketAddress (owned by the caller), or %NULL on
- * error (in which case *@error will be set) or if there are no
- * more addresses.
+ * In order to use this function the type of the value must be a string
+ * and it must be marked in the schema file as an enumerated type.
+ *
+ * It is a programmer error to give a @key that isn't contained in the
+ * schema for @settings or is not marked as an enumerated type.
+ *
+ * If the value stored in the configuration database is not a valid
+ * value for the enumerated type then this function will return the
+ * default value.
+ *
+ * Returns: the enum value
+ * Since: 2.26
*/
/**
- * g_socket_address_get_family:
- * @address: a #GSocketAddress
+ * g_settings_get_flags:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
*
- * Gets the socket family type of @address.
+ * Gets the value that is stored in @settings for @key and converts it
+ * to the flags value that it represents.
*
- * Returns: the socket family type of @address
- * Since: 2.22
+ * In order to use this function the type of the value must be an array
+ * of strings and it must be marked in the schema file as an flags type.
+ *
+ * It is a programmer error to give a @key that isn't contained in the
+ * schema for @settings or is not marked as a flags type.
+ *
+ * If the value stored in the configuration database is not a valid
+ * value for the flags type then this function will return the default
+ * value.
+ *
+ * Returns: the flags value
+ * Since: 2.26
*/
/**
- * g_socket_address_get_native_size:
- * @address: a #GSocketAddress
+ * g_settings_get_has_unapplied:
+ * @settings: a #GSettings object
*
- * Gets the size of @address's native struct sockaddr.
- * You can use this to allocate memory to pass to
- * g_socket_address_to_native().
+ * Returns whether the #GSettings object has any unapplied
+ * changes. This can only be the case if it is in 'delayed-apply' mode.
*
- * Returns: the size of the native struct sockaddr that
- * @address represents
- * Since: 2.22
+ * Returns: %TRUE if @settings has unapplied changes
+ * Since: 2.26
*/
/**
- * g_socket_address_new_from_native:
- * @native: (not nullable): a pointer to a struct sockaddr
- * @len: the size of the memory location pointed to by @native
+ * g_settings_get_int:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
*
- * Creates a #GSocketAddress subclass corresponding to the native
- * struct sockaddr @native.
+ * Gets the value that is stored at @key in @settings.
*
- * Returns: a new #GSocketAddress if @native could successfully
- * be converted, otherwise %NULL
- * Since: 2.22
+ * A convenience variant of g_settings_get() for 32-bit integers.
+ *
+ * It is a programmer error to give a @key that isn't specified as
+ * having a int32 type in the schema for @settings.
+ *
+ * Returns: an integer
+ * Since: 2.26
*/
/**
- * g_socket_address_to_native:
- * @address: a #GSocketAddress
- * @dest: a pointer to a memory location that will contain the native
- * struct sockaddr
- * @destlen: the size of @dest. Must be at least as large as
- * g_socket_address_get_native_size()
- * @error: #GError for error reporting, or %NULL to ignore
+ * g_settings_get_int64:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
*
- * Converts a #GSocketAddress to a native struct sockaddr, which can
- * be passed to low-level functions like connect() or bind().
+ * Gets the value that is stored at @key in @settings.
*
- * If not enough space is available, a %G_IO_ERROR_NO_SPACE error
- * is returned. If the address type is not known on the system
- * then a %G_IO_ERROR_NOT_SUPPORTED error is returned.
+ * A convenience variant of g_settings_get() for 64-bit integers.
*
- * Returns: %TRUE if @dest was filled in, %FALSE on error
- * Since: 2.22
+ * It is a programmer error to give a @key that isn't specified as
+ * having a int64 type in the schema for @settings.
+ *
+ * Returns: a 64-bit integer
+ * Since: 2.50
*/
/**
- * g_socket_bind:
- * @socket: a #GSocket.
- * @address: a #GSocketAddress specifying the local address.
- * @allow_reuse: whether to allow reusing this address
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_settings_get_mapped:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
+ * @mapping: (scope call): the function to map the value in the
+ * settings database to the value used by the application
+ * @user_data: user data for @mapping
*
- * When a socket is created it is attached to an address family, but it
- * doesn't have an address in this family. g_socket_bind() assigns the
- * address (sometimes called name) of the socket.
+ * Gets the value that is stored at @key in @settings, subject to
+ * application-level validation/mapping.
*
- * It is generally required to bind to a local address before you can
- * receive connections. (See g_socket_listen() and g_socket_accept() ).
- * In certain situations, you may also want to bind a socket that will be
- * used to initiate connections, though this is not normally required.
+ * You should use this function when the application needs to perform
+ * some processing on the value of the key (for example, parsing). The
+ * @mapping function performs that processing. If the function
+ * indicates that the processing was unsuccessful (due to a parse error,
+ * for example) then the mapping is tried again with another value.
*
- * If @socket is a TCP socket, then @allow_reuse controls the setting
- * of the `SO_REUSEADDR` socket option; normally it should be %TRUE for
- * server sockets (sockets that you will eventually call
- * g_socket_accept() on), and %FALSE for client sockets. (Failing to
- * set this flag on a server socket may cause g_socket_bind() to return
- * %G_IO_ERROR_ADDRESS_IN_USE if the server program is stopped and then
- * immediately restarted.)
+ * This allows a robust 'fall back to defaults' behaviour to be
+ * implemented somewhat automatically.
*
- * If @socket is a UDP socket, then @allow_reuse determines whether or
- * not other UDP sockets can be bound to the same address at the same
- * time. In particular, you can have several UDP sockets bound to the
- * same address, and they will all receive all of the multicast and
- * broadcast packets sent to that address. (The behavior of unicast
- * UDP packets to an address with multiple listeners is not defined.)
+ * The first value that is tried is the user's setting for the key. If
+ * the mapping function fails to map this value, other values may be
+ * tried in an unspecified order (system or site defaults, translated
+ * schema default values, untranslated schema default values, etc).
*
- * Returns: %TRUE on success, %FALSE on error.
- * Since: 2.22
+ * If the mapping function fails for all possible values, one additional
+ * attempt is made: the mapping function is called with a %NULL value.
+ * If the mapping function still indicates failure at this point then
+ * the application will be aborted.
+ *
+ * The result parameter for the @mapping function is pointed to a
+ * #gpointer which is initially set to %NULL. The same pointer is given
+ * to each invocation of @mapping. The final value of that #gpointer is
+ * what is returned by this function. %NULL is valid; it is returned
+ * just as any other value would be.
+ *
+ * Returns: (transfer full): the result, which may be %NULL
*/
/**
- * g_socket_check_connect_result:
- * @socket: a #GSocket
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_settings_get_range:
+ * @settings: a #GSettings
+ * @key: the key to query the range of
*
- * Checks and resets the pending connect error for the socket.
- * This is used to check for errors when g_socket_connect() is
- * used in non-blocking mode.
+ * Queries the range of a key.
*
- * Returns: %TRUE if no error, %FALSE otherwise, setting @error to the error
- * Since: 2.22
+ * Since: 2.28
+ * Deprecated: 2.40: Use g_settings_schema_key_get_range() instead.
*/
/**
- * g_socket_client_add_application_proxy:
- * @client: a #GSocketClient
- * @protocol: The proxy protocol
+ * g_settings_get_string:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
*
- * Enable proxy protocols to be handled by the application. When the
- * indicated proxy protocol is returned by the #GProxyResolver,
- * #GSocketClient will consider this protocol as supported but will
- * not try to find a #GProxy instance to handle handshaking. The
- * application must check for this case by calling
- * g_socket_connection_get_remote_address() on the returned
- * #GSocketConnection, and seeing if it's a #GProxyAddress of the
- * appropriate type, to determine whether or not it needs to handle
- * the proxy handshaking itself.
+ * Gets the value that is stored at @key in @settings.
*
- * This should be used for proxy protocols that are dialects of
- * another protocol such as HTTP proxy. It also allows cohabitation of
- * proxy protocols that are reused between protocols. A good example
- * is HTTP. It can be used to proxy HTTP, FTP and Gopher and can also
- * be use as generic socket proxy through the HTTP CONNECT method.
+ * A convenience variant of g_settings_get() for strings.
*
- * When the proxy is detected as being an application proxy, TLS handshake
- * will be skipped. This is required to let the application do the proxy
- * specific handshake.
+ * It is a programmer error to give a @key that isn't specified as
+ * having a string type in the schema for @settings.
+ *
+ * Returns: a newly-allocated string
+ * Since: 2.26
*/
/**
- * g_socket_client_connect:
- * @client: a #GSocketClient.
- * @connectable: a #GSocketConnectable specifying the remote address.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Tries to resolve the @connectable and make a network connection to it.
- *
- * Upon a successful connection, a new #GSocketConnection is constructed
- * and returned. The caller owns this new object and must drop their
- * reference to it when finished with it.
- *
- * The type of the #GSocketConnection object returned depends on the type of
- * the underlying socket that is used. For instance, for a TCP/IP connection
- * it will be a #GTcpConnection.
+ * g_settings_get_strv:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
*
- * The socket created will be the same family as the address that the
- * @connectable resolves to, unless family is set with g_socket_client_set_family()
- * or indirectly via g_socket_client_set_local_address(). The socket type
- * defaults to %G_SOCKET_TYPE_STREAM but can be set with
- * g_socket_client_set_socket_type().
+ * A convenience variant of g_settings_get() for string arrays.
*
- * If a local address is specified with g_socket_client_set_local_address() the
- * socket will be bound to this address before connecting.
+ * It is a programmer error to give a @key that isn't specified as
+ * having an array of strings type in the schema for @settings.
*
- * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
- * Since: 2.22
+ * Returns: (array zero-terminated=1) (transfer full): a
+ * newly-allocated, %NULL-terminated array of strings, the value that
+ * is stored at @key in @settings.
+ * Since: 2.26
*/
/**
- * g_socket_client_connect_async:
- * @client: a #GSocketClient
- * @connectable: a #GSocketConnectable specifying the remote address.
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * g_settings_get_uint:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
*
- * This is the asynchronous version of g_socket_client_connect().
+ * Gets the value that is stored at @key in @settings.
*
- * When the operation is finished @callback will be
- * called. You can then call g_socket_client_connect_finish() to get
- * the result of the operation.
+ * A convenience variant of g_settings_get() for 32-bit unsigned
+ * integers.
*
- * Since: 2.22
+ * It is a programmer error to give a @key that isn't specified as
+ * having a uint32 type in the schema for @settings.
+ *
+ * Returns: an unsigned integer
+ * Since: 2.30
*/
/**
- * g_socket_client_connect_finish:
- * @client: a #GSocketClient.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_settings_get_uint64:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
*
- * Finishes an async connect operation. See g_socket_client_connect_async()
+ * Gets the value that is stored at @key in @settings.
*
- * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
- * Since: 2.22
+ * A convenience variant of g_settings_get() for 64-bit unsigned
+ * integers.
+ *
+ * It is a programmer error to give a @key that isn't specified as
+ * having a uint64 type in the schema for @settings.
+ *
+ * Returns: a 64-bit unsigned integer
+ * Since: 2.50
*/
/**
- * g_socket_client_connect_to_host:
- * @client: a #GSocketClient
- * @host_and_port: the name and optionally port of the host to connect to
- * @default_port: the default port to connect to
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a pointer to a #GError, or %NULL
+ * g_settings_get_user_value:
+ * @settings: a #GSettings object
+ * @key: the key to get the user value for
*
- * This is a helper function for g_socket_client_connect().
+ * Checks the "user value" of a key, if there is one.
*
- * Attempts to create a TCP connection to the named host.
+ * The user value of a key is the last value that was set by the user.
*
- * @host_and_port may be in any of a number of recognized formats; an IPv6
- * address, an IPv4 address, or a domain name (in which case a DNS
- * lookup is performed). Quoting with [] is supported for all address
- * types. A port override may be specified in the usual way with a
- * colon. Ports may be given as decimal numbers or symbolic names (in
- * which case an /etc/services lookup is performed).
+ * After calling g_settings_reset() this function should always return
+ * %NULL (assuming something is not wrong with the system
+ * configuration).
*
- * If no port override is given in @host_and_port then @default_port will be
- * used as the port number to connect to.
+ * It is possible that g_settings_get_value() will return a different
+ * value than this function. This can happen in the case that the user
+ * set a value for a key that was subsequently locked down by the system
+ * administrator -- this function will return the user's old value.
*
- * In general, @host_and_port is expected to be provided by the user (allowing
- * them to give the hostname, and a port override if necessary) and
- * @default_port is expected to be provided by the application.
+ * This function may be useful for adding a "reset" option to a UI or
+ * for providing indication that a particular value has been changed.
*
- * In the case that an IP address is given, a single connection
- * attempt is made. In the case that a name is given, multiple
- * connection attempts may be made, in turn and according to the
- * number of address records in DNS, until a connection succeeds.
+ * It is a programmer error to give a @key that isn't contained in the
+ * schema for @settings.
*
- * Upon a successful connection, a new #GSocketConnection is constructed
- * and returned. The caller owns this new object and must drop their
- * reference to it when finished with it.
+ * Returns: (nullable) (transfer full): the user's value, if set
+ * Since: 2.40
+ */
+
+
+/**
+ * g_settings_get_value:
+ * @settings: a #GSettings object
+ * @key: the key to get the value for
*
- * In the event of any failure (DNS error, service not found, no hosts
- * connectable) %NULL is returned and @error (if non-%NULL) is set
- * accordingly.
+ * Gets the value that is stored in @settings for @key.
*
- * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
- * Since: 2.22
+ * It is a programmer error to give a @key that isn't contained in the
+ * schema for @settings.
+ *
+ * Returns: a new #GVariant
+ * Since: 2.26
*/
/**
- * g_socket_client_connect_to_host_async:
- * @client: a #GSocketClient
- * @host_and_port: the name and optionally the port of the host to connect to
- * @default_port: the default port to connect to
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
- *
- * This is the asynchronous version of g_socket_client_connect_to_host().
+ * g_settings_is_writable:
+ * @settings: a #GSettings object
+ * @name: the name of a key
*
- * When the operation is finished @callback will be
- * called. You can then call g_socket_client_connect_to_host_finish() to get
- * the result of the operation.
+ * Finds out if a key can be written or not
*
- * Since: 2.22
+ * Returns: %TRUE if the key @name is writable
+ * Since: 2.26
*/
/**
- * g_socket_client_connect_to_host_finish:
- * @client: a #GSocketClient.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_settings_list_children:
+ * @settings: a #GSettings object
*
- * Finishes an async connect operation. See g_socket_client_connect_to_host_async()
+ * Gets the list of children on @settings.
*
- * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
- * Since: 2.22
+ * The list is exactly the list of strings for which it is not an error
+ * to call g_settings_get_child().
+ *
+ * For GSettings objects that are lists, this value can change at any
+ * time. Note that there is a race condition here: you may
+ * request a child after listing it only for it to have been destroyed
+ * in the meantime. For this reason, g_settings_get_child() may return
+ * %NULL even for a child that was listed by this function.
+ *
+ * For GSettings objects that are not lists, you should probably not be
+ * calling this function from "normal" code (since you should already
+ * know what children are in your schema). This function may still be
+ * useful there for introspection reasons, however.
+ *
+ * You should free the return value with g_strfreev() when you are done
+ * with it.
+ *
+ * Returns: (transfer full) (element-type utf8): a list of the children on @settings
*/
/**
- * g_socket_client_connect_to_service:
- * @client: a #GSocketConnection
- * @domain: a domain name
- * @service: the name of the service to connect to
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a pointer to a #GError, or %NULL
+ * g_settings_list_keys:
+ * @settings: a #GSettings object
*
- * Attempts to create a TCP connection to a service.
+ * Introspects the list of keys on @settings.
*
- * This call looks up the SRV record for @service at @domain for the
- * "tcp" protocol. It then attempts to connect, in turn, to each of
- * the hosts providing the service until either a connection succeeds
- * or there are no hosts remaining.
+ * You should probably not be calling this function from "normal" code
+ * (since you should already know what keys are in your schema). This
+ * function is intended for introspection reasons.
*
- * Upon a successful connection, a new #GSocketConnection is constructed
- * and returned. The caller owns this new object and must drop their
- * reference to it when finished with it.
+ * You should free the return value with g_strfreev() when you are done
+ * with it.
*
- * In the event of any failure (DNS error, service not found, no hosts
- * connectable) %NULL is returned and @error (if non-%NULL) is set
- * accordingly.
+ * Returns: (transfer full) (element-type utf8): a list of the keys on @settings
+ */
+
+
+/**
+ * g_settings_list_relocatable_schemas:
*
- * Returns: (transfer full): a #GSocketConnection if successful, or %NULL on error
+ * Deprecated.
+ *
+ * Returns: (element-type utf8) (transfer none): a list of relocatable
+ * #GSettings schemas that are available. The list must not be
+ * modified or freed.
+ * Since: 2.28
+ * Deprecated: 2.40: Use g_settings_schema_source_list_schemas() instead
*/
/**
- * g_socket_client_connect_to_service_async:
- * @client: a #GSocketClient
- * @domain: a domain name
- * @service: the name of the service to connect to
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * g_settings_list_schemas:
*
- * This is the asynchronous version of
- * g_socket_client_connect_to_service().
+ * Deprecated.
*
- * Since: 2.22
+ * Returns: (element-type utf8) (transfer none): a list of #GSettings
+ * schemas that are available. The list must not be modified or
+ * freed.
+ * Since: 2.26
+ * 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.
*/
/**
- * g_socket_client_connect_to_service_finish:
- * @client: a #GSocketClient.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_settings_new:
+ * @schema_id: the id of the schema
*
- * Finishes an async connect operation. See g_socket_client_connect_to_service_async()
+ * Creates a new #GSettings object with the schema specified by
+ * @schema_id.
*
- * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
- * Since: 2.22
+ * Signals on the newly created #GSettings object will be dispatched
+ * via the thread-default #GMainContext in effect at the time of the
+ * call to g_settings_new(). The new #GSettings will hold a reference
+ * on the context. See g_main_context_push_thread_default().
+ *
+ * Returns: a new #GSettings object
+ * Since: 2.26
*/
/**
- * g_socket_client_connect_to_uri:
- * @client: a #GSocketClient
- * @uri: A network URI
- * @default_port: the default port to connect to
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a pointer to a #GError, or %NULL
+ * g_settings_new_full:
+ * @schema: a #GSettingsSchema
+ * @backend: (nullable): a #GSettingsBackend
+ * @path: (nullable): the path to use
*
- * This is a helper function for g_socket_client_connect().
+ * Creates a new #GSettings object with a given schema, backend and
+ * path.
*
- * Attempts to create a TCP connection with a network URI.
+ * It should be extremely rare that you ever want to use this function.
+ * It is made available for advanced use-cases (such as plugin systems
+ * that want to provide access to schemas loaded from custom locations,
+ * etc).
*
- * @uri may be any valid URI containing an "authority" (hostname/port)
- * component. If a port is not specified in the URI, @default_port
- * will be used. TLS will be negotiated if #GSocketClient:tls is %TRUE.
- * (#GSocketClient does not know to automatically assume TLS for
- * certain URI schemes.)
+ * At the most basic level, a #GSettings object is a pure composition of
+ * 4 things: a #GSettingsSchema, a #GSettingsBackend, a path within that
+ * backend, and a #GMainContext to which signals are dispatched.
*
- * Using this rather than g_socket_client_connect() or
- * g_socket_client_connect_to_host() allows #GSocketClient to
- * determine when to use application-specific proxy protocols.
+ * This constructor therefore gives you full control over constructing
+ * #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()).
*
- * Upon a successful connection, a new #GSocketConnection is constructed
- * and returned. The caller owns this new object and must drop their
- * reference to it when finished with it.
+ * If @backend is %NULL then the default backend is used.
*
- * In the event of any failure (DNS error, service not found, no hosts
- * connectable) %NULL is returned and @error (if non-%NULL) is set
- * accordingly.
+ * If @path is %NULL then the path from the schema is used. It is an
+ * 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.
*
- * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
- * Since: 2.26
+ * Returns: a new #GSettings object
+ * Since: 2.32
*/
/**
- * g_socket_client_connect_to_uri_async:
- * @client: a #GSocketClient
- * @uri: a network uri
- * @default_port: the default port to connect to
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * g_settings_new_with_backend:
+ * @schema_id: the id of the schema
+ * @backend: the #GSettingsBackend to use
*
- * This is the asynchronous version of g_socket_client_connect_to_uri().
+ * Creates a new #GSettings object with the schema specified by
+ * @schema_id and a given #GSettingsBackend.
*
- * When the operation is finished @callback will be
- * called. You can then call g_socket_client_connect_to_uri_finish() to get
- * the result of the operation.
+ * Creating a #GSettings object with a different backend allows accessing
+ * settings from a database other than the usual one. For example, it may make
+ * sense to pass a backend corresponding to the "defaults" settings database on
+ * the system to get a settings object that modifies the system default
+ * settings instead of the settings for this user.
*
+ * Returns: a new #GSettings object
* Since: 2.26
*/
/**
- * g_socket_client_connect_to_uri_finish:
- * @client: a #GSocketClient.
- * @result: a #GAsyncResult.
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_settings_new_with_backend_and_path:
+ * @schema_id: the id of the schema
+ * @backend: the #GSettingsBackend to use
+ * @path: the path to use
*
- * Finishes an async connect operation. See g_socket_client_connect_to_uri_async()
+ * Creates a new #GSettings object with the schema specified by
+ * @schema_id and a given #GSettingsBackend and path.
*
- * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
+ * This is a mix of g_settings_new_with_backend() and
+ * g_settings_new_with_path().
+ *
+ * Returns: a new #GSettings object
* Since: 2.26
*/
/**
- * g_socket_client_get_enable_proxy:
- * @client: a #GSocketClient.
+ * g_settings_new_with_path:
+ * @schema_id: the id of the schema
+ * @path: the path to use
*
- * Gets the proxy enable state; see g_socket_client_set_enable_proxy()
+ * Creates a new #GSettings object with the relocatable schema specified
+ * by @schema_id and a given path.
*
- * Returns: whether proxying is enabled
+ * You only need to do this if you want to directly create a settings
+ * object with a schema that doesn't have a specified path of its own.
+ * That's quite rare.
+ *
+ * It is a programmer error to call this function for a schema that
+ * has an explicitly specified path.
+ *
+ * It is a programmer error if @path is not a valid path. A valid path
+ * begins and ends with '/' and does not contain two consecutive '/'
+ * characters.
+ *
+ * Returns: a new #GSettings object
* Since: 2.26
*/
/**
- * g_socket_client_get_family:
- * @client: a #GSocketClient.
- *
- * Gets the socket family of the socket client.
+ * g_settings_range_check:
+ * @settings: a #GSettings
+ * @key: the key to check
+ * @value: the value to check
*
- * See g_socket_client_set_family() for details.
+ * Checks if the given @value is of the correct type and within the
+ * permitted range for @key.
*
- * Returns: a #GSocketFamily
- * Since: 2.22
+ * Returns: %TRUE if @value is valid for @key
+ * Since: 2.28
+ * Deprecated: 2.40: Use g_settings_schema_key_range_check() instead.
*/
/**
- * g_socket_client_get_local_address:
- * @client: a #GSocketClient.
- *
- * Gets the local address of the socket client.
+ * g_settings_reset:
+ * @settings: a #GSettings object
+ * @key: the name of a key
*
- * See g_socket_client_set_local_address() for details.
+ * Resets @key to its default value.
*
- * Returns: (transfer none): a #GSocketAddress or %NULL. Do not free.
- * Since: 2.22
+ * This call resets the key, as much as possible, to its default value.
+ * That might the value specified in the schema or the one set by the
+ * administrator.
*/
/**
- * g_socket_client_get_protocol:
- * @client: a #GSocketClient
- *
- * Gets the protocol name type of the socket client.
+ * g_settings_revert:
+ * @settings: a #GSettings instance
*
- * See g_socket_client_set_protocol() for details.
+ * Reverts all non-applied changes to the settings. This function
+ * does nothing unless @settings is in 'delay-apply' mode; see
+ * g_settings_delay(). In the normal case settings are always applied
+ * immediately.
*
- * Returns: a #GSocketProtocol
- * Since: 2.22
+ * Change notifications will be emitted for affected keys.
*/
/**
- * g_socket_client_get_proxy_resolver:
- * @client: a #GSocketClient.
+ * g_settings_schema_get_id:
+ * @schema: a #GSettingsSchema
*
- * Gets the #GProxyResolver being used by @client. Normally, this will
- * be the resolver returned by g_proxy_resolver_get_default(), but you
- * can override it with g_socket_client_set_proxy_resolver().
+ * Get the ID of @schema.
*
- * Returns: (transfer none): The #GProxyResolver being used by
- * @client.
- * Since: 2.36
+ * Returns: (transfer none): the ID
*/
/**
- * g_socket_client_get_socket_type:
- * @client: a #GSocketClient.
+ * g_settings_schema_get_key:
+ * @schema: a #GSettingsSchema
+ * @name: the name of a key
*
- * Gets the socket type of the socket client.
+ * Gets the key named @name from @schema.
*
- * See g_socket_client_set_socket_type() for details.
+ * It is a programmer error to request a key that does not exist. See
+ * g_settings_schema_list_keys().
*
- * Returns: a #GSocketFamily
- * Since: 2.22
+ * Returns: (transfer full): the #GSettingsSchemaKey for @name
+ * Since: 2.40
*/
/**
- * g_socket_client_get_timeout:
- * @client: a #GSocketClient
+ * g_settings_schema_get_path:
+ * @schema: a #GSettingsSchema
*
- * Gets the I/O timeout time for sockets created by @client.
+ * Gets the path associated with @schema, or %NULL.
*
- * See g_socket_client_set_timeout() for details.
+ * Schemas may be single-instance or relocatable. Single-instance
+ * schemas correspond to exactly one set of keys in the backend
+ * database: those located at the path returned by this function.
*
- * Returns: the timeout in seconds
- * Since: 2.26
+ * Relocatable schemas can be referenced by other schemas and can
+ * threfore describe multiple sets of keys at different locations. For
+ * relocatable schemas, this function will return %NULL.
+ *
+ * Returns: (transfer none): the path of the schema, or %NULL
+ * Since: 2.32
*/
/**
- * g_socket_client_get_tls:
- * @client: a #GSocketClient.
+ * g_settings_schema_has_key:
+ * @schema: a #GSettingsSchema
+ * @name: the name of a key
*
- * Gets whether @client creates TLS connections. See
- * g_socket_client_set_tls() for details.
+ * Checks if @schema has a key named @name.
*
- * Returns: whether @client uses TLS
- * Since: 2.28
+ * Returns: %TRUE if such a key exists
+ * Since: 2.40
*/
/**
- * g_socket_client_get_tls_validation_flags:
- * @client: a #GSocketClient.
+ * g_settings_schema_key_get_default_value:
+ * @key: a #GSettingsSchemaKey
*
- * Gets the TLS validation flags used creating TLS connections via
- * @client.
+ * Gets the default value for @key.
*
- * Returns: the TLS validation flags
- * Since: 2.28
+ * Note that this is the default value according to the schema. System
+ * administrator defaults and lockdown are not visible via this API.
+ *
+ * Returns: (transfer full): the default value for the key
+ * Since: 2.40
*/
/**
- * g_socket_client_new:
+ * g_settings_schema_key_get_description:
+ * @key: a #GSettingsSchemaKey
*
- * Creates a new #GSocketClient with the default options.
+ * Gets the description for @key.
*
- * Returns: a #GSocketClient.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * If no description has been provided in the schema for @key, returns
+ * %NULL.
+ *
+ * The description can be one sentence to several paragraphs in length.
+ * Paragraphs are delimited with a double newline. Descriptions can be
+ * translated and the value returned from this function is is the
+ * current locale.
+ *
+ * This function is slow. The summary and description information for
+ * the schemas is not stored in the compiled schema database so this
+ * function has to parse all of the source XML files in the schema
+ * directory.
+ *
+ * Returns: the description for @key, or %NULL
+ * Since: 2.34
*/
/**
- * g_socket_client_set_enable_proxy:
- * @client: a #GSocketClient.
- * @enable: whether to enable proxies
- *
- * Sets whether or not @client attempts to make connections via a
- * proxy server. When enabled (the default), #GSocketClient will use a
- * #GProxyResolver to determine if a proxy protocol such as SOCKS is
- * needed, and automatically do the necessary proxy negotiation.
+ * g_settings_schema_key_get_name:
+ * @key: a #GSettingsSchemaKey
*
- * See also g_socket_client_set_proxy_resolver().
+ * Gets the name of @key.
*
- * Since: 2.26
+ * Returns: the name of @key.
+ * Since: 2.44
*/
/**
- * g_socket_client_set_family:
- * @client: a #GSocketClient.
- * @family: a #GSocketFamily
+ * g_settings_schema_key_get_range:
+ * @key: a #GSettingsSchemaKey
*
- * Sets the socket family of the socket client.
- * If this is set to something other than %G_SOCKET_FAMILY_INVALID
- * then the sockets created by this object will be of the specified
- * family.
+ * Queries the range of a key.
*
- * This might be useful for instance if you want to force the local
- * connection to be an ipv4 socket, even though the address might
- * be an ipv6 mapped to ipv4 address.
+ * This function will return a #GVariant that fully describes the range
+ * of values that are valid for @key.
*
- * Since: 2.22
+ * The type of #GVariant returned is `(sv)`. The string describes
+ * the type of range restriction in effect. The type and meaning of
+ * the value contained in the variant depends on the string.
+ *
+ * If the string is `'type'` then the variant contains an empty array.
+ * The element type of that empty array is the expected type of value
+ * and all values of that type are valid.
+ *
+ * If the string is `'enum'` then the variant contains an array
+ * enumerating the possible values. Each item in the array is
+ * a possible valid value and no other values are valid.
+ *
+ * If the string is `'flags'` then the variant contains an array. Each
+ * item in the array is a value that may appear zero or one times in an
+ * array to be used as the value for this key. For example, if the
+ * variant contained the array `['x', 'y']` then the valid values for
+ * the key would be `[]`, `['x']`, `['y']`, `['x', 'y']` and
+ * `['y', 'x']`.
+ *
+ * Finally, if the string is `'range'` then the variant contains a pair
+ * of like-typed values -- the minimum and maximum permissible values
+ * for this key.
+ *
+ * This information should not be used by normal programs. It is
+ * considered to be a hint for introspection purposes. Normal programs
+ * should already know what is permitted by their own schema. The
+ * format may change in any way in the future -- but particularly, new
+ * forms may be added to the possibilities described above.
+ *
+ * You should free the returned value with g_variant_unref() when it is
+ * no longer needed.
+ *
+ * Returns: (transfer full): a #GVariant describing the range
+ * Since: 2.40
*/
/**
- * g_socket_client_set_local_address:
- * @client: a #GSocketClient.
- * @address: (nullable): a #GSocketAddress, or %NULL
+ * g_settings_schema_key_get_summary:
+ * @key: a #GSettingsSchemaKey
*
- * Sets the local address of the socket client.
- * The sockets created by this object will bound to the
- * specified address (if not %NULL) before connecting.
+ * Gets the summary for @key.
*
- * This is useful if you want to ensure that the local
- * side of the connection is on a specific port, or on
- * a specific interface.
+ * If no summary has been provided in the schema for @key, returns
+ * %NULL.
*
- * Since: 2.22
+ * The summary is a short description of the purpose of the key; usually
+ * one short sentence. Summaries can be translated and the value
+ * returned from this function is is the current locale.
+ *
+ * This function is slow. The summary and description information for
+ * the schemas is not stored in the compiled schema database so this
+ * function has to parse all of the source XML files in the schema
+ * directory.
+ *
+ * Returns: the summary for @key, or %NULL
+ * Since: 2.34
*/
/**
- * g_socket_client_set_protocol:
- * @client: a #GSocketClient.
- * @protocol: a #GSocketProtocol
- *
- * Sets the protocol of the socket client.
- * The sockets created by this object will use of the specified
- * protocol.
+ * g_settings_schema_key_get_value_type:
+ * @key: a #GSettingsSchemaKey
*
- * If @protocol is %0 that means to use the default
- * protocol for the socket family and type.
+ * Gets the #GVariantType of @key.
*
- * Since: 2.22
+ * Returns: (transfer none): the type of @key
+ * Since: 2.40
*/
/**
- * g_socket_client_set_proxy_resolver:
- * @client: a #GSocketClient.
- * @proxy_resolver: (nullable): a #GProxyResolver, or %NULL for the
- * default.
+ * g_settings_schema_key_range_check:
+ * @key: a #GSettingsSchemaKey
+ * @value: the value to check
*
- * Overrides the #GProxyResolver used by @client. You can call this if
- * you want to use specific proxies, rather than using the system
- * default proxy settings.
+ * Checks if the given @value is of the correct type and within the
+ * permitted range for @key.
*
- * Note that whether or not the proxy resolver is actually used
- * depends on the setting of #GSocketClient:enable-proxy, which is not
- * changed by this function (but which is %TRUE by default)
+ * It is a programmer error if @value is not of the correct type -- you
+ * must check for this first.
*
- * Since: 2.36
+ * Returns: %TRUE if @value is valid for @key
+ * Since: 2.40
*/
/**
- * g_socket_client_set_socket_type:
- * @client: a #GSocketClient.
- * @type: a #GSocketType
- *
- * Sets the socket type of the socket client.
- * The sockets created by this object will be of the specified
- * type.
+ * g_settings_schema_key_ref:
+ * @key: a #GSettingsSchemaKey
*
- * It doesn't make sense to specify a type of %G_SOCKET_TYPE_DATAGRAM,
- * as GSocketClient is used for connection oriented services.
+ * Increase the reference count of @key, returning a new reference.
*
- * Since: 2.22
+ * Returns: a new reference to @key
+ * Since: 2.40
*/
/**
- * g_socket_client_set_timeout:
- * @client: a #GSocketClient.
- * @timeout: the timeout
- *
- * Sets the I/O timeout for sockets created by @client. @timeout is a
- * time in seconds, or 0 for no timeout (the default).
+ * g_settings_schema_key_unref:
+ * @key: a #GSettingsSchemaKey
*
- * The timeout value affects the initial connection attempt as well,
- * so setting this may cause calls to g_socket_client_connect(), etc,
- * to fail with %G_IO_ERROR_TIMED_OUT.
+ * Decrease the reference count of @key, possibly freeing it.
*
- * Since: 2.26
+ * Since: 2.40
*/
/**
- * g_socket_client_set_tls:
- * @client: a #GSocketClient.
- * @tls: whether to use TLS
- *
- * Sets whether @client creates TLS (aka SSL) connections. If @tls is
- * %TRUE, @client will wrap its connections in a #GTlsClientConnection
- * and perform a TLS handshake when connecting.
+ * g_settings_schema_list_children:
+ * @schema: a #GSettingsSchema
*
- * Note that since #GSocketClient must return a #GSocketConnection,
- * but #GTlsClientConnection is not a #GSocketConnection, this
- * actually wraps the resulting #GTlsClientConnection in a
- * #GTcpWrapperConnection when returning it. You can use
- * g_tcp_wrapper_connection_get_base_io_stream() on the return value
- * to extract the #GTlsClientConnection.
+ * Gets the list of children in @schema.
*
- * If you need to modify the behavior of the TLS handshake (eg, by
- * setting a client-side certificate to use, or connecting to the
- * #GTlsConnection::accept-certificate signal), you can connect to
- * @client's #GSocketClient::event signal and wait for it to be
- * emitted with %G_SOCKET_CLIENT_TLS_HANDSHAKING, which will give you
- * a chance to see the #GTlsClientConnection before the handshake
- * starts.
+ * You should free the return value with g_strfreev() when you are done
+ * with it.
*
- * Since: 2.28
+ * Returns: (transfer full) (element-type utf8): a list of the children on @settings
+ * Since: 2.44
*/
/**
- * g_socket_client_set_tls_validation_flags:
- * @client: a #GSocketClient.
- * @flags: the validation flags
+ * g_settings_schema_list_keys:
+ * @schema: a #GSettingsSchema
*
- * Sets the TLS validation flags used when creating TLS connections
- * via @client. The default value is %G_TLS_CERTIFICATE_VALIDATE_ALL.
+ * Introspects the list of keys on @schema.
*
- * Since: 2.28
+ * You should probably not be calling this function from "normal" code
+ * (since you should already know what keys are in your schema). This
+ * function is intended for introspection reasons.
+ *
+ * Returns: (transfer full) (element-type utf8): a list of the keys on
+ * @schema
+ * Since: 2.46
*/
/**
- * g_socket_close:
- * @socket: a #GSocket
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Closes the socket, shutting down any active connection.
- *
- * Closing a socket does not wait for all outstanding I/O operations
- * to finish, so the caller should not rely on them to be guaranteed
- * to complete even if the close returns with no error.
- *
- * Once the socket is closed, all other operations will return
- * %G_IO_ERROR_CLOSED. Closing a socket multiple times will not
- * return an error.
- *
- * Sockets will be automatically closed when the last reference
- * is dropped, but you might want to call this function to make sure
- * resources are released as early as possible.
+ * g_settings_schema_ref:
+ * @schema: a #GSettingsSchema
*
- * Beware that due to the way that TCP works, it is possible for
- * recently-sent data to be lost if either you close a socket while the
- * %G_IO_IN condition is set, or else if the remote connection tries to
- * send something to you after you close the socket but before it has
- * finished reading all of the data you sent. There is no easy generic
- * way to avoid this problem; the easiest fix is to design the network
- * protocol such that the client will never send data "out of turn".
- * Another solution is for the server to half-close the connection by
- * calling g_socket_shutdown() with only the @shutdown_write flag set,
- * and then wait for the client to notice this and close its side of the
- * connection, after which the server can safely call g_socket_close().
- * (This is what #GTcpConnection does if you call
- * g_tcp_connection_set_graceful_disconnect(). But of course, this
- * only works if the client will close its connection after the server
- * does.)
+ * Increase the reference count of @schema, returning a new reference.
*
- * Returns: %TRUE on success, %FALSE on error
- * Since: 2.22
+ * Returns: a new reference to @schema
+ * Since: 2.32
*/
/**
- * g_socket_condition_check:
- * @socket: a #GSocket
- * @condition: a #GIOCondition mask to check
+ * g_settings_schema_source_get_default:
*
- * Checks on the readiness of @socket to perform operations.
- * The operations specified in @condition are checked for and masked
- * against the currently-satisfied conditions on @socket. The result
- * is returned.
+ * Gets the default system schema source.
*
- * Note that on Windows, it is possible for an operation to return
- * %G_IO_ERROR_WOULD_BLOCK even immediately after
- * g_socket_condition_check() has claimed that the socket is ready for
- * writing. Rather than calling g_socket_condition_check() and then
- * writing to the socket if it succeeds, it is generally better to
- * simply try writing to the socket right away, and try again later if
- * the initial attempt returns %G_IO_ERROR_WOULD_BLOCK.
+ * This function is not required for normal uses of #GSettings but it
+ * may be useful to authors of plugin management systems or to those who
+ * want to introspect the content of schemas.
*
- * It is meaningless to specify %G_IO_ERR or %G_IO_HUP in condition;
- * these conditions will always be set in the output if they are true.
+ * If no schemas are installed, %NULL will be returned.
*
- * This call never blocks.
+ * The returned source may actually consist of multiple schema sources
+ * from different directories, depending on which directories were given
+ * in `XDG_DATA_DIRS` and `GSETTINGS_SCHEMA_DIR`. For this reason, all
+ * lookups performed against the default source should probably be done
+ * recursively.
*
- * Returns: the @GIOCondition mask of the current state
- * Since: 2.22
+ * Returns: (transfer none) (nullable): the default schema source
+ * Since: 2.32
*/
/**
- * g_socket_condition_timed_wait:
- * @socket: a #GSocket
- * @condition: a #GIOCondition mask to wait for
- * @timeout: the maximum time (in microseconds) to wait, or -1
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a #GError pointer, or %NULL
+ * g_settings_schema_source_list_schemas:
+ * @source: a #GSettingsSchemaSource
+ * @recursive: if we should recurse
+ * @non_relocatable: (out) (transfer full) (array zero-terminated=1): the
+ * list of non-relocatable schemas
+ * @relocatable: (out) (transfer full) (array zero-terminated=1): the list
+ * of relocatable schemas
*
- * Waits for up to @timeout microseconds for @condition to become true
- * on @socket. If the condition is met, %TRUE is returned.
+ * Lists the schemas in a given source.
*
- * If @cancellable is cancelled before the condition is met, or if
- * @timeout (or the socket's #GSocket:timeout) is reached before the
- * condition is met, then %FALSE is returned and @error, if non-%NULL,
- * is set to the appropriate value (%G_IO_ERROR_CANCELLED or
- * %G_IO_ERROR_TIMED_OUT).
+ * If @recursive is %TRUE then include parent sources. If %FALSE then
+ * only include the schemas from one source (ie: one directory). You
+ * probably want %TRUE.
*
- * If you don't want a timeout, use g_socket_condition_wait().
- * (Alternatively, you can pass -1 for @timeout.)
+ * Non-relocatable schemas are those for which you can call
+ * g_settings_new(). Relocatable schemas are those for which you must
+ * use g_settings_new_with_path().
*
- * Note that although @timeout is in microseconds for consistency with
- * other GLib APIs, this function actually only has millisecond
- * resolution, and the behavior is undefined if @timeout is not an
- * exact number of milliseconds.
+ * Do not call this function from normal programs. This is designed for
+ * use by database editors, commandline tools, etc.
*
- * Returns: %TRUE if the condition was met, %FALSE otherwise
- * Since: 2.32
+ * Since: 2.40
*/
/**
- * g_socket_condition_wait:
- * @socket: a #GSocket
- * @condition: a #GIOCondition mask to wait for
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a #GError pointer, or %NULL
+ * g_settings_schema_source_lookup:
+ * @source: a #GSettingsSchemaSource
+ * @schema_id: a schema ID
+ * @recursive: %TRUE if the lookup should be recursive
*
- * Waits for @condition to become true on @socket. When the condition
- * is met, %TRUE is returned.
+ * Looks up a schema with the identifier @schema_id in @source.
*
- * If @cancellable is cancelled before the condition is met, or if the
- * socket has a timeout set and it is reached before the condition is
- * met, then %FALSE is returned and @error, if non-%NULL, is set to
- * the appropriate value (%G_IO_ERROR_CANCELLED or
- * %G_IO_ERROR_TIMED_OUT).
+ * This function is not required for normal uses of #GSettings but it
+ * may be useful to authors of plugin management systems or to those who
+ * want to introspect the content of schemas.
*
- * See also g_socket_condition_timed_wait().
+ * If the schema isn't found directly in @source and @recursive is %TRUE
+ * then the parent sources will also be checked.
*
- * Returns: %TRUE if the condition was met, %FALSE otherwise
- * Since: 2.22
+ * If the schema isn't found, %NULL is returned.
+ *
+ * Returns: (nullable) (transfer full): a new #GSettingsSchema
+ * Since: 2.32
*/
/**
- * g_socket_connect:
- * @socket: a #GSocket.
- * @address: a #GSocketAddress specifying the remote address.
- * @cancellable: (nullable): a %GCancellable or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_settings_schema_source_new_from_directory:
+ * @directory: (type filename): the filename of a directory
+ * @parent: (nullable): a #GSettingsSchemaSource, or %NULL
+ * @trusted: %TRUE, if the directory is trusted
+ * @error: a pointer to a #GError pointer set to %NULL, or %NULL
*
- * Connect the socket to the specified remote address.
+ * Attempts to create a new schema source corresponding to the contents
+ * of the given directory.
*
- * For connection oriented socket this generally means we attempt to make
- * a connection to the @address. For a connection-less socket it sets
- * the default address for g_socket_send() and discards all incoming datagrams
- * from other sources.
+ * This function is not required for normal uses of #GSettings but it
+ * may be useful to authors of plugin management systems.
*
- * Generally connection oriented sockets can only connect once, but
- * connection-less sockets can connect multiple times to change the
- * default address.
+ * The directory should contain a file called `gschemas.compiled` as
+ * produced by the [glib-compile-schemas][glib-compile-schemas] tool.
*
- * If the connect call needs to do network I/O it will block, unless
- * non-blocking I/O is enabled. Then %G_IO_ERROR_PENDING is returned
- * and the user can be notified of the connection finishing by waiting
- * for the G_IO_OUT condition. The result of the connection must then be
- * checked with g_socket_check_connect_result().
+ * If @trusted is %TRUE then `gschemas.compiled` is trusted not to be
+ * corrupted. This assumption has a performance advantage, but can result
+ * in crashes or inconsistent behaviour in the case of a corrupted file.
+ * Generally, you should set @trusted to %TRUE for files installed by the
+ * system and to %FALSE for files in the home directory.
*
- * Returns: %TRUE if connected, %FALSE on error.
- * Since: 2.22
- */
-
-
-/**
- * g_socket_connectable_enumerate:
- * @connectable: a #GSocketConnectable
+ * In either case, an empty file or some types of corruption in the file will
+ * result in %G_FILE_ERROR_INVAL being returned.
*
- * Creates a #GSocketAddressEnumerator for @connectable.
+ * If @parent is non-%NULL then there are two effects.
*
- * Returns: (transfer full): a new #GSocketAddressEnumerator.
- * Since: 2.22
+ * First, if g_settings_schema_source_lookup() is called with the
+ * @recursive flag set to %TRUE and the schema can not be found in the
+ * source, the lookup will recurse to the parent.
+ *
+ * Second, any references to other schemas specified within this
+ * source (ie: `child` or `extends`) references may be resolved
+ * from the @parent.
+ *
+ * For this second reason, except in very unusual situations, the
+ * @parent should probably be given as the default schema source, as
+ * returned by g_settings_schema_source_get_default().
+ *
+ * Since: 2.32
*/
/**
- * g_socket_connectable_proxy_enumerate:
- * @connectable: a #GSocketConnectable
- *
- * Creates a #GSocketAddressEnumerator for @connectable that will
- * return #GProxyAddresses for addresses that you must connect
- * to via a proxy.
+ * g_settings_schema_source_ref:
+ * @source: a #GSettingsSchemaSource
*
- * If @connectable does not implement
- * g_socket_connectable_proxy_enumerate(), this will fall back to
- * calling g_socket_connectable_enumerate().
+ * Increase the reference count of @source, returning a new reference.
*
- * Returns: (transfer full): a new #GSocketAddressEnumerator.
- * Since: 2.26
+ * Returns: a new reference to @source
+ * Since: 2.32
*/
/**
- * g_socket_connectable_to_string:
- * @connectable: a #GSocketConnectable
- *
- * Format a #GSocketConnectable as a string. This is a human-readable format for
- * use in debugging output, and is not a stable serialization format. It is not
- * suitable for use in user interfaces as it exposes too much information for a
- * user.
+ * g_settings_schema_source_unref:
+ * @source: a #GSettingsSchemaSource
*
- * If the #GSocketConnectable implementation does not support string formatting,
- * the implementation’s type name will be returned as a fallback.
+ * Decrease the reference count of @source, possibly freeing it.
*
- * Returns: (transfer full): the formatted string
- * Since: 2.48
+ * Since: 2.32
*/
/**
- * g_socket_connection_connect:
- * @connection: a #GSocketConnection
- * @address: a #GSocketAddress specifying the remote address.
- * @cancellable: (nullable): a %GCancellable or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_settings_schema_unref:
+ * @schema: a #GSettingsSchema
*
- * Connect @connection to the specified remote address.
+ * Decrease the reference count of @schema, possibly freeing it.
*
- * Returns: %TRUE if the connection succeeded, %FALSE on error
* Since: 2.32
*/
/**
- * g_socket_connection_connect_async:
- * @connection: a #GSocketConnection
- * @address: a #GSocketAddress specifying the remote address.
- * @cancellable: (nullable): a %GCancellable or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * g_settings_set:
+ * @settings: a #GSettings object
+ * @key: the name of the key to set
+ * @format: a #GVariant format string
+ * @...: arguments as per @format
*
- * Asynchronously connect @connection to the specified remote address.
+ * Sets @key in @settings to @value.
*
- * This clears the #GSocket:blocking flag on @connection's underlying
- * socket if it is currently set.
+ * A convenience function that combines g_settings_set_value() with
+ * g_variant_new().
*
- * Use g_socket_connection_connect_finish() to retrieve the result.
+ * It is a programmer error to give a @key that isn't contained in the
+ * schema for @settings or for the #GVariantType of @format to mismatch
+ * the type given in the schema.
*
- * Since: 2.32
+ * Returns: %TRUE if setting the key succeeded,
+ * %FALSE if the key was not writable
+ * Since: 2.26
*/
/**
- * g_socket_connection_connect_finish:
- * @connection: a #GSocketConnection
- * @result: the #GAsyncResult
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_settings_set_boolean:
+ * @settings: a #GSettings object
+ * @key: the name of the key to set
+ * @value: the value to set it to
*
- * Gets the result of a g_socket_connection_connect_async() call.
+ * Sets @key in @settings to @value.
*
- * Returns: %TRUE if the connection succeeded, %FALSE on error
- * Since: 2.32
+ * A convenience variant of g_settings_set() for booleans.
+ *
+ * It is a programmer error to give a @key that isn't specified as
+ * having a boolean type in the schema for @settings.
+ *
+ * Returns: %TRUE if setting the key succeeded,
+ * %FALSE if the key was not writable
+ * Since: 2.26
*/
/**
- * g_socket_connection_factory_create_connection:
- * @socket: a #GSocket
+ * g_settings_set_double:
+ * @settings: a #GSettings object
+ * @key: the name of the key to set
+ * @value: the value to set it to
*
- * Creates a #GSocketConnection subclass of the right type for
- * @socket.
+ * Sets @key in @settings to @value.
*
- * Returns: (transfer full): a #GSocketConnection
- * Since: 2.22
+ * A convenience variant of g_settings_set() for doubles.
+ *
+ * It is a programmer error to give a @key that isn't specified as
+ * having a 'double' type in the schema for @settings.
+ *
+ * Returns: %TRUE if setting the key succeeded,
+ * %FALSE if the key was not writable
+ * Since: 2.26
*/
/**
- * g_socket_connection_factory_lookup_type:
- * @family: a #GSocketFamily
- * @type: a #GSocketType
- * @protocol_id: a protocol id
+ * g_settings_set_enum:
+ * @settings: a #GSettings object
+ * @key: a key, within @settings
+ * @value: an enumerated value
*
- * Looks up the #GType to be used when creating socket connections on
- * sockets with the specified @family, @type and @protocol_id.
+ * Looks up the enumerated type nick for @value and writes it to @key,
+ * within @settings.
*
- * If no type is registered, the #GSocketConnection base type is returned.
+ * It is a programmer error to give a @key that isn't contained in the
+ * schema for @settings or is not marked as an enumerated type, or for
+ * @value not to be a valid value for the named type.
*
- * Returns: a #GType
- * Since: 2.22
+ * After performing the write, accessing @key directly with
+ * g_settings_get_string() will return the 'nick' associated with
+ * @value.
+ *
+ * Returns: %TRUE, if the set succeeds
*/
/**
- * g_socket_connection_factory_register_type:
- * @g_type: a #GType, inheriting from %G_TYPE_SOCKET_CONNECTION
- * @family: a #GSocketFamily
- * @type: a #GSocketType
- * @protocol: a protocol id
+ * g_settings_set_flags:
+ * @settings: a #GSettings object
+ * @key: a key, within @settings
+ * @value: a flags value
*
- * Looks up the #GType to be used when creating socket connections on
- * sockets with the specified @family, @type and @protocol.
+ * Looks up the flags type nicks for the bits specified by @value, puts
+ * them in an array of strings and writes the array to @key, within
+ * @settings.
*
- * If no type is registered, the #GSocketConnection base type is returned.
+ * It is a programmer error to give a @key that isn't contained in the
+ * schema for @settings or is not marked as a flags type, or for @value
+ * to contain any bits that are not value for the named type.
*
- * Since: 2.22
+ * After performing the write, accessing @key directly with
+ * g_settings_get_strv() will return an array of 'nicks'; one for each
+ * bit in @value.
+ *
+ * Returns: %TRUE, if the set succeeds
*/
/**
- * g_socket_connection_get_local_address:
- * @connection: a #GSocketConnection
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_settings_set_int:
+ * @settings: a #GSettings object
+ * @key: the name of the key to set
+ * @value: the value to set it to
*
- * Try to get the local address of a socket connection.
+ * Sets @key in @settings to @value.
*
- * Returns: (transfer full): a #GSocketAddress or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * A convenience variant of g_settings_set() for 32-bit integers.
+ *
+ * It is a programmer error to give a @key that isn't specified as
+ * having a int32 type in the schema for @settings.
+ *
+ * Returns: %TRUE if setting the key succeeded,
+ * %FALSE if the key was not writable
+ * Since: 2.26
*/
/**
- * g_socket_connection_get_remote_address:
- * @connection: a #GSocketConnection
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_settings_set_int64:
+ * @settings: a #GSettings object
+ * @key: the name of the key to set
+ * @value: the value to set it to
*
- * Try to get the remote address of a socket connection.
+ * Sets @key in @settings to @value.
*
- * Since GLib 2.40, when used with g_socket_client_connect() or
- * g_socket_client_connect_async(), during emission of
- * %G_SOCKET_CLIENT_CONNECTING, this function will return the remote
- * address that will be used for the connection. This allows
- * applications to print e.g. "Connecting to example.com
- * (10.42.77.3)...".
+ * A convenience variant of g_settings_set() for 64-bit integers.
*
- * Returns: (transfer full): a #GSocketAddress or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * It is a programmer error to give a @key that isn't specified as
+ * having a int64 type in the schema for @settings.
+ *
+ * Returns: %TRUE if setting the key succeeded,
+ * %FALSE if the key was not writable
+ * Since: 2.50
*/
/**
- * g_socket_connection_get_socket:
- * @connection: a #GSocketConnection
+ * g_settings_set_string:
+ * @settings: a #GSettings object
+ * @key: the name of the key to set
+ * @value: the value to set it to
*
- * Gets the underlying #GSocket object of the connection.
- * This can be useful if you want to do something unusual on it
- * not supported by the #GSocketConnection APIs.
+ * Sets @key in @settings to @value.
*
- * Returns: (transfer none): a #GSocket or %NULL on error.
- * Since: 2.22
+ * A convenience variant of g_settings_set() for strings.
+ *
+ * It is a programmer error to give a @key that isn't specified as
+ * having a string type in the schema for @settings.
+ *
+ * Returns: %TRUE if setting the key succeeded,
+ * %FALSE if the key was not writable
+ * Since: 2.26
*/
/**
- * g_socket_connection_is_connected:
- * @connection: a #GSocketConnection
+ * g_settings_set_strv:
+ * @settings: a #GSettings object
+ * @key: the name of the key to set
+ * @value: (nullable) (array zero-terminated=1): the value to set it to, or %NULL
*
- * Checks if @connection is connected. This is equivalent to calling
- * g_socket_is_connected() on @connection's underlying #GSocket.
+ * Sets @key in @settings to @value.
*
- * Returns: whether @connection is connected
- * Since: 2.32
+ * A convenience variant of g_settings_set() for string arrays. If
+ * @value is %NULL, then @key is set to be the empty array.
+ *
+ * It is a programmer error to give a @key that isn't specified as
+ * having an array of strings type in the schema for @settings.
+ *
+ * Returns: %TRUE if setting the key succeeded,
+ * %FALSE if the key was not writable
+ * Since: 2.26
*/
/**
- * g_socket_control_message_deserialize:
- * @level: a socket level
- * @type: a socket control message type for the given @level
- * @size: the size of the data in bytes
- * @data: (array length=size) (element-type guint8): pointer to the message data
+ * g_settings_set_uint:
+ * @settings: a #GSettings object
+ * @key: the name of the key to set
+ * @value: the value to set it to
*
- * Tries to deserialize a socket control message of a given
- * @level and @type. This will ask all known (to GType) subclasses
- * of #GSocketControlMessage if they can understand this kind
- * of message and if so deserialize it into a #GSocketControlMessage.
+ * Sets @key in @settings to @value.
*
- * If there is no implementation for this kind of control message, %NULL
- * will be returned.
+ * A convenience variant of g_settings_set() for 32-bit unsigned
+ * integers.
*
- * Returns: (transfer full): the deserialized message or %NULL
- * Since: 2.22
+ * It is a programmer error to give a @key that isn't specified as
+ * having a uint32 type in the schema for @settings.
+ *
+ * Returns: %TRUE if setting the key succeeded,
+ * %FALSE if the key was not writable
+ * Since: 2.30
*/
/**
- * g_socket_control_message_get_level:
- * @message: a #GSocketControlMessage
+ * g_settings_set_uint64:
+ * @settings: a #GSettings object
+ * @key: the name of the key to set
+ * @value: the value to set it to
*
- * Returns the "level" (i.e. the originating protocol) of the control message.
- * This is often SOL_SOCKET.
+ * Sets @key in @settings to @value.
*
- * Returns: an integer describing the level
- * Since: 2.22
+ * A convenience variant of g_settings_set() for 64-bit unsigned
+ * integers.
+ *
+ * It is a programmer error to give a @key that isn't specified as
+ * having a uint64 type in the schema for @settings.
+ *
+ * Returns: %TRUE if setting the key succeeded,
+ * %FALSE if the key was not writable
+ * Since: 2.50
*/
/**
- * g_socket_control_message_get_msg_type:
- * @message: a #GSocketControlMessage
+ * g_settings_set_value:
+ * @settings: a #GSettings object
+ * @key: the name of the key to set
+ * @value: a #GVariant of the correct type
*
- * Returns the protocol specific type of the control message.
- * For instance, for UNIX fd passing this would be SCM_RIGHTS.
+ * Sets @key in @settings to @value.
*
- * Returns: an integer describing the type of control message
- * Since: 2.22
+ * It is a programmer error to give a @key that isn't contained in the
+ * schema for @settings or for @value to have the incorrect type, per
+ * the schema.
+ *
+ * If @value is floating then this function consumes the reference.
+ *
+ * Returns: %TRUE if setting the key succeeded,
+ * %FALSE if the key was not writable
+ * Since: 2.26
*/
/**
- * g_socket_control_message_get_size:
- * @message: a #GSocketControlMessage
+ * g_settings_sync:
*
- * Returns the space required for the control message, not including
- * headers or alignment.
+ * Ensures that all pending operations are complete for the default backend.
*
- * Returns: The number of bytes required.
- * Since: 2.22
+ * Writes made to a #GSettings are handled asynchronously. For this
+ * reason, it is very unlikely that the changes have it to disk by the
+ * time g_settings_set() returns.
+ *
+ * This call will block until all of the writes have made it to the
+ * backend. Since the mainloop is not running, no change notifications
+ * will be dispatched during this call (but some may be queued by the
+ * time the call is done).
*/
/**
- * g_socket_control_message_serialize:
- * @message: a #GSocketControlMessage
- * @data: (not nullable): A buffer to write data to
+ * g_settings_unbind:
+ * @object: (type GObject.Object): the object
+ * @property: the property whose binding is removed
*
- * Converts the data in the message to bytes placed in the
- * message.
+ * Removes an existing binding for @property on @object.
*
- * @data is guaranteed to have enough space to fit the size
- * returned by g_socket_control_message_get_size() on this
- * object.
+ * Note that bindings are automatically removed when the
+ * object is finalized, so it is rarely necessary to call this
+ * function.
*
- * Since: 2.22
+ * Since: 2.26
*/
/**
- * g_socket_create_source: (skip)
- * @socket: a #GSocket
- * @condition: a #GIOCondition mask to monitor
- * @cancellable: (nullable): a %GCancellable or %NULL
+ * g_simple_action_group_add_entries:
+ * @simple: a #GSimpleActionGroup
+ * @entries: (array length=n_entries): a pointer to the first item in
+ * an array of #GActionEntry structs
+ * @n_entries: the length of @entries, or -1
+ * @user_data: the user data for signal connections
*
- * Creates a #GSource that can be attached to a %GMainContext to monitor
- * for the availability of the specified @condition on the socket. The #GSource
- * keeps a reference to the @socket.
+ * A convenience function for creating multiple #GSimpleAction instances
+ * and adding them to the action group.
*
- * The callback on the source is of the #GSocketSourceFunc type.
+ * Since: 2.30
+ * Deprecated: 2.38: Use g_action_map_add_action_entries()
+ */
+
+
+/**
+ * g_simple_action_group_insert:
+ * @simple: a #GSimpleActionGroup
+ * @action: a #GAction
*
- * It is meaningless to specify %G_IO_ERR or %G_IO_HUP in @condition;
- * these conditions will always be reported output if they are true.
+ * Adds an action to the action group.
*
- * @cancellable if not %NULL can be used to cancel the source, which will
- * cause the source to trigger, reporting the current condition (which
- * is likely 0 unless cancellation happened at the same time as a
- * condition change). You can check for this in the callback using
- * g_cancellable_is_cancelled().
+ * If the action group already contains an action with the same name as
+ * @action then the old action is dropped from the group.
*
- * If @socket has a timeout set, and it is reached before @condition
- * occurs, the source will then trigger anyway, reporting %G_IO_IN or
- * %G_IO_OUT depending on @condition. However, @socket will have been
- * marked as having had a timeout, and so the next #GSocket I/O method
- * you call will then fail with a %G_IO_ERROR_TIMED_OUT.
+ * The action group takes its own reference on @action.
*
- * Returns: (transfer full): a newly allocated %GSource, free with g_source_unref().
- * Since: 2.22
+ * Since: 2.28
+ * Deprecated: 2.38: Use g_action_map_add_action()
*/
/**
- * g_socket_get_available_bytes:
- * @socket: a #GSocket
- *
- * Get the amount of data pending in the OS input buffer, without blocking.
+ * g_simple_action_group_lookup:
+ * @simple: a #GSimpleActionGroup
+ * @action_name: the name of an action
*
- * If @socket is a UDP or SCTP socket, this will return the size of
- * just the next packet, even if additional packets are buffered after
- * that one.
+ * Looks up the action with the name @action_name in the group.
*
- * Note that on Windows, this function is rather inefficient in the
- * UDP case, and so if you know any plausible upper bound on the size
- * of the incoming packet, it is better to just do a
- * g_socket_receive() with a buffer of that size, rather than calling
- * g_socket_get_available_bytes() first and then doing a receive of
- * exactly the right size.
+ * If no such action exists, returns %NULL.
*
- * Returns: the number of bytes that can be read from the socket
- * without blocking or truncating, or -1 on error.
- * Since: 2.32
+ * Returns: (transfer none): a #GAction, or %NULL
+ * Since: 2.28
+ * Deprecated: 2.38: Use g_action_map_lookup_action()
*/
/**
- * g_socket_get_blocking:
- * @socket: a #GSocket.
+ * g_simple_action_group_new:
*
- * Gets the blocking mode of the socket. For details on blocking I/O,
- * see g_socket_set_blocking().
+ * Creates a new, empty, #GSimpleActionGroup.
*
- * Returns: %TRUE if blocking I/O is used, %FALSE otherwise.
- * Since: 2.22
+ * Returns: a new #GSimpleActionGroup
+ * Since: 2.28
*/
/**
- * g_socket_get_broadcast:
- * @socket: a #GSocket.
+ * g_simple_action_group_remove:
+ * @simple: a #GSimpleActionGroup
+ * @action_name: the name of the action
*
- * Gets the broadcast setting on @socket; if %TRUE,
- * it is possible to send packets to broadcast
- * addresses.
+ * Removes the named action from the action group.
*
- * Returns: the broadcast setting on @socket
- * Since: 2.32
+ * If no action of this name is in the group then nothing happens.
+ *
+ * Since: 2.28
+ * Deprecated: 2.38: Use g_action_map_remove_action()
*/
/**
- * g_socket_get_credentials:
- * @socket: a #GSocket.
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Returns the credentials of the foreign process connected to this
- * socket, if any (e.g. it is only supported for %G_SOCKET_FAMILY_UNIX
- * sockets).
+ * g_simple_action_new:
+ * @name: the name of the action
+ * @parameter_type: (nullable): the type of parameter that will be passed to
+ * handlers for the #GSimpleAction::activate signal, or %NULL for no parameter
*
- * If this operation isn't supported on the OS, the method fails with
- * the %G_IO_ERROR_NOT_SUPPORTED error. On Linux this is implemented
- * by reading the %SO_PEERCRED option on the underlying socket.
+ * Creates a new action.
*
- * Other ways to obtain credentials from a foreign peer includes the
- * #GUnixCredentialsMessage type and
- * g_unix_connection_send_credentials() /
- * g_unix_connection_receive_credentials() functions.
+ * The created action is stateless. See g_simple_action_new_stateful() to create
+ * an action that has state.
*
- * Returns: (transfer full): %NULL if @error is set, otherwise a #GCredentials object
- * that must be freed with g_object_unref().
- * Since: 2.26
+ * Returns: a new #GSimpleAction
+ * Since: 2.28
*/
/**
- * g_socket_get_family:
- * @socket: a #GSocket.
+ * g_simple_action_new_stateful:
+ * @name: the name of the action
+ * @parameter_type: (nullable): the type of the parameter that will be passed to
+ * handlers for the #GSimpleAction::activate signal, or %NULL for no parameter
+ * @state: the initial state of the action
*
- * Gets the socket family of the socket.
+ * Creates a new stateful action.
*
- * Returns: a #GSocketFamily
- * Since: 2.22
+ * All future state values must have the same #GVariantType as the initial
+ * @state.
+ *
+ * If the @state #GVariant is floating, it is consumed.
+ *
+ * Returns: a new #GSimpleAction
+ * Since: 2.28
*/
/**
- * g_socket_get_fd:
- * @socket: a #GSocket.
+ * g_simple_action_set_enabled:
+ * @simple: a #GSimpleAction
+ * @enabled: whether the action is enabled
*
- * Returns the underlying OS socket object. On unix this
- * is a socket file descriptor, and on Windows this is
- * a Winsock2 SOCKET handle. This may be useful for
- * doing platform specific or otherwise unusual operations
- * on the socket.
+ * Sets the action as enabled or not.
*
- * Returns: the file descriptor of the socket.
- * Since: 2.22
+ * An action must be enabled in order to be activated or in order to
+ * have its state changed from outside callers.
+ *
+ * This should only be called by the implementor of the action. Users
+ * of the action should not attempt to modify its enabled flag.
+ *
+ * Since: 2.28
*/
/**
- * g_socket_get_keepalive:
- * @socket: a #GSocket.
+ * g_simple_action_set_state:
+ * @simple: a #GSimpleAction
+ * @value: the new #GVariant for the state
*
- * Gets the keepalive mode of the socket. For details on this,
- * see g_socket_set_keepalive().
+ * Sets the state of the action.
*
- * Returns: %TRUE if keepalive is active, %FALSE otherwise.
- * Since: 2.22
+ * This directly updates the 'state' property to the given value.
+ *
+ * This should only be called by the implementor of the action. Users
+ * of the action should not attempt to directly modify the 'state'
+ * property. Instead, they should call g_action_change_state() to
+ * request the change.
+ *
+ * If the @value GVariant is floating, it is consumed.
+ *
+ * Since: 2.30
*/
/**
- * g_socket_get_listen_backlog:
- * @socket: a #GSocket.
+ * g_simple_action_set_state_hint:
+ * @simple: a #GSimpleAction
+ * @state_hint: (nullable): a #GVariant representing the state hint
*
- * Gets the listen backlog setting of the socket. For details on this,
- * see g_socket_set_listen_backlog().
+ * Sets the state hint for the action.
*
- * Returns: the maximum number of pending connections.
- * Since: 2.22
+ * See g_action_get_state_hint() for more information about
+ * action state hints.
+ *
+ * Since: 2.44
*/
/**
- * g_socket_get_local_address:
- * @socket: a #GSocket.
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_simple_async_report_error_in_idle: (skip)
+ * @object: (nullable): a #GObject, or %NULL.
+ * @callback: a #GAsyncReadyCallback.
+ * @user_data: user data passed to @callback.
+ * @domain: a #GQuark containing the error domain (usually #G_IO_ERROR).
+ * @code: a specific error code.
+ * @format: a formatted error reporting string.
+ * @...: a list of variables to fill in @format.
*
- * Try to get the local address of a bound socket. This is only
- * useful if the socket has been bound to a local address,
- * either explicitly or implicitly when connecting.
+ * Reports an error in an asynchronous function in an idle function by
+ * directly setting the contents of the #GAsyncResult with the given error
+ * information.
*
- * Returns: (transfer full): a #GSocketAddress or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * Deprecated: 2.46: Use g_task_report_error().
*/
/**
- * g_socket_get_multicast_loopback:
- * @socket: a #GSocket.
+ * g_simple_async_report_gerror_in_idle:
+ * @object: (nullable): a #GObject, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
+ * @error: the #GError to report
*
- * Gets the multicast loopback setting on @socket; if %TRUE (the
- * default), outgoing multicast packets will be looped back to
- * multicast listeners on the same host.
+ * 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.
*
- * Returns: the multicast loopback setting on @socket
- * Since: 2.32
+ * Deprecated: 2.46: Use g_task_report_error().
*/
/**
- * g_socket_get_multicast_ttl:
- * @socket: a #GSocket.
+ * g_simple_async_report_take_gerror_in_idle: (skip)
+ * @object: (nullable): a #GObject, or %NULL
+ * @callback: a #GAsyncReadyCallback.
+ * @user_data: user data passed to @callback.
+ * @error: the #GError to report
*
- * Gets the multicast time-to-live setting on @socket; see
- * g_socket_set_multicast_ttl() for more details.
+ * Reports an error in an idle function. Similar to
+ * g_simple_async_report_gerror_in_idle(), but takes over the caller's
+ * ownership of @error, so the caller does not have to free it any more.
*
- * Returns: the multicast time-to-live setting on @socket
- * Since: 2.32
+ * Since: 2.28
+ * Deprecated: 2.46: Use g_task_report_error().
*/
/**
- * g_socket_get_option:
- * @socket: a #GSocket
- * @level: the "API level" of the option (eg, `SOL_SOCKET`)
- * @optname: the "name" of the option (eg, `SO_BROADCAST`)
- * @value: (out): return location for the option value
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Gets the value of an integer-valued option on @socket, as with
- * getsockopt(). (If you need to fetch a non-integer-valued option,
- * you will need to call getsockopt() directly.)
+ * g_simple_async_result_complete:
+ * @simple: a #GSimpleAsyncResult.
*
- * The [<gio/gnetworking.h>][gio-gnetworking.h]
- * header pulls in system headers that will define most of the
- * standard/portable socket options. For unusual socket protocols or
- * platform-dependent options, you may need to include additional
- * headers.
+ * Completes an asynchronous I/O job immediately. Must be called in
+ * the thread where the asynchronous result was to be delivered, as it
+ * invokes the callback directly. If you are in a different thread use
+ * g_simple_async_result_complete_in_idle().
*
- * Note that even for socket options that are a single byte in size,
- * @value is still a pointer to a #gint variable, not a #guchar;
- * g_socket_get_option() will handle the conversion internally.
+ * Calling this function takes a reference to @simple for as long as
+ * is needed to complete the call.
*
- * Returns: success or failure. On failure, @error will be set, and
- * the system error value (`errno` or WSAGetLastError()) will still
- * be set to the result of the getsockopt() call.
- * Since: 2.36
+ * Deprecated: 2.46: Use #GTask instead.
*/
/**
- * g_socket_get_protocol:
- * @socket: a #GSocket.
+ * g_simple_async_result_complete_in_idle:
+ * @simple: a #GSimpleAsyncResult.
*
- * Gets the socket protocol id the socket was created with.
- * In case the protocol is unknown, -1 is returned.
+ * Completes an asynchronous function in an idle handler in the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * of the thread that @simple was initially created in
+ * (and re-pushes that context around the invocation of the callback).
*
- * Returns: a protocol id, or -1 if unknown
- * Since: 2.22
+ * Calling this function takes a reference to @simple for as long as
+ * is needed to complete the call.
+ *
+ * Deprecated: 2.46: Use #GTask instead.
*/
/**
- * g_socket_get_remote_address:
- * @socket: a #GSocket.
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_simple_async_result_get_op_res_gboolean:
+ * @simple: a #GSimpleAsyncResult.
*
- * Try to get the remote address of a connected socket. This is only
- * useful for connection oriented sockets that have been connected.
+ * Gets the operation result boolean from within the asynchronous result.
*
- * Returns: (transfer full): a #GSocketAddress or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * Returns: %TRUE if the operation's result was %TRUE, %FALSE
+ * if the operation's result was %FALSE.
+ * Deprecated: 2.46: Use #GTask and g_task_propagate_boolean() instead.
*/
/**
- * g_socket_get_socket_type:
- * @socket: a #GSocket.
+ * g_simple_async_result_get_op_res_gpointer: (skip)
+ * @simple: a #GSimpleAsyncResult.
*
- * Gets the socket type of the socket.
+ * Gets a pointer result as returned by the asynchronous function.
*
- * Returns: a #GSocketType
- * Since: 2.22
+ * Returns: a pointer from the result.
+ * Deprecated: 2.46: Use #GTask and g_task_propagate_pointer() instead.
*/
/**
- * g_socket_get_timeout:
- * @socket: a #GSocket.
+ * g_simple_async_result_get_op_res_gssize:
+ * @simple: a #GSimpleAsyncResult.
*
- * Gets the timeout setting of the socket. For details on this, see
- * g_socket_set_timeout().
+ * Gets a gssize from the asynchronous result.
*
- * Returns: the timeout in seconds
- * Since: 2.26
+ * Returns: a gssize returned from the asynchronous function.
+ * Deprecated: 2.46: Use #GTask and g_task_propagate_int() instead.
*/
/**
- * g_socket_get_ttl:
- * @socket: a #GSocket.
+ * g_simple_async_result_get_source_tag: (skip)
+ * @simple: a #GSimpleAsyncResult.
*
- * Gets the unicast time-to-live setting on @socket; see
- * g_socket_set_ttl() for more details.
+ * Gets the source tag for the #GSimpleAsyncResult.
*
- * Returns: the time-to-live setting on @socket
- * Since: 2.32
+ * Returns: a #gpointer to the source object for the #GSimpleAsyncResult.
+ * Deprecated: 2.46.: Use #GTask and g_task_get_source_tag() instead.
*/
/**
- * g_socket_is_closed:
- * @socket: a #GSocket
+ * g_simple_async_result_is_valid:
+ * @result: the #GAsyncResult passed to the _finish function.
+ * @source: (nullable): the #GObject passed to the _finish function.
+ * @source_tag: (nullable): the asynchronous function.
*
- * Checks whether a socket is closed.
+ * Ensures that the data passed to the _finish function of an async
+ * operation is consistent. Three checks are performed.
*
- * Returns: %TRUE if socket is closed, %FALSE otherwise
- * Since: 2.22
+ * First, @result is checked to ensure that it is really a
+ * #GSimpleAsyncResult. Second, @source is checked to ensure that it
+ * matches the source object of @result. Third, @source_tag is
+ * checked to ensure that it is equal to the @source_tag argument given
+ * to g_simple_async_result_new() (which, by convention, is a pointer
+ * to the _async function corresponding to the _finish function from
+ * which this function is called). (Alternatively, if either
+ * @source_tag or @result's source tag is %NULL, then the source tag
+ * check is skipped.)
+ *
+ * Returns: #TRUE if all checks passed or #FALSE if any failed.
+ * Since: 2.20
+ * Deprecated: 2.46: Use #GTask and g_task_is_valid() instead.
*/
/**
- * g_socket_is_connected:
- * @socket: a #GSocket.
+ * g_simple_async_result_new:
+ * @source_object: (nullable): a #GObject, or %NULL.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
+ * @source_tag: the asynchronous function.
*
- * Check whether the socket is connected. This is only useful for
- * connection-oriented sockets.
+ * Creates a #GSimpleAsyncResult.
*
- * If using g_socket_shutdown(), this function will return %TRUE until the
- * socket has been shut down for reading and writing. If you do a non-blocking
- * connect, this function will not return %TRUE until after you call
- * g_socket_check_connect_result().
+ * The common convention is to create the #GSimpleAsyncResult in the
+ * function that starts the asynchronous operation and use that same
+ * function as the @source_tag.
*
- * Returns: %TRUE if socket is connected, %FALSE otherwise.
- * Since: 2.22
+ * If your operation supports cancellation with #GCancellable (which it
+ * probably should) then you should provide the user's cancellable to
+ * g_simple_async_result_set_check_cancellable() immediately after
+ * this function returns.
+ *
+ * Returns: a #GSimpleAsyncResult.
+ * Deprecated: 2.46: Use g_task_new() instead.
*/
/**
- * g_socket_join_multicast_group:
- * @socket: a #GSocket.
- * @group: a #GInetAddress specifying the group address to join.
- * @iface: (nullable): Name of the interface to use, or %NULL
- * @source_specific: %TRUE if source-specific multicast should be used
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Registers @socket to receive multicast messages sent to @group.
- * @socket must be a %G_SOCKET_TYPE_DATAGRAM socket, and must have
- * been bound to an appropriate interface and port with
- * g_socket_bind().
- *
- * If @iface is %NULL, the system will automatically pick an interface
- * to bind to based on @group.
- *
- * If @source_specific is %TRUE, source-specific multicast as defined
- * in RFC 4604 is used. Note that on older platforms this may fail
- * with a %G_IO_ERROR_NOT_SUPPORTED error.
+ * g_simple_async_result_new_error:
+ * @source_object: (nullable): a #GObject, or %NULL.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
+ * @domain: a #GQuark.
+ * @code: an error code.
+ * @format: a string with format characters.
+ * @...: a list of values to insert into @format.
*
- * To bind to a given source-specific multicast address, use
- * g_socket_join_multicast_group_ssm() instead.
+ * Creates a new #GSimpleAsyncResult with a set error.
*
- * Returns: %TRUE on success, %FALSE on error.
- * Since: 2.32
+ * Returns: a #GSimpleAsyncResult.
+ * Deprecated: 2.46: Use g_task_new() and g_task_return_new_error() instead.
*/
/**
- * g_socket_join_multicast_group_ssm:
- * @socket: a #GSocket.
- * @group: a #GInetAddress specifying the group address to join.
- * @source_specific: (nullable): a #GInetAddress specifying the
- * source-specific multicast address or %NULL to ignore.
- * @iface: (nullable): Name of the interface to use, or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Registers @socket to receive multicast messages sent to @group.
- * @socket must be a %G_SOCKET_TYPE_DATAGRAM socket, and must have
- * been bound to an appropriate interface and port with
- * g_socket_bind().
- *
- * If @iface is %NULL, the system will automatically pick an interface
- * to bind to based on @group.
- *
- * If @source_specific is not %NULL, use source-specific multicast as
- * defined in RFC 4604. Note that on older platforms this may fail
- * with a %G_IO_ERROR_NOT_SUPPORTED error.
+ * g_simple_async_result_new_from_error:
+ * @source_object: (nullable): a #GObject, or %NULL.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
+ * @error: a #GError
*
- * Note that this function can be called multiple times for the same
- * @group with different @source_specific in order to receive multicast
- * packets from more than one source.
+ * Creates a #GSimpleAsyncResult from an error condition.
*
- * Returns: %TRUE on success, %FALSE on error.
- * Since: 2.56
+ * Returns: a #GSimpleAsyncResult.
+ * Deprecated: 2.46: Use g_task_new() and g_task_return_error() instead.
*/
/**
- * g_socket_leave_multicast_group:
- * @socket: a #GSocket.
- * @group: a #GInetAddress specifying the group address to leave.
- * @iface: (nullable): Interface used
- * @source_specific: %TRUE if source-specific multicast was used
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Removes @socket from the multicast group defined by @group, @iface,
- * and @source_specific (which must all have the same values they had
- * when you joined the group).
- *
- * @socket remains bound to its address and port, and can still receive
- * unicast messages after calling this.
+ * g_simple_async_result_new_take_error: (skip)
+ * @source_object: (nullable): a #GObject, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data passed to @callback
+ * @error: a #GError
*
- * To unbind to a given source-specific multicast address, use
- * g_socket_leave_multicast_group_ssm() instead.
+ * Creates a #GSimpleAsyncResult from an error condition, and takes over the
+ * caller's ownership of @error, so the caller does not need to free it anymore.
*
- * Returns: %TRUE on success, %FALSE on error.
- * Since: 2.32
+ * Returns: a #GSimpleAsyncResult
+ * Since: 2.28
+ * Deprecated: 2.46: Use g_task_new() and g_task_return_error() instead.
*/
/**
- * g_socket_leave_multicast_group_ssm:
- * @socket: a #GSocket.
- * @group: a #GInetAddress specifying the group address to leave.
- * @source_specific: (nullable): a #GInetAddress specifying the
- * source-specific multicast address or %NULL to ignore.
- * @iface: (nullable): Name of the interface to use, or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_simple_async_result_propagate_error:
+ * @simple: a #GSimpleAsyncResult.
+ * @dest: (out): a location to propagate the error to.
*
- * Removes @socket from the multicast group defined by @group, @iface,
- * and @source_specific (which must all have the same values they had
- * when you joined the group).
+ * Propagates an error from within the simple asynchronous result to
+ * a given destination.
*
- * @socket remains bound to its address and port, and can still receive
- * unicast messages after calling this.
+ * 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.
*
- * Returns: %TRUE on success, %FALSE on error.
- * Since: 2.56
+ * Returns: %TRUE if the error was propagated to @dest. %FALSE otherwise.
+ * Deprecated: 2.46: Use #GTask instead.
*/
/**
- * g_socket_listen:
- * @socket: a #GSocket.
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Marks the socket as a server socket, i.e. a socket that is used
- * to accept incoming requests using g_socket_accept().
+ * g_simple_async_result_run_in_thread: (skip)
+ * @simple: a #GSimpleAsyncResult.
+ * @func: a #GSimpleAsyncThreadFunc.
+ * @io_priority: the io priority of the request.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
*
- * Before calling this the socket must be bound to a local address using
- * g_socket_bind().
+ * Runs the asynchronous job in a separate thread and then calls
+ * g_simple_async_result_complete_in_idle() on @simple to return
+ * the result to the appropriate main loop.
*
- * To set the maximum amount of outstanding clients, use
- * g_socket_set_listen_backlog().
+ * Calling this function takes a reference to @simple for as long as
+ * is needed to run the job and report its completion.
*
- * Returns: %TRUE on success, %FALSE on error.
- * Since: 2.22
+ * Deprecated: 2.46: Use #GTask and g_task_run_in_thread() instead.
*/
/**
- * g_socket_listener_accept:
- * @listener: a #GSocketListener
- * @source_object: (out) (transfer none) (optional) (nullable): location where #GObject pointer will be stored, or %NULL
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_simple_async_result_set_check_cancellable:
+ * @simple: a #GSimpleAsyncResult
+ * @check_cancellable: (nullable): a #GCancellable to check, or %NULL to unset
*
- * Blocks waiting for a client to connect to any of the sockets added
- * to the listener. Returns a #GSocketConnection for the socket that was
- * accepted.
+ * Sets a #GCancellable to check before dispatching results.
*
- * If @source_object is not %NULL it will be filled out with the source
- * object specified when the corresponding socket or address was added
- * to the listener.
+ * This function has one very specific purpose: the provided cancellable
+ * is checked at the time of g_simple_async_result_propagate_error() If
+ * it is cancelled, these functions will return an "Operation was
+ * cancelled" error (%G_IO_ERROR_CANCELLED).
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Implementors of cancellable asynchronous functions should use this in
+ * order to provide a guarantee to their callers that cancelling an
+ * async operation will reliably result in an error being returned for
+ * that operation (even if a positive result for the operation has
+ * already been sent as an idle to the main context to be dispatched).
*
- * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
- * Since: 2.22
+ * The checking described above is done regardless of any call to the
+ * unrelated g_simple_async_result_set_handle_cancellation() function.
+ *
+ * Since: 2.32
+ * Deprecated: 2.46: Use #GTask instead.
*/
/**
- * g_socket_listener_accept_async:
- * @listener: a #GSocketListener
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
- *
- * This is the asynchronous version of g_socket_listener_accept().
+ * g_simple_async_result_set_error: (skip)
+ * @simple: a #GSimpleAsyncResult.
+ * @domain: a #GQuark (usually #G_IO_ERROR).
+ * @code: an error code.
+ * @format: a formatted error reporting string.
+ * @...: a list of variables to fill in @format.
*
- * When the operation is finished @callback will be
- * called. You can then call g_socket_listener_accept_socket()
- * to get the result of the operation.
+ * Sets an error within the asynchronous result without a #GError.
*
- * Since: 2.22
+ * Deprecated: 2.46: Use #GTask and g_task_return_new_error() instead.
*/
/**
- * g_socket_listener_accept_finish:
- * @listener: a #GSocketListener
- * @result: a #GAsyncResult.
- * @source_object: (out) (transfer none) (optional) (nullable): Optional #GObject identifying this source
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_simple_async_result_set_error_va: (skip)
+ * @simple: a #GSimpleAsyncResult.
+ * @domain: a #GQuark (usually #G_IO_ERROR).
+ * @code: an error code.
+ * @format: a formatted error reporting string.
+ * @args: va_list of arguments.
*
- * Finishes an async accept operation. See g_socket_listener_accept_async()
+ * Sets an error within the asynchronous result without a #GError.
+ * Unless writing a binding, see g_simple_async_result_set_error().
*
- * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
- * Since: 2.22
+ * Deprecated: 2.46: Use #GTask and g_task_return_error() instead.
*/
/**
- * g_socket_listener_accept_socket:
- * @listener: a #GSocketListener
- * @source_object: (out) (transfer none) (optional) (nullable): location where #GObject pointer will be stored, or %NULL.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Blocks waiting for a client to connect to any of the sockets added
- * to the listener. Returns the #GSocket that was accepted.
- *
- * If you want to accept the high-level #GSocketConnection, not a #GSocket,
- * which is often the case, then you should use g_socket_listener_accept()
- * instead.
- *
- * If @source_object is not %NULL it will be filled out with the source
- * object specified when the corresponding socket or address was added
- * to the listener.
+ * g_simple_async_result_set_from_error:
+ * @simple: a #GSimpleAsyncResult.
+ * @error: #GError.
*
- * If @cancellable is not %NULL, then the operation can be cancelled by
- * triggering the cancellable object from another thread. If the operation
- * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ * Sets the result from a #GError.
*
- * Returns: (transfer full): a #GSocket on success, %NULL on error.
- * Since: 2.22
+ * Deprecated: 2.46: Use #GTask and g_task_return_error() instead.
*/
/**
- * g_socket_listener_accept_socket_async:
- * @listener: a #GSocketListener
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: (scope async): a #GAsyncReadyCallback
- * @user_data: (closure): user data for the callback
+ * g_simple_async_result_set_handle_cancellation:
+ * @simple: a #GSimpleAsyncResult.
+ * @handle_cancellation: a #gboolean.
*
- * This is the asynchronous version of g_socket_listener_accept_socket().
+ * Sets whether to handle cancellation within the asynchronous operation.
*
- * When the operation is finished @callback will be
- * called. You can then call g_socket_listener_accept_socket_finish()
- * to get the result of the operation.
+ * 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().
*
- * Since: 2.22
+ * Deprecated: 2.46
*/
/**
- * g_socket_listener_accept_socket_finish:
- * @listener: a #GSocketListener
- * @result: a #GAsyncResult.
- * @source_object: (out) (transfer none) (optional) (nullable): Optional #GObject identifying this source
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
+ * g_simple_async_result_set_op_res_gboolean:
+ * @simple: a #GSimpleAsyncResult.
+ * @op_res: a #gboolean.
*
- * Finishes an async accept operation. See g_socket_listener_accept_socket_async()
+ * Sets the operation result to a boolean within the asynchronous result.
*
- * Returns: (transfer full): a #GSocket on success, %NULL on error.
- * Since: 2.22
+ * Deprecated: 2.46: Use #GTask and g_task_return_boolean() instead.
*/
/**
- * g_socket_listener_add_address:
- * @listener: a #GSocketListener
- * @address: a #GSocketAddress
- * @type: a #GSocketType
- * @protocol: a #GSocketProtocol
- * @source_object: (nullable): Optional #GObject identifying this source
- * @effective_address: (out) (optional): location to store the address that was bound to, or %NULL.
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Creates a socket of type @type and protocol @protocol, binds
- * it to @address and adds it to the set of sockets we're accepting
- * sockets from.
- *
- * Note that adding an IPv6 address, depending on the platform,
- * may or may not result in a listener that also accepts IPv4
- * connections. For more deterministic behavior, see
- * g_socket_listener_add_inet_port().
- *
- * @source_object will be passed out in the various calls
- * to accept to identify this particular source, which is
- * useful if you're listening on multiple addresses and do
- * different things depending on what address is connected to.
- *
- * If successful and @effective_address is non-%NULL then it will
- * be set to the address that the binding actually occurred at. This
- * is helpful for determining the port number that was used for when
- * requesting a binding to port 0 (ie: "any port"). This address, if
- * requested, belongs to the caller and must be freed.
+ * g_simple_async_result_set_op_res_gpointer: (skip)
+ * @simple: a #GSimpleAsyncResult.
+ * @op_res: a pointer result from an asynchronous function.
+ * @destroy_op_res: a #GDestroyNotify function.
*
- * Call g_socket_listener_close() to stop listening on @address; this will not
- * be done automatically when you drop your final reference to @listener, as
- * references may be held internally.
+ * Sets the operation result within the asynchronous result to a pointer.
*
- * Returns: %TRUE on success, %FALSE on error.
- * Since: 2.22
+ * Deprecated: 2.46: Use #GTask and g_task_return_pointer() instead.
*/
/**
- * g_socket_listener_add_any_inet_port:
- * @listener: a #GSocketListener
- * @source_object: (nullable): Optional #GObject identifying this source
- * @error: a #GError location to store the error occurring, or %NULL to
- * ignore.
- *
- * Listens for TCP connections on any available port number for both
- * IPv6 and IPv4 (if each is available).
- *
- * This is useful if you need to have a socket for incoming connections
- * but don't care about the specific port number.
+ * g_simple_async_result_set_op_res_gssize:
+ * @simple: a #GSimpleAsyncResult.
+ * @op_res: a #gssize.
*
- * @source_object will be passed out in the various calls
- * to accept to identify this particular source, which is
- * useful if you're listening on multiple addresses and do
- * different things depending on what address is connected to.
+ * Sets the operation result within the asynchronous result to
+ * the given @op_res.
*
- * Returns: the port number, or 0 in case of failure.
- * Since: 2.24
+ * Deprecated: 2.46: Use #GTask and g_task_return_int() instead.
*/
/**
- * g_socket_listener_add_inet_port:
- * @listener: a #GSocketListener
- * @port: an IP port number (non-zero)
- * @source_object: (nullable): Optional #GObject identifying this source
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Helper function for g_socket_listener_add_address() that
- * creates a TCP/IP socket listening on IPv4 and IPv6 (if
- * supported) on the specified port on all interfaces.
- *
- * @source_object will be passed out in the various calls
- * to accept to identify this particular source, which is
- * useful if you're listening on multiple addresses and do
- * different things depending on what address is connected to.
+ * g_simple_async_result_take_error: (skip)
+ * @simple: a #GSimpleAsyncResult
+ * @error: a #GError
*
- * Call g_socket_listener_close() to stop listening on @port; this will not
- * be done automatically when you drop your final reference to @listener, as
- * references may be held internally.
+ * Sets the result from @error, and takes over the caller's ownership
+ * of @error, so the caller does not need to free it any more.
*
- * Returns: %TRUE on success, %FALSE on error.
- * Since: 2.22
+ * Since: 2.28
+ * Deprecated: 2.46: Use #GTask and g_task_return_error() instead.
*/
/**
- * g_socket_listener_add_socket:
- * @listener: a #GSocketListener
- * @socket: a listening #GSocket
- * @source_object: (nullable): Optional #GObject identifying this source
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Adds @socket to the set of sockets that we try to accept
- * new clients from. The socket must be bound to a local
- * address and listened to.
- *
- * @source_object will be passed out in the various calls
- * to accept to identify this particular source, which is
- * useful if you're listening on multiple addresses and do
- * different things depending on what address is connected to.
+ * g_simple_io_stream_new:
+ * @input_stream: a #GInputStream.
+ * @output_stream: a #GOutputStream.
*
- * The @socket will not be automatically closed when the @listener is finalized
- * unless the listener held the final reference to the socket. Before GLib 2.42,
- * the @socket was automatically closed on finalization of the @listener, even
- * if references to it were held elsewhere.
+ * Creates a new #GSimpleIOStream wrapping @input_stream and @output_stream.
+ * See also #GIOStream.
*
- * Returns: %TRUE on success, %FALSE on error.
- * Since: 2.22
+ * Returns: a new #GSimpleIOStream instance.
+ * Since: 2.44
*/
/**
- * g_socket_listener_close:
- * @listener: a #GSocketListener
+ * g_simple_permission_new:
+ * @allowed: %TRUE if the action is allowed
*
- * Closes all the sockets in the listener.
+ * Creates a new #GPermission instance that represents an action that is
+ * either always or never allowed.
*
- * Since: 2.22
+ * Returns: the #GSimplePermission, as a #GPermission
+ * Since: 2.26
*/
/**
- * g_socket_listener_new:
+ * g_simple_proxy_resolver_new:
+ * @default_proxy: (nullable): the default proxy to use, eg
+ * "socks://192.168.1.1"
+ * @ignore_hosts: (nullable): an optional list of hosts/IP addresses
+ * to not use a proxy for.
*
- * Creates a new #GSocketListener with no sockets to listen for.
- * New listeners can be added with e.g. g_socket_listener_add_address()
- * or g_socket_listener_add_inet_port().
+ * Creates a new #GSimpleProxyResolver. See
+ * #GSimpleProxyResolver:default-proxy and
+ * #GSimpleProxyResolver:ignore-hosts for more details on how the
+ * arguments are interpreted.
*
- * Returns: a new #GSocketListener.
- * Since: 2.22
+ * Returns: (transfer full): a new #GSimpleProxyResolver
+ * Since: 2.36
*/
/**
- * g_socket_listener_set_backlog:
- * @listener: a #GSocketListener
- * @listen_backlog: an integer
+ * g_simple_proxy_resolver_set_default_proxy:
+ * @resolver: a #GSimpleProxyResolver
+ * @default_proxy: the default proxy to use
*
- * Sets the listen backlog on the sockets in the listener.
+ * Sets the default proxy on @resolver, to be used for any URIs that
+ * don't match #GSimpleProxyResolver:ignore-hosts or a proxy set
+ * via g_simple_proxy_resolver_set_uri_proxy().
*
- * See g_socket_set_listen_backlog() for details
+ * If @default_proxy starts with "socks://",
+ * #GSimpleProxyResolver will treat it as referring to all three of
+ * the socks5, socks4a, and socks4 proxy types.
*
- * Since: 2.22
+ * Since: 2.36
*/
/**
- * g_socket_new:
- * @family: the socket family to use, e.g. %G_SOCKET_FAMILY_IPV4.
- * @type: the socket type to use.
- * @protocol: the id of the protocol to use, or 0 for default.
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Creates a new #GSocket with the defined family, type and protocol.
- * If @protocol is 0 (%G_SOCKET_PROTOCOL_DEFAULT) the default protocol type
- * for the family and type is used.
+ * g_simple_proxy_resolver_set_ignore_hosts:
+ * @resolver: a #GSimpleProxyResolver
+ * @ignore_hosts: %NULL-terminated list of hosts/IP addresses
+ * to not use a proxy for
*
- * The @protocol is a family and type specific int that specifies what
- * kind of protocol to use. #GSocketProtocol lists several common ones.
- * Many families only support one protocol, and use 0 for this, others
- * support several and using 0 means to use the default protocol for
- * the family and type.
+ * Sets the list of ignored hosts.
*
- * The protocol id is passed directly to the operating
- * system, so you can use protocols not listed in #GSocketProtocol if you
- * know the protocol number used for it.
+ * See #GSimpleProxyResolver:ignore-hosts for more details on how the
+ * @ignore_hosts argument is interpreted.
*
- * Returns: a #GSocket or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * Since: 2.36
*/
/**
- * g_socket_new_from_fd:
- * @fd: a native socket file descriptor.
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Creates a new #GSocket from a native file descriptor
- * or winsock SOCKET handle.
- *
- * This reads all the settings from the file descriptor so that
- * all properties should work. Note that the file descriptor
- * will be set to non-blocking mode, independent on the blocking
- * mode of the #GSocket.
+ * g_simple_proxy_resolver_set_uri_proxy:
+ * @resolver: a #GSimpleProxyResolver
+ * @uri_scheme: the URI scheme to add a proxy for
+ * @proxy: the proxy to use for @uri_scheme
*
- * On success, the returned #GSocket takes ownership of @fd. On failure, the
- * caller must close @fd themselves.
+ * Adds a URI-scheme-specific proxy to @resolver; URIs whose scheme
+ * matches @uri_scheme (and which don't match
+ * #GSimpleProxyResolver:ignore-hosts) will be proxied via @proxy.
*
- * 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
+ * As with #GSimpleProxyResolver:default-proxy, if @proxy starts with
+ * "socks://", #GSimpleProxyResolver will treat it
+ * as referring to all three of the socks5, socks4a, and socks4 proxy
+ * types.
*
- * Returns: a #GSocket or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.22
+ * Since: 2.36
*/
/**
- * g_socket_receive:
- * @socket: a #GSocket
- * @buffer: (array length=size) (element-type guint8): a buffer to
- * read data into (which should be at least @size bytes long).
- * @size: the number of bytes you want to read from the socket
+ * g_socket_accept:
+ * @socket: a #GSocket.
* @cancellable: (nullable): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
- * Receive data (up to @size bytes) from a socket. This is mainly used by
- * connection-oriented sockets; it is identical to g_socket_receive_from()
- * with @address set to %NULL.
- *
- * For %G_SOCKET_TYPE_DATAGRAM and %G_SOCKET_TYPE_SEQPACKET sockets,
- * g_socket_receive() will always read either 0 or 1 complete messages from
- * the socket. If the received message is too large to fit in @buffer, then
- * the data beyond @size bytes will be discarded, without any explicit
- * indication that this has occurred.
- *
- * For %G_SOCKET_TYPE_STREAM sockets, g_socket_receive() can return any
- * number of bytes, up to @size. If more than @size bytes have been
- * received, the additional data will be returned in future calls to
- * g_socket_receive().
+ * Accept incoming connections on a connection-based socket. This removes
+ * the first outstanding connection request from the listening socket and
+ * creates a #GSocket object for it.
*
- * If the socket is in blocking mode the call will block until there
- * is some data to receive, the connection is closed, or there is an
- * error. If there is no data available and the socket is in
- * non-blocking mode, a %G_IO_ERROR_WOULD_BLOCK error will be
- * returned. To be notified when data is available, wait for the
- * %G_IO_IN condition.
+ * The @socket must be bound to a local address with g_socket_bind() and
+ * must be listening for incoming connections (g_socket_listen()).
*
- * On error -1 is returned and @error is set accordingly.
+ * If there are no outstanding connections then the operation will block
+ * or return %G_IO_ERROR_WOULD_BLOCK if non-blocking I/O is enabled.
+ * To be notified of an incoming connection, wait for the %G_IO_IN condition.
*
- * Returns: Number of bytes read, or 0 if the connection was closed by
- * the peer, or -1 on error
+ * Returns: (transfer full): a new #GSocket, or %NULL on error.
+ * Free the returned object with g_object_unref().
* Since: 2.22
*/
/**
- * g_socket_receive_from:
- * @socket: a #GSocket
- * @address: (out) (optional): a pointer to a #GSocketAddress
- * pointer, or %NULL
- * @buffer: (array length=size) (element-type guint8): a buffer to
- * read data into (which should be at least @size bytes long).
- * @size: the number of bytes you want to read from the socket
- * @cancellable: (nullable): a %GCancellable or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Receive data (up to @size bytes) from a socket.
+ * g_socket_address_enumerator_next:
+ * @enumerator: a #GSocketAddressEnumerator
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: a #GError.
*
- * If @address is non-%NULL then @address will be set equal to the
- * source address of the received packet.
- * @address is owned by the caller.
+ * Retrieves the next #GSocketAddress from @enumerator. Note that this
+ * may block for some amount of time. (Eg, a #GNetworkAddress may need
+ * to do a DNS lookup before it can return an address.) Use
+ * g_socket_address_enumerator_next_async() if you need to avoid
+ * blocking.
*
- * See g_socket_receive() for additional information.
+ * If @enumerator is expected to yield addresses, but for some reason
+ * is unable to (eg, because of a DNS error), then the first call to
+ * g_socket_address_enumerator_next() will return an appropriate error
+ * in *@error. However, if the first call to
+ * g_socket_address_enumerator_next() succeeds, then any further
+ * internal errors (other than @cancellable being triggered) will be
+ * ignored.
*
- * Returns: Number of bytes read, or 0 if the connection was closed by
- * the peer, or -1 on error
- * Since: 2.22
+ * Returns: (transfer full): a #GSocketAddress (owned by the caller), or %NULL on
+ * error (in which case *@error will be set) or if there are no
+ * more addresses.
*/
/**
- * g_socket_receive_message:
- * @socket: a #GSocket
- * @address: (out) (optional): a pointer to a #GSocketAddress
- * pointer, or %NULL
- * @vectors: (array length=num_vectors): an array of #GInputVector structs
- * @num_vectors: the number of elements in @vectors, or -1
- * @messages: (array length=num_messages) (out) (optional) (nullable): a pointer
- * which may be filled with an array of #GSocketControlMessages, or %NULL
- * @num_messages: (out): a pointer which will be filled with the number of
- * elements in @messages, or %NULL
- * @flags: (inout): a pointer to an int containing #GSocketMsgFlags flags
- * @cancellable: a %GCancellable or %NULL
- * @error: a #GError pointer, or %NULL
- *
- * Receive data from a socket. For receiving multiple messages, see
- * g_socket_receive_messages(); for easier use, see
- * g_socket_receive() and g_socket_receive_from().
- *
- * If @address is non-%NULL then @address will be set equal to the
- * source address of the received packet.
- * @address is owned by the caller.
- *
- * @vector must point to an array of #GInputVector structs and
- * @num_vectors must be the length of this array. These structs
- * describe the buffers that received data will be scattered into.
- * If @num_vectors is -1, then @vectors is assumed to be terminated
- * by a #GInputVector with a %NULL buffer pointer.
- *
- * As a special case, if @num_vectors is 0 (in which case, @vectors
- * may of course be %NULL), then a single byte is received and
- * discarded. This is to facilitate the common practice of sending a
- * single '\0' byte for the purposes of transferring ancillary data.
- *
- * @messages, if non-%NULL, will be set to point to a newly-allocated
- * array of #GSocketControlMessage instances or %NULL if no such
- * messages was received. These correspond to the control messages
- * received from the kernel, one #GSocketControlMessage per message
- * from the kernel. This array is %NULL-terminated and must be freed
- * by the caller using g_free() after calling g_object_unref() on each
- * element. If @messages is %NULL, any control messages received will
- * be discarded.
- *
- * @num_messages, if non-%NULL, will be set to the number of control
- * messages received.
- *
- * If both @messages and @num_messages are non-%NULL, then
- * @num_messages gives the number of #GSocketControlMessage instances
- * in @messages (ie: not including the %NULL terminator).
+ * g_socket_address_enumerator_next_async:
+ * @enumerator: a #GSocketAddressEnumerator
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request
+ * is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * @flags is an in/out parameter. 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
- * (and g_socket_receive_message() may pass system-specific flags out).
- * Flags passed in to the parameter affect the receive operation; flags returned
- * out of it are relevant to the specific returned message.
+ * Asynchronously retrieves the next #GSocketAddress from @enumerator
+ * and then calls @callback, which must call
+ * g_socket_address_enumerator_next_finish() to get the result.
+ */
+
+
+/**
+ * g_socket_address_enumerator_next_finish:
+ * @enumerator: a #GSocketAddressEnumerator
+ * @result: a #GAsyncResult
+ * @error: a #GError
*
- * As with g_socket_receive(), data may be discarded if @socket is
- * %G_SOCKET_TYPE_DATAGRAM or %G_SOCKET_TYPE_SEQPACKET and you do not
- * provide enough buffer space to read a complete message. You can pass
- * %G_SOCKET_MSG_PEEK in @flags to peek at the current message without
- * removing it from the receive queue, but there is no portable way to find
- * out the length of the message other than by reading it into a
- * sufficiently-large buffer.
+ * Retrieves the result of a completed call to
+ * g_socket_address_enumerator_next_async(). See
+ * g_socket_address_enumerator_next() for more information about
+ * error handling.
*
- * If the socket is in blocking mode the call will block until there
- * is some data to receive, the connection is closed, or there is an
- * error. If there is no data available and the socket is in
- * non-blocking mode, a %G_IO_ERROR_WOULD_BLOCK error will be
- * returned. To be notified when data is available, wait for the
- * %G_IO_IN condition.
+ * Returns: (transfer full): a #GSocketAddress (owned by the caller), or %NULL on
+ * error (in which case *@error will be set) or if there are no
+ * more addresses.
+ */
+
+
+/**
+ * g_socket_address_get_family:
+ * @address: a #GSocketAddress
*
- * On error -1 is returned and @error is set accordingly.
+ * Gets the socket family type of @address.
*
- * Returns: Number of bytes read, or 0 if the connection was closed by
- * the peer, or -1 on error
+ * Returns: the socket family type of @address
* Since: 2.22
*/
/**
- * g_socket_receive_messages:
- * @socket: a #GSocket
- * @messages: (array length=num_messages): an array of #GInputMessage structs
- * @num_messages: the number of elements in @messages
- * @flags: an int containing #GSocketMsgFlags flags for the overall operation
- * @cancellable: (nullable): a %GCancellable or %NULL
- * @error: #GError for error reporting, or %NULL to ignore
- *
- * Receive 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_receive(), g_socket_receive_from(), and g_socket_receive_message().
- *
- * @messages must point to an array of #GInputMessage structs and
- * @num_messages must be the length of this array. Each #GInputMessage
- * contains a pointer to an array of #GInputVector structs describing the
- * buffers that the data received in each message will be written to. Using
- * multiple #GInputVectors is more memory-efficient than manually copying data
- * out of a single buffer to multiple sources, and more system-call-efficient
- * than making multiple calls to g_socket_receive(), such as in scenarios where
- * a lot of data packets need to be received (e.g. high-bandwidth video
- * streaming over RTP/UDP).
- *
- * @flags modify how all messages are received. 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. These
- * flags affect the overall receive operation. Flags affecting individual
- * messages are returned in #GInputMessage.flags.
- *
- * The other members of #GInputMessage are treated as described in its
- * documentation.
- *
- * If #GSocket:blocking is %TRUE the call will block until @num_messages have
- * been received, or the end of the stream is reached.
- *
- * If #GSocket:blocking is %FALSE the call will return up to @num_messages
- * without blocking, or %G_IO_ERROR_WOULD_BLOCK if no messages are queued in the
- * operating system to be received.
- *
- * In blocking mode, if #GSocket:timeout is positive and is reached before any
- * messages are received, %G_IO_ERROR_TIMED_OUT is returned, otherwise up to
- * @num_messages are returned. (Note: This is effectively the
- * behaviour of `MSG_WAITFORONE` with recvmmsg().)
+ * g_socket_address_get_native_size:
+ * @address: a #GSocketAddress
*
- * To be notified when messages are available, wait for the
- * %G_IO_IN condition. Note though that you may still receive
- * %G_IO_ERROR_WOULD_BLOCK from g_socket_receive_messages() even if you were
- * previously notified of a %G_IO_IN condition.
+ * Gets the size of @address's native struct sockaddr.
+ * You can use this to allocate memory to pass to
+ * g_socket_address_to_native().
*
- * If the remote peer closes the connection, any messages queued in the
- * operating system will be returned, and subsequent calls to
- * g_socket_receive_messages() will return 0 (with no error set).
+ * Returns: the size of the native struct sockaddr that
+ * @address represents
+ * Since: 2.22
+ */
+
+
+/**
+ * g_socket_address_new_from_native:
+ * @native: (not nullable): a pointer to a struct sockaddr
+ * @len: the size of the memory location pointed to by @native
*
- * On error -1 is returned and @error is set accordingly. An error will only
- * be returned if zero messages could be received; otherwise the number of
- * messages successfully received before the error will be returned.
+ * Creates a #GSocketAddress subclass corresponding to the native
+ * struct sockaddr @native.
*
- * Returns: number of messages received, or -1 on error. Note that the number
- * of messages received may be smaller than @num_messages if in non-blocking
- * mode, if the peer closed the connection, or if @num_messages
- * was larger than `UIO_MAXIOV` (1024), in which case the caller may re-try
- * to receive the remaining messages.
- * Since: 2.48
+ * Returns: a new #GSocketAddress if @native could successfully
+ * be converted, otherwise %NULL
+ * Since: 2.22
*/
/**
- * g_socket_receive_with_blocking:
- * @socket: a #GSocket
- * @buffer: (array length=size) (element-type guint8): a buffer to
- * read data into (which should be at least @size bytes long).
- * @size: the number of bytes you want to read from the socket
- * @blocking: whether to do blocking or non-blocking I/O
- * @cancellable: (nullable): a %GCancellable or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_socket_address_to_native:
+ * @address: a #GSocketAddress
+ * @dest: a pointer to a memory location that will contain the native
+ * struct sockaddr
+ * @destlen: the size of @dest. Must be at least as large as
+ * g_socket_address_get_native_size()
+ * @error: #GError for error reporting, or %NULL to ignore
*
- * This behaves exactly the same as g_socket_receive(), except that
- * the choice of blocking or non-blocking behavior is determined by
- * the @blocking argument rather than by @socket's properties.
+ * Converts a #GSocketAddress to a native struct sockaddr, which can
+ * be passed to low-level functions like connect() or bind().
*
- * Returns: Number of bytes read, or 0 if the connection was closed by
- * the peer, or -1 on error
- * Since: 2.26
+ * If not enough space is available, a %G_IO_ERROR_NO_SPACE error
+ * is returned. If the address type is not known on the system
+ * then a %G_IO_ERROR_NOT_SUPPORTED error is returned.
+ *
+ * Returns: %TRUE if @dest was filled in, %FALSE on error
+ * Since: 2.22
*/
/**
- * g_socket_send:
- * @socket: a #GSocket
- * @buffer: (array length=size) (element-type guint8): the buffer
- * containing the data to send.
- * @size: the number of bytes to send
- * @cancellable: (nullable): a %GCancellable or %NULL
+ * g_socket_bind:
+ * @socket: a #GSocket.
+ * @address: a #GSocketAddress specifying the local address.
+ * @allow_reuse: whether to allow reusing this address
* @error: #GError for error reporting, or %NULL to ignore.
*
- * Tries to send @size bytes from @buffer on the socket. This is
- * mainly used by connection-oriented sockets; it is identical to
- * g_socket_send_to() with @address set to %NULL.
+ * When a socket is created it is attached to an address family, but it
+ * doesn't have an address in this family. g_socket_bind() assigns the
+ * address (sometimes called name) of the socket.
*
- * If the socket is in blocking mode the call will block until there is
- * space for 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. 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.)
+ * It is generally required to bind to a local address before you can
+ * receive connections. (See g_socket_listen() and g_socket_accept() ).
+ * In certain situations, you may also want to bind a socket that will be
+ * used to initiate connections, though this is not normally required.
*
- * On error -1 is returned and @error is set accordingly.
+ * If @socket is a TCP socket, then @allow_reuse controls the setting
+ * of the `SO_REUSEADDR` socket option; normally it should be %TRUE for
+ * server sockets (sockets that you will eventually call
+ * g_socket_accept() on), and %FALSE for client sockets. (Failing to
+ * set this flag on a server socket may cause g_socket_bind() to return
+ * %G_IO_ERROR_ADDRESS_IN_USE if the server program is stopped and then
+ * immediately restarted.)
*
- * Returns: Number of bytes written (which may be less than @size), or -1
- * on error
+ * If @socket is a UDP socket, then @allow_reuse determines whether or
+ * not other UDP sockets can be bound to the same address at the same
+ * time. In particular, you can have several UDP sockets bound to the
+ * same address, and they will all receive all of the multicast and
+ * broadcast packets sent to that address. (The behavior of unicast
+ * UDP packets to an address with multiple listeners is not defined.)
+ *
+ * Returns: %TRUE on success, %FALSE on error.
* Since: 2.22
*/
/**
- * g_socket_send_message:
+ * g_socket_check_connect_result:
* @socket: a #GSocket
- * @address: (nullable): a #GSocketAddress, or %NULL
- * @vectors: (array length=num_vectors): an array of #GOutputVector structs
- * @num_vectors: the number of elements in @vectors, or -1
- * @messages: (array length=num_messages) (nullable): a pointer to an
- * array of #GSocketControlMessages, or %NULL.
- * @num_messages: number of elements in @messages, or -1.
- * @flags: an int containing #GSocketMsgFlags flags
- * @cancellable: (nullable): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
- * Send data to @address on @socket. For sending multiple messages see
- * g_socket_send_messages(); for easier use, see
- * g_socket_send() and g_socket_send_to().
- *
- * If @address is %NULL then the message is sent to the default receiver
- * (set by g_socket_connect()).
- *
- * @vectors must point to an array of #GOutputVector structs and
- * @num_vectors must be the length of this array. (If @num_vectors is -1,
- * then @vectors is assumed to be terminated by a #GOutputVector with a
- * %NULL buffer pointer.) The #GOutputVector structs describe the buffers
- * that the sent data 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().
- *
- * @messages, if non-%NULL, is taken to point to an array of @num_messages
- * #GSocketControlMessage instances. These correspond to the control
- * messages to be sent on the socket.
- * If @num_messages is -1 then @messages is treated as a %NULL-terminated
- * array.
+ * Checks and resets the pending connect error for the socket.
+ * This is used to check for errors when g_socket_connect() is
+ * used in non-blocking mode.
*
- * @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.
+ * Returns: %TRUE if no error, %FALSE otherwise, setting @error to the error
+ * Since: 2.22
+ */
+
+
+/**
+ * g_socket_client_add_application_proxy:
+ * @client: a #GSocketClient
+ * @protocol: The proxy protocol
*
- * If the socket is in blocking mode the call will block until there is
- * space for 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. 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.)
+ * Enable proxy protocols to be handled by the application. When the
+ * indicated proxy protocol is returned by the #GProxyResolver,
+ * #GSocketClient will consider this protocol as supported but will
+ * not try to find a #GProxy instance to handle handshaking. The
+ * application must check for this case by calling
+ * g_socket_connection_get_remote_address() on the returned
+ * #GSocketConnection, and seeing if it's a #GProxyAddress of the
+ * appropriate type, to determine whether or not it needs to handle
+ * the proxy handshaking itself.
*
- * On error -1 is returned and @error is set accordingly.
+ * This should be used for proxy protocols that are dialects of
+ * another protocol such as HTTP proxy. It also allows cohabitation of
+ * proxy protocols that are reused between protocols. A good example
+ * is HTTP. It can be used to proxy HTTP, FTP and Gopher and can also
+ * be use as generic socket proxy through the HTTP CONNECT method.
*
- * Returns: Number of bytes written (which may be less than @size), or -1
- * on error
- * Since: 2.22
+ * When the proxy is detected as being an application proxy, TLS handshake
+ * will be skipped. This is required to let the application do the proxy
+ * specific handshake.
*/
/**
- * g_socket_send_messages:
- * @socket: a #GSocket
- * @messages: (array length=num_messages): an array of #GOutputMessage structs
- * @num_messages: the number of elements in @messages
- * @flags: an int containing #GSocketMsgFlags flags
- * @cancellable: (nullable): a %GCancellable or %NULL
+ * g_socket_client_connect:
+ * @client: a #GSocketClient.
+ * @connectable: a #GSocketConnectable specifying the remote address.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting, or %NULL to ignore.
*
- * 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().
+ * Tries to resolve the @connectable and make a network connection to it.
*
- * @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.
+ * Upon a successful connection, a new #GSocketConnection is constructed
+ * and returned. The caller owns this new object and must drop their
+ * reference to it when finished with it.
*
- * @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.
+ * The type of the #GSocketConnection object returned depends on the type of
+ * the underlying socket that is used. For instance, for a TCP/IP connection
+ * it will be a #GTcpConnection.
*
- * 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.)
+ * The socket created will be the same family as the address that the
+ * @connectable resolves to, unless family is set with g_socket_client_set_family()
+ * or indirectly via g_socket_client_set_local_address(). The socket type
+ * defaults to %G_SOCKET_TYPE_STREAM but can be set with
+ * g_socket_client_set_socket_type().
*
- * On error -1 is returned and @error is set accordingly. An error will only
- * be returned if zero messages could be sent; otherwise the number of messages
- * successfully sent before the error will be returned.
+ * If a local address is specified with g_socket_client_set_local_address() the
+ * socket will be bound to this address before connecting.
*
- * Returns: 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.
- * Since: 2.44
+ * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
+ * Since: 2.22
*/
/**
- * g_socket_send_to:
- * @socket: a #GSocket
- * @address: (nullable): a #GSocketAddress, or %NULL
- * @buffer: (array length=size) (element-type guint8): the buffer
- * containing the data to send.
- * @size: the number of bytes to send
- * @cancellable: (nullable): a %GCancellable or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_socket_client_connect_async:
+ * @client: a #GSocketClient
+ * @connectable: a #GSocketConnectable specifying the remote address.
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
- * Tries to send @size bytes from @buffer to @address. If @address is
- * %NULL then the message is sent to the default receiver (set by
- * g_socket_connect()).
+ * This is the asynchronous version of g_socket_client_connect().
*
- * See g_socket_send() for additional information.
+ * When the operation is finished @callback will be
+ * called. You can then call g_socket_client_connect_finish() to get
+ * the result of the operation.
*
- * Returns: Number of bytes written (which may be less than @size), or -1
- * on error
* Since: 2.22
*/
/**
- * g_socket_send_with_blocking:
- * @socket: a #GSocket
- * @buffer: (array length=size) (element-type guint8): the buffer
- * containing the data to send.
- * @size: the number of bytes to send
- * @blocking: whether to do blocking or non-blocking I/O
- * @cancellable: (nullable): a %GCancellable or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_socket_client_connect_finish:
+ * @client: a #GSocketClient.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * This behaves exactly the same as g_socket_send(), except that
- * the choice of blocking or non-blocking behavior is determined by
- * the @blocking argument rather than by @socket's properties.
+ * Finishes an async connect operation. See g_socket_client_connect_async()
*
- * Returns: Number of bytes written (which may be less than @size), or -1
- * on error
- * Since: 2.26
+ * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
+ * Since: 2.22
*/
/**
- * g_socket_service_is_active:
- * @service: a #GSocketService
+ * g_socket_client_connect_to_host:
+ * @client: a #GSocketClient
+ * @host_and_port: the name and optionally port of the host to connect to
+ * @default_port: the default port to connect to
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a pointer to a #GError, or %NULL
*
- * Check whether the service is active or not. An active
- * service will accept new clients that connect, while
- * a non-active service will let connecting clients queue
- * up until the service is started.
+ * This is a helper function for g_socket_client_connect().
*
- * Returns: %TRUE if the service is active, %FALSE otherwise
+ * Attempts to create a TCP connection to the named host.
+ *
+ * @host_and_port may be in any of a number of recognized formats; an IPv6
+ * address, an IPv4 address, or a domain name (in which case a DNS
+ * lookup is performed). Quoting with [] is supported for all address
+ * types. A port override may be specified in the usual way with a
+ * colon. Ports may be given as decimal numbers or symbolic names (in
+ * which case an /etc/services lookup is performed).
+ *
+ * If no port override is given in @host_and_port then @default_port will be
+ * used as the port number to connect to.
+ *
+ * In general, @host_and_port is expected to be provided by the user (allowing
+ * them to give the hostname, and a port override if necessary) and
+ * @default_port is expected to be provided by the application.
+ *
+ * In the case that an IP address is given, a single connection
+ * attempt is made. In the case that a name is given, multiple
+ * connection attempts may be made, in turn and according to the
+ * number of address records in DNS, until a connection succeeds.
+ *
+ * Upon a successful connection, a new #GSocketConnection is constructed
+ * and returned. The caller owns this new object and must drop their
+ * reference to it when finished with it.
+ *
+ * In the event of any failure (DNS error, service not found, no hosts
+ * connectable) %NULL is returned and @error (if non-%NULL) is set
+ * accordingly.
+ *
+ * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
* Since: 2.22
*/
/**
- * g_socket_service_new:
+ * g_socket_client_connect_to_host_async:
+ * @client: a #GSocketClient
+ * @host_and_port: the name and optionally the port of the host to connect to
+ * @default_port: the default port to connect to
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
- * Creates a new #GSocketService with no sockets to listen for.
- * New listeners can be added with e.g. g_socket_listener_add_address()
- * or g_socket_listener_add_inet_port().
+ * This is the asynchronous version of g_socket_client_connect_to_host().
*
- * New services are created active, there is no need to call
- * g_socket_service_start(), unless g_socket_service_stop() has been
- * called before.
+ * When the operation is finished @callback will be
+ * called. You can then call g_socket_client_connect_to_host_finish() to get
+ * the result of the operation.
*
- * Returns: a new #GSocketService.
* Since: 2.22
*/
/**
- * g_socket_service_start:
- * @service: a #GSocketService
- *
- * Restarts the service, i.e. start accepting connections
- * from the added sockets when the mainloop runs. This only needs
- * to be called after the service has been stopped from
- * g_socket_service_stop().
+ * g_socket_client_connect_to_host_finish:
+ * @client: a #GSocketClient.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * This call is thread-safe, so it may be called from a thread
- * handling an incoming client request.
+ * Finishes an async connect operation. See g_socket_client_connect_to_host_async()
*
+ * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
* Since: 2.22
*/
/**
- * g_socket_service_stop:
- * @service: a #GSocketService
+ * g_socket_client_connect_to_service:
+ * @client: a #GSocketConnection
+ * @domain: a domain name
+ * @service: the name of the service to connect to
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a pointer to a #GError, or %NULL
*
- * Stops the service, i.e. stops accepting connections
- * from the added sockets when the mainloop runs.
+ * Attempts to create a TCP connection to a service.
*
- * This call is thread-safe, so it may be called from a thread
- * handling an incoming client request.
+ * This call looks up the SRV record for @service at @domain for the
+ * "tcp" protocol. It then attempts to connect, in turn, to each of
+ * the hosts providing the service until either a connection succeeds
+ * or there are no hosts remaining.
*
- * Note that this only stops accepting new connections; it does not
- * close the listening sockets, and you can call
- * g_socket_service_start() again later to begin listening again. To
- * close the listening sockets, call g_socket_listener_close(). (This
- * will happen automatically when the #GSocketService is finalized.)
+ * Upon a successful connection, a new #GSocketConnection is constructed
+ * and returned. The caller owns this new object and must drop their
+ * reference to it when finished with it.
*
- * This must be called before calling g_socket_listener_close() as
- * the socket service will start accepting connections immediately
- * when a new socket is added.
+ * In the event of any failure (DNS error, service not found, no hosts
+ * connectable) %NULL is returned and @error (if non-%NULL) is set
+ * accordingly.
*
- * Since: 2.22
+ * Returns: (transfer full): a #GSocketConnection if successful, or %NULL on error
*/
/**
- * g_socket_set_blocking:
- * @socket: a #GSocket.
- * @blocking: Whether to use blocking I/O or not.
- *
- * Sets the blocking mode of the socket. In blocking mode
- * all operations (which don’t take an explicit blocking parameter) block until
- * they succeed or there is an error. In
- * non-blocking mode all functions return results immediately or
- * with a %G_IO_ERROR_WOULD_BLOCK error.
+ * g_socket_client_connect_to_service_async:
+ * @client: a #GSocketClient
+ * @domain: a domain name
+ * @service: the name of the service to connect to
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
- * All sockets are created in blocking mode. However, note that the
- * platform level socket is always non-blocking, and blocking mode
- * is a GSocket level feature.
+ * This is the asynchronous version of
+ * g_socket_client_connect_to_service().
*
* Since: 2.22
*/
/**
- * g_socket_set_broadcast:
- * @socket: a #GSocket.
- * @broadcast: whether @socket should allow sending to broadcast
- * addresses
+ * g_socket_client_connect_to_service_finish:
+ * @client: a #GSocketClient.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Sets whether @socket should allow sending to broadcast addresses.
- * This is %FALSE by default.
+ * Finishes an async connect operation. See g_socket_client_connect_to_service_async()
*
- * Since: 2.32
+ * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
+ * Since: 2.22
*/
/**
- * g_socket_set_keepalive:
- * @socket: a #GSocket.
- * @keepalive: Value for the keepalive flag
+ * g_socket_client_connect_to_uri:
+ * @client: a #GSocketClient
+ * @uri: A network URI
+ * @default_port: the default port to connect to
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a pointer to a #GError, or %NULL
*
- * Sets or unsets the %SO_KEEPALIVE flag on the underlying socket. When
- * this flag is set on a socket, the system will attempt to verify that the
- * remote socket endpoint is still present if a sufficiently long period of
- * time passes with no data being exchanged. If the system is unable to
- * verify the presence of the remote endpoint, it will automatically close
- * the connection.
+ * This is a helper function for g_socket_client_connect().
*
- * This option is only functional on certain kinds of sockets. (Notably,
- * %G_SOCKET_PROTOCOL_TCP sockets.)
+ * Attempts to create a TCP connection with a network URI.
*
- * The exact time between pings is system- and protocol-dependent, but will
- * normally be at least two hours. Most commonly, you would set this flag
- * on a server socket if you want to allow clients to remain idle for long
- * periods of time, but also want to ensure that connections are eventually
- * garbage-collected if clients crash or become unreachable.
+ * @uri may be any valid URI containing an "authority" (hostname/port)
+ * component. If a port is not specified in the URI, @default_port
+ * will be used. TLS will be negotiated if #GSocketClient:tls is %TRUE.
+ * (#GSocketClient does not know to automatically assume TLS for
+ * certain URI schemes.)
*
- * Since: 2.22
+ * Using this rather than g_socket_client_connect() or
+ * g_socket_client_connect_to_host() allows #GSocketClient to
+ * determine when to use application-specific proxy protocols.
+ *
+ * Upon a successful connection, a new #GSocketConnection is constructed
+ * and returned. The caller owns this new object and must drop their
+ * reference to it when finished with it.
+ *
+ * In the event of any failure (DNS error, service not found, no hosts
+ * connectable) %NULL is returned and @error (if non-%NULL) is set
+ * accordingly.
+ *
+ * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
+ * Since: 2.26
*/
/**
- * g_socket_set_listen_backlog:
- * @socket: a #GSocket.
- * @backlog: the maximum number of pending connections.
+ * g_socket_client_connect_to_uri_async:
+ * @client: a #GSocketClient
+ * @uri: a network uri
+ * @default_port: the default port to connect to
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
- * Sets the maximum number of outstanding connections allowed
- * when listening on this socket. If more clients than this are
- * connecting to the socket and the application is not handling them
- * on time then the new connections will be refused.
+ * This is the asynchronous version of g_socket_client_connect_to_uri().
*
- * Note that this must be called before g_socket_listen() and has no
- * effect if called after that.
+ * When the operation is finished @callback will be
+ * called. You can then call g_socket_client_connect_to_uri_finish() to get
+ * the result of the operation.
+ *
+ * Since: 2.26
+ */
+
+
+/**
+ * g_socket_client_connect_to_uri_finish:
+ * @client: a #GSocketClient.
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
+ *
+ * Finishes an async connect operation. See g_socket_client_connect_to_uri_async()
*
- * Since: 2.22
+ * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
+ * Since: 2.26
*/
/**
- * g_socket_set_multicast_loopback:
- * @socket: a #GSocket.
- * @loopback: whether @socket should receive messages sent to its
- * multicast groups from the local host
+ * g_socket_client_get_enable_proxy:
+ * @client: a #GSocketClient.
*
- * Sets whether outgoing multicast packets will be received by sockets
- * listening on that multicast address on the same host. This is %TRUE
- * by default.
+ * Gets the proxy enable state; see g_socket_client_set_enable_proxy()
*
- * Since: 2.32
+ * Returns: whether proxying is enabled
+ * Since: 2.26
*/
/**
- * g_socket_set_multicast_ttl:
- * @socket: a #GSocket.
- * @ttl: the time-to-live value for all multicast datagrams on @socket
+ * g_socket_client_get_family:
+ * @client: a #GSocketClient.
*
- * Sets the time-to-live for outgoing multicast datagrams on @socket.
- * By default, this is 1, meaning that multicast packets will not leave
- * the local network.
+ * Gets the socket family of the socket client.
*
- * Since: 2.32
+ * See g_socket_client_set_family() for details.
+ *
+ * Returns: a #GSocketFamily
+ * Since: 2.22
*/
/**
- * g_socket_set_option:
- * @socket: a #GSocket
- * @level: the "API level" of the option (eg, `SOL_SOCKET`)
- * @optname: the "name" of the option (eg, `SO_BROADCAST`)
- * @value: the value to set the option to
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_socket_client_get_local_address:
+ * @client: a #GSocketClient.
*
- * Sets the value of an integer-valued option on @socket, as with
- * setsockopt(). (If you need to set a non-integer-valued option,
- * you will need to call setsockopt() directly.)
+ * Gets the local address of the socket client.
*
- * The [<gio/gnetworking.h>][gio-gnetworking.h]
- * header pulls in system headers that will define most of the
- * standard/portable socket options. For unusual socket protocols or
- * platform-dependent options, you may need to include additional
- * headers.
+ * See g_socket_client_set_local_address() for details.
*
- * Returns: success or failure. On failure, @error will be set, and
- * the system error value (`errno` or WSAGetLastError()) will still
- * be set to the result of the setsockopt() call.
- * Since: 2.36
+ * Returns: (transfer none): a #GSocketAddress or %NULL. Do not free.
+ * Since: 2.22
*/
/**
- * g_socket_set_timeout:
- * @socket: a #GSocket.
- * @timeout: the timeout for @socket, in seconds, or 0 for none
- *
- * Sets the time in seconds after which I/O operations on @socket will
- * time out if they have not yet completed.
- *
- * On a blocking socket, this means that any blocking #GSocket
- * operation will time out after @timeout seconds of inactivity,
- * returning %G_IO_ERROR_TIMED_OUT.
- *
- * On a non-blocking socket, calls to g_socket_condition_wait() will
- * also fail with %G_IO_ERROR_TIMED_OUT after the given time. Sources
- * created with g_socket_create_source() will trigger after
- * @timeout seconds of inactivity, with the requested condition
- * set, at which point calling g_socket_receive(), g_socket_send(),
- * g_socket_check_connect_result(), etc, will fail with
- * %G_IO_ERROR_TIMED_OUT.
+ * g_socket_client_get_protocol:
+ * @client: a #GSocketClient
*
- * If @timeout is 0 (the default), operations will never time out
- * on their own.
+ * Gets the protocol name type of the socket client.
*
- * Note that if an I/O operation is interrupted by a signal, this may
- * cause the timeout to be reset.
+ * See g_socket_client_set_protocol() for details.
*
- * Since: 2.26
+ * Returns: a #GSocketProtocol
+ * Since: 2.22
*/
/**
- * g_socket_set_ttl:
- * @socket: a #GSocket.
- * @ttl: the time-to-live value for all unicast packets on @socket
+ * g_socket_client_get_proxy_resolver:
+ * @client: a #GSocketClient.
*
- * Sets the time-to-live for outgoing unicast packets on @socket.
- * By default the platform-specific default value is used.
+ * Gets the #GProxyResolver being used by @client. Normally, this will
+ * be the resolver returned by g_proxy_resolver_get_default(), but you
+ * can override it with g_socket_client_set_proxy_resolver().
*
- * Since: 2.32
+ * Returns: (transfer none): The #GProxyResolver being used by
+ * @client.
+ * Since: 2.36
*/
/**
- * g_socket_shutdown:
- * @socket: a #GSocket
- * @shutdown_read: whether to shut down the read side
- * @shutdown_write: whether to shut down the write side
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Shut down part or all of a full-duplex connection.
- *
- * If @shutdown_read is %TRUE then the receiving side of the connection
- * is shut down, and further reading is disallowed.
- *
- * If @shutdown_write is %TRUE then the sending side of the connection
- * is shut down, and further writing is disallowed.
+ * g_socket_client_get_socket_type:
+ * @client: a #GSocketClient.
*
- * It is allowed for both @shutdown_read and @shutdown_write to be %TRUE.
+ * Gets the socket type of the socket client.
*
- * One example where it is useful to shut down only one side of a connection is
- * graceful disconnect for TCP connections where you close the sending side,
- * then wait for the other side to close the connection, thus ensuring that the
- * other side saw all sent data.
+ * See g_socket_client_set_socket_type() for details.
*
- * Returns: %TRUE on success, %FALSE on error
+ * Returns: a #GSocketFamily
* Since: 2.22
*/
/**
- * g_socket_speaks_ipv4:
- * @socket: a #GSocket
- *
- * Checks if a socket is capable of speaking IPv4.
+ * g_socket_client_get_timeout:
+ * @client: a #GSocketClient
*
- * IPv4 sockets are capable of speaking IPv4. On some operating systems
- * and under some combinations of circumstances IPv6 sockets are also
- * capable of speaking IPv4. See RFC 3493 section 3.7 for more
- * information.
+ * Gets the I/O timeout time for sockets created by @client.
*
- * No other types of sockets are currently considered as being capable
- * of speaking IPv4.
+ * See g_socket_client_set_timeout() for details.
*
- * Returns: %TRUE if this socket can be used with IPv4.
- * Since: 2.22
+ * Returns: the timeout in seconds
+ * Since: 2.26
*/
/**
- * g_srv_target_copy:
- * @target: a #GSrvTarget
+ * g_socket_client_get_tls:
+ * @client: a #GSocketClient.
*
- * Copies @target
+ * Gets whether @client creates TLS connections. See
+ * g_socket_client_set_tls() for details.
*
- * Returns: a copy of @target
- * Since: 2.22
+ * Returns: whether @client uses TLS
+ * Since: 2.28
*/
/**
- * g_srv_target_free:
- * @target: a #GSrvTarget
+ * g_socket_client_get_tls_validation_flags:
+ * @client: a #GSocketClient.
*
- * Frees @target
+ * Gets the TLS validation flags used creating TLS connections via
+ * @client.
*
- * Since: 2.22
+ * Returns: the TLS validation flags
+ * Since: 2.28
*/
/**
- * g_srv_target_get_hostname:
- * @target: a #GSrvTarget
+ * g_socket_client_new:
*
- * Gets @target's hostname (in ASCII form; if you are going to present
- * this to the user, you should use g_hostname_is_ascii_encoded() to
- * check if it contains encoded Unicode segments, and use
- * g_hostname_to_unicode() to convert it if it does.)
+ * Creates a new #GSocketClient with the default options.
*
- * Returns: @target's hostname
+ * Returns: a #GSocketClient.
+ * Free the returned object with g_object_unref().
* Since: 2.22
*/
/**
- * g_srv_target_get_port:
- * @target: a #GSrvTarget
+ * g_socket_client_set_enable_proxy:
+ * @client: a #GSocketClient.
+ * @enable: whether to enable proxies
*
- * Gets @target's port
+ * Sets whether or not @client attempts to make connections via a
+ * proxy server. When enabled (the default), #GSocketClient will use a
+ * #GProxyResolver to determine if a proxy protocol such as SOCKS is
+ * needed, and automatically do the necessary proxy negotiation.
*
- * Returns: @target's port
- * Since: 2.22
+ * See also g_socket_client_set_proxy_resolver().
+ *
+ * Since: 2.26
*/
/**
- * g_srv_target_get_priority:
- * @target: a #GSrvTarget
+ * g_socket_client_set_family:
+ * @client: a #GSocketClient.
+ * @family: a #GSocketFamily
*
- * Gets @target's priority. You should not need to look at this;
- * #GResolver already sorts the targets according to the algorithm in
- * RFC 2782.
+ * Sets the socket family of the socket client.
+ * If this is set to something other than %G_SOCKET_FAMILY_INVALID
+ * then the sockets created by this object will be of the specified
+ * family.
+ *
+ * This might be useful for instance if you want to force the local
+ * connection to be an ipv4 socket, even though the address might
+ * be an ipv6 mapped to ipv4 address.
*
- * Returns: @target's priority
* Since: 2.22
*/
/**
- * g_srv_target_get_weight:
- * @target: a #GSrvTarget
+ * g_socket_client_set_local_address:
+ * @client: a #GSocketClient.
+ * @address: (nullable): a #GSocketAddress, or %NULL
*
- * Gets @target's weight. You should not need to look at this;
- * #GResolver already sorts the targets according to the algorithm in
- * RFC 2782.
+ * Sets the local address of the socket client.
+ * The sockets created by this object will bound to the
+ * specified address (if not %NULL) before connecting.
+ *
+ * This is useful if you want to ensure that the local
+ * side of the connection is on a specific port, or on
+ * a specific interface.
*
- * Returns: @target's weight
* Since: 2.22
*/
/**
- * g_srv_target_list_sort: (skip)
- * @targets: a #GList of #GSrvTarget
+ * g_socket_client_set_protocol:
+ * @client: a #GSocketClient.
+ * @protocol: a #GSocketProtocol
*
- * Sorts @targets in place according to the algorithm in RFC 2782.
+ * Sets the protocol of the socket client.
+ * The sockets created by this object will use of the specified
+ * protocol.
+ *
+ * If @protocol is %0 that means to use the default
+ * protocol for the socket family and type.
*
- * Returns: (transfer full): the head of the sorted list.
* Since: 2.22
*/
/**
- * g_srv_target_new:
- * @hostname: the host that the service is running on
- * @port: the port that the service is running on
- * @priority: the target's priority
- * @weight: the target's weight
+ * g_socket_client_set_proxy_resolver:
+ * @client: a #GSocketClient.
+ * @proxy_resolver: (nullable): a #GProxyResolver, or %NULL for the
+ * default.
*
- * Creates a new #GSrvTarget with the given parameters.
+ * Overrides the #GProxyResolver used by @client. You can call this if
+ * you want to use specific proxies, rather than using the system
+ * default proxy settings.
*
- * You should not need to use this; normally #GSrvTargets are
- * created by #GResolver.
+ * Note that whether or not the proxy resolver is actually used
+ * depends on the setting of #GSocketClient:enable-proxy, which is not
+ * changed by this function (but which is %TRUE by default)
*
- * Returns: a new #GSrvTarget.
- * Since: 2.22
+ * Since: 2.36
*/
/**
- * g_static_resource_fini:
- * @static_resource: pointer to a static #GStaticResource
+ * g_socket_client_set_socket_type:
+ * @client: a #GSocketClient.
+ * @type: a #GSocketType
*
- * Finalized a GResource initialized by g_static_resource_init().
+ * Sets the socket type of the socket client.
+ * The sockets created by this object will be of the specified
+ * type.
*
- * This is normally used by code generated by
- * [glib-compile-resources][glib-compile-resources]
- * and is not typically used by other code.
+ * It doesn't make sense to specify a type of %G_SOCKET_TYPE_DATAGRAM,
+ * as GSocketClient is used for connection oriented services.
*
- * Since: 2.32
+ * Since: 2.22
*/
/**
- * g_static_resource_get_resource:
- * @static_resource: pointer to a static #GStaticResource
+ * g_socket_client_set_timeout:
+ * @client: a #GSocketClient.
+ * @timeout: the timeout
*
- * Gets the GResource that was registered by a call to g_static_resource_init().
+ * Sets the I/O timeout for sockets created by @client. @timeout is a
+ * time in seconds, or 0 for no timeout (the default).
*
- * This is normally used by code generated by
- * [glib-compile-resources][glib-compile-resources]
- * and is not typically used by other code.
+ * The timeout value affects the initial connection attempt as well,
+ * so setting this may cause calls to g_socket_client_connect(), etc,
+ * to fail with %G_IO_ERROR_TIMED_OUT.
*
- * Returns: (transfer none): a #GResource
- * Since: 2.32
+ * Since: 2.26
*/
/**
- * g_static_resource_init:
- * @static_resource: pointer to a static #GStaticResource
+ * g_socket_client_set_tls:
+ * @client: a #GSocketClient.
+ * @tls: whether to use TLS
*
- * Initializes a GResource from static data using a
- * GStaticResource.
+ * Sets whether @client creates TLS (aka SSL) connections. If @tls is
+ * %TRUE, @client will wrap its connections in a #GTlsClientConnection
+ * and perform a TLS handshake when connecting.
*
- * This is normally used by code generated by
- * [glib-compile-resources][glib-compile-resources]
- * and is not typically used by other code.
+ * Note that since #GSocketClient must return a #GSocketConnection,
+ * but #GTlsClientConnection is not a #GSocketConnection, this
+ * actually wraps the resulting #GTlsClientConnection in a
+ * #GTcpWrapperConnection when returning it. You can use
+ * g_tcp_wrapper_connection_get_base_io_stream() on the return value
+ * to extract the #GTlsClientConnection.
*
- * Since: 2.32
+ * If you need to modify the behavior of the TLS handshake (eg, by
+ * setting a client-side certificate to use, or connecting to the
+ * #GTlsConnection::accept-certificate signal), you can connect to
+ * @client's #GSocketClient::event signal and wait for it to be
+ * emitted with %G_SOCKET_CLIENT_TLS_HANDSHAKING, which will give you
+ * a chance to see the #GTlsClientConnection before the handshake
+ * starts.
+ *
+ * Since: 2.28
*/
/**
- * g_subprocess_communicate:
- * @subprocess: a #GSubprocess
- * @stdin_buf: (nullable): data to send to the stdin of the subprocess, or %NULL
- * @cancellable: a #GCancellable
- * @stdout_buf: (out) (nullable) (optional) (transfer full): data read from the subprocess stdout
- * @stderr_buf: (out) (nullable) (optional) (transfer full): data read from the subprocess stderr
- * @error: a pointer to a %NULL #GError pointer, or %NULL
- *
- * Communicate with the subprocess until it terminates, and all input
- * and output has been completed.
- *
- * If @stdin_buf is given, the subprocess must have been created with
- * %G_SUBPROCESS_FLAGS_STDIN_PIPE. The given data is fed to the
- * stdin of the subprocess and the pipe is closed (ie: EOF).
+ * g_socket_client_set_tls_validation_flags:
+ * @client: a #GSocketClient.
+ * @flags: the validation flags
*
- * At the same time (as not to cause blocking when dealing with large
- * amounts of data), if %G_SUBPROCESS_FLAGS_STDOUT_PIPE or
- * %G_SUBPROCESS_FLAGS_STDERR_PIPE were used, reads from those
- * streams. The data that was read is returned in @stdout and/or
- * the @stderr.
+ * Sets the TLS validation flags used when creating TLS connections
+ * via @client. The default value is %G_TLS_CERTIFICATE_VALIDATE_ALL.
*
- * If the subprocess was created with %G_SUBPROCESS_FLAGS_STDOUT_PIPE,
- * @stdout_buf will contain the data read from stdout. Otherwise, for
- * subprocesses not created with %G_SUBPROCESS_FLAGS_STDOUT_PIPE,
- * @stdout_buf will be set to %NULL. Similar provisions apply to
- * @stderr_buf and %G_SUBPROCESS_FLAGS_STDERR_PIPE.
+ * Since: 2.28
+ */
+
+
+/**
+ * g_socket_close:
+ * @socket: a #GSocket
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * As usual, any output variable may be given as %NULL to ignore it.
+ * Closes the socket, shutting down any active connection.
*
- * If you desire the stdout and stderr data to be interleaved, create
- * the subprocess with %G_SUBPROCESS_FLAGS_STDOUT_PIPE and
- * %G_SUBPROCESS_FLAGS_STDERR_MERGE. The merged result will be returned
- * in @stdout_buf and @stderr_buf will be set to %NULL.
+ * Closing a socket does not wait for all outstanding I/O operations
+ * to finish, so the caller should not rely on them to be guaranteed
+ * to complete even if the close returns with no error.
*
- * In case of any error (including cancellation), %FALSE will be
- * returned with @error set. Some or all of the stdin data may have
- * been written. Any stdout or stderr data that has been read will be
- * discarded. None of the out variables (aside from @error) will have
- * been set to anything in particular and should not be inspected.
+ * Once the socket is closed, all other operations will return
+ * %G_IO_ERROR_CLOSED. Closing a socket multiple times will not
+ * return an error.
*
- * In the case that %TRUE is returned, the subprocess has exited and the
- * exit status inspection APIs (eg: g_subprocess_get_if_exited(),
- * g_subprocess_get_exit_status()) may be used.
+ * Sockets will be automatically closed when the last reference
+ * is dropped, but you might want to call this function to make sure
+ * resources are released as early as possible.
*
- * You should not attempt to use any of the subprocess pipes after
- * starting this function, since they may be left in strange states,
- * even if the operation was cancelled. You should especially not
- * attempt to interact with the pipes while the operation is in progress
- * (either from another thread or if using the asynchronous version).
+ * Beware that due to the way that TCP works, it is possible for
+ * recently-sent data to be lost if either you close a socket while the
+ * %G_IO_IN condition is set, or else if the remote connection tries to
+ * send something to you after you close the socket but before it has
+ * finished reading all of the data you sent. There is no easy generic
+ * way to avoid this problem; the easiest fix is to design the network
+ * protocol such that the client will never send data "out of turn".
+ * Another solution is for the server to half-close the connection by
+ * calling g_socket_shutdown() with only the @shutdown_write flag set,
+ * and then wait for the client to notice this and close its side of the
+ * connection, after which the server can safely call g_socket_close().
+ * (This is what #GTcpConnection does if you call
+ * g_tcp_connection_set_graceful_disconnect(). But of course, this
+ * only works if the client will close its connection after the server
+ * does.)
*
- * Returns: %TRUE if successful
- * Since: 2.40
+ * Returns: %TRUE on success, %FALSE on error
+ * Since: 2.22
*/
/**
- * g_subprocess_communicate_async:
- * @subprocess: Self
- * @stdin_buf: (nullable): Input data, or %NULL
- * @cancellable: (nullable): Cancellable
- * @callback: Callback
- * @user_data: User data
+ * g_socket_condition_check:
+ * @socket: a #GSocket
+ * @condition: a #GIOCondition mask to check
*
- * Asynchronous version of g_subprocess_communicate(). Complete
- * invocation with g_subprocess_communicate_finish().
+ * Checks on the readiness of @socket to perform operations.
+ * The operations specified in @condition are checked for and masked
+ * against the currently-satisfied conditions on @socket. The result
+ * is returned.
+ *
+ * Note that on Windows, it is possible for an operation to return
+ * %G_IO_ERROR_WOULD_BLOCK even immediately after
+ * g_socket_condition_check() has claimed that the socket is ready for
+ * writing. Rather than calling g_socket_condition_check() and then
+ * writing to the socket if it succeeds, it is generally better to
+ * simply try writing to the socket right away, and try again later if
+ * the initial attempt returns %G_IO_ERROR_WOULD_BLOCK.
+ *
+ * It is meaningless to specify %G_IO_ERR or %G_IO_HUP in condition;
+ * these conditions will always be set in the output if they are true.
+ *
+ * This call never blocks.
+ *
+ * Returns: the @GIOCondition mask of the current state
+ * Since: 2.22
*/
/**
- * g_subprocess_communicate_finish:
- * @subprocess: Self
- * @result: Result
- * @stdout_buf: (out) (nullable) (optional) (transfer full): Return location for stdout data
- * @stderr_buf: (out) (nullable) (optional) (transfer full): Return location for stderr data
- * @error: Error
+ * g_socket_condition_timed_wait:
+ * @socket: a #GSocket
+ * @condition: a #GIOCondition mask to wait for
+ * @timeout: the maximum time (in microseconds) to wait, or -1
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a #GError pointer, or %NULL
*
- * Complete an invocation of g_subprocess_communicate_async().
+ * Waits for up to @timeout microseconds for @condition to become true
+ * on @socket. If the condition is met, %TRUE is returned.
+ *
+ * If @cancellable is cancelled before the condition is met, or if
+ * @timeout (or the socket's #GSocket:timeout) is reached before the
+ * condition is met, then %FALSE is returned and @error, if non-%NULL,
+ * is set to the appropriate value (%G_IO_ERROR_CANCELLED or
+ * %G_IO_ERROR_TIMED_OUT).
+ *
+ * If you don't want a timeout, use g_socket_condition_wait().
+ * (Alternatively, you can pass -1 for @timeout.)
+ *
+ * Note that although @timeout is in microseconds for consistency with
+ * other GLib APIs, this function actually only has millisecond
+ * resolution, and the behavior is undefined if @timeout is not an
+ * exact number of milliseconds.
+ *
+ * Returns: %TRUE if the condition was met, %FALSE otherwise
+ * Since: 2.32
*/
/**
- * g_subprocess_communicate_utf8:
- * @subprocess: a #GSubprocess
- * @stdin_buf: (nullable): data to send to the stdin of the subprocess, or %NULL
- * @cancellable: a #GCancellable
- * @stdout_buf: (out) (nullable) (optional) (transfer full): data read from the subprocess stdout
- * @stderr_buf: (out) (nullable) (optional) (transfer full): data read from the subprocess stderr
- * @error: a pointer to a %NULL #GError pointer, or %NULL
+ * g_socket_condition_wait:
+ * @socket: a #GSocket
+ * @condition: a #GIOCondition mask to wait for
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a #GError pointer, or %NULL
*
- * Like g_subprocess_communicate(), but validates the output of the
- * process as UTF-8, and returns it as a regular NUL terminated string.
+ * Waits for @condition to become true on @socket. When the condition
+ * is met, %TRUE is returned.
+ *
+ * If @cancellable is cancelled before the condition is met, or if the
+ * socket has a timeout set and it is reached before the condition is
+ * met, then %FALSE is returned and @error, if non-%NULL, is set to
+ * the appropriate value (%G_IO_ERROR_CANCELLED or
+ * %G_IO_ERROR_TIMED_OUT).
+ *
+ * See also g_socket_condition_timed_wait().
+ *
+ * Returns: %TRUE if the condition was met, %FALSE otherwise
+ * Since: 2.22
*/
/**
- * g_subprocess_communicate_utf8_async:
- * @subprocess: Self
- * @stdin_buf: (nullable): Input data, or %NULL
- * @cancellable: Cancellable
- * @callback: Callback
- * @user_data: User data
+ * g_socket_connect:
+ * @socket: a #GSocket.
+ * @address: a #GSocketAddress specifying the remote address.
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
+ *
+ * Connect the socket to the specified remote address.
+ *
+ * For connection oriented socket this generally means we attempt to make
+ * a connection to the @address. For a connection-less socket it sets
+ * the default address for g_socket_send() and discards all incoming datagrams
+ * from other sources.
+ *
+ * Generally connection oriented sockets can only connect once, but
+ * connection-less sockets can connect multiple times to change the
+ * default address.
+ *
+ * If the connect call needs to do network I/O it will block, unless
+ * non-blocking I/O is enabled. Then %G_IO_ERROR_PENDING is returned
+ * and the user can be notified of the connection finishing by waiting
+ * for the G_IO_OUT condition. The result of the connection must then be
+ * checked with g_socket_check_connect_result().
*
- * Asynchronous version of g_subprocess_communicate_utf8(). Complete
- * invocation with g_subprocess_communicate_utf8_finish().
+ * Returns: %TRUE if connected, %FALSE on error.
+ * Since: 2.22
*/
/**
- * g_subprocess_communicate_utf8_finish:
- * @subprocess: Self
- * @result: Result
- * @stdout_buf: (out) (nullable) (optional) (transfer full): Return location for stdout data
- * @stderr_buf: (out) (nullable) (optional) (transfer full): Return location for stderr data
- * @error: Error
+ * g_socket_connectable_enumerate:
+ * @connectable: a #GSocketConnectable
*
- * Complete an invocation of g_subprocess_communicate_utf8_async().
+ * Creates a #GSocketAddressEnumerator for @connectable.
+ *
+ * Returns: (transfer full): a new #GSocketAddressEnumerator.
+ * Since: 2.22
*/
/**
- * g_subprocess_force_exit:
- * @subprocess: a #GSubprocess
+ * g_socket_connectable_proxy_enumerate:
+ * @connectable: a #GSocketConnectable
*
- * Use an operating-system specific method to attempt an immediate,
- * forceful termination of the process. There is no mechanism to
- * determine whether or not the request itself was successful;
- * however, you can use g_subprocess_wait() to monitor the status of
- * the process after calling this function.
+ * Creates a #GSocketAddressEnumerator for @connectable that will
+ * return #GProxyAddresses for addresses that you must connect
+ * to via a proxy.
*
- * On Unix, this function sends %SIGKILL.
+ * If @connectable does not implement
+ * g_socket_connectable_proxy_enumerate(), this will fall back to
+ * calling g_socket_connectable_enumerate().
*
- * Since: 2.40
+ * Returns: (transfer full): a new #GSocketAddressEnumerator.
+ * Since: 2.26
*/
/**
- * g_subprocess_get_exit_status:
- * @subprocess: a #GSubprocess
- *
- * Check the exit status of the subprocess, given that it exited
- * normally. This is the value passed to the exit() system call or the
- * return value from main.
+ * g_socket_connectable_to_string:
+ * @connectable: a #GSocketConnectable
*
- * This is equivalent to the system WEXITSTATUS macro.
+ * Format a #GSocketConnectable as a string. This is a human-readable format for
+ * use in debugging output, and is not a stable serialization format. It is not
+ * suitable for use in user interfaces as it exposes too much information for a
+ * user.
*
- * It is an error to call this function before g_subprocess_wait() and
- * unless g_subprocess_get_if_exited() returned %TRUE.
+ * If the #GSocketConnectable implementation does not support string formatting,
+ * the implementation’s type name will be returned as a fallback.
*
- * Returns: the exit status
- * Since: 2.40
+ * Returns: (transfer full): the formatted string
+ * Since: 2.48
*/
/**
- * g_subprocess_get_identifier:
- * @subprocess: a #GSubprocess
+ * g_socket_connection_connect:
+ * @connection: a #GSocketConnection
+ * @address: a #GSocketAddress specifying the remote address.
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * On UNIX, returns the process ID as a decimal string.
- * On Windows, returns the result of GetProcessId() also as a string.
+ * Connect @connection to the specified remote address.
+ *
+ * Returns: %TRUE if the connection succeeded, %FALSE on error
+ * Since: 2.32
*/
/**
- * g_subprocess_get_if_exited:
- * @subprocess: a #GSubprocess
+ * g_socket_connection_connect_async:
+ * @connection: a #GSocketConnection
+ * @address: a #GSocketAddress specifying the remote address.
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
- * Check if the given subprocess exited normally (ie: by way of exit()
- * or return from main()).
+ * Asynchronously connect @connection to the specified remote address.
*
- * This is equivalent to the system WIFEXITED macro.
+ * This clears the #GSocket:blocking flag on @connection's underlying
+ * socket if it is currently set.
*
- * It is an error to call this function before g_subprocess_wait() has
- * returned.
+ * Use g_socket_connection_connect_finish() to retrieve the result.
*
- * Returns: %TRUE if the case of a normal exit
- * Since: 2.40
+ * Since: 2.32
*/
/**
- * g_subprocess_get_if_signaled:
- * @subprocess: a #GSubprocess
- *
- * Check if the given subprocess terminated in response to a signal.
- *
- * This is equivalent to the system WIFSIGNALED macro.
+ * g_socket_connection_connect_finish:
+ * @connection: a #GSocketConnection
+ * @result: the #GAsyncResult
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * It is an error to call this function before g_subprocess_wait() has
- * returned.
+ * Gets the result of a g_socket_connection_connect_async() call.
*
- * Returns: %TRUE if the case of termination due to a signal
- * Since: 2.40
+ * Returns: %TRUE if the connection succeeded, %FALSE on error
+ * Since: 2.32
*/
/**
- * g_subprocess_get_status:
- * @subprocess: a #GSubprocess
- *
- * Gets the raw status code of the process, as from waitpid().
- *
- * This value has no particular meaning, but it can be used with the
- * macros defined by the system headers such as WIFEXITED. It can also
- * be used with g_spawn_check_exit_status().
- *
- * It is more likely that you want to use g_subprocess_get_if_exited()
- * followed by g_subprocess_get_exit_status().
+ * g_socket_connection_factory_create_connection:
+ * @socket: a #GSocket
*
- * It is an error to call this function before g_subprocess_wait() has
- * returned.
+ * Creates a #GSocketConnection subclass of the right type for
+ * @socket.
*
- * Returns: the (meaningless) waitpid() exit status from the kernel
- * Since: 2.40
+ * Returns: (transfer full): a #GSocketConnection
+ * Since: 2.22
*/
/**
- * g_subprocess_get_stderr_pipe:
- * @subprocess: a #GSubprocess
+ * g_socket_connection_factory_lookup_type:
+ * @family: a #GSocketFamily
+ * @type: a #GSocketType
+ * @protocol_id: a protocol id
*
- * Gets the #GInputStream from which to read the stderr output of
- * @subprocess.
+ * Looks up the #GType to be used when creating socket connections on
+ * sockets with the specified @family, @type and @protocol_id.
*
- * The process must have been created with
- * %G_SUBPROCESS_FLAGS_STDERR_PIPE.
+ * If no type is registered, the #GSocketConnection base type is returned.
*
- * Returns: (transfer none): the stderr pipe
- * Since: 2.40
+ * Returns: a #GType
+ * Since: 2.22
*/
/**
- * g_subprocess_get_stdin_pipe:
- * @subprocess: a #GSubprocess
+ * g_socket_connection_factory_register_type:
+ * @g_type: a #GType, inheriting from %G_TYPE_SOCKET_CONNECTION
+ * @family: a #GSocketFamily
+ * @type: a #GSocketType
+ * @protocol: a protocol id
*
- * Gets the #GOutputStream that you can write to in order to give data
- * to the stdin of @subprocess.
+ * Looks up the #GType to be used when creating socket connections on
+ * sockets with the specified @family, @type and @protocol.
*
- * The process must have been created with
- * %G_SUBPROCESS_FLAGS_STDIN_PIPE.
+ * If no type is registered, the #GSocketConnection base type is returned.
*
- * Returns: (transfer none): the stdout pipe
- * Since: 2.40
+ * Since: 2.22
*/
/**
- * g_subprocess_get_stdout_pipe:
- * @subprocess: a #GSubprocess
- *
- * Gets the #GInputStream from which to read the stdout output of
- * @subprocess.
+ * g_socket_connection_get_local_address:
+ * @connection: a #GSocketConnection
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * The process must have been created with
- * %G_SUBPROCESS_FLAGS_STDOUT_PIPE.
+ * Try to get the local address of a socket connection.
*
- * Returns: (transfer none): the stdout pipe
- * Since: 2.40
+ * Returns: (transfer full): a #GSocketAddress or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_subprocess_get_successful:
- * @subprocess: a #GSubprocess
+ * g_socket_connection_get_remote_address:
+ * @connection: a #GSocketConnection
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Checks if the process was "successful". A process is considered
- * successful if it exited cleanly with an exit status of 0, either by
- * way of the exit() system call or return from main().
+ * Try to get the remote address of a socket connection.
*
- * It is an error to call this function before g_subprocess_wait() has
- * returned.
+ * Since GLib 2.40, when used with g_socket_client_connect() or
+ * g_socket_client_connect_async(), during emission of
+ * %G_SOCKET_CLIENT_CONNECTING, this function will return the remote
+ * address that will be used for the connection. This allows
+ * applications to print e.g. "Connecting to example.com
+ * (10.42.77.3)...".
*
- * Returns: %TRUE if the process exited cleanly with a exit status of 0
- * Since: 2.40
+ * Returns: (transfer full): a #GSocketAddress or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_subprocess_get_term_sig:
- * @subprocess: a #GSubprocess
- *
- * Get the signal number that caused the subprocess to terminate, given
- * that it terminated due to a signal.
- *
- * This is equivalent to the system WTERMSIG macro.
+ * g_socket_connection_get_socket:
+ * @connection: a #GSocketConnection
*
- * It is an error to call this function before g_subprocess_wait() and
- * unless g_subprocess_get_if_signaled() returned %TRUE.
+ * Gets the underlying #GSocket object of the connection.
+ * This can be useful if you want to do something unusual on it
+ * not supported by the #GSocketConnection APIs.
*
- * Returns: the signal causing termination
- * Since: 2.40
+ * Returns: (transfer none): a #GSocket or %NULL on error.
+ * Since: 2.22
*/
/**
- * g_subprocess_launcher_getenv:
- * @self: a #GSubprocess
- * @variable: (type filename): the environment variable to get
- *
- * Returns the value of the environment variable @variable in the
- * environment of processes launched from this launcher.
+ * g_socket_connection_is_connected:
+ * @connection: a #GSocketConnection
*
- * On UNIX, the returned string can be an arbitrary byte string.
- * On Windows, it will be UTF-8.
+ * Checks if @connection is connected. This is equivalent to calling
+ * g_socket_is_connected() on @connection's underlying #GSocket.
*
- * Returns: (type filename): the value of the environment variable,
- * %NULL if unset
- * Since: 2.40
+ * Returns: whether @connection is connected
+ * Since: 2.32
*/
/**
- * g_subprocess_launcher_new:
- * @flags: #GSubprocessFlags
+ * g_socket_control_message_deserialize:
+ * @level: a socket level
+ * @type: a socket control message type for the given @level
+ * @size: the size of the data in bytes
+ * @data: (array length=size) (element-type guint8): pointer to the message data
*
- * Creates a new #GSubprocessLauncher.
+ * Tries to deserialize a socket control message of a given
+ * @level and @type. This will ask all known (to GType) subclasses
+ * of #GSocketControlMessage if they can understand this kind
+ * of message and if so deserialize it into a #GSocketControlMessage.
*
- * The launcher is created with the default options. A copy of the
- * environment of the calling process is made at the time of this call
- * and will be used as the environment that the process is launched in.
+ * If there is no implementation for this kind of control message, %NULL
+ * will be returned.
*
- * Since: 2.40
+ * Returns: (transfer full): the deserialized message or %NULL
+ * Since: 2.22
*/
/**
- * g_subprocess_launcher_set_child_setup: (skip)
- * @self: a #GSubprocessLauncher
- * @child_setup: a #GSpawnChildSetupFunc to use as the child setup function
- * @user_data: user data for @child_setup
- * @destroy_notify: a #GDestroyNotify for @user_data
+ * g_socket_control_message_get_level:
+ * @message: a #GSocketControlMessage
*
- * Sets up a child setup function.
+ * Returns the "level" (i.e. the originating protocol) of the control message.
+ * This is often SOL_SOCKET.
*
- * The child setup function will be called after fork() but before
- * exec() on the child's side.
+ * Returns: an integer describing the level
+ * Since: 2.22
+ */
+
+
+/**
+ * g_socket_control_message_get_msg_type:
+ * @message: a #GSocketControlMessage
*
- * @destroy_notify will not be automatically called on the child's side
- * of the fork(). It will only be called when the last reference on the
- * #GSubprocessLauncher is dropped or when a new child setup function is
- * given.
+ * Returns the protocol specific type of the control message.
+ * For instance, for UNIX fd passing this would be SCM_RIGHTS.
*
- * %NULL can be given as @child_setup to disable the functionality.
+ * Returns: an integer describing the type of control message
+ * Since: 2.22
+ */
+
+
+/**
+ * g_socket_control_message_get_size:
+ * @message: a #GSocketControlMessage
*
- * Child setup functions are only available on UNIX.
+ * Returns the space required for the control message, not including
+ * headers or alignment.
*
- * Since: 2.40
+ * Returns: The number of bytes required.
+ * Since: 2.22
*/
/**
- * g_subprocess_launcher_set_cwd:
- * @self: a #GSubprocess
- * @cwd: (type filename): the cwd for launched processes
+ * g_socket_control_message_serialize:
+ * @message: a #GSocketControlMessage
+ * @data: (not nullable): A buffer to write data to
*
- * Sets the current working directory that processes will be launched
- * with.
+ * Converts the data in the message to bytes placed in the
+ * message.
*
- * By default processes are launched with the current working directory
- * of the launching process at the time of launch.
+ * @data is guaranteed to have enough space to fit the size
+ * returned by g_socket_control_message_get_size() on this
+ * object.
*
- * Since: 2.40
+ * Since: 2.22
*/
/**
- * g_subprocess_launcher_set_environ:
- * @self: a #GSubprocess
- * @env: (array zero-terminated=1) (element-type filename) (transfer none):
- * the replacement environment
+ * g_socket_create_source: (skip)
+ * @socket: a #GSocket
+ * @condition: a #GIOCondition mask to monitor
+ * @cancellable: (nullable): a %GCancellable or %NULL
*
- * Replace the entire environment of processes launched from this
- * launcher with the given 'environ' variable.
+ * Creates a #GSource that can be attached to a %GMainContext to monitor
+ * for the availability of the specified @condition on the socket. The #GSource
+ * keeps a reference to the @socket.
*
- * Typically you will build this variable by using g_listenv() to copy
- * the process 'environ' and using the functions g_environ_setenv(),
- * g_environ_unsetenv(), etc.
+ * The callback on the source is of the #GSocketSourceFunc type.
*
- * As an alternative, you can use g_subprocess_launcher_setenv(),
- * g_subprocess_launcher_unsetenv(), etc.
+ * It is meaningless to specify %G_IO_ERR or %G_IO_HUP in @condition;
+ * these conditions will always be reported output if they are true.
*
- * Pass an empty array to set an empty environment. Pass %NULL to inherit the
- * parent process’ environment. As of GLib 2.54, the parent process’ environment
- * will be copied when g_subprocess_launcher_set_environ() is called.
- * Previously, it was copied when the subprocess was executed. This means the
- * copied environment may now be modified (using g_subprocess_launcher_setenv(),
- * etc.) before launching the subprocess.
+ * @cancellable if not %NULL can be used to cancel the source, which will
+ * cause the source to trigger, reporting the current condition (which
+ * is likely 0 unless cancellation happened at the same time as a
+ * condition change). You can check for this in the callback using
+ * g_cancellable_is_cancelled().
*
- * On UNIX, all strings in this array can be arbitrary byte strings.
- * On Windows, they should be in UTF-8.
+ * If @socket has a timeout set, and it is reached before @condition
+ * occurs, the source will then trigger anyway, reporting %G_IO_IN or
+ * %G_IO_OUT depending on @condition. However, @socket will have been
+ * marked as having had a timeout, and so the next #GSocket I/O method
+ * you call will then fail with a %G_IO_ERROR_TIMED_OUT.
*
- * Since: 2.40
+ * Returns: (transfer full): a newly allocated %GSource, free with g_source_unref().
+ * Since: 2.22
*/
/**
- * g_subprocess_launcher_set_flags:
- * @self: a #GSubprocessLauncher
- * @flags: #GSubprocessFlags
- *
- * Sets the flags on the launcher.
+ * g_socket_get_available_bytes:
+ * @socket: a #GSocket
*
- * The default flags are %G_SUBPROCESS_FLAGS_NONE.
+ * Get the amount of data pending in the OS input buffer, without blocking.
*
- * You may not set flags that specify conflicting options for how to
- * handle a particular stdio stream (eg: specifying both
- * %G_SUBPROCESS_FLAGS_STDIN_PIPE and
- * %G_SUBPROCESS_FLAGS_STDIN_INHERIT).
+ * If @socket is a UDP or SCTP socket, this will return the size of
+ * just the next packet, even if additional packets are buffered after
+ * that one.
*
- * You may also not set a flag that conflicts with a previous call to a
- * function like g_subprocess_launcher_set_stdin_file_path() or
- * g_subprocess_launcher_take_stdout_fd().
+ * Note that on Windows, this function is rather inefficient in the
+ * UDP case, and so if you know any plausible upper bound on the size
+ * of the incoming packet, it is better to just do a
+ * g_socket_receive() with a buffer of that size, rather than calling
+ * g_socket_get_available_bytes() first and then doing a receive of
+ * exactly the right size.
*
- * Since: 2.40
+ * Returns: the number of bytes that can be read from the socket
+ * without blocking or truncating, or -1 on error.
+ * Since: 2.32
*/
/**
- * g_subprocess_launcher_set_stderr_file_path:
- * @self: a #GSubprocessLauncher
- * @path: (type filename) (nullable): a filename or %NULL
- *
- * Sets the file path to use as the stderr for spawned processes.
- *
- * If @path is %NULL then any previously given path is unset.
- *
- * The file will be created or truncated when the process is spawned, as
- * would be the case if using '2>' at the shell.
+ * g_socket_get_blocking:
+ * @socket: a #GSocket.
*
- * If you want to send both stdout and stderr to the same file then use
- * %G_SUBPROCESS_FLAGS_STDERR_MERGE.
+ * Gets the blocking mode of the socket. For details on blocking I/O,
+ * see g_socket_set_blocking().
*
- * You may not set a stderr file path if a stderr fd is already set or
- * if the launcher flags contain any flags directing stderr elsewhere.
+ * Returns: %TRUE if blocking I/O is used, %FALSE otherwise.
+ * Since: 2.22
+ */
+
+
+/**
+ * g_socket_get_broadcast:
+ * @socket: a #GSocket.
*
- * This feature is only available on UNIX.
+ * Gets the broadcast setting on @socket; if %TRUE,
+ * it is possible to send packets to broadcast
+ * addresses.
*
- * Since: 2.40
+ * Returns: the broadcast setting on @socket
+ * Since: 2.32
*/
/**
- * g_subprocess_launcher_set_stdin_file_path:
- * @self: a #GSubprocessLauncher
- * @path:
+ * g_socket_get_credentials:
+ * @socket: a #GSocket.
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Sets the file path to use as the stdin for spawned processes.
+ * Returns the credentials of the foreign process connected to this
+ * socket, if any (e.g. it is only supported for %G_SOCKET_FAMILY_UNIX
+ * sockets).
*
- * If @path is %NULL then any previously given path is unset.
+ * If this operation isn't supported on the OS, the method fails with
+ * the %G_IO_ERROR_NOT_SUPPORTED error. On Linux this is implemented
+ * by reading the %SO_PEERCRED option on the underlying socket.
*
- * The file must exist or spawning the process will fail.
+ * Other ways to obtain credentials from a foreign peer includes the
+ * #GUnixCredentialsMessage type and
+ * g_unix_connection_send_credentials() /
+ * g_unix_connection_receive_credentials() functions.
*
- * You may not set a stdin file path if a stdin fd is already set or if
- * the launcher flags contain any flags directing stdin elsewhere.
+ * Returns: (transfer full): %NULL if @error is set, otherwise a #GCredentials object
+ * that must be freed with g_object_unref().
+ * Since: 2.26
+ */
+
+
+/**
+ * g_socket_get_family:
+ * @socket: a #GSocket.
*
- * This feature is only available on UNIX.
+ * Gets the socket family of the socket.
*
- * Since: 2.40
+ * Returns: a #GSocketFamily
+ * Since: 2.22
*/
/**
- * g_subprocess_launcher_set_stdout_file_path:
- * @self: a #GSubprocessLauncher
- * @path: (type filename) (nullable): a filename or %NULL
+ * g_socket_get_fd:
+ * @socket: a #GSocket.
*
- * Sets the file path to use as the stdout for spawned processes.
+ * Returns the underlying OS socket object. On unix this
+ * is a socket file descriptor, and on Windows this is
+ * a Winsock2 SOCKET handle. This may be useful for
+ * doing platform specific or otherwise unusual operations
+ * on the socket.
*
- * If @path is %NULL then any previously given path is unset.
+ * Returns: the file descriptor of the socket.
+ * Since: 2.22
+ */
+
+
+/**
+ * g_socket_get_keepalive:
+ * @socket: a #GSocket.
*
- * The file will be created or truncated when the process is spawned, as
- * would be the case if using '>' at the shell.
+ * Gets the keepalive mode of the socket. For details on this,
+ * see g_socket_set_keepalive().
*
- * You may not set a stdout file path if a stdout fd is already set or
- * if the launcher flags contain any flags directing stdout elsewhere.
+ * Returns: %TRUE if keepalive is active, %FALSE otherwise.
+ * Since: 2.22
+ */
+
+
+/**
+ * g_socket_get_listen_backlog:
+ * @socket: a #GSocket.
*
- * This feature is only available on UNIX.
+ * Gets the listen backlog setting of the socket. For details on this,
+ * see g_socket_set_listen_backlog().
*
- * Since: 2.40
+ * Returns: the maximum number of pending connections.
+ * Since: 2.22
*/
/**
- * g_subprocess_launcher_setenv:
- * @self: a #GSubprocess
- * @variable: (type filename): the environment variable to set,
- * must not contain '='
- * @value: (type filename): the new value for the variable
- * @overwrite: whether to change the variable if it already exists
- *
- * Sets the environment variable @variable in the environment of
- * processes launched from this launcher.
+ * g_socket_get_local_address:
+ * @socket: a #GSocket.
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * 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.
+ * Try to get the local address of a bound socket. This is only
+ * useful if the socket has been bound to a local address,
+ * either explicitly or implicitly when connecting.
*
- * Since: 2.40
+ * Returns: (transfer full): a #GSocketAddress or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_subprocess_launcher_spawn:
- * @self: a #GSubprocessLauncher
- * @error: Error
- * @argv0: Command line arguments
- * @...: Continued arguments, %NULL terminated
+ * g_socket_get_multicast_loopback:
+ * @socket: a #GSocket.
*
- * Creates a #GSubprocess given a provided varargs list of arguments.
+ * Gets the multicast loopback setting on @socket; if %TRUE (the
+ * default), outgoing multicast packets will be looped back to
+ * multicast listeners on the same host.
*
- * Since: 2.40
- * Returns: (transfer full): A new #GSubprocess, or %NULL on error (and @error will be set)
+ * Returns: the multicast loopback setting on @socket
+ * Since: 2.32
*/
/**
- * g_subprocess_launcher_spawnv:
- * @self: a #GSubprocessLauncher
- * @argv: (array zero-terminated=1) (element-type filename): Command line arguments
- * @error: Error
+ * g_socket_get_multicast_ttl:
+ * @socket: a #GSocket.
*
- * Creates a #GSubprocess given a provided array of arguments.
+ * Gets the multicast time-to-live setting on @socket; see
+ * g_socket_set_multicast_ttl() for more details.
*
- * Since: 2.40
- * Returns: (transfer full): A new #GSubprocess, or %NULL on error (and @error will be set)
+ * Returns: the multicast time-to-live setting on @socket
+ * Since: 2.32
*/
/**
- * g_subprocess_launcher_take_fd:
- * @self: a #GSubprocessLauncher
- * @source_fd: File descriptor in parent process
- * @target_fd: Target descriptor for child process
+ * g_socket_get_option:
+ * @socket: a #GSocket
+ * @level: the "API level" of the option (eg, `SOL_SOCKET`)
+ * @optname: the "name" of the option (eg, `SO_BROADCAST`)
+ * @value: (out): return location for the option value
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Transfer an arbitrary file descriptor from parent process to the
- * child. This function takes "ownership" of the fd; it will be closed
- * in the parent when @self is freed.
+ * Gets the value of an integer-valued option on @socket, as with
+ * getsockopt(). (If you need to fetch a non-integer-valued option,
+ * you will need to call getsockopt() directly.)
*
- * By default, all file descriptors from the parent will be closed.
- * This function allows you to create (for example) a custom pipe() or
- * socketpair() before launching the process, and choose the target
- * descriptor in the child.
+ * The [<gio/gnetworking.h>][gio-gnetworking.h]
+ * header pulls in system headers that will define most of the
+ * standard/portable socket options. For unusual socket protocols or
+ * platform-dependent options, you may need to include additional
+ * headers.
*
- * An example use case is GNUPG, which has a command line argument
- * --passphrase-fd providing a file descriptor number where it expects
- * the passphrase to be written.
+ * Note that even for socket options that are a single byte in size,
+ * @value is still a pointer to a #gint variable, not a #guchar;
+ * g_socket_get_option() will handle the conversion internally.
+ *
+ * Returns: success or failure. On failure, @error will be set, and
+ * the system error value (`errno` or WSAGetLastError()) will still
+ * be set to the result of the getsockopt() call.
+ * Since: 2.36
*/
/**
- * g_subprocess_launcher_take_stderr_fd:
- * @self: a #GSubprocessLauncher
- * @fd: a file descriptor, or -1
- *
- * Sets the file descriptor to use as the stderr for spawned processes.
- *
- * If @fd is -1 then any previously given fd is unset.
- *
- * Note that the default behaviour is to pass stderr through to the
- * stderr of the parent process.
- *
- * The passed @fd belongs to the #GSubprocessLauncher. It will be
- * automatically closed when the launcher is finalized. The file
- * descriptor will also be closed on the child side when executing the
- * spawned process.
- *
- * You may not set a stderr fd if a stderr file path is already set or
- * if the launcher flags contain any flags directing stderr elsewhere.
+ * g_socket_get_protocol:
+ * @socket: a #GSocket.
*
- * This feature is only available on UNIX.
+ * Gets the socket protocol id the socket was created with.
+ * In case the protocol is unknown, -1 is returned.
*
- * Since: 2.40
+ * Returns: a protocol id, or -1 if unknown
+ * Since: 2.22
*/
/**
- * g_subprocess_launcher_take_stdin_fd:
- * @self: a #GSubprocessLauncher
- * @fd: a file descriptor, or -1
- *
- * Sets the file descriptor to use as the stdin for spawned processes.
- *
- * If @fd is -1 then any previously given fd is unset.
- *
- * Note that if your intention is to have the stdin of the calling
- * process inherited by the child then %G_SUBPROCESS_FLAGS_STDIN_INHERIT
- * is a better way to go about doing that.
- *
- * The passed @fd is noted but will not be touched in the current
- * process. It is therefore necessary that it be kept open by the
- * caller until the subprocess is spawned. The file descriptor will
- * also not be explicitly closed on the child side, so it must be marked
- * O_CLOEXEC if that's what you want.
- *
- * You may not set a stdin fd if a stdin file path is already set or if
- * the launcher flags contain any flags directing stdin elsewhere.
+ * g_socket_get_remote_address:
+ * @socket: a #GSocket.
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * This feature is only available on UNIX.
+ * Try to get the remote address of a connected socket. This is only
+ * useful for connection oriented sockets that have been connected.
*
- * Since: 2.40
+ * Returns: (transfer full): a #GSocketAddress or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_subprocess_launcher_take_stdout_fd:
- * @self: a #GSubprocessLauncher
- * @fd: a file descriptor, or -1
- *
- * Sets the file descriptor to use as the stdout for spawned processes.
- *
- * If @fd is -1 then any previously given fd is unset.
- *
- * Note that the default behaviour is to pass stdout through to the
- * stdout of the parent process.
+ * g_socket_get_socket_type:
+ * @socket: a #GSocket.
*
- * The passed @fd is noted but will not be touched in the current
- * process. It is therefore necessary that it be kept open by the
- * caller until the subprocess is spawned. The file descriptor will
- * also not be explicitly closed on the child side, so it must be marked
- * O_CLOEXEC if that's what you want.
+ * Gets the socket type of the socket.
*
- * You may not set a stdout fd if a stdout file path is already set or
- * if the launcher flags contain any flags directing stdout elsewhere.
+ * Returns: a #GSocketType
+ * Since: 2.22
+ */
+
+
+/**
+ * g_socket_get_timeout:
+ * @socket: a #GSocket.
*
- * This feature is only available on UNIX.
+ * Gets the timeout setting of the socket. For details on this, see
+ * g_socket_set_timeout().
*
- * Since: 2.40
+ * Returns: the timeout in seconds
+ * Since: 2.26
*/
/**
- * g_subprocess_launcher_unsetenv:
- * @self: a #GSubprocess
- * @variable: (type filename): the environment variable to unset,
- * must not contain '='
- *
- * Removes the environment variable @variable from the environment of
- * processes launched from this launcher.
+ * g_socket_get_ttl:
+ * @socket: a #GSocket.
*
- * On UNIX, the variable's name can be an arbitrary byte string not
- * containing '='. On Windows, it should be in UTF-8.
+ * Gets the unicast time-to-live setting on @socket; see
+ * g_socket_set_ttl() for more details.
*
- * Since: 2.40
+ * Returns: the time-to-live setting on @socket
+ * Since: 2.32
*/
/**
- * g_subprocess_new: (skip)
- * @flags: flags that define the behaviour of the subprocess
- * @error: (nullable): return location for an error, or %NULL
- * @argv0: first commandline argument to pass to the subprocess
- * @...: more commandline arguments, followed by %NULL
- *
- * Create a new process with the given flags and varargs argument
- * list. By default, matching the g_spawn_async() defaults, the
- * child's stdin will be set to the system null device, and
- * stdout/stderr will be inherited from the parent. You can use
- * @flags to control this behavior.
+ * g_socket_is_closed:
+ * @socket: a #GSocket
*
- * The argument list must be terminated with %NULL.
+ * Checks whether a socket is closed.
*
- * Returns: A newly created #GSubprocess, or %NULL on error (and @error
- * will be set)
- * Since: 2.40
+ * Returns: %TRUE if socket is closed, %FALSE otherwise
+ * Since: 2.22
*/
/**
- * g_subprocess_newv: (rename-to g_subprocess_new)
- * @argv: (array zero-terminated=1) (element-type filename): commandline arguments for the subprocess
- * @flags: flags that define the behaviour of the subprocess
- * @error: (nullable): return location for an error, or %NULL
+ * g_socket_is_connected:
+ * @socket: a #GSocket.
*
- * Create a new process with the given flags and argument list.
+ * Check whether the socket is connected. This is only useful for
+ * connection-oriented sockets.
*
- * The argument list is expected to be %NULL-terminated.
+ * If using g_socket_shutdown(), this function will return %TRUE until the
+ * socket has been shut down for reading and writing. If you do a non-blocking
+ * connect, this function will not return %TRUE until after you call
+ * g_socket_check_connect_result().
*
- * Returns: A newly created #GSubprocess, or %NULL on error (and @error
- * will be set)
- * Since: 2.40
+ * Returns: %TRUE if socket is connected, %FALSE otherwise.
+ * Since: 2.22
*/
/**
- * g_subprocess_send_signal:
- * @subprocess: a #GSubprocess
- * @signal_num: the signal number to send
+ * g_socket_join_multicast_group:
+ * @socket: a #GSocket.
+ * @group: a #GInetAddress specifying the group address to join.
+ * @iface: (nullable): Name of the interface to use, or %NULL
+ * @source_specific: %TRUE if source-specific multicast should be used
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Sends the UNIX signal @signal_num to the subprocess, if it is still
- * running.
+ * Registers @socket to receive multicast messages sent to @group.
+ * @socket must be a %G_SOCKET_TYPE_DATAGRAM socket, and must have
+ * been bound to an appropriate interface and port with
+ * g_socket_bind().
*
- * This API is race-free. If the subprocess has terminated, it will not
- * be signalled.
+ * If @iface is %NULL, the system will automatically pick an interface
+ * to bind to based on @group.
*
- * This API is not available on Windows.
+ * If @source_specific is %TRUE, source-specific multicast as defined
+ * in RFC 4604 is used. Note that on older platforms this may fail
+ * with a %G_IO_ERROR_NOT_SUPPORTED error.
*
- * Since: 2.40
+ * To bind to a given source-specific multicast address, use
+ * g_socket_join_multicast_group_ssm() instead.
+ *
+ * Returns: %TRUE on success, %FALSE on error.
+ * Since: 2.32
*/
/**
- * g_subprocess_wait:
- * @subprocess: a #GSubprocess
- * @cancellable: a #GCancellable
- * @error: a #GError
+ * g_socket_join_multicast_group_ssm:
+ * @socket: a #GSocket.
+ * @group: a #GInetAddress specifying the group address to join.
+ * @source_specific: (nullable): a #GInetAddress specifying the
+ * source-specific multicast address or %NULL to ignore.
+ * @iface: (nullable): Name of the interface to use, or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Synchronously wait for the subprocess to terminate.
+ * Registers @socket to receive multicast messages sent to @group.
+ * @socket must be a %G_SOCKET_TYPE_DATAGRAM socket, and must have
+ * been bound to an appropriate interface and port with
+ * g_socket_bind().
*
- * After the process terminates you can query its exit status with
- * functions such as g_subprocess_get_if_exited() and
- * g_subprocess_get_exit_status().
+ * If @iface is %NULL, the system will automatically pick an interface
+ * to bind to based on @group.
*
- * This function does not fail in the case of the subprocess having
- * abnormal termination. See g_subprocess_wait_check() for that.
+ * If @source_specific is not %NULL, use source-specific multicast as
+ * defined in RFC 4604. Note that on older platforms this may fail
+ * with a %G_IO_ERROR_NOT_SUPPORTED error.
*
- * Cancelling @cancellable doesn't kill the subprocess. Call
- * g_subprocess_force_exit() if it is desirable.
+ * Note that this function can be called multiple times for the same
+ * @group with different @source_specific in order to receive multicast
+ * packets from more than one source.
*
- * Returns: %TRUE on success, %FALSE if @cancellable was cancelled
- * Since: 2.40
+ * Returns: %TRUE on success, %FALSE on error.
+ * Since: 2.56
*/
/**
- * g_subprocess_wait_async:
- * @subprocess: a #GSubprocess
- * @cancellable: a #GCancellable, or %NULL
- * @callback: a #GAsyncReadyCallback to call when the operation is complete
- * @user_data: user_data for @callback
+ * g_socket_leave_multicast_group:
+ * @socket: a #GSocket.
+ * @group: a #GInetAddress specifying the group address to leave.
+ * @iface: (nullable): Interface used
+ * @source_specific: %TRUE if source-specific multicast was used
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Wait for the subprocess to terminate.
+ * Removes @socket from the multicast group defined by @group, @iface,
+ * and @source_specific (which must all have the same values they had
+ * when you joined the group).
*
- * This is the asynchronous version of g_subprocess_wait().
+ * @socket remains bound to its address and port, and can still receive
+ * unicast messages after calling this.
*
- * Since: 2.40
+ * To unbind to a given source-specific multicast address, use
+ * g_socket_leave_multicast_group_ssm() instead.
+ *
+ * Returns: %TRUE on success, %FALSE on error.
+ * Since: 2.32
*/
/**
- * g_subprocess_wait_check:
- * @subprocess: a #GSubprocess
- * @cancellable: a #GCancellable
- * @error: a #GError
+ * g_socket_leave_multicast_group_ssm:
+ * @socket: a #GSocket.
+ * @group: a #GInetAddress specifying the group address to leave.
+ * @source_specific: (nullable): a #GInetAddress specifying the
+ * source-specific multicast address or %NULL to ignore.
+ * @iface: (nullable): Name of the interface to use, or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Combines g_subprocess_wait() with g_spawn_check_exit_status().
+ * Removes @socket from the multicast group defined by @group, @iface,
+ * and @source_specific (which must all have the same values they had
+ * when you joined the group).
*
- * Returns: %TRUE on success, %FALSE if process exited abnormally, or
- * @cancellable was cancelled
- * Since: 2.40
+ * @socket remains bound to its address and port, and can still receive
+ * unicast messages after calling this.
+ *
+ * Returns: %TRUE on success, %FALSE on error.
+ * Since: 2.56
*/
/**
- * g_subprocess_wait_check_async:
- * @subprocess: a #GSubprocess
- * @cancellable: a #GCancellable, or %NULL
- * @callback: a #GAsyncReadyCallback to call when the operation is complete
- * @user_data: user_data for @callback
+ * g_socket_listen:
+ * @socket: a #GSocket.
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Combines g_subprocess_wait_async() with g_spawn_check_exit_status().
+ * Marks the socket as a server socket, i.e. a socket that is used
+ * to accept incoming requests using g_socket_accept().
*
- * This is the asynchronous version of g_subprocess_wait_check().
+ * Before calling this the socket must be bound to a local address using
+ * g_socket_bind().
*
- * Since: 2.40
+ * To set the maximum amount of outstanding clients, use
+ * g_socket_set_listen_backlog().
+ *
+ * Returns: %TRUE on success, %FALSE on error.
+ * Since: 2.22
*/
/**
- * g_subprocess_wait_check_finish:
- * @subprocess: a #GSubprocess
- * @result: the #GAsyncResult passed to your #GAsyncReadyCallback
- * @error: a pointer to a %NULL #GError, or %NULL
+ * g_socket_listener_accept:
+ * @listener: a #GSocketListener
+ * @source_object: (out) (transfer none) (optional) (nullable): location where #GObject pointer will be stored, or %NULL
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Collects the result of a previous call to
- * g_subprocess_wait_check_async().
+ * Blocks waiting for a client to connect to any of the sockets added
+ * to the listener. Returns a #GSocketConnection for the socket that was
+ * accepted.
*
- * Returns: %TRUE if successful, or %FALSE with @error set
- * Since: 2.40
+ * If @source_object is not %NULL it will be filled out with the source
+ * object specified when the corresponding socket or address was added
+ * to the listener.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
+ * Since: 2.22
*/
/**
- * g_subprocess_wait_finish:
- * @subprocess: a #GSubprocess
- * @result: the #GAsyncResult passed to your #GAsyncReadyCallback
- * @error: a pointer to a %NULL #GError, or %NULL
+ * g_socket_listener_accept_async:
+ * @listener: a #GSocketListener
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
- * Collects the result of a previous call to
- * g_subprocess_wait_async().
+ * This is the asynchronous version of g_socket_listener_accept().
*
- * Returns: %TRUE if successful, or %FALSE with @error set
- * Since: 2.40
+ * When the operation is finished @callback will be
+ * called. You can then call g_socket_listener_accept_socket()
+ * to get the result of the operation.
+ *
+ * Since: 2.22
*/
/**
- * g_task_attach_source:
- * @task: a #GTask
- * @source: the source to attach
- * @callback: the callback to invoke when @source triggers
- *
- * A utility function for dealing with async operations where you need
- * to wait for a #GSource to trigger. Attaches @source to @task's
- * #GMainContext with @task's [priority][io-priority], and sets @source's
- * callback to @callback, with @task as the callback's `user_data`.
+ * g_socket_listener_accept_finish:
+ * @listener: a #GSocketListener
+ * @result: a #GAsyncResult.
+ * @source_object: (out) (transfer none) (optional) (nullable): Optional #GObject identifying this source
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * This takes a reference on @task until @source is destroyed.
+ * Finishes an async accept operation. See g_socket_listener_accept_async()
*
- * Since: 2.36
+ * Returns: (transfer full): a #GSocketConnection on success, %NULL on error.
+ * Since: 2.22
*/
/**
- * g_task_get_cancellable:
- * @task: a #GTask
+ * g_socket_listener_accept_socket:
+ * @listener: a #GSocketListener
+ * @source_object: (out) (transfer none) (optional) (nullable): location where #GObject pointer will be stored, or %NULL.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Gets @task's #GCancellable
+ * Blocks waiting for a client to connect to any of the sockets added
+ * to the listener. Returns the #GSocket that was accepted.
*
- * Returns: (transfer none): @task's #GCancellable
- * Since: 2.36
+ * If you want to accept the high-level #GSocketConnection, not a #GSocket,
+ * which is often the case, then you should use g_socket_listener_accept()
+ * instead.
+ *
+ * If @source_object is not %NULL it will be filled out with the source
+ * object specified when the corresponding socket or address was added
+ * to the listener.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by
+ * triggering the cancellable object from another thread. If the operation
+ * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
+ *
+ * Returns: (transfer full): a #GSocket on success, %NULL on error.
+ * Since: 2.22
*/
/**
- * g_task_get_check_cancellable:
- * @task: the #GTask
+ * g_socket_listener_accept_socket_async:
+ * @listener: a #GSocketListener
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
- * Gets @task's check-cancellable flag. See
- * g_task_set_check_cancellable() for more details.
+ * This is the asynchronous version of g_socket_listener_accept_socket().
*
- * Since: 2.36
+ * When the operation is finished @callback will be
+ * called. You can then call g_socket_listener_accept_socket_finish()
+ * to get the result of the operation.
+ *
+ * Since: 2.22
*/
/**
- * g_task_get_completed:
- * @task: a #GTask.
+ * g_socket_listener_accept_socket_finish:
+ * @listener: a #GSocketListener
+ * @result: a #GAsyncResult.
+ * @source_object: (out) (transfer none) (optional) (nullable): Optional #GObject identifying this source
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * 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.
+ * Finishes an async accept operation. See g_socket_listener_accept_socket_async()
*
- * Returns: %TRUE if the task has completed, %FALSE otherwise.
- * Since: 2.44
+ * Returns: (transfer full): a #GSocket on success, %NULL on error.
+ * Since: 2.22
*/
/**
- * g_task_get_context:
- * @task: a #GTask
+ * g_socket_listener_add_address:
+ * @listener: a #GSocketListener
+ * @address: a #GSocketAddress
+ * @type: a #GSocketType
+ * @protocol: a #GSocketProtocol
+ * @source_object: (nullable): Optional #GObject identifying this source
+ * @effective_address: (out) (optional): location to store the address that was bound to, or %NULL.
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Gets the #GMainContext that @task will return its result in (that
- * is, the context that was the
- * [thread-default main context][g-main-context-push-thread-default]
- * at the point when @task was created).
+ * Creates a socket of type @type and protocol @protocol, binds
+ * it to @address and adds it to the set of sockets we're accepting
+ * sockets from.
*
- * This will always return a non-%NULL value, even if the task's
- * context is the default #GMainContext.
+ * Note that adding an IPv6 address, depending on the platform,
+ * may or may not result in a listener that also accepts IPv4
+ * connections. For more deterministic behavior, see
+ * g_socket_listener_add_inet_port().
*
- * Returns: (transfer none): @task's #GMainContext
- * Since: 2.36
+ * @source_object will be passed out in the various calls
+ * to accept to identify this particular source, which is
+ * useful if you're listening on multiple addresses and do
+ * different things depending on what address is connected to.
+ *
+ * If successful and @effective_address is non-%NULL then it will
+ * be set to the address that the binding actually occurred at. This
+ * is helpful for determining the port number that was used for when
+ * requesting a binding to port 0 (ie: "any port"). This address, if
+ * requested, belongs to the caller and must be freed.
+ *
+ * Call g_socket_listener_close() to stop listening on @address; this will not
+ * be done automatically when you drop your final reference to @listener, as
+ * references may be held internally.
+ *
+ * Returns: %TRUE on success, %FALSE on error.
+ * Since: 2.22
*/
/**
- * g_task_get_priority:
- * @task: a #GTask
+ * g_socket_listener_add_any_inet_port:
+ * @listener: a #GSocketListener
+ * @source_object: (nullable): Optional #GObject identifying this source
+ * @error: a #GError location to store the error occurring, or %NULL to
+ * ignore.
*
- * Gets @task's priority
+ * Listens for TCP connections on any available port number for both
+ * IPv6 and IPv4 (if each is available).
*
- * Returns: @task's priority
- * Since: 2.36
+ * This is useful if you need to have a socket for incoming connections
+ * but don't care about the specific port number.
+ *
+ * @source_object will be passed out in the various calls
+ * to accept to identify this particular source, which is
+ * useful if you're listening on multiple addresses and do
+ * different things depending on what address is connected to.
+ *
+ * Returns: the port number, or 0 in case of failure.
+ * Since: 2.24
*/
/**
- * g_task_get_return_on_cancel:
- * @task: the #GTask
+ * g_socket_listener_add_inet_port:
+ * @listener: a #GSocketListener
+ * @port: an IP port number (non-zero)
+ * @source_object: (nullable): Optional #GObject identifying this source
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Gets @task's return-on-cancel flag. See
- * g_task_set_return_on_cancel() for more details.
+ * Helper function for g_socket_listener_add_address() that
+ * creates a TCP/IP socket listening on IPv4 and IPv6 (if
+ * supported) on the specified port on all interfaces.
*
- * Since: 2.36
+ * @source_object will be passed out in the various calls
+ * to accept to identify this particular source, which is
+ * useful if you're listening on multiple addresses and do
+ * different things depending on what address is connected to.
+ *
+ * Call g_socket_listener_close() to stop listening on @port; this will not
+ * be done automatically when you drop your final reference to @listener, as
+ * references may be held internally.
+ *
+ * Returns: %TRUE on success, %FALSE on error.
+ * Since: 2.22
*/
/**
- * g_task_get_source_object:
- * @task: a #GTask
+ * g_socket_listener_add_socket:
+ * @listener: a #GSocketListener
+ * @socket: a listening #GSocket
+ * @source_object: (nullable): Optional #GObject identifying this source
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Gets the source object from @task. Like
- * g_async_result_get_source_object(), but does not ref the object.
+ * Adds @socket to the set of sockets that we try to accept
+ * new clients from. The socket must be bound to a local
+ * address and listened to.
*
- * Returns: (transfer none) (nullable) (type GObject): @task's source object, or %NULL
- * Since: 2.36
+ * @source_object will be passed out in the various calls
+ * to accept to identify this particular source, which is
+ * useful if you're listening on multiple addresses and do
+ * different things depending on what address is connected to.
+ *
+ * The @socket will not be automatically closed when the @listener is finalized
+ * unless the listener held the final reference to the socket. Before GLib 2.42,
+ * the @socket was automatically closed on finalization of the @listener, even
+ * if references to it were held elsewhere.
+ *
+ * Returns: %TRUE on success, %FALSE on error.
+ * Since: 2.22
*/
/**
- * g_task_get_source_tag:
- * @task: a #GTask
+ * g_socket_listener_close:
+ * @listener: a #GSocketListener
*
- * Gets @task's source tag. See g_task_set_source_tag().
+ * Closes all the sockets in the listener.
*
- * Returns: (transfer none): @task's source tag
- * Since: 2.36
+ * Since: 2.22
*/
/**
- * g_task_get_task_data:
- * @task: a #GTask
+ * g_socket_listener_new:
*
- * Gets @task's `task_data`.
+ * Creates a new #GSocketListener with no sockets to listen for.
+ * New listeners can be added with e.g. g_socket_listener_add_address()
+ * or g_socket_listener_add_inet_port().
*
- * Returns: (transfer none): @task's `task_data`.
- * Since: 2.36
+ * Returns: a new #GSocketListener.
+ * Since: 2.22
*/
/**
- * g_task_had_error:
- * @task: a #GTask.
+ * g_socket_listener_set_backlog:
+ * @listener: a #GSocketListener
+ * @listen_backlog: an integer
*
- * Tests if @task resulted in an error.
+ * Sets the listen backlog on the sockets in the listener.
*
- * Returns: %TRUE if the task resulted in an error, %FALSE otherwise.
- * Since: 2.36
+ * See g_socket_set_listen_backlog() for details
+ *
+ * Since: 2.22
*/
/**
- * g_task_is_valid:
- * @result: (type Gio.AsyncResult): A #GAsyncResult
- * @source_object: (nullable) (type GObject): the source object
- * expected to be associated with the task
+ * g_socket_new:
+ * @family: the socket family to use, e.g. %G_SOCKET_FAMILY_IPV4.
+ * @type: the socket type to use.
+ * @protocol: the id of the protocol to use, or 0 for default.
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Checks that @result is a #GTask, and that @source_object is its
- * source object (or that @source_object is %NULL and @result has no
- * source object). This can be used in g_return_if_fail() checks.
+ * Creates a new #GSocket with the defined family, type and protocol.
+ * If @protocol is 0 (%G_SOCKET_PROTOCOL_DEFAULT) the default protocol type
+ * for the family and type is used.
*
- * Returns: %TRUE if @result and @source_object are valid, %FALSE
- * if not
- * Since: 2.36
+ * The @protocol is a family and type specific int that specifies what
+ * kind of protocol to use. #GSocketProtocol lists several common ones.
+ * Many families only support one protocol, and use 0 for this, others
+ * support several and using 0 means to use the default protocol for
+ * the family and type.
+ *
+ * The protocol id is passed directly to the operating
+ * system, so you can use protocols not listed in #GSocketProtocol if you
+ * know the protocol number used for it.
+ *
+ * Returns: a #GSocket or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_task_new:
- * @source_object: (nullable) (type GObject): the #GObject that owns
- * this task, or %NULL.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @callback_data: (closure): user data passed to @callback.
+ * g_socket_new_from_fd:
+ * @fd: a native socket file descriptor.
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Creates a #GTask acting on @source_object, which will eventually be
- * used to invoke @callback in the current
- * [thread-default main context][g-main-context-push-thread-default].
+ * Creates a new #GSocket from a native file descriptor
+ * or winsock SOCKET handle.
*
- * Call this in the "start" method of your asynchronous method, and
- * pass the #GTask around throughout the asynchronous operation. You
- * can use g_task_set_task_data() to attach task-specific data to the
- * object, which you can retrieve later via g_task_get_task_data().
+ * This reads all the settings from the file descriptor so that
+ * all properties should work. Note that the file descriptor
+ * will be set to non-blocking mode, independent on the blocking
+ * mode of the #GSocket.
*
- * By default, if @cancellable is cancelled, then the return value of
- * the task will always be %G_IO_ERROR_CANCELLED, even if the task had
- * already completed before the cancellation. This allows for
- * simplified handling in cases where cancellation may imply that
- * other objects that the task depends on have been destroyed. If you
- * do not want this behavior, you can use
- * g_task_set_check_cancellable() to change it.
+ * On success, the returned #GSocket takes ownership of @fd. On failure, the
+ * caller must close @fd themselves.
*
- * Returns: a #GTask.
- * Since: 2.36
+ * 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
+ *
+ * Returns: a #GSocket or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.22
*/
/**
- * g_task_propagate_boolean:
- * @task: a #GTask.
- * @error: return location for a #GError
+ * g_socket_receive:
+ * @socket: a #GSocket
+ * @buffer: (array length=size) (element-type guint8): a buffer to
+ * read data into (which should be at least @size bytes long).
+ * @size: the number of bytes you want to read from the socket
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Gets the result of @task as a #gboolean.
+ * Receive data (up to @size bytes) from a socket. This is mainly used by
+ * connection-oriented sockets; it is identical to g_socket_receive_from()
+ * with @address set to %NULL.
*
- * If the task resulted in an error, or was cancelled, then this will
- * instead return %FALSE and set @error.
+ * For %G_SOCKET_TYPE_DATAGRAM and %G_SOCKET_TYPE_SEQPACKET sockets,
+ * g_socket_receive() will always read either 0 or 1 complete messages from
+ * the socket. If the received message is too large to fit in @buffer, then
+ * the data beyond @size bytes will be discarded, without any explicit
+ * indication that this has occurred.
*
- * Since this method transfers ownership of the return value (or
- * error) to the caller, you may only call it once.
+ * For %G_SOCKET_TYPE_STREAM sockets, g_socket_receive() can return any
+ * number of bytes, up to @size. If more than @size bytes have been
+ * received, the additional data will be returned in future calls to
+ * g_socket_receive().
*
- * Returns: the task result, or %FALSE on error
- * Since: 2.36
+ * If the socket is in blocking mode the call will block until there
+ * is some data to receive, the connection is closed, or there is an
+ * error. If there is no data available and the socket is in
+ * non-blocking mode, a %G_IO_ERROR_WOULD_BLOCK error will be
+ * returned. To be notified when data is available, wait for the
+ * %G_IO_IN condition.
+ *
+ * On error -1 is returned and @error is set accordingly.
+ *
+ * Returns: Number of bytes read, or 0 if the connection was closed by
+ * the peer, or -1 on error
+ * Since: 2.22
*/
/**
- * g_task_propagate_int:
- * @task: a #GTask.
- * @error: return location for a #GError
+ * g_socket_receive_from:
+ * @socket: a #GSocket
+ * @address: (out) (optional): a pointer to a #GSocketAddress
+ * pointer, or %NULL
+ * @buffer: (array length=size) (element-type guint8): a buffer to
+ * read data into (which should be at least @size bytes long).
+ * @size: the number of bytes you want to read from the socket
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Gets the result of @task as an integer (#gssize).
+ * Receive data (up to @size bytes) from a socket.
*
- * If the task resulted in an error, or was cancelled, then this will
- * instead return -1 and set @error.
+ * If @address is non-%NULL then @address will be set equal to the
+ * source address of the received packet.
+ * @address is owned by the caller.
*
- * Since this method transfers ownership of the return value (or
- * error) to the caller, you may only call it once.
+ * See g_socket_receive() for additional information.
*
- * Returns: the task result, or -1 on error
- * Since: 2.36
+ * Returns: Number of bytes read, or 0 if the connection was closed by
+ * the peer, or -1 on error
+ * Since: 2.22
*/
/**
- * g_task_propagate_pointer:
- * @task: a #GTask
- * @error: return location for a #GError
+ * g_socket_receive_message:
+ * @socket: a #GSocket
+ * @address: (out) (optional): a pointer to a #GSocketAddress
+ * pointer, or %NULL
+ * @vectors: (array length=num_vectors): an array of #GInputVector structs
+ * @num_vectors: the number of elements in @vectors, or -1
+ * @messages: (array length=num_messages) (out) (optional) (nullable): a pointer
+ * which may be filled with an array of #GSocketControlMessages, or %NULL
+ * @num_messages: (out): a pointer which will be filled with the number of
+ * elements in @messages, or %NULL
+ * @flags: (inout): a pointer to an int containing #GSocketMsgFlags flags
+ * @cancellable: a %GCancellable or %NULL
+ * @error: a #GError pointer, or %NULL
*
- * Gets the result of @task as a pointer, and transfers ownership
- * of that value to the caller.
+ * Receive data from a socket. For receiving multiple messages, see
+ * g_socket_receive_messages(); for easier use, see
+ * g_socket_receive() and g_socket_receive_from().
*
- * If the task resulted in an error, or was cancelled, then this will
- * instead return %NULL and set @error.
+ * If @address is non-%NULL then @address will be set equal to the
+ * source address of the received packet.
+ * @address is owned by the caller.
*
- * Since this method transfers ownership of the return value (or
- * error) to the caller, you may only call it once.
+ * @vector must point to an array of #GInputVector structs and
+ * @num_vectors must be the length of this array. These structs
+ * describe the buffers that received data will be scattered into.
+ * If @num_vectors is -1, then @vectors is assumed to be terminated
+ * by a #GInputVector with a %NULL buffer pointer.
*
- * Returns: (transfer full): the task result, or %NULL on error
- * Since: 2.36
+ * As a special case, if @num_vectors is 0 (in which case, @vectors
+ * may of course be %NULL), then a single byte is received and
+ * discarded. This is to facilitate the common practice of sending a
+ * single '\0' byte for the purposes of transferring ancillary data.
+ *
+ * @messages, if non-%NULL, will be set to point to a newly-allocated
+ * array of #GSocketControlMessage instances or %NULL if no such
+ * messages was received. These correspond to the control messages
+ * received from the kernel, one #GSocketControlMessage per message
+ * from the kernel. This array is %NULL-terminated and must be freed
+ * by the caller using g_free() after calling g_object_unref() on each
+ * element. If @messages is %NULL, any control messages received will
+ * be discarded.
+ *
+ * @num_messages, if non-%NULL, will be set to the number of control
+ * messages received.
+ *
+ * If both @messages and @num_messages are non-%NULL, then
+ * @num_messages gives the number of #GSocketControlMessage instances
+ * in @messages (ie: not including the %NULL terminator).
+ *
+ * @flags is an in/out parameter. 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
+ * (and g_socket_receive_message() may pass system-specific flags out).
+ * Flags passed in to the parameter affect the receive operation; flags returned
+ * out of it are relevant to the specific returned message.
+ *
+ * As with g_socket_receive(), data may be discarded if @socket is
+ * %G_SOCKET_TYPE_DATAGRAM or %G_SOCKET_TYPE_SEQPACKET and you do not
+ * provide enough buffer space to read a complete message. You can pass
+ * %G_SOCKET_MSG_PEEK in @flags to peek at the current message without
+ * removing it from the receive queue, but there is no portable way to find
+ * out the length of the message other than by reading it into a
+ * sufficiently-large buffer.
+ *
+ * If the socket is in blocking mode the call will block until there
+ * is some data to receive, the connection is closed, or there is an
+ * error. If there is no data available and the socket is in
+ * non-blocking mode, a %G_IO_ERROR_WOULD_BLOCK error will be
+ * returned. To be notified when data is available, wait for the
+ * %G_IO_IN condition.
+ *
+ * On error -1 is returned and @error is set accordingly.
+ *
+ * Returns: Number of bytes read, or 0 if the connection was closed by
+ * the peer, or -1 on error
+ * Since: 2.22
*/
/**
- * g_task_report_error:
- * @source_object: (nullable) (type GObject): the #GObject that owns
- * this task, or %NULL.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @callback_data: (closure): user data passed to @callback.
- * @source_tag: an opaque pointer indicating the source of this task
- * @error: (transfer full): error to report
+ * g_socket_receive_messages:
+ * @socket: a #GSocket
+ * @messages: (array length=num_messages): an array of #GInputMessage structs
+ * @num_messages: the number of elements in @messages
+ * @flags: an int containing #GSocketMsgFlags flags for the overall operation
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore
*
- * Creates a #GTask and then immediately calls g_task_return_error()
- * on it. Use this in the wrapper function of an asynchronous method
- * when you want to avoid even calling the virtual method. You can
- * then use g_async_result_is_tagged() in the finish method wrapper to
- * check if the result there is tagged as having been created by the
- * wrapper method, and deal with it appropriately if so.
+ * Receive 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_receive(), g_socket_receive_from(), and g_socket_receive_message().
*
- * See also g_task_report_new_error().
+ * @messages must point to an array of #GInputMessage structs and
+ * @num_messages must be the length of this array. Each #GInputMessage
+ * contains a pointer to an array of #GInputVector structs describing the
+ * buffers that the data received in each message will be written to. Using
+ * multiple #GInputVectors is more memory-efficient than manually copying data
+ * out of a single buffer to multiple sources, and more system-call-efficient
+ * than making multiple calls to g_socket_receive(), such as in scenarios where
+ * a lot of data packets need to be received (e.g. high-bandwidth video
+ * streaming over RTP/UDP).
*
- * Since: 2.36
+ * @flags modify how all messages are received. 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. These
+ * flags affect the overall receive operation. Flags affecting individual
+ * messages are returned in #GInputMessage.flags.
+ *
+ * The other members of #GInputMessage are treated as described in its
+ * documentation.
+ *
+ * If #GSocket:blocking is %TRUE the call will block until @num_messages have
+ * been received, or the end of the stream is reached.
+ *
+ * If #GSocket:blocking is %FALSE the call will return up to @num_messages
+ * without blocking, or %G_IO_ERROR_WOULD_BLOCK if no messages are queued in the
+ * operating system to be received.
+ *
+ * In blocking mode, if #GSocket:timeout is positive and is reached before any
+ * messages are received, %G_IO_ERROR_TIMED_OUT is returned, otherwise up to
+ * @num_messages are returned. (Note: This is effectively the
+ * behaviour of `MSG_WAITFORONE` with recvmmsg().)
+ *
+ * To be notified when messages are available, wait for the
+ * %G_IO_IN condition. Note though that you may still receive
+ * %G_IO_ERROR_WOULD_BLOCK from g_socket_receive_messages() even if you were
+ * previously notified of a %G_IO_IN condition.
+ *
+ * If the remote peer closes the connection, any messages queued in the
+ * operating system will be returned, and subsequent calls to
+ * g_socket_receive_messages() will return 0 (with no error set).
+ *
+ * On error -1 is returned and @error is set accordingly. An error will only
+ * be returned if zero messages could be received; otherwise the number of
+ * messages successfully received before the error will be returned.
+ *
+ * Returns: number of messages received, or -1 on error. Note that the number
+ * of messages received may be smaller than @num_messages if in non-blocking
+ * mode, if the peer closed the connection, or if @num_messages
+ * was larger than `UIO_MAXIOV` (1024), in which case the caller may re-try
+ * to receive the remaining messages.
+ * Since: 2.48
*/
/**
- * g_task_report_new_error:
- * @source_object: (nullable) (type GObject): the #GObject that owns
- * this task, or %NULL.
- * @callback: (scope async): a #GAsyncReadyCallback.
- * @callback_data: (closure): user data passed to @callback.
- * @source_tag: an opaque pointer indicating the source of this task
- * @domain: a #GQuark.
- * @code: an error code.
- * @format: a string with format characters.
- * @...: a list of values to insert into @format.
- *
- * Creates a #GTask and then immediately calls
- * g_task_return_new_error() on it. Use this in the wrapper function
- * of an asynchronous method when you want to avoid even calling the
- * virtual method. You can then use g_async_result_is_tagged() in the
- * finish method wrapper to check if the result there is tagged as
- * having been created by the wrapper method, and deal with it
- * appropriately if so.
+ * g_socket_receive_with_blocking:
+ * @socket: a #GSocket
+ * @buffer: (array length=size) (element-type guint8): a buffer to
+ * read data into (which should be at least @size bytes long).
+ * @size: the number of bytes you want to read from the socket
+ * @blocking: whether to do blocking or non-blocking I/O
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * See also g_task_report_error().
+ * This behaves exactly the same as g_socket_receive(), except that
+ * the choice of blocking or non-blocking behavior is determined by
+ * the @blocking argument rather than by @socket's properties.
*
- * Since: 2.36
+ * Returns: Number of bytes read, or 0 if the connection was closed by
+ * the peer, or -1 on error
+ * Since: 2.26
*/
/**
- * g_task_return_boolean:
- * @task: a #GTask.
- * @result: the #gboolean result of a task function.
+ * g_socket_send:
+ * @socket: a #GSocket
+ * @buffer: (array length=size) (element-type guint8): the buffer
+ * containing the data to send.
+ * @size: the number of bytes to send
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Sets @task's result to @result and completes the task (see
- * g_task_return_pointer() for more discussion of exactly what this
- * means).
+ * Tries to send @size bytes from @buffer on the socket. This is
+ * mainly used by connection-oriented sockets; it is identical to
+ * g_socket_send_to() with @address set to %NULL.
*
- * Since: 2.36
+ * If the socket is in blocking mode the call will block until there is
+ * space for 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. 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.
+ *
+ * Returns: Number of bytes written (which may be less than @size), or -1
+ * on error
+ * Since: 2.22
*/
/**
- * g_task_return_error:
- * @task: a #GTask.
- * @error: (transfer full): the #GError result of a task function.
+ * g_socket_send_message:
+ * @socket: a #GSocket
+ * @address: (nullable): a #GSocketAddress, or %NULL
+ * @vectors: (array length=num_vectors): an array of #GOutputVector structs
+ * @num_vectors: the number of elements in @vectors, or -1
+ * @messages: (array length=num_messages) (nullable): a pointer to an
+ * array of #GSocketControlMessages, or %NULL.
+ * @num_messages: number of elements in @messages, or -1.
+ * @flags: an int containing #GSocketMsgFlags flags
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Sets @task's result to @error (which @task assumes ownership of)
- * and completes the task (see g_task_return_pointer() for more
- * discussion of exactly what this means).
+ * Send data to @address on @socket. For sending multiple messages see
+ * g_socket_send_messages(); for easier use, see
+ * g_socket_send() and g_socket_send_to().
*
- * Note that since the task takes ownership of @error, and since the
- * task may be completed before returning from g_task_return_error(),
- * you cannot assume that @error is still valid after calling this.
- * Call g_error_copy() on the error if you need to keep a local copy
- * as well.
+ * If @address is %NULL then the message is sent to the default receiver
+ * (set by g_socket_connect()).
*
- * See also g_task_return_new_error().
+ * @vectors must point to an array of #GOutputVector structs and
+ * @num_vectors must be the length of this array. (If @num_vectors is -1,
+ * then @vectors is assumed to be terminated by a #GOutputVector with a
+ * %NULL buffer pointer.) The #GOutputVector structs describe the buffers
+ * that the sent data 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().
+ *
+ * @messages, if non-%NULL, is taken to point to an array of @num_messages
+ * #GSocketControlMessage instances. These correspond to the control
+ * messages to be sent on the socket.
+ * If @num_messages is -1 then @messages is treated as a %NULL-terminated
+ * array.
+ *
+ * @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.
*
- * Since: 2.36
- */
-
-
-/**
- * g_task_return_error_if_cancelled:
- * @task: a #GTask
+ * If the socket is in blocking mode the call will block until there is
+ * space for 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. 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.)
*
- * Checks if @task's #GCancellable has been cancelled, and if so, sets
- * @task's error accordingly and completes the task (see
- * g_task_return_pointer() for more discussion of exactly what this
- * means).
+ * On error -1 is returned and @error is set accordingly.
*
- * Returns: %TRUE if @task has been cancelled, %FALSE if not
- * Since: 2.36
+ * Returns: Number of bytes written (which may be less than @size), or -1
+ * on error
+ * Since: 2.22
*/
/**
- * g_task_return_int:
- * @task: a #GTask.
- * @result: the integer (#gssize) result of a task function.
+ * g_socket_send_messages:
+ * @socket: a #GSocket
+ * @messages: (array length=num_messages): an array of #GOutputMessage structs
+ * @num_messages: the number of elements in @messages
+ * @flags: an int containing #GSocketMsgFlags flags
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Sets @task's result to @result and completes the task (see
- * g_task_return_pointer() for more discussion of exactly what this
- * means).
+ * 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().
*
- * Since: 2.36
- */
-
-
-/**
- * g_task_return_new_error:
- * @task: a #GTask.
- * @domain: a #GQuark.
- * @code: an error code.
- * @format: a string with format characters.
- * @...: a list of values to insert into @format.
+ * @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.
*
- * Sets @task's result to a new #GError created from @domain, @code,
- * @format, and the remaining arguments, and completes the task (see
- * g_task_return_pointer() for more discussion of exactly what this
- * means).
+ * @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.
*
- * See also g_task_return_error().
+ * 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.)
*
- * Since: 2.36
+ * On error -1 is returned and @error is set accordingly. An error will only
+ * be returned if zero messages could be sent; otherwise the number of messages
+ * successfully sent before the error will be returned.
+ *
+ * Returns: 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.
+ * Since: 2.44
*/
/**
- * g_task_return_pointer:
- * @task: a #GTask
- * @result: (nullable) (transfer full): the pointer result of a task
- * function
- * @result_destroy: (nullable): a #GDestroyNotify function.
- *
- * Sets @task's result to @result and completes the task. If @result
- * is not %NULL, then @result_destroy will be used to free @result if
- * the caller does not take ownership of it with
- * g_task_propagate_pointer().
+ * g_socket_send_to:
+ * @socket: a #GSocket
+ * @address: (nullable): a #GSocketAddress, or %NULL
+ * @buffer: (array length=size) (element-type guint8): the buffer
+ * containing the data to send.
+ * @size: the number of bytes to send
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * "Completes the task" means that for an ordinary asynchronous task
- * it will either invoke the task's callback, or else queue that
- * callback to be invoked in the proper #GMainContext, or in the next
- * iteration of the current #GMainContext. For a task run via
- * g_task_run_in_thread() or g_task_run_in_thread_sync(), calling this
- * method will save @result to be returned to the caller later, but
- * the task will not actually be completed until the #GTaskThreadFunc
- * exits.
+ * Tries to send @size bytes from @buffer to @address. If @address is
+ * %NULL then the message is sent to the default receiver (set by
+ * g_socket_connect()).
*
- * Note that since the task may be completed before returning from
- * g_task_return_pointer(), you cannot assume that @result is still
- * valid after calling this, unless you are still holding another
- * reference on it.
+ * See g_socket_send() for additional information.
*
- * Since: 2.36
+ * Returns: Number of bytes written (which may be less than @size), or -1
+ * on error
+ * Since: 2.22
*/
/**
- * g_task_run_in_thread:
- * @task: a #GTask
- * @task_func: a #GTaskThreadFunc
- *
- * Runs @task_func in another thread. When @task_func returns, @task's
- * #GAsyncReadyCallback will be invoked in @task's #GMainContext.
- *
- * This takes a ref on @task until the task completes.
- *
- * See #GTaskThreadFunc for more details about how @task_func is handled.
+ * g_socket_send_with_blocking:
+ * @socket: a #GSocket
+ * @buffer: (array length=size) (element-type guint8): the buffer
+ * containing the data to send.
+ * @size: the number of bytes to send
+ * @blocking: whether to do blocking or non-blocking I/O
+ * @cancellable: (nullable): a %GCancellable or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * 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.
+ * This behaves exactly the same as g_socket_send(), except that
+ * the choice of blocking or non-blocking behavior is determined by
+ * the @blocking argument rather than by @socket's properties.
*
- * Since: 2.36
+ * Returns: Number of bytes written (which may be less than @size), or -1
+ * on error
+ * Since: 2.26
*/
/**
- * g_task_run_in_thread_sync:
- * @task: a #GTask
- * @task_func: a #GTaskThreadFunc
- *
- * Runs @task_func in another thread, and waits for it to return or be
- * cancelled. You can use g_task_propagate_pointer(), etc, afterward
- * to get the result of @task_func.
- *
- * 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.
+ * g_socket_service_is_active:
+ * @service: a #GSocketService
*
- * 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.
+ * Check whether the service is active or not. An active
+ * service will accept new clients that connect, while
+ * a non-active service will let connecting clients queue
+ * up until the service is started.
*
- * Since: 2.36
+ * Returns: %TRUE if the service is active, %FALSE otherwise
+ * Since: 2.22
*/
/**
- * g_task_set_check_cancellable:
- * @task: the #GTask
- * @check_cancellable: whether #GTask will check the state of
- * its #GCancellable for you.
- *
- * Sets or clears @task's check-cancellable flag. If this is %TRUE
- * (the default), then g_task_propagate_pointer(), etc, and
- * g_task_had_error() will check the task's #GCancellable first, and
- * if it has been cancelled, then they will consider the task to have
- * returned an "Operation was cancelled" error
- * (%G_IO_ERROR_CANCELLED), regardless of any other error or return
- * value the task may have had.
+ * g_socket_service_new:
*
- * If @check_cancellable is %FALSE, then the #GTask will not check the
- * cancellable itself, and it is up to @task's owner to do this (eg,
- * via g_task_return_error_if_cancelled()).
+ * Creates a new #GSocketService with no sockets to listen for.
+ * New listeners can be added with e.g. g_socket_listener_add_address()
+ * or g_socket_listener_add_inet_port().
*
- * If you are using g_task_set_return_on_cancel() as well, then
- * you must leave check-cancellable set %TRUE.
+ * New services are created active, there is no need to call
+ * g_socket_service_start(), unless g_socket_service_stop() has been
+ * called before.
*
- * Since: 2.36
+ * Returns: a new #GSocketService.
+ * Since: 2.22
*/
/**
- * g_task_set_priority:
- * @task: the #GTask
- * @priority: the [priority][io-priority] of the request
+ * g_socket_service_start:
+ * @service: a #GSocketService
*
- * Sets @task's priority. If you do not call this, it will default to
- * %G_PRIORITY_DEFAULT.
+ * Restarts the service, i.e. start accepting connections
+ * from the added sockets when the mainloop runs. This only needs
+ * to be called after the service has been stopped from
+ * g_socket_service_stop().
*
- * This will affect the priority of #GSources created with
- * g_task_attach_source() and the scheduling of tasks run in threads,
- * and can also be explicitly retrieved later via
- * g_task_get_priority().
+ * This call is thread-safe, so it may be called from a thread
+ * handling an incoming client request.
*
- * Since: 2.36
+ * Since: 2.22
*/
/**
- * g_task_set_return_on_cancel:
- * @task: the #GTask
- * @return_on_cancel: whether the task returns automatically when
- * it is cancelled.
- *
- * Sets or clears @task's return-on-cancel flag. This is only
- * meaningful for tasks run via g_task_run_in_thread() or
- * g_task_run_in_thread_sync().
+ * g_socket_service_stop:
+ * @service: a #GSocketService
*
- * If @return_on_cancel is %TRUE, then cancelling @task's
- * #GCancellable will immediately cause it to return, as though the
- * task's #GTaskThreadFunc had called
- * g_task_return_error_if_cancelled() and then returned.
+ * Stops the service, i.e. stops accepting connections
+ * from the added sockets when the mainloop runs.
*
- * This allows you to create a cancellable wrapper around an
- * uninterruptable function. The #GTaskThreadFunc just needs to be
- * careful that it does not modify any externally-visible state after
- * it has been cancelled. To do that, the thread should call
- * g_task_set_return_on_cancel() again to (atomically) set
- * return-on-cancel %FALSE before making externally-visible changes;
- * if the task gets cancelled before the return-on-cancel flag could
- * be changed, g_task_set_return_on_cancel() will indicate this by
- * returning %FALSE.
+ * This call is thread-safe, so it may be called from a thread
+ * handling an incoming client request.
*
- * You can disable and re-enable this flag multiple times if you wish.
- * If the task's #GCancellable is cancelled while return-on-cancel is
- * %FALSE, then calling g_task_set_return_on_cancel() to set it %TRUE
- * again will cause the task to be cancelled at that point.
+ * Note that this only stops accepting new connections; it does not
+ * close the listening sockets, and you can call
+ * g_socket_service_start() again later to begin listening again. To
+ * close the listening sockets, call g_socket_listener_close(). (This
+ * will happen automatically when the #GSocketService is finalized.)
*
- * If the task's #GCancellable is already cancelled before you call
- * g_task_run_in_thread()/g_task_run_in_thread_sync(), then the
- * #GTaskThreadFunc will still be run (for consistency), but the task
- * will also be completed right away.
+ * This must be called before calling g_socket_listener_close() as
+ * the socket service will start accepting connections immediately
+ * when a new socket is added.
*
- * Returns: %TRUE if @task's return-on-cancel flag was changed to
- * match @return_on_cancel. %FALSE if @task has already been
- * cancelled.
- * Since: 2.36
+ * Since: 2.22
*/
/**
- * g_task_set_source_tag:
- * @task: the #GTask
- * @source_tag: an opaque pointer indicating the source of this task
+ * g_socket_set_blocking:
+ * @socket: a #GSocket.
+ * @blocking: Whether to use blocking I/O or not.
*
- * Sets @task's source tag. You can use this to tag a task return
- * value with a particular pointer (usually a pointer to the function
- * doing the tagging) and then later check it using
- * g_task_get_source_tag() (or g_async_result_is_tagged()) in the
- * task's "finish" function, to figure out if the response came from a
- * particular place.
+ * Sets the blocking mode of the socket. In blocking mode
+ * all operations (which don’t take an explicit blocking parameter) block until
+ * they succeed or there is an error. In
+ * non-blocking mode all functions return results immediately or
+ * with a %G_IO_ERROR_WOULD_BLOCK error.
*
- * Since: 2.36
+ * All sockets are created in blocking mode. However, note that the
+ * platform level socket is always non-blocking, and blocking mode
+ * is a GSocket level feature.
+ *
+ * Since: 2.22
*/
/**
- * g_task_set_task_data:
- * @task: the #GTask
- * @task_data: (nullable): task-specific data
- * @task_data_destroy: (nullable): #GDestroyNotify for @task_data
+ * g_socket_set_broadcast:
+ * @socket: a #GSocket.
+ * @broadcast: whether @socket should allow sending to broadcast
+ * addresses
*
- * Sets @task's task data (freeing the existing task data, if any).
+ * Sets whether @socket should allow sending to broadcast addresses.
+ * This is %FALSE by default.
*
- * Since: 2.36
+ * Since: 2.32
*/
/**
- * g_tcp_connection_get_graceful_disconnect:
- * @connection: a #GTcpConnection
+ * g_socket_set_keepalive:
+ * @socket: a #GSocket.
+ * @keepalive: Value for the keepalive flag
*
- * Checks if graceful disconnects are used. See
- * g_tcp_connection_set_graceful_disconnect().
+ * Sets or unsets the %SO_KEEPALIVE flag on the underlying socket. When
+ * this flag is set on a socket, the system will attempt to verify that the
+ * remote socket endpoint is still present if a sufficiently long period of
+ * time passes with no data being exchanged. If the system is unable to
+ * verify the presence of the remote endpoint, it will automatically close
+ * the connection.
+ *
+ * This option is only functional on certain kinds of sockets. (Notably,
+ * %G_SOCKET_PROTOCOL_TCP sockets.)
+ *
+ * The exact time between pings is system- and protocol-dependent, but will
+ * normally be at least two hours. Most commonly, you would set this flag
+ * on a server socket if you want to allow clients to remain idle for long
+ * periods of time, but also want to ensure that connections are eventually
+ * garbage-collected if clients crash or become unreachable.
*
- * Returns: %TRUE if graceful disconnect is used on close, %FALSE otherwise
* Since: 2.22
*/
/**
- * g_tcp_connection_set_graceful_disconnect:
- * @connection: a #GTcpConnection
- * @graceful_disconnect: Whether to do graceful disconnects or not
+ * g_socket_set_listen_backlog:
+ * @socket: a #GSocket.
+ * @backlog: the maximum number of pending connections.
*
- * 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.
+ * Sets the maximum number of outstanding connections allowed
+ * when listening on this socket. If more clients than this are
+ * connecting to the socket and the application is not handling them
+ * on time then the new connections will be refused.
*
- * A graceful disconnect means that we can be sure that we successfully sent
- * all the outstanding data to the other end, or get an error reported.
- * However, it also means we have to wait for all the data to reach the
- * other side and for it to acknowledge this by closing the socket, which may
- * take a while. For this reason it is disabled by default.
+ * Note that this must be called before g_socket_listen() and has no
+ * effect if called after that.
*
* Since: 2.22
*/
/**
- * g_tcp_wrapper_connection_get_base_io_stream:
- * @conn: a #GTcpWrapperConnection
+ * g_socket_set_multicast_loopback:
+ * @socket: a #GSocket.
+ * @loopback: whether @socket should receive messages sent to its
+ * multicast groups from the local host
*
- * Get's @conn's base #GIOStream
+ * Sets whether outgoing multicast packets will be received by sockets
+ * listening on that multicast address on the same host. This is %TRUE
+ * by default.
*
- * Returns: (transfer none): @conn's base #GIOStream
+ * Since: 2.32
*/
/**
- * g_tcp_wrapper_connection_new:
- * @base_io_stream: the #GIOStream to wrap
- * @socket: the #GSocket associated with @base_io_stream
+ * g_socket_set_multicast_ttl:
+ * @socket: a #GSocket.
+ * @ttl: the time-to-live value for all multicast datagrams on @socket
*
- * Wraps @base_io_stream and @socket together as a #GSocketConnection.
+ * Sets the time-to-live for outgoing multicast datagrams on @socket.
+ * By default, this is 1, meaning that multicast packets will not leave
+ * the local network.
*
- * Returns: the new #GSocketConnection.
- * Since: 2.28
+ * Since: 2.32
*/
/**
- * g_test_dbus_add_service_dir:
- * @self: a #GTestDBus
- * @path: path to a directory containing .service files
+ * g_socket_set_option:
+ * @socket: a #GSocket
+ * @level: the "API level" of the option (eg, `SOL_SOCKET`)
+ * @optname: the "name" of the option (eg, `SO_BROADCAST`)
+ * @value: the value to set the option to
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Add a path where dbus-daemon will look up .service files. This can't be
- * called after g_test_dbus_up().
- */
-
-
-/**
- * g_test_dbus_down:
- * @self: a #GTestDBus
+ * Sets the value of an integer-valued option on @socket, as with
+ * setsockopt(). (If you need to set a non-integer-valued option,
+ * you will need to call setsockopt() directly.)
*
- * Stop the session bus started by g_test_dbus_up().
+ * The [<gio/gnetworking.h>][gio-gnetworking.h]
+ * header pulls in system headers that will define most of the
+ * standard/portable socket options. For unusual socket protocols or
+ * platform-dependent options, you may need to include additional
+ * headers.
*
- * This will wait for the singleton returned by g_bus_get() or g_bus_get_sync()
- * is destroyed. This is done to ensure that the next unit test won't get a
- * leaked singleton from this test.
+ * Returns: success or failure. On failure, @error will be set, and
+ * the system error value (`errno` or WSAGetLastError()) will still
+ * be set to the result of the setsockopt() call.
+ * Since: 2.36
*/
/**
- * g_test_dbus_get_bus_address:
- * @self: a #GTestDBus
+ * g_socket_set_timeout:
+ * @socket: a #GSocket.
+ * @timeout: the timeout for @socket, in seconds, or 0 for none
*
- * Get the address on which dbus-daemon is running. If g_test_dbus_up() has not
- * been called yet, %NULL is returned. This can be used with
- * g_dbus_connection_new_for_address().
+ * Sets the time in seconds after which I/O operations on @socket will
+ * time out if they have not yet completed.
*
- * Returns: (nullable): the address of the bus, or %NULL.
- */
-
-
-/**
- * g_test_dbus_get_flags:
- * @self: a #GTestDBus
+ * On a blocking socket, this means that any blocking #GSocket
+ * operation will time out after @timeout seconds of inactivity,
+ * returning %G_IO_ERROR_TIMED_OUT.
*
- * Get the flags of the #GTestDBus object.
+ * On a non-blocking socket, calls to g_socket_condition_wait() will
+ * also fail with %G_IO_ERROR_TIMED_OUT after the given time. Sources
+ * created with g_socket_create_source() will trigger after
+ * @timeout seconds of inactivity, with the requested condition
+ * set, at which point calling g_socket_receive(), g_socket_send(),
+ * g_socket_check_connect_result(), etc, will fail with
+ * %G_IO_ERROR_TIMED_OUT.
*
- * Returns: the value of #GTestDBus:flags property
- */
-
-
-/**
- * g_test_dbus_new:
- * @flags: a #GTestDBusFlags
+ * If @timeout is 0 (the default), operations will never time out
+ * on their own.
*
- * Create a new #GTestDBus object.
+ * Note that if an I/O operation is interrupted by a signal, this may
+ * cause the timeout to be reset.
*
- * Returns: (transfer full): a new #GTestDBus.
+ * Since: 2.26
*/
/**
- * g_test_dbus_stop:
- * @self: a #GTestDBus
+ * g_socket_set_ttl:
+ * @socket: a #GSocket.
+ * @ttl: the time-to-live value for all unicast packets on @socket
*
- * Stop the session bus started by g_test_dbus_up().
+ * Sets the time-to-live for outgoing unicast packets on @socket.
+ * By default the platform-specific default value is used.
*
- * Unlike g_test_dbus_down(), this won't verify the #GDBusConnection
- * singleton returned by g_bus_get() or g_bus_get_sync() is destroyed. Unit
- * tests wanting to verify behaviour after the session bus has been stopped
- * can use this function but should still call g_test_dbus_down() when done.
+ * Since: 2.32
*/
/**
- * g_test_dbus_unset:
+ * g_socket_shutdown:
+ * @socket: a #GSocket
+ * @shutdown_read: whether to shut down the read side
+ * @shutdown_write: whether to shut down the write side
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Unset DISPLAY and DBUS_SESSION_BUS_ADDRESS env variables to ensure the test
- * won't use user's session bus.
+ * Shut down part or all of a full-duplex connection.
*
- * This is useful for unit tests that want to verify behaviour when no session
- * bus is running. It is not necessary to call this if unit test already calls
- * g_test_dbus_up() before acquiring the session bus.
+ * If @shutdown_read is %TRUE then the receiving side of the connection
+ * is shut down, and further reading is disallowed.
+ *
+ * If @shutdown_write is %TRUE then the sending side of the connection
+ * is shut down, and further writing is disallowed.
+ *
+ * It is allowed for both @shutdown_read and @shutdown_write to be %TRUE.
+ *
+ * One example where it is useful to shut down only one side of a connection is
+ * graceful disconnect for TCP connections where you close the sending side,
+ * then wait for the other side to close the connection, thus ensuring that the
+ * other side saw all sent data.
+ *
+ * Returns: %TRUE on success, %FALSE on error
+ * Since: 2.22
*/
/**
- * g_test_dbus_up:
- * @self: a #GTestDBus
+ * g_socket_speaks_ipv4:
+ * @socket: a #GSocket
*
- * Start a dbus-daemon instance and set DBUS_SESSION_BUS_ADDRESS. After this
- * call, it is safe for unit tests to start sending messages on the session bus.
+ * Checks if a socket is capable of speaking IPv4.
+ *
+ * IPv4 sockets are capable of speaking IPv4. On some operating systems
+ * and under some combinations of circumstances IPv6 sockets are also
+ * capable of speaking IPv4. See RFC 3493 section 3.7 for more
+ * information.
*
- * If this function is called from setup callback of g_test_add(),
- * g_test_dbus_down() must be called in its teardown callback.
+ * No other types of sockets are currently considered as being capable
+ * of speaking IPv4.
*
- * If this function is called from unit test's main(), then g_test_dbus_down()
- * must be called after g_test_run().
+ * Returns: %TRUE if this socket can be used with IPv4.
+ * Since: 2.22
*/
/**
- * g_themed_icon_append_name:
- * @icon: a #GThemedIcon
- * @iconname: name of icon to append to list of icons from within @icon.
+ * g_srv_target_copy:
+ * @target: a #GSrvTarget
*
- * Append a name to the list of icons from within @icon.
+ * Copies @target
*
- * Note that doing so invalidates the hash computed by prior calls
- * to g_icon_hash().
+ * Returns: a copy of @target
+ * Since: 2.22
*/
/**
- * g_themed_icon_get_names:
- * @icon: a #GThemedIcon.
+ * g_srv_target_free:
+ * @target: a #GSrvTarget
*
- * Gets the names of icons from within @icon.
+ * Frees @target
*
- * Returns: (transfer none): a list of icon names.
+ * Since: 2.22
*/
/**
- * g_themed_icon_new:
- * @iconname: a string containing an icon name.
+ * g_srv_target_get_hostname:
+ * @target: a #GSrvTarget
*
- * Creates a new themed icon for @iconname.
+ * Gets @target's hostname (in ASCII form; if you are going to present
+ * this to the user, you should use g_hostname_is_ascii_encoded() to
+ * check if it contains encoded Unicode segments, and use
+ * g_hostname_to_unicode() to convert it if it does.)
*
- * Returns: (transfer full) (type GThemedIcon): a new #GThemedIcon.
+ * Returns: @target's hostname
+ * Since: 2.22
*/
/**
- * g_themed_icon_new_from_names:
- * @iconnames: (array length=len): an array of strings containing icon names.
- * @len: the length of the @iconnames array, or -1 if @iconnames is
- * %NULL-terminated
+ * g_srv_target_get_port:
+ * @target: a #GSrvTarget
*
- * Creates a new themed icon for @iconnames.
+ * Gets @target's port
*
- * Returns: (transfer full) (type GThemedIcon): a new #GThemedIcon
+ * Returns: @target's port
+ * Since: 2.22
*/
/**
- * g_themed_icon_new_with_default_fallbacks:
- * @iconname: a string containing an icon name
- *
- * Creates a new themed icon for @iconname, and all the names
- * that can be created by shortening @iconname at '-' characters.
- *
- * In the following example, @icon1 and @icon2 are equivalent:
- * |[<!-- language="C" -->
- * const char *names[] = {
- * "gnome-dev-cdrom-audio",
- * "gnome-dev-cdrom",
- * "gnome-dev",
- * "gnome"
- * };
+ * g_srv_target_get_priority:
+ * @target: a #GSrvTarget
*
- * icon1 = g_themed_icon_new_from_names (names, 4);
- * icon2 = g_themed_icon_new_with_default_fallbacks ("gnome-dev-cdrom-audio");
- * ]|
+ * Gets @target's priority. You should not need to look at this;
+ * #GResolver already sorts the targets according to the algorithm in
+ * RFC 2782.
*
- * Returns: (transfer full) (type GThemedIcon): a new #GThemedIcon.
+ * Returns: @target's priority
+ * Since: 2.22
*/
/**
- * g_themed_icon_prepend_name:
- * @icon: a #GThemedIcon
- * @iconname: name of icon to prepend to list of icons from within @icon.
- *
- * Prepend a name to the list of icons from within @icon.
+ * g_srv_target_get_weight:
+ * @target: a #GSrvTarget
*
- * Note that doing so invalidates the hash computed by prior calls
- * to g_icon_hash().
+ * Gets @target's weight. You should not need to look at this;
+ * #GResolver already sorts the targets according to the algorithm in
+ * RFC 2782.
*
- * Since: 2.18
+ * Returns: @target's weight
+ * Since: 2.22
*/
/**
- * g_threaded_socket_service_new:
- * @max_threads: the maximal number of threads to execute concurrently
- * handling incoming clients, -1 means no limit
+ * g_srv_target_list_sort: (skip)
+ * @targets: a #GList of #GSrvTarget
*
- * Creates a new #GThreadedSocketService with no listeners. Listeners
- * must be added with one of the #GSocketListener "add" methods.
+ * Sorts @targets in place according to the algorithm in RFC 2782.
*
- * Returns: a new #GSocketService.
+ * Returns: (transfer full): the head of the sorted list.
* Since: 2.22
*/
/**
- * g_tls_backend_get_certificate_type:
- * @backend: the #GTlsBackend
+ * g_srv_target_new:
+ * @hostname: the host that the service is running on
+ * @port: the port that the service is running on
+ * @priority: the target's priority
+ * @weight: the target's weight
*
- * Gets the #GType of @backend's #GTlsCertificate implementation.
+ * Creates a new #GSrvTarget with the given parameters.
*
- * Returns: the #GType of @backend's #GTlsCertificate
- * implementation.
- * Since: 2.28
+ * You should not need to use this; normally #GSrvTargets are
+ * created by #GResolver.
+ *
+ * Returns: a new #GSrvTarget.
+ * Since: 2.22
*/
/**
- * g_tls_backend_get_client_connection_type:
- * @backend: the #GTlsBackend
+ * g_static_resource_fini:
+ * @static_resource: pointer to a static #GStaticResource
*
- * Gets the #GType of @backend's #GTlsClientConnection implementation.
+ * Finalized a GResource initialized by g_static_resource_init().
*
- * Returns: the #GType of @backend's #GTlsClientConnection
- * implementation.
- * Since: 2.28
+ * This is normally used by code generated by
+ * [glib-compile-resources][glib-compile-resources]
+ * and is not typically used by other code.
+ *
+ * Since: 2.32
*/
/**
- * g_tls_backend_get_default:
+ * g_static_resource_get_resource:
+ * @static_resource: pointer to a static #GStaticResource
*
- * Gets the default #GTlsBackend for the system.
+ * Gets the GResource that was registered by a call to g_static_resource_init().
*
- * Returns: (transfer none): a #GTlsBackend
- * Since: 2.28
+ * This is normally used by code generated by
+ * [glib-compile-resources][glib-compile-resources]
+ * and is not typically used by other code.
+ *
+ * Returns: (transfer none): a #GResource
+ * Since: 2.32
*/
/**
- * g_tls_backend_get_default_database:
- * @backend: the #GTlsBackend
+ * g_static_resource_init:
+ * @static_resource: pointer to a static #GStaticResource
*
- * Gets the default #GTlsDatabase used to verify TLS connections.
+ * Initializes a GResource from static data using a
+ * GStaticResource.
*
- * Returns: (transfer full): the default database, which should be
- * unreffed when done.
- * Since: 2.30
+ * This is normally used by code generated by
+ * [glib-compile-resources][glib-compile-resources]
+ * and is not typically used by other code.
+ *
+ * Since: 2.32
*/
/**
- * g_tls_backend_get_dtls_client_connection_type:
- * @backend: the #GTlsBackend
+ * g_subprocess_communicate:
+ * @subprocess: a #GSubprocess
+ * @stdin_buf: (nullable): data to send to the stdin of the subprocess, or %NULL
+ * @cancellable: a #GCancellable
+ * @stdout_buf: (out) (nullable) (optional) (transfer full): data read from the subprocess stdout
+ * @stderr_buf: (out) (nullable) (optional) (transfer full): data read from the subprocess stderr
+ * @error: a pointer to a %NULL #GError pointer, or %NULL
*
- * Gets the #GType of @backend’s #GDtlsClientConnection implementation.
+ * Communicate with the subprocess until it terminates, and all input
+ * and output has been completed.
*
- * Returns: the #GType of @backend’s #GDtlsClientConnection
- * implementation, or %G_TYPE_INVALID if this backend doesn’t support DTLS.
- * Since: 2.48
- */
-
-
-/**
- * g_tls_backend_get_dtls_server_connection_type:
- * @backend: the #GTlsBackend
+ * If @stdin_buf is given, the subprocess must have been created with
+ * %G_SUBPROCESS_FLAGS_STDIN_PIPE. The given data is fed to the
+ * stdin of the subprocess and the pipe is closed (ie: EOF).
*
- * Gets the #GType of @backend’s #GDtlsServerConnection implementation.
+ * At the same time (as not to cause blocking when dealing with large
+ * amounts of data), if %G_SUBPROCESS_FLAGS_STDOUT_PIPE or
+ * %G_SUBPROCESS_FLAGS_STDERR_PIPE were used, reads from those
+ * streams. The data that was read is returned in @stdout and/or
+ * the @stderr.
*
- * Returns: the #GType of @backend’s #GDtlsServerConnection
- * implementation, or %G_TYPE_INVALID if this backend doesn’t support DTLS.
- * Since: 2.48
+ * If the subprocess was created with %G_SUBPROCESS_FLAGS_STDOUT_PIPE,
+ * @stdout_buf will contain the data read from stdout. Otherwise, for
+ * subprocesses not created with %G_SUBPROCESS_FLAGS_STDOUT_PIPE,
+ * @stdout_buf will be set to %NULL. Similar provisions apply to
+ * @stderr_buf and %G_SUBPROCESS_FLAGS_STDERR_PIPE.
+ *
+ * As usual, any output variable may be given as %NULL to ignore it.
+ *
+ * If you desire the stdout and stderr data to be interleaved, create
+ * the subprocess with %G_SUBPROCESS_FLAGS_STDOUT_PIPE and
+ * %G_SUBPROCESS_FLAGS_STDERR_MERGE. The merged result will be returned
+ * in @stdout_buf and @stderr_buf will be set to %NULL.
+ *
+ * In case of any error (including cancellation), %FALSE will be
+ * returned with @error set. Some or all of the stdin data may have
+ * been written. Any stdout or stderr data that has been read will be
+ * discarded. None of the out variables (aside from @error) will have
+ * been set to anything in particular and should not be inspected.
+ *
+ * In the case that %TRUE is returned, the subprocess has exited and the
+ * exit status inspection APIs (eg: g_subprocess_get_if_exited(),
+ * g_subprocess_get_exit_status()) may be used.
+ *
+ * You should not attempt to use any of the subprocess pipes after
+ * starting this function, since they may be left in strange states,
+ * even if the operation was cancelled. You should especially not
+ * attempt to interact with the pipes while the operation is in progress
+ * (either from another thread or if using the asynchronous version).
+ *
+ * Returns: %TRUE if successful
+ * Since: 2.40
*/
/**
- * g_tls_backend_get_file_database_type:
- * @backend: the #GTlsBackend
- *
- * Gets the #GType of @backend's #GTlsFileDatabase implementation.
+ * g_subprocess_communicate_async:
+ * @subprocess: Self
+ * @stdin_buf: (nullable): Input data, or %NULL
+ * @cancellable: (nullable): Cancellable
+ * @callback: Callback
+ * @user_data: User data
*
- * Returns: the #GType of backend's #GTlsFileDatabase implementation.
- * Since: 2.30
+ * Asynchronous version of g_subprocess_communicate(). Complete
+ * invocation with g_subprocess_communicate_finish().
*/
/**
- * g_tls_backend_get_server_connection_type:
- * @backend: the #GTlsBackend
- *
- * Gets the #GType of @backend's #GTlsServerConnection implementation.
+ * g_subprocess_communicate_finish:
+ * @subprocess: Self
+ * @result: Result
+ * @stdout_buf: (out) (nullable) (optional) (transfer full): Return location for stdout data
+ * @stderr_buf: (out) (nullable) (optional) (transfer full): Return location for stderr data
+ * @error: Error
*
- * Returns: the #GType of @backend's #GTlsServerConnection
- * implementation.
- * Since: 2.28
+ * Complete an invocation of g_subprocess_communicate_async().
*/
/**
- * g_tls_backend_supports_dtls:
- * @backend: the #GTlsBackend
- *
- * Checks if DTLS is supported. DTLS support may not be available even if TLS
- * support is available, and vice-versa.
+ * g_subprocess_communicate_utf8:
+ * @subprocess: a #GSubprocess
+ * @stdin_buf: (nullable): data to send to the stdin of the subprocess, or %NULL
+ * @cancellable: a #GCancellable
+ * @stdout_buf: (out) (nullable) (optional) (transfer full): data read from the subprocess stdout
+ * @stderr_buf: (out) (nullable) (optional) (transfer full): data read from the subprocess stderr
+ * @error: a pointer to a %NULL #GError pointer, or %NULL
*
- * Returns: whether DTLS is supported
- * Since: 2.48
+ * Like g_subprocess_communicate(), but validates the output of the
+ * process as UTF-8, and returns it as a regular NUL terminated string.
*/
/**
- * g_tls_backend_supports_tls:
- * @backend: the #GTlsBackend
- *
- * Checks if TLS is supported; if this returns %FALSE for the default
- * #GTlsBackend, it means no "real" TLS backend is available.
+ * g_subprocess_communicate_utf8_async:
+ * @subprocess: Self
+ * @stdin_buf: (nullable): Input data, or %NULL
+ * @cancellable: Cancellable
+ * @callback: Callback
+ * @user_data: User data
*
- * Returns: whether or not TLS is supported
- * Since: 2.28
+ * Asynchronous version of g_subprocess_communicate_utf8(). Complete
+ * invocation with g_subprocess_communicate_utf8_finish().
*/
/**
- * g_tls_certificate_get_issuer:
- * @cert: a #GTlsCertificate
- *
- * Gets the #GTlsCertificate representing @cert's issuer, if known
+ * g_subprocess_communicate_utf8_finish:
+ * @subprocess: Self
+ * @result: Result
+ * @stdout_buf: (out) (nullable) (optional) (transfer full): Return location for stdout data
+ * @stderr_buf: (out) (nullable) (optional) (transfer full): Return location for stderr data
+ * @error: Error
*
- * Returns: (transfer none): The certificate of @cert's issuer,
- * or %NULL if @cert is self-signed or signed with an unknown
- * certificate.
- * Since: 2.28
+ * Complete an invocation of g_subprocess_communicate_utf8_async().
*/
/**
- * g_tls_certificate_is_same:
- * @cert_one: first certificate to compare
- * @cert_two: second certificate to compare
+ * g_subprocess_force_exit:
+ * @subprocess: a #GSubprocess
*
- * Check if two #GTlsCertificate objects represent the same certificate.
- * The raw DER byte data of the two certificates are checked for equality.
- * This has the effect that two certificates may compare equal even if
- * their #GTlsCertificate:issuer, #GTlsCertificate:private-key, or
- * #GTlsCertificate:private-key-pem properties differ.
+ * Use an operating-system specific method to attempt an immediate,
+ * forceful termination of the process. There is no mechanism to
+ * determine whether or not the request itself was successful;
+ * however, you can use g_subprocess_wait() to monitor the status of
+ * the process after calling this function.
*
- * Returns: whether the same or not
- * Since: 2.34
+ * On Unix, this function sends %SIGKILL.
+ *
+ * Since: 2.40
*/
/**
- * g_tls_certificate_list_new_from_file:
- * @file: (type filename): file containing PEM-encoded certificates to import
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_subprocess_get_exit_status:
+ * @subprocess: a #GSubprocess
*
- * Creates one or more #GTlsCertificates from the PEM-encoded
- * data in @file. If @file cannot be read or parsed, the function will
- * return %NULL and set @error. If @file does not contain any
- * PEM-encoded certificates, this will return an empty list and not
- * set @error.
+ * Check the exit status of the subprocess, given that it exited
+ * normally. This is the value passed to the exit() system call or the
+ * return value from main.
*
- * Returns: (element-type Gio.TlsCertificate) (transfer full): a
- * #GList containing #GTlsCertificate objects. You must free the list
- * and its contents when you are done with it.
- * Since: 2.28
+ * This is equivalent to the system WEXITSTATUS macro.
+ *
+ * It is an error to call this function before g_subprocess_wait() and
+ * unless g_subprocess_get_if_exited() returned %TRUE.
+ *
+ * Returns: the exit status
+ * Since: 2.40
*/
/**
- * g_tls_certificate_new_from_file:
- * @file: (type filename): file containing a PEM-encoded certificate to import
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * 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().
+ * g_subprocess_get_identifier:
+ * @subprocess: a #GSubprocess
*
- * Returns: the new certificate, or %NULL on error
- * Since: 2.28
+ * On UNIX, returns the process ID as a decimal string.
+ * On Windows, returns the result of GetProcessId() also as a string.
*/
/**
- * g_tls_certificate_new_from_files:
- * @cert_file: (type filename): file containing one or more PEM-encoded
- * certificates to import
- * @key_file: (type filename): file containing a PEM-encoded private key
- * to import
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_subprocess_get_if_exited:
+ * @subprocess: a #GSubprocess
*
- * Creates a #GTlsCertificate from the PEM-encoded data in @cert_file
- * 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.
+ * Check if the given subprocess exited normally (ie: by way of exit()
+ * or return from main()).
*
- * 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().
+ * This is equivalent to the system WIFEXITED macro.
*
- * Returns: the new certificate, or %NULL on error
- * Since: 2.28
+ * It is an error to call this function before g_subprocess_wait() has
+ * returned.
+ *
+ * Returns: %TRUE if the case of a normal exit
+ * Since: 2.40
*/
/**
- * g_tls_certificate_new_from_pem:
- * @data: PEM-encoded certificate data
- * @length: the length of @data, or -1 if it's 0-terminated.
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_subprocess_get_if_signaled:
+ * @subprocess: a #GSubprocess
*
- * 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.)
+ * Check if the given subprocess terminated in response to a signal.
*
- * 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.
+ * This is equivalent to the system WIFSIGNALED macro.
*
- * Returns: the new certificate, or %NULL if @data is invalid
- * Since: 2.28
+ * It is an error to call this function before g_subprocess_wait() has
+ * returned.
+ *
+ * Returns: %TRUE if the case of termination due to a signal
+ * Since: 2.40
*/
/**
- * g_tls_certificate_verify:
- * @cert: a #GTlsCertificate
- * @identity: (nullable): the expected peer identity
- * @trusted_ca: (nullable): the certificate of a trusted authority
+ * g_subprocess_get_status:
+ * @subprocess: a #GSubprocess
*
- * This verifies @cert and returns a set of #GTlsCertificateFlags
- * indicating any problems found with it. This can be used to verify a
- * certificate outside the context of making a connection, or to
- * check a certificate against a CA that is not part of the system
- * CA database.
+ * Gets the raw status code of the process, as from waitpid().
*
- * If @identity is not %NULL, @cert's name(s) will be compared against
- * it, and %G_TLS_CERTIFICATE_BAD_IDENTITY will be set in the return
- * value if it does not match. If @identity is %NULL, that bit will
- * never be set in the return value.
+ * This value has no particular meaning, but it can be used with the
+ * macros defined by the system headers such as WIFEXITED. It can also
+ * be used with g_spawn_check_exit_status().
*
- * If @trusted_ca is not %NULL, then @cert (or one of the certificates
- * in its chain) must be signed by it, or else
- * %G_TLS_CERTIFICATE_UNKNOWN_CA will be set in the return value. If
- * @trusted_ca is %NULL, that bit will never be set in the return
- * value.
+ * It is more likely that you want to use g_subprocess_get_if_exited()
+ * followed by g_subprocess_get_exit_status().
*
- * (All other #GTlsCertificateFlags values will always be set or unset
- * as appropriate.)
+ * It is an error to call this function before g_subprocess_wait() has
+ * returned.
*
- * Returns: the appropriate #GTlsCertificateFlags
- * Since: 2.28
+ * Returns: the (meaningless) waitpid() exit status from the kernel
+ * Since: 2.40
*/
/**
- * g_tls_client_connection_copy_session_state:
- * @conn: a #GTlsClientConnection
- * @source: a #GTlsClientConnection
+ * g_subprocess_get_stderr_pipe:
+ * @subprocess: a #GSubprocess
*
- * 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.
+ * Gets the #GInputStream from which to read the stderr output of
+ * @subprocess.
*
- * Since: 2.46
+ * The process must have been created with
+ * %G_SUBPROCESS_FLAGS_STDERR_PIPE.
+ *
+ * Returns: (transfer none): the stderr pipe
+ * Since: 2.40
*/
/**
- * g_tls_client_connection_get_accepted_cas:
- * @conn: the #GTlsClientConnection
+ * g_subprocess_get_stdin_pipe:
+ * @subprocess: a #GSubprocess
*
- * Gets the list of distinguished names of the Certificate Authorities
- * that the server will accept certificates from. This will be set
- * during the TLS handshake if the server requests a certificate.
- * Otherwise, it will be %NULL.
+ * Gets the #GOutputStream that you can write to in order to give data
+ * to the stdin of @subprocess.
*
- * Each item in the list is a #GByteArray which contains the complete
- * subject DN of the certificate authority.
+ * The process must have been created with
+ * %G_SUBPROCESS_FLAGS_STDIN_PIPE.
*
- * Returns: (element-type GByteArray) (transfer full): the list of
- * CA DNs. You should unref each element with g_byte_array_unref() and then
- * the free the list with g_list_free().
- * Since: 2.28
+ * Returns: (transfer none): the stdout pipe
+ * Since: 2.40
*/
/**
- * g_tls_client_connection_get_server_identity:
- * @conn: the #GTlsClientConnection
+ * g_subprocess_get_stdout_pipe:
+ * @subprocess: a #GSubprocess
*
- * Gets @conn's expected server identity
+ * Gets the #GInputStream from which to read the stdout output of
+ * @subprocess.
*
- * Returns: (transfer none): a #GSocketConnectable describing the
- * expected server identity, or %NULL if the expected identity is not
- * known.
- * Since: 2.28
+ * The process must have been created with
+ * %G_SUBPROCESS_FLAGS_STDOUT_PIPE.
+ *
+ * Returns: (transfer none): the stdout pipe
+ * Since: 2.40
*/
/**
- * g_tls_client_connection_get_use_ssl3:
- * @conn: the #GTlsClientConnection
+ * g_subprocess_get_successful:
+ * @subprocess: a #GSubprocess
*
- * Gets whether @conn will force the lowest-supported TLS protocol
- * version rather than attempt to negotiate the highest mutually-
- * supported version of TLS; see g_tls_client_connection_set_use_ssl3().
+ * Checks if the process was "successful". A process is considered
+ * successful if it exited cleanly with an exit status of 0, either by
+ * way of the exit() system call or return from main().
*
- * Returns: whether @conn will use the lowest-supported TLS protocol version
- * Since: 2.28
- * Deprecated: 2.56: SSL 3.0 is insecure, and this function does not
- * actually indicate whether it is enabled.
+ * It is an error to call this function before g_subprocess_wait() has
+ * returned.
+ *
+ * Returns: %TRUE if the process exited cleanly with a exit status of 0
+ * Since: 2.40
*/
/**
- * g_tls_client_connection_get_validation_flags:
- * @conn: the #GTlsClientConnection
+ * g_subprocess_get_term_sig:
+ * @subprocess: a #GSubprocess
*
- * Gets @conn's validation flags
+ * Get the signal number that caused the subprocess to terminate, given
+ * that it terminated due to a signal.
*
- * Returns: the validation flags
- * Since: 2.28
+ * This is equivalent to the system WTERMSIG macro.
+ *
+ * It is an error to call this function before g_subprocess_wait() and
+ * unless g_subprocess_get_if_signaled() returned %TRUE.
+ *
+ * Returns: the signal causing termination
+ * Since: 2.40
*/
/**
- * g_tls_client_connection_new:
- * @base_io_stream: the #GIOStream to wrap
- * @server_identity: (nullable): the expected identity of the server
- * @error: #GError for error reporting, or %NULL to ignore.
+ * g_subprocess_launcher_getenv:
+ * @self: a #GSubprocess
+ * @variable: (type filename): the environment variable to get
*
- * Creates a new #GTlsClientConnection wrapping @base_io_stream (which
- * must have pollable input and output streams) which is assumed to
- * communicate with the server identified by @server_identity.
+ * Returns the value of the environment variable @variable in the
+ * environment of processes launched from this launcher.
*
- * See the documentation for #GTlsConnection:base-io-stream for restrictions
- * on when application code can run operations on the @base_io_stream after
- * this function has returned.
+ * On UNIX, the returned string can be an arbitrary byte string.
+ * On Windows, it will be UTF-8.
*
- * Returns: (transfer full) (type GTlsClientConnection): the new
- * #GTlsClientConnection, or %NULL on error
- * Since: 2.28
+ * Returns: (type filename): the value of the environment variable,
+ * %NULL if unset
+ * Since: 2.40
*/
/**
- * g_tls_client_connection_set_server_identity:
- * @conn: the #GTlsClientConnection
- * @identity: a #GSocketConnectable describing the expected server identity
+ * g_subprocess_launcher_new:
+ * @flags: #GSubprocessFlags
*
- * Sets @conn's expected server identity, which is used both to tell
- * servers on virtual hosts which certificate to present, and also
- * to let @conn know what name to look for in the certificate when
- * performing %G_TLS_CERTIFICATE_BAD_IDENTITY validation, if enabled.
+ * Creates a new #GSubprocessLauncher.
*
- * Since: 2.28
+ * The launcher is created with the default options. A copy of the
+ * environment of the calling process is made at the time of this call
+ * and will be used as the environment that the process is launched in.
+ *
+ * Since: 2.40
*/
/**
- * g_tls_client_connection_set_use_ssl3:
- * @conn: the #GTlsClientConnection
- * @use_ssl3: whether to use the lowest-supported protocol version
+ * g_subprocess_launcher_set_child_setup: (skip)
+ * @self: a #GSubprocessLauncher
+ * @child_setup: a #GSpawnChildSetupFunc to use as the child setup function
+ * @user_data: user data for @child_setup
+ * @destroy_notify: a #GDestroyNotify for @user_data
*
- * If @use_ssl3 is %TRUE, this forces @conn to use the lowest-supported
- * TLS protocol version rather than trying to properly negotiate the
- * highest mutually-supported protocol version with the peer. This can
- * be used when talking to broken TLS servers that exhibit protocol
- * version intolerance.
+ * Sets up a child setup function.
*
- * Be aware that SSL 3.0 is generally disabled by the #GTlsBackend, so
- * the lowest-supported protocol version is probably not SSL 3.0.
+ * The child setup function will be called after fork() but before
+ * exec() on the child's side.
*
- * Since: 2.28
- * Deprecated: 2.56: SSL 3.0 is insecure, and this function does not
- * generally enable or disable it, despite its name.
+ * @destroy_notify will not be automatically called on the child's side
+ * of the fork(). It will only be called when the last reference on the
+ * #GSubprocessLauncher is dropped or when a new child setup function is
+ * given.
+ *
+ * %NULL can be given as @child_setup to disable the functionality.
+ *
+ * Child setup functions are only available on UNIX.
+ *
+ * Since: 2.40
*/
/**
- * g_tls_client_connection_set_validation_flags:
- * @conn: the #GTlsClientConnection
- * @flags: the #GTlsCertificateFlags to use
+ * g_subprocess_launcher_set_cwd:
+ * @self: a #GSubprocess
+ * @cwd: (type filename): the cwd for launched processes
*
- * Sets @conn's validation flags, to override the default set of
- * checks performed when validating a server certificate. By default,
- * %G_TLS_CERTIFICATE_VALIDATE_ALL is used.
+ * Sets the current working directory that processes will be launched
+ * with.
*
- * Since: 2.28
+ * By default processes are launched with the current working directory
+ * of the launching process at the time of launch.
+ *
+ * Since: 2.40
*/
/**
- * g_tls_connection_emit_accept_certificate:
- * @conn: a #GTlsConnection
- * @peer_cert: the peer's #GTlsCertificate
- * @errors: the problems with @peer_cert
+ * g_subprocess_launcher_set_environ:
+ * @self: a #GSubprocess
+ * @env: (array zero-terminated=1) (element-type filename) (transfer none):
+ * the replacement environment
*
- * Used by #GTlsConnection implementations to emit the
- * #GTlsConnection::accept-certificate signal.
+ * Replace the entire environment of processes launched from this
+ * launcher with the given 'environ' variable.
*
- * Returns: %TRUE if one of the signal handlers has returned
- * %TRUE to accept @peer_cert
- * Since: 2.28
+ * Typically you will build this variable by using g_listenv() to copy
+ * the process 'environ' and using the functions g_environ_setenv(),
+ * g_environ_unsetenv(), etc.
+ *
+ * As an alternative, you can use g_subprocess_launcher_setenv(),
+ * g_subprocess_launcher_unsetenv(), etc.
+ *
+ * Pass an empty array to set an empty environment. Pass %NULL to inherit the
+ * parent process’ environment. As of GLib 2.54, the parent process’ environment
+ * will be copied when g_subprocess_launcher_set_environ() is called.
+ * Previously, it was copied when the subprocess was executed. This means the
+ * copied environment may now be modified (using g_subprocess_launcher_setenv(),
+ * etc.) before launching the subprocess.
+ *
+ * On UNIX, all strings in this array can be arbitrary byte strings.
+ * On Windows, they should be in UTF-8.
+ *
+ * Since: 2.40
*/
/**
- * g_tls_connection_get_certificate:
- * @conn: a #GTlsConnection
+ * g_subprocess_launcher_set_flags:
+ * @self: a #GSubprocessLauncher
+ * @flags: #GSubprocessFlags
*
- * Gets @conn's certificate, as set by
- * g_tls_connection_set_certificate().
+ * Sets the flags on the launcher.
*
- * Returns: (transfer none): @conn's certificate, or %NULL
- * Since: 2.28
+ * The default flags are %G_SUBPROCESS_FLAGS_NONE.
+ *
+ * You may not set flags that specify conflicting options for how to
+ * handle a particular stdio stream (eg: specifying both
+ * %G_SUBPROCESS_FLAGS_STDIN_PIPE and
+ * %G_SUBPROCESS_FLAGS_STDIN_INHERIT).
+ *
+ * You may also not set a flag that conflicts with a previous call to a
+ * function like g_subprocess_launcher_set_stdin_file_path() or
+ * g_subprocess_launcher_take_stdout_fd().
+ *
+ * Since: 2.40
*/
/**
- * g_tls_connection_get_database:
- * @conn: a #GTlsConnection
+ * g_subprocess_launcher_set_stderr_file_path:
+ * @self: a #GSubprocessLauncher
+ * @path: (type filename) (nullable): a filename or %NULL
*
- * Gets the certificate database that @conn uses to verify
- * peer certificates. See g_tls_connection_set_database().
+ * Sets the file path to use as the stderr for spawned processes.
*
- * Returns: (transfer none): the certificate database that @conn uses or %NULL
- * Since: 2.30
+ * If @path is %NULL then any previously given path is unset.
+ *
+ * The file will be created or truncated when the process is spawned, as
+ * would be the case if using '2>' at the shell.
+ *
+ * If you want to send both stdout and stderr to the same file then use
+ * %G_SUBPROCESS_FLAGS_STDERR_MERGE.
+ *
+ * You may not set a stderr file path if a stderr fd is already set or
+ * if the launcher flags contain any flags directing stderr elsewhere.
+ *
+ * This feature is only available on UNIX.
+ *
+ * Since: 2.40
*/
/**
- * g_tls_connection_get_interaction:
- * @conn: a connection
+ * g_subprocess_launcher_set_stdin_file_path:
+ * @self: a #GSubprocessLauncher
+ * @path:
*
- * Get the object that will be used to interact with the user. It will be used
- * for things like prompting the user for passwords. If %NULL is returned, then
- * no user interaction will occur for this connection.
+ * Sets the file path to use as the stdin for spawned processes.
*
- * Returns: (transfer none): The interaction object.
- * Since: 2.30
+ * If @path is %NULL then any previously given path is unset.
+ *
+ * The file must exist or spawning the process will fail.
+ *
+ * You may not set a stdin file path if a stdin fd is already set or if
+ * the launcher flags contain any flags directing stdin elsewhere.
+ *
+ * This feature is only available on UNIX.
+ *
+ * Since: 2.40
*/
/**
- * g_tls_connection_get_peer_certificate:
- * @conn: a #GTlsConnection
+ * g_subprocess_launcher_set_stdout_file_path:
+ * @self: a #GSubprocessLauncher
+ * @path: (type filename) (nullable): a filename or %NULL
*
- * Gets @conn's peer's certificate after the handshake has completed.
- * (It is not set during the emission of
- * #GTlsConnection::accept-certificate.)
+ * Sets the file path to use as the stdout for spawned processes.
*
- * Returns: (transfer none): @conn's peer's certificate, or %NULL
- * Since: 2.28
+ * If @path is %NULL then any previously given path is unset.
+ *
+ * The file will be created or truncated when the process is spawned, as
+ * would be the case if using '>' at the shell.
+ *
+ * You may not set a stdout file path if a stdout fd is already set or
+ * if the launcher flags contain any flags directing stdout elsewhere.
+ *
+ * This feature is only available on UNIX.
+ *
+ * Since: 2.40
*/
/**
- * g_tls_connection_get_peer_certificate_errors:
- * @conn: a #GTlsConnection
+ * g_subprocess_launcher_setenv:
+ * @self: a #GSubprocess
+ * @variable: (type filename): the environment variable to set,
+ * must not contain '='
+ * @value: (type filename): the new value for the variable
+ * @overwrite: whether to change the variable if it already exists
*
- * Gets the errors associated with validating @conn's peer's
- * certificate, after the handshake has completed. (It is not set
- * during the emission of #GTlsConnection::accept-certificate.)
+ * Sets the environment variable @variable in the environment of
+ * processes launched from this launcher.
*
- * Returns: @conn's peer's certificate errors
- * Since: 2.28
+ * 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
*/
/**
- * g_tls_connection_get_rehandshake_mode:
- * @conn: a #GTlsConnection
+ * g_subprocess_launcher_spawn:
+ * @self: a #GSubprocessLauncher
+ * @error: Error
+ * @argv0: Command line arguments
+ * @...: Continued arguments, %NULL terminated
*
- * Gets @conn rehandshaking mode. See
- * g_tls_connection_set_rehandshake_mode() for details.
+ * Creates a #GSubprocess given a provided varargs list of arguments.
*
- * Returns: @conn's rehandshaking mode
- * Since: 2.28
+ * Since: 2.40
+ * Returns: (transfer full): A new #GSubprocess, or %NULL on error (and @error will be set)
*/
/**
- * g_tls_connection_get_require_close_notify:
- * @conn: a #GTlsConnection
+ * g_subprocess_launcher_spawnv:
+ * @self: a #GSubprocessLauncher
+ * @argv: (array zero-terminated=1) (element-type filename): Command line arguments
+ * @error: Error
*
- * Tests whether or not @conn expects a proper TLS close notification
- * when the connection is closed. See
- * g_tls_connection_set_require_close_notify() for details.
+ * Creates a #GSubprocess given a provided array of arguments.
*
- * Returns: %TRUE if @conn requires a proper TLS close
- * notification.
- * Since: 2.28
+ * Since: 2.40
+ * Returns: (transfer full): A new #GSubprocess, or %NULL on error (and @error will be set)
*/
/**
- * g_tls_connection_get_use_system_certdb:
- * @conn: a #GTlsConnection
+ * g_subprocess_launcher_take_fd:
+ * @self: a #GSubprocessLauncher
+ * @source_fd: File descriptor in parent process
+ * @target_fd: Target descriptor for child process
*
- * Gets whether @conn uses the system certificate database to verify
- * peer certificates. See g_tls_connection_set_use_system_certdb().
+ * Transfer an arbitrary file descriptor from parent process to the
+ * child. This function takes "ownership" of the fd; it will be closed
+ * in the parent when @self is freed.
*
- * Returns: whether @conn uses the system certificate database
- * Deprecated: 2.30: Use g_tls_connection_get_database() instead
+ * By default, all file descriptors from the parent will be closed.
+ * This function allows you to create (for example) a custom pipe() or
+ * socketpair() before launching the process, and choose the target
+ * descriptor in the child.
+ *
+ * An example use case is GNUPG, which has a command line argument
+ * --passphrase-fd providing a file descriptor number where it expects
+ * the passphrase to be written.
*/
/**
- * g_tls_connection_handshake:
- * @conn: a #GTlsConnection
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: a #GError, or %NULL
+ * g_subprocess_launcher_take_stderr_fd:
+ * @self: a #GSubprocessLauncher
+ * @fd: a file descriptor, or -1
*
- * Attempts a TLS handshake on @conn.
+ * Sets the file descriptor to use as the stderr for spawned processes.
*
- * On the client side, it is never necessary to call this method;
- * although the connection needs to perform a handshake after
- * connecting (or after sending a "STARTTLS"-type command) and may
- * need to rehandshake later if the server requests it,
- * #GTlsConnection will handle this for you automatically when you try
- * to send or receive data on the connection. However, you can call
- * g_tls_connection_handshake() manually if you want to know for sure
- * whether the initial handshake succeeded or failed (as opposed to
- * just immediately trying to write to @conn's output stream, in which
- * case if it fails, it may not be possible to tell if it failed
- * before or after completing the handshake).
+ * If @fd is -1 then any previously given fd is unset.
*
- * Likewise, on the server side, although a handshake is necessary at
- * the beginning of the communication, you do not need to call this
- * function explicitly unless you want clearer error reporting.
- * However, you may call g_tls_connection_handshake() later on to
- * renegotiate parameters (encryption methods, etc) with the client.
+ * Note that the default behaviour is to pass stderr through to the
+ * stderr of the parent process.
*
- * #GTlsConnection::accept_certificate may be emitted during the
- * handshake.
+ * The passed @fd belongs to the #GSubprocessLauncher. It will be
+ * automatically closed when the launcher is finalized. The file
+ * descriptor will also be closed on the child side when executing the
+ * spawned process.
*
- * Returns: success or failure
- * Since: 2.28
- */
-
-
-/**
- * g_tls_connection_handshake_async:
- * @conn: a #GTlsConnection
- * @io_priority: the [I/O priority][io-priority] of the request
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: callback to call when the handshake is complete
- * @user_data: the data to pass to the callback function
+ * You may not set a stderr fd if a stderr file path is already set or
+ * if the launcher flags contain any flags directing stderr elsewhere.
*
- * Asynchronously performs a TLS handshake on @conn. See
- * g_tls_connection_handshake() for more information.
+ * This feature is only available on UNIX.
*
- * Since: 2.28
+ * Since: 2.40
*/
/**
- * g_tls_connection_handshake_finish:
- * @conn: a #GTlsConnection
- * @result: a #GAsyncResult.
- * @error: a #GError pointer, or %NULL
+ * g_subprocess_launcher_take_stdin_fd:
+ * @self: a #GSubprocessLauncher
+ * @fd: a file descriptor, or -1
*
- * Finish an asynchronous TLS handshake operation. See
- * g_tls_connection_handshake() for more information.
+ * Sets the file descriptor to use as the stdin for spawned processes.
*
- * Returns: %TRUE on success, %FALSE on failure, in which
- * case @error will be set.
- * Since: 2.28
- */
-
-
-/**
- * g_tls_connection_set_certificate:
- * @conn: a #GTlsConnection
- * @certificate: the certificate to use for @conn
+ * If @fd is -1 then any previously given fd is unset.
*
- * This sets the certificate that @conn will present to its peer
- * during the TLS handshake. For a #GTlsServerConnection, it is
- * mandatory to set this, and that will normally be done at construct
- * time.
+ * Note that if your intention is to have the stdin of the calling
+ * process inherited by the child then %G_SUBPROCESS_FLAGS_STDIN_INHERIT
+ * is a better way to go about doing that.
*
- * For a #GTlsClientConnection, this is optional. If a handshake fails
- * with %G_TLS_ERROR_CERTIFICATE_REQUIRED, that means that the server
- * requires a certificate, and if you try connecting again, you should
- * call this method first. You can call
- * g_tls_client_connection_get_accepted_cas() on the failed connection
- * to get a list of Certificate Authorities that the server will
- * accept certificates from.
+ * The passed @fd is noted but will not be touched in the current
+ * process. It is therefore necessary that it be kept open by the
+ * caller until the subprocess is spawned. The file descriptor will
+ * also not be explicitly closed on the child side, so it must be marked
+ * O_CLOEXEC if that's what you want.
*
- * (It is also possible that a server will allow the connection with
- * or without a certificate; in that case, if you don't provide a
- * certificate, you can tell that the server requested one by the fact
- * that g_tls_client_connection_get_accepted_cas() will return
- * non-%NULL.)
+ * You may not set a stdin fd if a stdin file path is already set or if
+ * the launcher flags contain any flags directing stdin elsewhere.
*
- * Since: 2.28
+ * This feature is only available on UNIX.
+ *
+ * Since: 2.40
*/
/**
- * g_tls_connection_set_database:
- * @conn: a #GTlsConnection
- * @database: a #GTlsDatabase
+ * g_subprocess_launcher_take_stdout_fd:
+ * @self: a #GSubprocessLauncher
+ * @fd: a file descriptor, or -1
*
- * Sets the certificate database that is used to verify peer certificates.
- * This is set to the default database by default. See
- * g_tls_backend_get_default_database(). If set to %NULL, then
- * peer certificate validation will always set the
- * %G_TLS_CERTIFICATE_UNKNOWN_CA error (meaning
- * #GTlsConnection::accept-certificate will always be emitted on
- * client-side connections, unless that bit is not set in
- * #GTlsClientConnection:validation-flags).
+ * Sets the file descriptor to use as the stdout for spawned processes.
*
- * Since: 2.30
- */
-
-
-/**
- * g_tls_connection_set_interaction:
- * @conn: a connection
- * @interaction: (nullable): an interaction object, or %NULL
+ * If @fd is -1 then any previously given fd is unset.
*
- * Set the object that will be used to interact with the user. It will be used
- * for things like prompting the user for passwords.
+ * Note that the default behaviour is to pass stdout through to the
+ * stdout of the parent process.
*
- * The @interaction argument will normally be a derived subclass of
- * #GTlsInteraction. %NULL can also be provided if no user interaction
- * should occur for this connection.
+ * The passed @fd is noted but will not be touched in the current
+ * process. It is therefore necessary that it be kept open by the
+ * caller until the subprocess is spawned. The file descriptor will
+ * also not be explicitly closed on the child side, so it must be marked
+ * O_CLOEXEC if that's what you want.
*
- * Since: 2.30
+ * You may not set a stdout fd if a stdout file path is already set or
+ * if the launcher flags contain any flags directing stdout elsewhere.
+ *
+ * This feature is only available on UNIX.
+ *
+ * Since: 2.40
*/
/**
- * g_tls_connection_set_rehandshake_mode:
- * @conn: a #GTlsConnection
- * @mode: the rehandshaking mode
- *
- * Sets how @conn behaves with respect to rehandshaking requests.
- *
- * %G_TLS_REHANDSHAKE_NEVER means that it will never agree to
- * rehandshake after the initial handshake is complete. (For a client,
- * this means it will refuse rehandshake requests from the server, and
- * for a server, this means it will close the connection with an error
- * if the client attempts to rehandshake.)
+ * g_subprocess_launcher_unsetenv:
+ * @self: a #GSubprocess
+ * @variable: (type filename): the environment variable to unset,
+ * must not contain '='
*
- * %G_TLS_REHANDSHAKE_SAFELY means that the connection will allow a
- * rehandshake only if the other end of the connection supports the
- * TLS `renegotiation_info` extension. This is the default behavior,
- * but means that rehandshaking will not work against older
- * implementations that do not support that extension.
+ * Removes the environment variable @variable from the environment of
+ * processes launched from this launcher.
*
- * %G_TLS_REHANDSHAKE_UNSAFELY means that the connection will allow
- * rehandshaking even without the `renegotiation_info` extension. On
- * the server side in particular, this is not recommended, since it
- * leaves the server open to certain attacks. However, this mode is
- * necessary if you need to allow renegotiation with older client
- * software.
+ * On UNIX, the variable's name can be an arbitrary byte string not
+ * containing '='. On Windows, it should be in UTF-8.
*
- * Since: 2.28
+ * Since: 2.40
*/
/**
- * g_tls_connection_set_require_close_notify:
- * @conn: a #GTlsConnection
- * @require_close_notify: whether or not to require close notification
- *
- * Sets whether or not @conn expects a proper TLS close notification
- * before the connection is closed. If this is %TRUE (the default),
- * then @conn will expect to receive a TLS close notification from its
- * peer before the connection is closed, and will return a
- * %G_TLS_ERROR_EOF error if the connection is closed without proper
- * notification (since this may indicate a network error, or
- * man-in-the-middle attack).
- *
- * In some protocols, the application will know whether or not the
- * connection was closed cleanly based on application-level data
- * (because the application-level data includes a length field, or is
- * somehow self-delimiting); in this case, the close notify is
- * redundant and sometimes omitted. (TLS 1.1 explicitly allows this;
- * in TLS 1.0 it is technically an error, but often done anyway.) You
- * can use g_tls_connection_set_require_close_notify() to tell @conn
- * to allow an "unannounced" connection close, in which case the close
- * will show up as a 0-length read, as in a non-TLS
- * #GSocketConnection, and it is up to the application to check that
- * the data has been fully received.
+ * g_subprocess_new: (skip)
+ * @flags: flags that define the behaviour of the subprocess
+ * @error: (nullable): return location for an error, or %NULL
+ * @argv0: first commandline argument to pass to the subprocess
+ * @...: more commandline arguments, followed by %NULL
*
- * Note that this only affects the behavior when the peer closes the
- * connection; when the application calls g_io_stream_close() itself
- * on @conn, this will send a close notification regardless of the
- * setting of this property. If you explicitly want to do an unclean
- * close, you can close @conn's #GTlsConnection:base-io-stream rather
- * than closing @conn itself, but note that this may only be done when no other
- * operations are pending on @conn or the base I/O stream.
+ * Create a new process with the given flags and varargs argument
+ * list. By default, matching the g_spawn_async() defaults, the
+ * child's stdin will be set to the system null device, and
+ * stdout/stderr will be inherited from the parent. You can use
+ * @flags to control this behavior.
*
- * Since: 2.28
+ * The argument list must be terminated with %NULL.
+ *
+ * Returns: A newly created #GSubprocess, or %NULL on error (and @error
+ * will be set)
+ * Since: 2.40
*/
/**
- * g_tls_connection_set_use_system_certdb:
- * @conn: a #GTlsConnection
- * @use_system_certdb: whether to use the system certificate database
+ * g_subprocess_newv: (rename-to g_subprocess_new)
+ * @argv: (array zero-terminated=1) (element-type filename): commandline arguments for the subprocess
+ * @flags: flags that define the behaviour of the subprocess
+ * @error: (nullable): return location for an error, or %NULL
*
- * Sets whether @conn uses the system certificate database to verify
- * peer certificates. This is %TRUE by default. If set to %FALSE, then
- * peer certificate validation will always set the
- * %G_TLS_CERTIFICATE_UNKNOWN_CA error (meaning
- * #GTlsConnection::accept-certificate will always be emitted on
- * client-side connections, unless that bit is not set in
- * #GTlsClientConnection:validation-flags).
+ * Create a new process with the given flags and argument list.
*
- * Deprecated: 2.30: Use g_tls_connection_set_database() instead
+ * The argument list is expected to be %NULL-terminated.
+ *
+ * Returns: A newly created #GSubprocess, or %NULL on error (and @error
+ * will be set)
+ * Since: 2.40
*/
/**
- * g_tls_database_create_certificate_handle:
- * @self: a #GTlsDatabase
- * @certificate: certificate for which to create a handle.
+ * g_subprocess_send_signal:
+ * @subprocess: a #GSubprocess
+ * @signal_num: the signal number to send
*
- * Create a handle string for the certificate. The database will only be able
- * to create a handle for certificates that originate from the database. In
- * cases where the database cannot create a handle for a certificate, %NULL
- * will be returned.
+ * Sends the UNIX signal @signal_num to the subprocess, if it is still
+ * running.
*
- * This handle should be stable across various instances of the application,
- * and between applications. If a certificate is modified in the database,
- * then it is not guaranteed that this handle will continue to point to it.
+ * This API is race-free. If the subprocess has terminated, it will not
+ * be signalled.
*
- * Returns: (nullable): a newly allocated string containing the
- * handle.
- * Since: 2.30
+ * This API is not available on Windows.
+ *
+ * Since: 2.40
*/
/**
- * g_tls_database_lookup_certificate_for_handle:
- * @self: a #GTlsDatabase
- * @handle: a certificate handle
- * @interaction: (nullable): used to interact with the user if necessary
- * @flags: Flags which affect the lookup.
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: (nullable): a #GError, or %NULL
+ * g_subprocess_wait:
+ * @subprocess: a #GSubprocess
+ * @cancellable: a #GCancellable
+ * @error: a #GError
*
- * Lookup a certificate by its handle.
+ * Synchronously wait for the subprocess to terminate.
*
- * The handle should have been created by calling
- * g_tls_database_create_certificate_handle() on a #GTlsDatabase object of
- * the same TLS backend. The handle is designed to remain valid across
- * instantiations of the database.
+ * After the process terminates you can query its exit status with
+ * functions such as g_subprocess_get_if_exited() and
+ * g_subprocess_get_exit_status().
*
- * If the handle is no longer valid, or does not point to a certificate in
- * this database, then %NULL will be returned.
+ * This function does not fail in the case of the subprocess having
+ * abnormal termination. See g_subprocess_wait_check() for that.
*
- * This function can block, use g_tls_database_lookup_certificate_for_handle_async() to perform
- * the lookup operation asynchronously.
+ * Cancelling @cancellable doesn't kill the subprocess. Call
+ * g_subprocess_force_exit() if it is desirable.
*
- * Returns: (transfer full) (nullable): a newly allocated
- * #GTlsCertificate, or %NULL. Use g_object_unref() to release the certificate.
- * Since: 2.30
+ * Returns: %TRUE on success, %FALSE if @cancellable was cancelled
+ * Since: 2.40
*/
/**
- * g_tls_database_lookup_certificate_for_handle_async:
- * @self: a #GTlsDatabase
- * @handle: a certificate handle
- * @interaction: (nullable): used to interact with the user if necessary
- * @flags: Flags which affect the lookup.
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: callback to call when the operation completes
- * @user_data: the data to pass to the callback function
+ * g_subprocess_wait_async:
+ * @subprocess: a #GSubprocess
+ * @cancellable: a #GCancellable, or %NULL
+ * @callback: a #GAsyncReadyCallback to call when the operation is complete
+ * @user_data: user_data for @callback
*
- * Asynchronously lookup a certificate by its handle in the database. See
- * g_tls_database_lookup_certificate_for_handle() for more information.
+ * Wait for the subprocess to terminate.
*
- * Since: 2.30
+ * This is the asynchronous version of g_subprocess_wait().
+ *
+ * Since: 2.40
*/
/**
- * g_tls_database_lookup_certificate_for_handle_finish:
- * @self: a #GTlsDatabase
- * @result: a #GAsyncResult.
- * @error: a #GError pointer, or %NULL
- *
- * Finish an asynchronous lookup of a certificate by its handle. See
- * g_tls_database_lookup_certificate_by_handle() for more information.
+ * g_subprocess_wait_check:
+ * @subprocess: a #GSubprocess
+ * @cancellable: a #GCancellable
+ * @error: a #GError
*
- * If the handle is no longer valid, or does not point to a certificate in
- * this database, then %NULL will be returned.
+ * Combines g_subprocess_wait() with g_spawn_check_exit_status().
*
- * Returns: (transfer full): a newly allocated #GTlsCertificate object.
- * Use g_object_unref() to release the certificate.
- * Since: 2.30
+ * Returns: %TRUE on success, %FALSE if process exited abnormally, or
+ * @cancellable was cancelled
+ * Since: 2.40
*/
/**
- * g_tls_database_lookup_certificate_issuer:
- * @self: a #GTlsDatabase
- * @certificate: a #GTlsCertificate
- * @interaction: (nullable): used to interact with the user if necessary
- * @flags: flags which affect the lookup operation
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: (nullable): a #GError, or %NULL
- *
- * Lookup the issuer of @certificate in the database.
+ * g_subprocess_wait_check_async:
+ * @subprocess: a #GSubprocess
+ * @cancellable: a #GCancellable, or %NULL
+ * @callback: a #GAsyncReadyCallback to call when the operation is complete
+ * @user_data: user_data for @callback
*
- * The %issuer property
- * of @certificate is not modified, and the two certificates are not hooked
- * into a chain.
+ * Combines g_subprocess_wait_async() with g_spawn_check_exit_status().
*
- * This function can block, use g_tls_database_lookup_certificate_issuer_async() to perform
- * the lookup operation asynchronously.
+ * This is the asynchronous version of g_subprocess_wait_check().
*
- * Returns: (transfer full): a newly allocated issuer #GTlsCertificate,
- * or %NULL. Use g_object_unref() to release the certificate.
- * Since: 2.30
+ * Since: 2.40
*/
/**
- * g_tls_database_lookup_certificate_issuer_async:
- * @self: a #GTlsDatabase
- * @certificate: a #GTlsCertificate
- * @interaction: (nullable): used to interact with the user if necessary
- * @flags: flags which affect the lookup operation
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: callback to call when the operation completes
- * @user_data: the data to pass to the callback function
+ * g_subprocess_wait_check_finish:
+ * @subprocess: a #GSubprocess
+ * @result: the #GAsyncResult passed to your #GAsyncReadyCallback
+ * @error: a pointer to a %NULL #GError, or %NULL
*
- * Asynchronously lookup the issuer of @certificate in the database. See
- * g_tls_database_lookup_certificate_issuer() for more information.
+ * Collects the result of a previous call to
+ * g_subprocess_wait_check_async().
*
- * Since: 2.30
+ * Returns: %TRUE if successful, or %FALSE with @error set
+ * Since: 2.40
*/
/**
- * g_tls_database_lookup_certificate_issuer_finish:
- * @self: a #GTlsDatabase
- * @result: a #GAsyncResult.
- * @error: a #GError pointer, or %NULL
+ * g_subprocess_wait_finish:
+ * @subprocess: a #GSubprocess
+ * @result: the #GAsyncResult passed to your #GAsyncReadyCallback
+ * @error: a pointer to a %NULL #GError, or %NULL
*
- * Finish an asynchronous lookup issuer operation. See
- * g_tls_database_lookup_certificate_issuer() for more information.
+ * Collects the result of a previous call to
+ * g_subprocess_wait_async().
*
- * Returns: (transfer full): a newly allocated issuer #GTlsCertificate,
- * or %NULL. Use g_object_unref() to release the certificate.
- * Since: 2.30
+ * Returns: %TRUE if successful, or %FALSE with @error set
+ * Since: 2.40
*/
/**
- * g_tls_database_lookup_certificates_issued_by:
- * @self: a #GTlsDatabase
- * @issuer_raw_dn: a #GByteArray which holds the DER encoded issuer DN.
- * @interaction: (nullable): used to interact with the user if necessary
- * @flags: Flags which affect the lookup operation.
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: (nullable): a #GError, or %NULL
+ * g_task_attach_source:
+ * @task: a #GTask
+ * @source: the source to attach
+ * @callback: the callback to invoke when @source triggers
*
- * Lookup certificates issued by this issuer in the database.
+ * A utility function for dealing with async operations where you need
+ * to wait for a #GSource to trigger. Attaches @source to @task's
+ * #GMainContext with @task's [priority][io-priority], and sets @source's
+ * callback to @callback, with @task as the callback's `user_data`.
*
- * This function can block, use g_tls_database_lookup_certificates_issued_by_async() to perform
- * the lookup operation asynchronously.
+ * This takes a reference on @task until @source is destroyed.
*
- * Returns: (transfer full) (element-type GTlsCertificate): a newly allocated list of #GTlsCertificate
- * objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.
- * Since: 2.30
+ * Since: 2.36
*/
/**
- * g_tls_database_lookup_certificates_issued_by_async:
- * @self: a #GTlsDatabase
- * @issuer_raw_dn: a #GByteArray which holds the DER encoded issuer DN.
- * @interaction: (nullable): used to interact with the user if necessary
- * @flags: Flags which affect the lookup operation.
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: callback to call when the operation completes
- * @user_data: the data to pass to the callback function
- *
- * Asynchronously lookup certificates issued by this issuer in the database. See
- * g_tls_database_lookup_certificates_issued_by() for more information.
+ * g_task_get_cancellable:
+ * @task: a #GTask
*
- * The database may choose to hold a reference to the issuer byte array for the duration
- * of of this asynchronous operation. The byte array should not be modified during
- * this time.
+ * Gets @task's #GCancellable
*
- * Since: 2.30
+ * Returns: (transfer none): @task's #GCancellable
+ * Since: 2.36
*/
/**
- * g_tls_database_lookup_certificates_issued_by_finish:
- * @self: a #GTlsDatabase
- * @result: a #GAsyncResult.
- * @error: a #GError pointer, or %NULL
+ * g_task_get_check_cancellable:
+ * @task: the #GTask
*
- * Finish an asynchronous lookup of certificates. See
- * g_tls_database_lookup_certificates_issued_by() for more information.
+ * Gets @task's check-cancellable flag. See
+ * g_task_set_check_cancellable() for more details.
*
- * Returns: (transfer full) (element-type GTlsCertificate): a newly allocated list of #GTlsCertificate
- * objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.
- * Since: 2.30
+ * Since: 2.36
*/
/**
- * g_tls_database_verify_chain:
- * @self: a #GTlsDatabase
- * @chain: a #GTlsCertificate chain
- * @purpose: the purpose that this certificate chain will be used for.
- * @identity: (nullable): the expected peer identity
- * @interaction: (nullable): used to interact with the user if necessary
- * @flags: additional verify flags
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @error: (nullable): a #GError, or %NULL
- *
- * Determines the validity of a certificate chain after looking up and
- * adding any missing certificates to the chain.
+ * g_task_get_completed:
+ * @task: a #GTask.
*
- * @chain is a chain of #GTlsCertificate objects each pointing to the next
- * certificate in the chain by its #GTlsCertificate:issuer property. The chain may initially
- * consist of one or more certificates. After the verification process is
- * complete, @chain may be modified by adding missing certificates, or removing
- * extra certificates. If a certificate anchor was found, then it is added to
- * the @chain.
+ * 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.
*
- * @purpose describes the purpose (or usage) for which the certificate
- * is being used. Typically @purpose will be set to #G_TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER
- * which means that the certificate is being used to authenticate a server
- * (and we are acting as the client).
+ * Returns: %TRUE if the task has completed, %FALSE otherwise.
+ * Since: 2.44
+ */
+
+
+/**
+ * g_task_get_context:
+ * @task: a #GTask
*
- * The @identity is used to check for pinned certificates (trust exceptions)
- * in the database. These will override the normal verification process on a
- * host by host basis.
+ * Gets the #GMainContext that @task will return its result in (that
+ * is, the context that was the
+ * [thread-default main context][g-main-context-push-thread-default]
+ * at the point when @task was created).
*
- * Currently there are no @flags, and %G_TLS_DATABASE_VERIFY_NONE should be
- * used.
+ * This will always return a non-%NULL value, even if the task's
+ * context is the default #GMainContext.
*
- * If @chain is found to be valid, then the return value will be 0. If
- * @chain is found to be invalid, then the return value will indicate
- * the problems found. If the function is unable to determine whether
- * @chain is valid or not (eg, because @cancellable is triggered
- * before it completes) then the return value will be
- * %G_TLS_CERTIFICATE_GENERIC_ERROR and @error will be set
- * accordingly. @error is not set when @chain is successfully analyzed
- * but found to be invalid.
+ * Returns: (transfer none): @task's #GMainContext
+ * Since: 2.36
+ */
+
+
+/**
+ * g_task_get_priority:
+ * @task: a #GTask
*
- * This function can block, use g_tls_database_verify_chain_async() to perform
- * the verification operation asynchronously.
+ * Gets @task's priority
*
- * Returns: the appropriate #GTlsCertificateFlags which represents the
- * result of verification.
- * Since: 2.30
+ * Returns: @task's priority
+ * Since: 2.36
*/
/**
- * g_tls_database_verify_chain_async:
- * @self: a #GTlsDatabase
- * @chain: a #GTlsCertificate chain
- * @purpose: the purpose that this certificate chain will be used for.
- * @identity: (nullable): the expected peer identity
- * @interaction: (nullable): used to interact with the user if necessary
- * @flags: additional verify flags
- * @cancellable: (nullable): a #GCancellable, or %NULL
- * @callback: callback to call when the operation completes
- * @user_data: the data to pass to the callback function
+ * g_task_get_return_on_cancel:
+ * @task: the #GTask
*
- * Asynchronously determines the validity of a certificate chain after
- * looking up and adding any missing certificates to the chain. See
- * g_tls_database_verify_chain() for more information.
+ * Gets @task's return-on-cancel flag. See
+ * g_task_set_return_on_cancel() for more details.
*
- * Since: 2.30
+ * Since: 2.36
*/
/**
- * g_tls_database_verify_chain_finish:
- * @self: a #GTlsDatabase
- * @result: a #GAsyncResult.
- * @error: a #GError pointer, or %NULL
- *
- * Finish an asynchronous verify chain operation. See
- * g_tls_database_verify_chain() for more information.
+ * g_task_get_source_object:
+ * @task: a #GTask
*
- * If @chain is found to be valid, then the return value will be 0. If
- * @chain is found to be invalid, then the return value will indicate
- * the problems found. If the function is unable to determine whether
- * @chain is valid or not (eg, because @cancellable is triggered
- * before it completes) then the return value will be
- * %G_TLS_CERTIFICATE_GENERIC_ERROR and @error will be set
- * accordingly. @error is not set when @chain is successfully analyzed
- * but found to be invalid.
+ * Gets the source object from @task. Like
+ * g_async_result_get_source_object(), but does not ref the object.
*
- * Returns: the appropriate #GTlsCertificateFlags which represents the
- * result of verification.
- * Since: 2.30
+ * Returns: (transfer none) (nullable) (type GObject): @task's source object, or %NULL
+ * Since: 2.36
*/
/**
- * g_tls_error_quark:
+ * g_task_get_source_tag:
+ * @task: a #GTask
*
- * Gets the TLS error quark.
+ * Gets @task's source tag. See g_task_set_source_tag().
*
- * Returns: a #GQuark.
- * Since: 2.28
+ * Returns: (transfer none): @task's source tag
+ * Since: 2.36
*/
/**
- * g_tls_file_database_new:
- * @anchors: (type filename): filename of anchor certificate authorities.
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Creates a new #GTlsFileDatabase which uses anchor certificate authorities
- * in @anchors to verify certificate chains.
+ * g_task_get_task_data:
+ * @task: a #GTask
*
- * The certificates in @anchors must be PEM encoded.
+ * Gets @task's `task_data`.
*
- * Returns: (transfer full) (type GTlsFileDatabase): the new
- * #GTlsFileDatabase, or %NULL on error
- * Since: 2.30
+ * Returns: (transfer none): @task's `task_data`.
+ * Since: 2.36
*/
/**
- * g_tls_interaction_ask_password:
- * @interaction: a #GTlsInteraction object
- * @password: a #GTlsPassword object
- * @cancellable: an optional #GCancellable cancellation object
- * @error: an optional location to place an error on failure
+ * g_task_had_error:
+ * @task: a #GTask.
*
- * Run synchronous interaction to ask the user for a password. In general,
- * g_tls_interaction_invoke_ask_password() should be used instead of this
- * function.
+ * Tests if @task resulted in an error.
*
- * Derived subclasses usually implement a password prompt, although they may
- * also choose to provide a password from elsewhere. The @password value will
- * be filled in and then @callback will be called. Alternatively the user may
- * abort this password request, which will usually abort the TLS connection.
+ * Returns: %TRUE if the task resulted in an error, %FALSE otherwise.
+ * Since: 2.36
+ */
+
+
+/**
+ * g_task_is_valid:
+ * @result: (type Gio.AsyncResult): A #GAsyncResult
+ * @source_object: (nullable) (type GObject): the source object
+ * expected to be associated with the task
*
- * If the interaction is cancelled by the cancellation object, or by the
- * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- * contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- * not support immediate cancellation.
+ * Checks that @result is a #GTask, and that @source_object is its
+ * source object (or that @source_object is %NULL and @result has no
+ * source object). This can be used in g_return_if_fail() checks.
*
- * Returns: The status of the ask password interaction.
- * Since: 2.30
+ * Returns: %TRUE if @result and @source_object are valid, %FALSE
+ * if not
+ * Since: 2.36
*/
/**
- * g_tls_interaction_ask_password_async:
- * @interaction: a #GTlsInteraction object
- * @password: a #GTlsPassword object
- * @cancellable: an optional #GCancellable cancellation object
- * @callback: (nullable): will be called when the interaction completes
- * @user_data: (nullable): data to pass to the @callback
- *
- * Run asynchronous interaction to ask the user for a password. In general,
- * g_tls_interaction_invoke_ask_password() should be used instead of this
- * function.
+ * g_task_new:
+ * @source_object: (nullable) (type GObject): the #GObject that owns
+ * this task, or %NULL.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @callback_data: (closure): user data passed to @callback.
*
- * Derived subclasses usually implement a password prompt, although they may
- * also choose to provide a password from elsewhere. The @password value will
- * be filled in and then @callback will be called. Alternatively the user may
- * abort this password request, which will usually abort the TLS connection.
+ * Creates a #GTask acting on @source_object, which will eventually be
+ * used to invoke @callback in the current
+ * [thread-default main context][g-main-context-push-thread-default].
*
- * If the interaction is cancelled by the cancellation object, or by the
- * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- * contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- * not support immediate cancellation.
+ * Call this in the "start" method of your asynchronous method, and
+ * pass the #GTask around throughout the asynchronous operation. You
+ * can use g_task_set_task_data() to attach task-specific data to the
+ * object, which you can retrieve later via g_task_get_task_data().
*
- * Certain implementations may not support immediate cancellation.
+ * By default, if @cancellable is cancelled, then the return value of
+ * the task will always be %G_IO_ERROR_CANCELLED, even if the task had
+ * already completed before the cancellation. This allows for
+ * simplified handling in cases where cancellation may imply that
+ * other objects that the task depends on have been destroyed. If you
+ * do not want this behavior, you can use
+ * g_task_set_check_cancellable() to change it.
*
- * Since: 2.30
+ * Returns: a #GTask.
+ * Since: 2.36
*/
/**
- * g_tls_interaction_ask_password_finish:
- * @interaction: a #GTlsInteraction object
- * @result: the result passed to the callback
- * @error: an optional location to place an error on failure
+ * g_task_propagate_boolean:
+ * @task: a #GTask.
+ * @error: return location for a #GError
*
- * Complete an ask password user interaction request. This should be once
- * the g_tls_interaction_ask_password_async() completion callback is called.
+ * Gets the result of @task as a #gboolean.
*
- * If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsPassword passed
- * to g_tls_interaction_ask_password() will have its password filled in.
+ * If the task resulted in an error, or was cancelled, then this will
+ * instead return %FALSE and set @error.
*
- * If the interaction is cancelled by the cancellation object, or by the
- * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- * contains a %G_IO_ERROR_CANCELLED error code.
+ * Since this method transfers ownership of the return value (or
+ * error) to the caller, you may only call it once.
*
- * Returns: The status of the ask password interaction.
- * Since: 2.30
+ * Returns: the task result, or %FALSE on error
+ * Since: 2.36
*/
/**
- * g_tls_interaction_invoke_ask_password:
- * @interaction: a #GTlsInteraction object
- * @password: a #GTlsPassword object
- * @cancellable: an optional #GCancellable cancellation object
- * @error: an optional location to place an error on failure
- *
- * Invoke the interaction to ask the user for a password. It invokes this
- * interaction in the main loop, specifically the #GMainContext returned by
- * g_main_context_get_thread_default() when the interaction is created. This
- * is called by called by #GTlsConnection or #GTlsDatabase to ask the user
- * for a password.
+ * g_task_propagate_int:
+ * @task: a #GTask.
+ * @error: return location for a #GError
*
- * Derived subclasses usually implement a password prompt, although they may
- * also choose to provide a password from elsewhere. The @password value will
- * be filled in and then @callback will be called. Alternatively the user may
- * abort this password request, which will usually abort the TLS connection.
+ * Gets the result of @task as an integer (#gssize).
*
- * The implementation can either be a synchronous (eg: modal dialog) or an
- * asynchronous one (eg: modeless dialog). This function will take care of
- * calling which ever one correctly.
+ * If the task resulted in an error, or was cancelled, then this will
+ * instead return -1 and set @error.
*
- * If the interaction is cancelled by the cancellation object, or by the
- * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- * contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- * not support immediate cancellation.
+ * Since this method transfers ownership of the return value (or
+ * error) to the caller, you may only call it once.
*
- * Returns: The status of the ask password interaction.
- * Since: 2.30
+ * Returns: the task result, or -1 on error
+ * Since: 2.36
*/
/**
- * g_tls_interaction_invoke_request_certificate:
- * @interaction: a #GTlsInteraction object
- * @connection: a #GTlsConnection object
- * @flags: flags providing more information about the request
- * @cancellable: an optional #GCancellable cancellation object
- * @error: an optional location to place an error on failure
- *
- * Invoke the interaction to ask the user to choose a certificate to
- * use with the connection. It invokes this interaction in the main
- * loop, specifically the #GMainContext returned by
- * g_main_context_get_thread_default() when the interaction is
- * created. This is called by called by #GTlsConnection when the peer
- * requests a certificate during the handshake.
+ * g_task_propagate_pointer:
+ * @task: a #GTask
+ * @error: return location for a #GError
*
- * Derived subclasses usually implement a certificate selector,
- * although they may also choose to provide a certificate from
- * elsewhere. Alternatively the user may abort this certificate
- * request, which may or may not abort the TLS connection.
+ * Gets the result of @task as a pointer, and transfers ownership
+ * of that value to the caller.
*
- * The implementation can either be a synchronous (eg: modal dialog) or an
- * asynchronous one (eg: modeless dialog). This function will take care of
- * calling which ever one correctly.
+ * If the task resulted in an error, or was cancelled, then this will
+ * instead return %NULL and set @error.
*
- * If the interaction is cancelled by the cancellation object, or by the
- * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- * contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- * not support immediate cancellation.
+ * Since this method transfers ownership of the return value (or
+ * error) to the caller, you may only call it once.
*
- * Returns: The status of the certificate request interaction.
- * Since: 2.40
+ * Returns: (transfer full): the task result, or %NULL on error
+ * Since: 2.36
*/
/**
- * g_tls_interaction_request_certificate:
- * @interaction: a #GTlsInteraction object
- * @connection: a #GTlsConnection object
- * @flags: flags providing more information about the request
- * @cancellable: an optional #GCancellable cancellation object
- * @error: an optional location to place an error on failure
+ * g_task_report_error:
+ * @source_object: (nullable) (type GObject): the #GObject that owns
+ * this task, or %NULL.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @callback_data: (closure): user data passed to @callback.
+ * @source_tag: an opaque pointer indicating the source of this task
+ * @error: (transfer full): error to report
*
- * Run synchronous interaction to ask the user to choose a certificate to use
- * with the connection. In general, g_tls_interaction_invoke_request_certificate()
- * should be used instead of this function.
+ * Creates a #GTask and then immediately calls g_task_return_error()
+ * on it. Use this in the wrapper function of an asynchronous method
+ * when you want to avoid even calling the virtual method. You can
+ * then use g_async_result_is_tagged() in the finish method wrapper to
+ * check if the result there is tagged as having been created by the
+ * wrapper method, and deal with it appropriately if so.
*
- * Derived subclasses usually implement a certificate selector, although they may
- * also choose to provide a certificate from elsewhere. Alternatively the user may
- * abort this certificate request, which will usually abort the TLS connection.
+ * See also g_task_report_new_error().
*
- * If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsConnection
- * passed to g_tls_interaction_request_certificate() will have had its
- * #GTlsConnection:certificate filled in.
+ * Since: 2.36
+ */
+
+
+/**
+ * g_task_report_new_error:
+ * @source_object: (nullable) (type GObject): the #GObject that owns
+ * this task, or %NULL.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @callback_data: (closure): user data passed to @callback.
+ * @source_tag: an opaque pointer indicating the source of this task
+ * @domain: a #GQuark.
+ * @code: an error code.
+ * @format: a string with format characters.
+ * @...: a list of values to insert into @format.
*
- * If the interaction is cancelled by the cancellation object, or by the
- * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- * contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
- * not support immediate cancellation.
+ * Creates a #GTask and then immediately calls
+ * g_task_return_new_error() on it. Use this in the wrapper function
+ * of an asynchronous method when you want to avoid even calling the
+ * virtual method. You can then use g_async_result_is_tagged() in the
+ * finish method wrapper to check if the result there is tagged as
+ * having been created by the wrapper method, and deal with it
+ * appropriately if so.
*
- * Returns: The status of the request certificate interaction.
- * Since: 2.40
+ * See also g_task_report_error().
+ *
+ * Since: 2.36
*/
/**
- * g_tls_interaction_request_certificate_async:
- * @interaction: a #GTlsInteraction object
- * @connection: a #GTlsConnection object
- * @flags: flags providing more information about the request
- * @cancellable: an optional #GCancellable cancellation object
- * @callback: (nullable): will be called when the interaction completes
- * @user_data: (nullable): data to pass to the @callback
- *
- * Run asynchronous interaction to ask the user for a certificate to use with
- * the connection. In general, g_tls_interaction_invoke_request_certificate() should
- * be used instead of this function.
+ * g_task_return_boolean:
+ * @task: a #GTask.
+ * @result: the #gboolean result of a task function.
*
- * Derived subclasses usually implement a certificate selector, although they may
- * also choose to provide a certificate from elsewhere. @callback will be called
- * when the operation completes. Alternatively the user may abort this certificate
- * request, which will usually abort the TLS connection.
+ * Sets @task's result to @result and completes the task (see
+ * g_task_return_pointer() for more discussion of exactly what this
+ * means).
*
- * Since: 2.40
+ * Since: 2.36
*/
/**
- * g_tls_interaction_request_certificate_finish:
- * @interaction: a #GTlsInteraction object
- * @result: the result passed to the callback
- * @error: an optional location to place an error on failure
+ * g_task_return_error:
+ * @task: a #GTask.
+ * @error: (transfer full): the #GError result of a task function.
*
- * Complete an request certificate user interaction request. This should be once
- * the g_tls_interaction_request_certificate_async() completion callback is called.
+ * Sets @task's result to @error (which @task assumes ownership of)
+ * and completes the task (see g_task_return_pointer() for more
+ * discussion of exactly what this means).
*
- * If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsConnection
- * passed to g_tls_interaction_request_certificate_async() will have had its
- * #GTlsConnection:certificate filled in.
+ * Note that since the task takes ownership of @error, and since the
+ * task may be completed before returning from g_task_return_error(),
+ * you cannot assume that @error is still valid after calling this.
+ * Call g_error_copy() on the error if you need to keep a local copy
+ * as well.
*
- * If the interaction is cancelled by the cancellation object, or by the
- * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
- * contains a %G_IO_ERROR_CANCELLED error code.
+ * See also g_task_return_new_error().
*
- * Returns: The status of the request certificate interaction.
- * Since: 2.40
+ * Since: 2.36
*/
/**
- * g_tls_password_get_description:
- * @password: a #GTlsPassword object
+ * g_task_return_error_if_cancelled:
+ * @task: a #GTask
*
- * Get a description string about what the password will be used for.
+ * Checks if @task's #GCancellable has been cancelled, and if so, sets
+ * @task's error accordingly and completes the task (see
+ * g_task_return_pointer() for more discussion of exactly what this
+ * means).
*
- * Returns: The description of the password.
- * Since: 2.30
+ * Returns: %TRUE if @task has been cancelled, %FALSE if not
+ * Since: 2.36
*/
/**
- * g_tls_password_get_flags:
- * @password: a #GTlsPassword object
+ * g_task_return_int:
+ * @task: a #GTask.
+ * @result: the integer (#gssize) result of a task function.
*
- * Get flags about the password.
+ * Sets @task's result to @result and completes the task (see
+ * g_task_return_pointer() for more discussion of exactly what this
+ * means).
*
- * Returns: The flags about the password.
- * Since: 2.30
+ * Since: 2.36
*/
/**
- * g_tls_password_get_value:
- * @password: a #GTlsPassword object
- * @length: (nullable): location to place the length of the password.
+ * g_task_return_new_error:
+ * @task: a #GTask.
+ * @domain: a #GQuark.
+ * @code: an error code.
+ * @format: a string with format characters.
+ * @...: a list of values to insert into @format.
*
- * Get the password value. If @length is not %NULL then it will be
- * filled in with the length of the password value. (Note that the
- * password value is not nul-terminated, so you can only pass %NULL
- * for @length in contexts where you know the password will have a
- * certain fixed length.)
+ * Sets @task's result to a new #GError created from @domain, @code,
+ * @format, and the remaining arguments, and completes the task (see
+ * g_task_return_pointer() for more discussion of exactly what this
+ * means).
*
- * Returns: The password value (owned by the password object).
- * Since: 2.30
+ * See also g_task_return_error().
+ *
+ * Since: 2.36
*/
/**
- * g_tls_password_get_warning:
- * @password: a #GTlsPassword object
+ * g_task_return_pointer:
+ * @task: a #GTask
+ * @result: (nullable) (transfer full): the pointer result of a task
+ * function
+ * @result_destroy: (nullable): a #GDestroyNotify function.
*
- * Get a user readable translated warning. Usually this warning is a
- * representation of the password flags returned from
- * g_tls_password_get_flags().
+ * Sets @task's result to @result and completes the task. If @result
+ * is not %NULL, then @result_destroy will be used to free @result if
+ * the caller does not take ownership of it with
+ * g_task_propagate_pointer().
*
- * Returns: The warning.
- * Since: 2.30
+ * "Completes the task" means that for an ordinary asynchronous task
+ * it will either invoke the task's callback, or else queue that
+ * callback to be invoked in the proper #GMainContext, or in the next
+ * iteration of the current #GMainContext. For a task run via
+ * g_task_run_in_thread() or g_task_run_in_thread_sync(), calling this
+ * method will save @result to be returned to the caller later, but
+ * the task will not actually be completed until the #GTaskThreadFunc
+ * exits.
+ *
+ * Note that since the task may be completed before returning from
+ * g_task_return_pointer(), you cannot assume that @result is still
+ * valid after calling this, unless you are still holding another
+ * reference on it.
+ *
+ * Since: 2.36
*/
/**
- * g_tls_password_new:
- * @flags: the password flags
- * @description: description of what the password is for
+ * g_task_run_in_thread:
+ * @task: a #GTask
+ * @task_func: a #GTaskThreadFunc
*
- * Create a new #GTlsPassword object.
+ * Runs @task_func in another thread. When @task_func returns, @task's
+ * #GAsyncReadyCallback will be invoked in @task's #GMainContext.
*
- * Returns: (transfer full): The newly allocated password object
+ * 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
*/
/**
- * g_tls_password_set_description:
- * @password: a #GTlsPassword object
- * @description: The description of the password
+ * g_task_run_in_thread_sync:
+ * @task: a #GTask
+ * @task_func: a #GTaskThreadFunc
*
- * Set a description string about what the password will be used for.
+ * Runs @task_func in another thread, and waits for it to return or be
+ * cancelled. You can use g_task_propagate_pointer(), etc, afterward
+ * to get the result of @task_func.
*
- * Since: 2.30
+ * 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
*/
/**
- * g_tls_password_set_flags:
- * @password: a #GTlsPassword object
- * @flags: The flags about the password
+ * g_task_set_check_cancellable:
+ * @task: the #GTask
+ * @check_cancellable: whether #GTask will check the state of
+ * its #GCancellable for you.
*
- * Set flags about the password.
+ * Sets or clears @task's check-cancellable flag. If this is %TRUE
+ * (the default), then g_task_propagate_pointer(), etc, and
+ * g_task_had_error() will check the task's #GCancellable first, and
+ * if it has been cancelled, then they will consider the task to have
+ * returned an "Operation was cancelled" error
+ * (%G_IO_ERROR_CANCELLED), regardless of any other error or return
+ * value the task may have had.
*
- * Since: 2.30
+ * If @check_cancellable is %FALSE, then the #GTask will not check the
+ * cancellable itself, and it is up to @task's owner to do this (eg,
+ * via g_task_return_error_if_cancelled()).
+ *
+ * If you are using g_task_set_return_on_cancel() as well, then
+ * you must leave check-cancellable set %TRUE.
+ *
+ * Since: 2.36
*/
/**
- * g_tls_password_set_value:
- * @password: a #GTlsPassword object
- * @value: (array length=length): the new password value
- * @length: the length of the password, or -1
+ * g_task_set_priority:
+ * @task: the #GTask
+ * @priority: the [priority][io-priority] of the request
*
- * Set the value for this password. The @value will be copied by the password
- * object.
+ * Sets @task's priority. If you do not call this, it will default to
+ * %G_PRIORITY_DEFAULT.
*
- * Specify the @length, for a non-nul-terminated password. Pass -1 as
- * @length if using a nul-terminated password, and @length will be
- * calculated automatically. (Note that the terminating nul is not
- * considered part of the password in this case.)
+ * This will affect the priority of #GSources created with
+ * g_task_attach_source() and the scheduling of tasks run in threads,
+ * and can also be explicitly retrieved later via
+ * g_task_get_priority().
*
- * Since: 2.30
+ * Since: 2.36
*/
/**
- * g_tls_password_set_value_full: (virtual set_value)
- * @password: a #GTlsPassword object
- * @value: (array length=length): the value for the password
- * @length: the length of the password, or -1
- * @destroy: (nullable): a function to use to free the password.
+ * g_task_set_return_on_cancel:
+ * @task: the #GTask
+ * @return_on_cancel: whether the task returns automatically when
+ * it is cancelled.
*
- * Provide the value for this password.
+ * Sets or clears @task's return-on-cancel flag. This is only
+ * meaningful for tasks run via g_task_run_in_thread() or
+ * g_task_run_in_thread_sync().
*
- * The @value will be owned by the password object, and later freed using
- * the @destroy function callback.
+ * If @return_on_cancel is %TRUE, then cancelling @task's
+ * #GCancellable will immediately cause it to return, as though the
+ * task's #GTaskThreadFunc had called
+ * g_task_return_error_if_cancelled() and then returned.
*
- * Specify the @length, for a non-nul-terminated password. Pass -1 as
- * @length if using a nul-terminated password, and @length will be
- * calculated automatically. (Note that the terminating nul is not
- * considered part of the password in this case.)
+ * This allows you to create a cancellable wrapper around an
+ * uninterruptable function. The #GTaskThreadFunc just needs to be
+ * careful that it does not modify any externally-visible state after
+ * it has been cancelled. To do that, the thread should call
+ * g_task_set_return_on_cancel() again to (atomically) set
+ * return-on-cancel %FALSE before making externally-visible changes;
+ * if the task gets cancelled before the return-on-cancel flag could
+ * be changed, g_task_set_return_on_cancel() will indicate this by
+ * returning %FALSE.
*
- * Since: 2.30
+ * You can disable and re-enable this flag multiple times if you wish.
+ * If the task's #GCancellable is cancelled while return-on-cancel is
+ * %FALSE, then calling g_task_set_return_on_cancel() to set it %TRUE
+ * again will cause the task to be cancelled at that point.
+ *
+ * If the task's #GCancellable is already cancelled before you call
+ * g_task_run_in_thread()/g_task_run_in_thread_sync(), then the
+ * #GTaskThreadFunc will still be run (for consistency), but the task
+ * will also be completed right away.
+ *
+ * Returns: %TRUE if @task's return-on-cancel flag was changed to
+ * match @return_on_cancel. %FALSE if @task has already been
+ * cancelled.
+ * Since: 2.36
*/
/**
- * g_tls_password_set_warning:
- * @password: a #GTlsPassword object
- * @warning: The user readable warning
+ * g_task_set_source_tag:
+ * @task: the #GTask
+ * @source_tag: an opaque pointer indicating the source of this task
*
- * Set a user readable translated warning. Usually this warning is a
- * representation of the password flags returned from
- * g_tls_password_get_flags().
+ * Sets @task's source tag. You can use this to tag a task return
+ * value with a particular pointer (usually a pointer to the function
+ * doing the tagging) and then later check it using
+ * g_task_get_source_tag() (or g_async_result_is_tagged()) in the
+ * task's "finish" function, to figure out if the response came from a
+ * particular place.
*
- * Since: 2.30
+ * Since: 2.36
*/
/**
- * g_tls_server_connection_new:
- * @base_io_stream: the #GIOStream to wrap
- * @certificate: (nullable): the default server certificate, or %NULL
- * @error: #GError for error reporting, or %NULL to ignore.
- *
- * Creates a new #GTlsServerConnection wrapping @base_io_stream (which
- * must have pollable input and output streams).
+ * g_task_set_task_data:
+ * @task: the #GTask
+ * @task_data: (nullable): task-specific data
+ * @task_data_destroy: (nullable): #GDestroyNotify for @task_data
*
- * See the documentation for #GTlsConnection:base-io-stream for restrictions
- * on when application code can run operations on the @base_io_stream after
- * this function has returned.
+ * Sets @task's task data (freeing the existing task data, if any).
*
- * Returns: (transfer full) (type GTlsServerConnection): the new
- * #GTlsServerConnection, or %NULL on error
- * Since: 2.28
+ * Since: 2.36
*/
/**
- * g_unix_connection_receive_credentials:
- * @connection: A #GUnixConnection.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Receives credentials from the sending end of the connection. The
- * sending end has to call g_unix_connection_send_credentials() (or
- * similar) for this to work.
- *
- * As well as reading the credentials this also reads (and discards) a
- * single byte from the stream, as this is required for credentials
- * passing to work on some implementations.
+ * g_tcp_connection_get_graceful_disconnect:
+ * @connection: a #GTcpConnection
*
- * Other ways to exchange credentials with a foreign peer includes the
- * #GUnixCredentialsMessage type and g_socket_get_credentials() function.
+ * Checks if graceful disconnects are used. See
+ * g_tcp_connection_set_graceful_disconnect().
*
- * Returns: (transfer full): Received credentials on success (free with
- * g_object_unref()), %NULL if @error is set.
- * Since: 2.26
+ * Returns: %TRUE if graceful disconnect is used on close, %FALSE otherwise
+ * Since: 2.22
*/
/**
- * g_unix_connection_receive_credentials_async:
- * @connection: A #GUnixConnection.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_tcp_connection_set_graceful_disconnect:
+ * @connection: a #GTcpConnection
+ * @graceful_disconnect: Whether to do graceful disconnects or not
*
- * Asynchronously receive credentials.
+ * 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.
*
- * For more details, see g_unix_connection_receive_credentials() which is
- * the synchronous version of this call.
+ * A graceful disconnect means that we can be sure that we successfully sent
+ * all the outstanding data to the other end, or get an error reported.
+ * However, it also means we have to wait for all the data to reach the
+ * other side and for it to acknowledge this by closing the socket, which may
+ * take a while. For this reason it is disabled by default.
*
- * When the operation is finished, @callback will be called. You can then call
- * g_unix_connection_receive_credentials_finish() to get the result of the operation.
+ * Since: 2.22
+ */
+
+
+/**
+ * g_tcp_wrapper_connection_get_base_io_stream:
+ * @conn: a #GTcpWrapperConnection
*
- * Since: 2.32
+ * Get's @conn's base #GIOStream
+ *
+ * Returns: (transfer none): @conn's base #GIOStream
*/
/**
- * g_unix_connection_receive_credentials_finish:
- * @connection: A #GUnixConnection.
- * @result: a #GAsyncResult.
- * @error: a #GError, or %NULL
+ * g_tcp_wrapper_connection_new:
+ * @base_io_stream: the #GIOStream to wrap
+ * @socket: the #GSocket associated with @base_io_stream
*
- * Finishes an asynchronous receive credentials operation started with
- * g_unix_connection_receive_credentials_async().
+ * Wraps @base_io_stream and @socket together as a #GSocketConnection.
*
- * Returns: (transfer full): a #GCredentials, or %NULL on error.
- * Free the returned object with g_object_unref().
- * Since: 2.32
+ * Returns: the new #GSocketConnection.
+ * Since: 2.28
*/
/**
- * g_unix_connection_receive_fd:
- * @connection: a #GUnixConnection
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @error: (nullable): #GError for error reporting, or %NULL to ignore
+ * g_test_dbus_add_service_dir:
+ * @self: a #GTestDBus
+ * @path: path to a directory containing .service files
*
- * Receives a file descriptor from the sending end of the connection.
- * The sending end has to call g_unix_connection_send_fd() for this
- * to work.
+ * Add a path where dbus-daemon will look up .service files. This can't be
+ * called after g_test_dbus_up().
+ */
+
+
+/**
+ * g_test_dbus_down:
+ * @self: a #GTestDBus
*
- * As well as reading the fd this also reads a single byte from the
- * stream, as this is required for fd passing to work on some
- * implementations.
+ * Stop the session bus started by g_test_dbus_up().
*
- * Returns: a file descriptor on success, -1 on error.
- * Since: 2.22
+ * This will wait for the singleton returned by g_bus_get() or g_bus_get_sync()
+ * is destroyed. This is done to ensure that the next unit test won't get a
+ * leaked singleton from this test.
*/
/**
- * g_unix_connection_send_credentials:
- * @connection: A #GUnixConnection.
- * @cancellable: (nullable): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_test_dbus_get_bus_address:
+ * @self: a #GTestDBus
*
- * Passes the credentials of the current user the receiving side
- * of the connection. The receiving end has to call
- * g_unix_connection_receive_credentials() (or similar) to accept the
- * credentials.
+ * Get the address on which dbus-daemon is running. If g_test_dbus_up() has not
+ * been called yet, %NULL is returned. This can be used with
+ * g_dbus_connection_new_for_address().
*
- * As well as sending the credentials this also writes a single NUL
- * byte to the stream, as this is required for credentials passing to
- * work on some implementations.
+ * Returns: (nullable): the address of the bus, or %NULL.
+ */
+
+
+/**
+ * g_test_dbus_get_flags:
+ * @self: a #GTestDBus
*
- * Other ways to exchange credentials with a foreign peer includes the
- * #GUnixCredentialsMessage type and g_socket_get_credentials() function.
+ * Get the flags of the #GTestDBus object.
*
- * Returns: %TRUE on success, %FALSE if @error is set.
- * Since: 2.26
+ * Returns: the value of #GTestDBus:flags property
*/
/**
- * g_unix_connection_send_credentials_async:
- * @connection: A #GUnixConnection.
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: (closure): the data to pass to callback function
+ * g_test_dbus_new:
+ * @flags: a #GTestDBusFlags
*
- * Asynchronously send credentials.
+ * Create a new #GTestDBus object.
*
- * For more details, see g_unix_connection_send_credentials() which is
- * the synchronous version of this call.
+ * Returns: (transfer full): a new #GTestDBus.
+ */
+
+
+/**
+ * g_test_dbus_stop:
+ * @self: a #GTestDBus
*
- * When the operation is finished, @callback will be called. You can then call
- * g_unix_connection_send_credentials_finish() to get the result of the operation.
+ * Stop the session bus started by g_test_dbus_up().
*
- * Since: 2.32
+ * Unlike g_test_dbus_down(), this won't verify the #GDBusConnection
+ * singleton returned by g_bus_get() or g_bus_get_sync() is destroyed. Unit
+ * tests wanting to verify behaviour after the session bus has been stopped
+ * can use this function but should still call g_test_dbus_down() when done.
*/
/**
- * g_unix_connection_send_credentials_finish:
- * @connection: A #GUnixConnection.
- * @result: a #GAsyncResult.
- * @error: a #GError, or %NULL
+ * g_test_dbus_unset:
*
- * Finishes an asynchronous send credentials operation started with
- * g_unix_connection_send_credentials_async().
+ * Unset DISPLAY and DBUS_SESSION_BUS_ADDRESS env variables to ensure the test
+ * won't use user's session bus.
*
- * Returns: %TRUE if the operation was successful, otherwise %FALSE.
- * Since: 2.32
+ * This is useful for unit tests that want to verify behaviour when no session
+ * bus is running. It is not necessary to call this if unit test already calls
+ * g_test_dbus_up() before acquiring the session bus.
*/
/**
- * g_unix_connection_send_fd:
- * @connection: a #GUnixConnection
- * @fd: a file descriptor
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
- * @error: (nullable): #GError for error reporting, or %NULL to ignore.
+ * g_test_dbus_up:
+ * @self: a #GTestDBus
*
- * Passes a file descriptor to the receiving side of the
- * connection. The receiving end has to call g_unix_connection_receive_fd()
- * to accept the file descriptor.
+ * Start a dbus-daemon instance and set DBUS_SESSION_BUS_ADDRESS. After this
+ * call, it is safe for unit tests to start sending messages on the session bus.
*
- * As well as sending the fd this also writes a single byte to the
- * stream, as this is required for fd passing to work on some
- * implementations.
+ * If this function is called from setup callback of g_test_add(),
+ * g_test_dbus_down() must be called in its teardown callback.
*
- * Returns: a %TRUE on success, %NULL on error.
- * Since: 2.22
+ * If this function is called from unit test's main(), then g_test_dbus_down()
+ * must be called after g_test_run().
*/
/**
- * g_unix_credentials_message_get_credentials:
- * @message: A #GUnixCredentialsMessage.
+ * g_themed_icon_append_name:
+ * @icon: a #GThemedIcon
+ * @iconname: name of icon to append to list of icons from within @icon.
*
- * Gets the credentials stored in @message.
+ * Append a name to the list of icons from within @icon.
*
- * Returns: (transfer none): A #GCredentials instance. Do not free, it is owned by @message.
- * Since: 2.26
+ * Note that doing so invalidates the hash computed by prior calls
+ * to g_icon_hash().
*/
/**
- * g_unix_credentials_message_is_supported:
+ * g_themed_icon_get_names:
+ * @icon: a #GThemedIcon.
*
- * Checks if passing #GCredentials on a #GSocket is supported on this platform.
+ * Gets the names of icons from within @icon.
*
- * Returns: %TRUE if supported, %FALSE otherwise
- * Since: 2.26
+ * Returns: (transfer none): a list of icon names.
*/
/**
- * g_unix_credentials_message_new:
+ * g_themed_icon_new:
+ * @iconname: a string containing an icon name.
*
- * Creates a new #GUnixCredentialsMessage with credentials matching the current processes.
+ * Creates a new themed icon for @iconname.
*
- * Returns: a new #GUnixCredentialsMessage
- * Since: 2.26
+ * Returns: (transfer full) (type GThemedIcon): a new #GThemedIcon.
*/
/**
- * g_unix_credentials_message_new_with_credentials:
- * @credentials: A #GCredentials object.
+ * g_themed_icon_new_from_names:
+ * @iconnames: (array length=len): an array of strings containing icon names.
+ * @len: the length of the @iconnames array, or -1 if @iconnames is
+ * %NULL-terminated
*
- * Creates a new #GUnixCredentialsMessage holding @credentials.
+ * Creates a new themed icon for @iconnames.
*
- * Returns: a new #GUnixCredentialsMessage
- * Since: 2.26
+ * Returns: (transfer full) (type GThemedIcon): a new #GThemedIcon
*/
/**
- * g_unix_fd_list_append:
- * @list: a #GUnixFDList
- * @fd: a valid open file descriptor
- * @error: a #GError pointer
- *
- * Adds a file descriptor to @list.
+ * g_themed_icon_new_with_default_fallbacks:
+ * @iconname: a string containing an icon name
*
- * The file descriptor is duplicated using dup(). You keep your copy
- * of the descriptor and the copy contained in @list will be closed
- * when @list is finalized.
+ * Creates a new themed icon for @iconname, and all the names
+ * that can be created by shortening @iconname at '-' characters.
*
- * A possible cause of failure is exceeding the per-process or
- * system-wide file descriptor limit.
+ * In the following example, @icon1 and @icon2 are equivalent:
+ * |[<!-- language="C" -->
+ * const char *names[] = {
+ * "gnome-dev-cdrom-audio",
+ * "gnome-dev-cdrom",
+ * "gnome-dev",
+ * "gnome"
+ * };
*
- * The index of the file descriptor in the list is returned. If you use
- * this index with g_unix_fd_list_get() then you will receive back a
- * duplicated copy of the same file descriptor.
+ * icon1 = g_themed_icon_new_from_names (names, 4);
+ * icon2 = g_themed_icon_new_with_default_fallbacks ("gnome-dev-cdrom-audio");
+ * ]|
*
- * Returns: the index of the appended fd in case of success, else -1
- * (and @error is set)
- * Since: 2.24
+ * Returns: (transfer full) (type GThemedIcon): a new #GThemedIcon.
*/
/**
- * g_unix_fd_list_get:
- * @list: a #GUnixFDList
- * @index_: the index into the list
- * @error: a #GError pointer
- *
- * Gets a file descriptor out of @list.
- *
- * @index_ specifies the index of the file descriptor to get. It is a
- * programmer error for @index_ to be out of range; see
- * g_unix_fd_list_get_length().
+ * g_themed_icon_prepend_name:
+ * @icon: a #GThemedIcon
+ * @iconname: name of icon to prepend to list of icons from within @icon.
*
- * The file descriptor is duplicated using dup() and set as
- * close-on-exec before being returned. You must call close() on it
- * when you are done.
+ * Prepend a name to the list of icons from within @icon.
*
- * A possible cause of failure is exceeding the per-process or
- * system-wide file descriptor limit.
+ * Note that doing so invalidates the hash computed by prior calls
+ * to g_icon_hash().
*
- * Returns: the file descriptor, or -1 in case of error
- * Since: 2.24
+ * Since: 2.18
*/
/**
- * g_unix_fd_list_get_length:
- * @list: a #GUnixFDList
+ * g_themed_icon_update_names:
+ * @themed: a #GThemedIcon.
*
- * Gets the length of @list (ie: the number of file descriptors
- * contained within).
+ * Update the actual icon name list, based on the requested names (from
+ * construction, or later added with g_themed_icon_prepend_name() and
+ * g_themed_icon_append_name()).
+ * The order of the list matters, indicating priority:
+ * - The first requested icon is first in priority.
+ * - If "use-default-fallbacks" is #TRUE, then it is followed by all its
+ * fallbacks (starting from top to lower context levels).
+ * - Then next requested icons, and optionally their fallbacks, follow.
+ * - Finally all the style variants (symbolic or regular, opposite to whatever
+ * is the requested style) follow in the same order.
*
- * Returns: the length of @list
- * Since: 2.24
+ * An icon is not added twice in the list if it was previously added.
+ *
+ * For instance, if requested names are:
+ * [ "some-icon-symbolic", "some-other-icon" ]
+ * and use-default-fallbacks is TRUE, the final name list shall be:
+ * [ "some-icon-symbolic", "some-symbolic", "some-other-icon",
+ * "some-other", "some", "some-icon", "some-other-icon-symbolic",
+ * "some-other-symbolic" ]
+ *
+ * Returns: (transfer full) (type GThemedIcon): a new #GThemedIcon
*/
/**
- * g_unix_fd_list_new:
+ * g_threaded_socket_service_new:
+ * @max_threads: the maximal number of threads to execute concurrently
+ * handling incoming clients, -1 means no limit
*
- * Creates a new #GUnixFDList containing no file descriptors.
+ * Creates a new #GThreadedSocketService with no listeners. Listeners
+ * must be added with one of the #GSocketListener "add" methods.
*
- * Returns: a new #GUnixFDList
- * Since: 2.24
+ * Returns: a new #GSocketService.
+ * Since: 2.22
*/
/**
- * g_unix_fd_list_new_from_array:
- * @fds: (array length=n_fds): the initial list of file descriptors
- * @n_fds: the length of #fds, or -1
+ * g_tls_backend_get_certificate_type:
+ * @backend: the #GTlsBackend
*
- * Creates a new #GUnixFDList containing the file descriptors given in
- * @fds. The file descriptors become the property of the new list and
- * may no longer be used by the caller. The array itself is owned by
- * the caller.
+ * Gets the #GType of @backend's #GTlsCertificate implementation.
*
- * Each file descriptor in the array should be set to close-on-exec.
+ * Returns: the #GType of @backend's #GTlsCertificate
+ * implementation.
+ * Since: 2.28
+ */
+
+
+/**
+ * g_tls_backend_get_client_connection_type:
+ * @backend: the #GTlsBackend
*
- * If @n_fds is -1 then @fds must be terminated with -1.
+ * Gets the #GType of @backend's #GTlsClientConnection implementation.
*
- * Returns: a new #GUnixFDList
- * Since: 2.24
+ * Returns: the #GType of @backend's #GTlsClientConnection
+ * implementation.
+ * Since: 2.28
*/
/**
- * g_unix_fd_list_peek_fds:
- * @list: a #GUnixFDList
- * @length: (out) (optional): pointer to the length of the returned
- * array, or %NULL
- *
- * Returns the array of file descriptors that is contained in this
- * object.
+ * g_tls_backend_get_default:
*
- * After this call, the descriptors remain the property of @list. The
- * caller must not close them and must not free the array. The array is
- * valid only until @list is changed in any way.
+ * Gets the default #GTlsBackend for the system.
*
- * If @length is non-%NULL then it is set to the number of file
- * descriptors in the returned array. The returned array is also
- * terminated with -1.
+ * Returns: (transfer none): a #GTlsBackend
+ * Since: 2.28
+ */
+
+
+/**
+ * g_tls_backend_get_default_database:
+ * @backend: the #GTlsBackend
*
- * This function never returns %NULL. In case there are no file
- * descriptors contained in @list, an empty array is returned.
+ * Gets the default #GTlsDatabase used to verify TLS connections.
*
- * Returns: (array length=length) (transfer none): an array of file
- * descriptors
- * Since: 2.24
+ * Returns: (transfer full): the default database, which should be
+ * unreffed when done.
+ * Since: 2.30
*/
/**
- * g_unix_fd_list_steal_fds:
- * @list: a #GUnixFDList
- * @length: (out) (optional): pointer to the length of the returned
- * array, or %NULL
+ * g_tls_backend_get_dtls_client_connection_type:
+ * @backend: the #GTlsBackend
*
- * Returns the array of file descriptors that is contained in this
- * object.
+ * Gets the #GType of @backend’s #GDtlsClientConnection implementation.
*
- * After this call, the descriptors are no longer contained in
- * @list. Further calls will return an empty list (unless more
- * descriptors have been added).
+ * Returns: the #GType of @backend’s #GDtlsClientConnection
+ * implementation, or %G_TYPE_INVALID if this backend doesn’t support DTLS.
+ * Since: 2.48
+ */
+
+
+/**
+ * g_tls_backend_get_dtls_server_connection_type:
+ * @backend: the #GTlsBackend
*
- * The return result of this function must be freed with g_free().
- * The caller is also responsible for closing all of the file
- * descriptors. The file descriptors in the array are set to
- * close-on-exec.
+ * Gets the #GType of @backend’s #GDtlsServerConnection implementation.
*
- * If @length is non-%NULL then it is set to the number of file
- * descriptors in the returned array. The returned array is also
- * terminated with -1.
+ * Returns: the #GType of @backend’s #GDtlsServerConnection
+ * implementation, or %G_TYPE_INVALID if this backend doesn’t support DTLS.
+ * Since: 2.48
+ */
+
+
+/**
+ * g_tls_backend_get_file_database_type:
+ * @backend: the #GTlsBackend
*
- * This function never returns %NULL. In case there are no file
- * descriptors contained in @list, an empty array is returned.
+ * Gets the #GType of @backend's #GTlsFileDatabase implementation.
*
- * Returns: (array length=length) (transfer full): an array of file
- * descriptors
- * Since: 2.24
+ * Returns: the #GType of backend's #GTlsFileDatabase implementation.
+ * Since: 2.30
*/
/**
- * g_unix_fd_message_append_fd:
- * @message: a #GUnixFDMessage
- * @fd: a valid open file descriptor
- * @error: a #GError pointer
+ * g_tls_backend_get_server_connection_type:
+ * @backend: the #GTlsBackend
*
- * Adds a file descriptor to @message.
+ * Gets the #GType of @backend's #GTlsServerConnection implementation.
*
- * The file descriptor is duplicated using dup(). You keep your copy
- * of the descriptor and the copy contained in @message will be closed
- * when @message is finalized.
+ * Returns: the #GType of @backend's #GTlsServerConnection
+ * implementation.
+ * Since: 2.28
+ */
+
+
+/**
+ * g_tls_backend_supports_dtls:
+ * @backend: the #GTlsBackend
*
- * A possible cause of failure is exceeding the per-process or
- * system-wide file descriptor limit.
+ * Checks if DTLS is supported. DTLS support may not be available even if TLS
+ * support is available, and vice-versa.
*
- * Returns: %TRUE in case of success, else %FALSE (and @error is set)
- * Since: 2.22
+ * Returns: whether DTLS is supported
+ * Since: 2.48
*/
/**
- * g_unix_fd_message_get_fd_list:
- * @message: a #GUnixFDMessage
+ * g_tls_backend_supports_tls:
+ * @backend: the #GTlsBackend
*
- * Gets the #GUnixFDList contained in @message. This function does not
- * return a reference to the caller, but the returned list is valid for
- * the lifetime of @message.
+ * Checks if TLS is supported; if this returns %FALSE for the default
+ * #GTlsBackend, it means no "real" TLS backend is available.
*
- * Returns: (transfer none): the #GUnixFDList from @message
- * Since: 2.24
+ * Returns: whether or not TLS is supported
+ * Since: 2.28
*/
/**
- * g_unix_fd_message_new:
+ * g_tls_certificate_get_issuer:
+ * @cert: a #GTlsCertificate
*
- * Creates a new #GUnixFDMessage containing an empty file descriptor
- * list.
+ * Gets the #GTlsCertificate representing @cert's issuer, if known
*
- * Returns: a new #GUnixFDMessage
- * Since: 2.22
+ * Returns: (transfer none): The certificate of @cert's issuer,
+ * or %NULL if @cert is self-signed or signed with an unknown
+ * certificate.
+ * Since: 2.28
*/
/**
- * g_unix_fd_message_new_with_fd_list:
- * @fd_list: a #GUnixFDList
+ * g_tls_certificate_is_same:
+ * @cert_one: first certificate to compare
+ * @cert_two: second certificate to compare
*
- * Creates a new #GUnixFDMessage containing @list.
+ * Check if two #GTlsCertificate objects represent the same certificate.
+ * The raw DER byte data of the two certificates are checked for equality.
+ * This has the effect that two certificates may compare equal even if
+ * their #GTlsCertificate:issuer, #GTlsCertificate:private-key, or
+ * #GTlsCertificate:private-key-pem properties differ.
*
- * Returns: a new #GUnixFDMessage
- * Since: 2.24
+ * Returns: whether the same or not
+ * Since: 2.34
*/
/**
- * g_unix_fd_message_steal_fds:
- * @message: a #GUnixFDMessage
- * @length: (out) (optional): pointer to the length of the returned
- * array, or %NULL
- *
- * Returns the array of file descriptors that is contained in this
- * object.
+ * g_tls_certificate_list_new_from_file:
+ * @file: (type filename): file containing PEM-encoded certificates to import
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * After this call, the descriptors are no longer contained in
- * @message. Further calls will return an empty list (unless more
- * descriptors have been added).
+ * Creates one or more #GTlsCertificates from the PEM-encoded
+ * data in @file. If @file cannot be read or parsed, the function will
+ * return %NULL and set @error. If @file does not contain any
+ * PEM-encoded certificates, this will return an empty list and not
+ * set @error.
*
- * The return result of this function must be freed with g_free().
- * The caller is also responsible for closing all of the file
- * descriptors.
+ * Returns: (element-type Gio.TlsCertificate) (transfer full): a
+ * #GList containing #GTlsCertificate objects. You must free the list
+ * and its contents when you are done with it.
+ * Since: 2.28
+ */
+
+
+/**
+ * g_tls_certificate_new_from_file:
+ * @file: (type filename): file containing a PEM-encoded certificate to import
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * If @length is non-%NULL then it is set to the number of file
- * descriptors in the returned array. The returned array is also
- * terminated with -1.
+ * 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.
*
- * This function never returns %NULL. In case there are no file
- * descriptors contained in @message, an empty array is 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().
*
- * Returns: (array length=length) (transfer full): an array of file
- * descriptors
- * Since: 2.22
+ * Returns: the new certificate, or %NULL on error
+ * Since: 2.28
*/
/**
- * g_unix_input_stream_get_close_fd:
- * @stream: a #GUnixInputStream
+ * g_tls_certificate_new_from_files:
+ * @cert_file: (type filename): file containing one or more PEM-encoded
+ * certificates to import
+ * @key_file: (type filename): file containing a PEM-encoded private key
+ * to import
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Returns whether the file descriptor of @stream will be
- * closed when the stream is closed.
+ * Creates a #GTlsCertificate from the PEM-encoded data in @cert_file
+ * 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.
*
- * Returns: %TRUE if the file descriptor is closed when done
- * Since: 2.20
+ * 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().
+ *
+ * Returns: the new certificate, or %NULL on error
+ * Since: 2.28
*/
/**
- * g_unix_input_stream_get_fd:
- * @stream: a #GUnixInputStream
+ * g_tls_certificate_new_from_pem:
+ * @data: PEM-encoded certificate data
+ * @length: the length of @data, or -1 if it's 0-terminated.
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Return the UNIX file descriptor that the stream reads from.
+ * 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.)
*
- * Returns: The file descriptor of @stream
- * Since: 2.20
+ * 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.
+ *
+ * Returns: the new certificate, or %NULL if @data is invalid
+ * Since: 2.28
*/
/**
- * g_unix_input_stream_new:
- * @fd: a UNIX file descriptor
- * @close_fd: %TRUE to close the file descriptor when done
+ * g_tls_certificate_verify:
+ * @cert: a #GTlsCertificate
+ * @identity: (nullable): the expected peer identity
+ * @trusted_ca: (nullable): the certificate of a trusted authority
*
- * Creates a new #GUnixInputStream for the given @fd.
+ * This verifies @cert and returns a set of #GTlsCertificateFlags
+ * indicating any problems found with it. This can be used to verify a
+ * certificate outside the context of making a connection, or to
+ * check a certificate against a CA that is not part of the system
+ * CA database.
*
- * If @close_fd is %TRUE, the file descriptor will be closed
- * when the stream is closed.
+ * If @identity is not %NULL, @cert's name(s) will be compared against
+ * it, and %G_TLS_CERTIFICATE_BAD_IDENTITY will be set in the return
+ * value if it does not match. If @identity is %NULL, that bit will
+ * never be set in the return value.
+ *
+ * If @trusted_ca is not %NULL, then @cert (or one of the certificates
+ * in its chain) must be signed by it, or else
+ * %G_TLS_CERTIFICATE_UNKNOWN_CA will be set in the return value. If
+ * @trusted_ca is %NULL, that bit will never be set in the return
+ * value.
+ *
+ * (All other #GTlsCertificateFlags values will always be set or unset
+ * as appropriate.)
*
- * Returns: a new #GUnixInputStream
+ * Returns: the appropriate #GTlsCertificateFlags
+ * Since: 2.28
*/
/**
- * g_unix_input_stream_set_close_fd:
- * @stream: a #GUnixInputStream
- * @close_fd: %TRUE to close the file descriptor when done
+ * g_tls_client_connection_copy_session_state:
+ * @conn: a #GTlsClientConnection
+ * @source: a #GTlsClientConnection
*
- * Sets whether the file descriptor of @stream shall be closed
- * when the stream is closed.
+ * 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.20
+ * Since: 2.46
*/
/**
- * g_unix_is_mount_path_system_internal:
- * @mount_path: (type filename): a mount path, e.g. `/media/disk` or `/usr`
+ * g_tls_client_connection_get_accepted_cas:
+ * @conn: the #GTlsClientConnection
*
- * Determines if @mount_path is considered an implementation of the
- * OS. This is primarily used for hiding mountable and mounted volumes
- * that only are used in the OS and has little to no relevance to the
- * casual user.
+ * Gets the list of distinguished names of the Certificate Authorities
+ * that the server will accept certificates from. This will be set
+ * during the TLS handshake if the server requests a certificate.
+ * Otherwise, it will be %NULL.
*
- * Returns: %TRUE if @mount_path is considered an implementation detail
- * of the OS.
+ * Each item in the list is a #GByteArray which contains the complete
+ * subject DN of the certificate authority.
+ *
+ * Returns: (element-type GByteArray) (transfer full): the list of
+ * CA DNs. You should unref each element with g_byte_array_unref() and then
+ * the free the list with g_list_free().
+ * Since: 2.28
*/
/**
- * g_unix_is_system_device_path:
- * @device_path: a device path, e.g. `/dev/loop0` or `nfsd`
- *
- * Determines if @device_path is considered a block device path which is only
- * used in implementation of the OS. This is primarily used for hiding
- * mounted volumes that are intended as APIs for programs to read, and system
- * administrators at a shell; rather than something that should, for example,
- * appear in a GUI. For example, the Linux `/proc` filesystem.
+ * g_tls_client_connection_get_server_identity:
+ * @conn: the #GTlsClientConnection
*
- * The list of device paths considered ‘system’ ones may change over time.
+ * Gets @conn's expected server identity
*
- * Returns: %TRUE if @device_path is considered an implementation detail of
- * the OS.
- * Since: 2.56
+ * Returns: (transfer none): a #GSocketConnectable describing the
+ * expected server identity, or %NULL if the expected identity is not
+ * known.
+ * Since: 2.28
*/
/**
- * g_unix_is_system_fs_type:
- * @fs_type: a file system type, e.g. `procfs` or `tmpfs`
- *
- * Determines if @fs_type is considered a type of file system which is only
- * used in implementation of the OS. This is primarily used for hiding
- * mounted volumes that are intended as APIs for programs to read, and system
- * administrators at a shell; rather than something that should, for example,
- * appear in a GUI. For example, the Linux `/proc` filesystem.
+ * g_tls_client_connection_get_use_ssl3:
+ * @conn: the #GTlsClientConnection
*
- * The list of file system types considered ‘system’ ones may change over time.
+ * Gets whether @conn will force the lowest-supported TLS protocol
+ * version rather than attempt to negotiate the highest mutually-
+ * supported version of TLS; see g_tls_client_connection_set_use_ssl3().
*
- * Returns: %TRUE if @fs_type is considered an implementation detail of the OS.
- * Since: 2.56
+ * Returns: whether @conn will use the lowest-supported TLS protocol version
+ * Since: 2.28
+ * Deprecated: 2.56: SSL 3.0 is insecure, and this function does not
+ * actually indicate whether it is enabled.
*/
/**
- * g_unix_mount_at:
- * @mount_path: (type filename): path for a possible unix mount.
- * @time_read: (out) (optional): guint64 to contain a timestamp.
+ * g_tls_client_connection_get_validation_flags:
+ * @conn: the #GTlsClientConnection
*
- * Gets a #GUnixMountEntry for a given mount path. If @time_read
- * is set, it will be filled with a unix timestamp for checking
- * if the mounts have changed since with g_unix_mounts_changed_since().
+ * Gets @conn's validation flags
*
- * Returns: (transfer full): a #GUnixMountEntry.
+ * Returns: the validation flags
+ * Since: 2.28
*/
/**
- * g_unix_mount_compare:
- * @mount1: first #GUnixMountEntry to compare.
- * @mount2: second #GUnixMountEntry to compare.
+ * g_tls_client_connection_new:
+ * @base_io_stream: the #GIOStream to wrap
+ * @server_identity: (nullable): the expected identity of the server
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Compares two unix mounts.
+ * Creates a new #GTlsClientConnection wrapping @base_io_stream (which
+ * must have pollable input and output streams) which is assumed to
+ * communicate with the server identified by @server_identity.
*
- * Returns: 1, 0 or -1 if @mount1 is greater than, equal to,
- * or less than @mount2, respectively.
+ * See the documentation for #GTlsConnection:base-io-stream for restrictions
+ * on when application code can run operations on the @base_io_stream after
+ * this function has returned.
+ *
+ * Returns: (transfer full) (type GTlsClientConnection): the new
+ * #GTlsClientConnection, or %NULL on error
+ * Since: 2.28
*/
/**
- * g_unix_mount_copy:
- * @mount_entry: a #GUnixMountEntry.
+ * g_tls_client_connection_set_server_identity:
+ * @conn: the #GTlsClientConnection
+ * @identity: a #GSocketConnectable describing the expected server identity
*
- * Makes a copy of @mount_entry.
+ * Sets @conn's expected server identity, which is used both to tell
+ * servers on virtual hosts which certificate to present, and also
+ * to let @conn know what name to look for in the certificate when
+ * performing %G_TLS_CERTIFICATE_BAD_IDENTITY validation, if enabled.
*
- * Returns: (transfer full): a new #GUnixMountEntry
- * Since: 2.54
+ * Since: 2.28
*/
/**
- * g_unix_mount_for:
- * @file_path: (type filename): file path on some unix mount.
- * @time_read: (out) (optional): guint64 to contain a timestamp.
+ * g_tls_client_connection_set_use_ssl3:
+ * @conn: the #GTlsClientConnection
+ * @use_ssl3: whether to use the lowest-supported protocol version
*
- * Gets a #GUnixMountEntry for a given file path. If @time_read
- * is set, it will be filled with a unix timestamp for checking
- * if the mounts have changed since with g_unix_mounts_changed_since().
+ * Since 2.42.1, if @use_ssl3 is %TRUE, this forces @conn to use the
+ * lowest-supported TLS protocol version rather than trying to properly
+ * negotiate the highest mutually-supported protocol version with the
+ * peer. Be aware that SSL 3.0 is generally disabled by the
+ * #GTlsBackend, so the lowest-supported protocol version is probably
+ * not SSL 3.0.
*
- * Returns: (transfer full): a #GUnixMountEntry.
- * Since: 2.52
+ * Since 2.58, this may additionally cause an RFC 7507 fallback SCSV to
+ * be sent to the server, causing modern TLS servers to immediately
+ * terminate the connection. You should generally only use this function
+ * if you need to connect to broken servers that exhibit TLS protocol
+ * version intolerance, and when an initial attempt to connect to a
+ * server normally has already failed.
+ *
+ * Since: 2.28
+ * Deprecated: 2.56: SSL 3.0 is insecure, and this function does not
+ * generally enable or disable it, despite its name.
*/
/**
- * g_unix_mount_free:
- * @mount_entry: a #GUnixMountEntry.
+ * g_tls_client_connection_set_validation_flags:
+ * @conn: the #GTlsClientConnection
+ * @flags: the #GTlsCertificateFlags to use
*
- * Frees a unix mount.
+ * Sets @conn's validation flags, to override the default set of
+ * checks performed when validating a server certificate. By default,
+ * %G_TLS_CERTIFICATE_VALIDATE_ALL is used.
+ *
+ * Since: 2.28
*/
/**
- * g_unix_mount_get_device_path:
- * @mount_entry: a #GUnixMount.
+ * g_tls_connection_emit_accept_certificate:
+ * @conn: a #GTlsConnection
+ * @peer_cert: the peer's #GTlsCertificate
+ * @errors: the problems with @peer_cert
*
- * Gets the device path for a unix mount.
+ * Used by #GTlsConnection implementations to emit the
+ * #GTlsConnection::accept-certificate signal.
*
- * Returns: (type filename): a string containing the device path.
+ * Returns: %TRUE if one of the signal handlers has returned
+ * %TRUE to accept @peer_cert
+ * Since: 2.28
*/
/**
- * g_unix_mount_get_fs_type:
- * @mount_entry: a #GUnixMount.
+ * g_tls_connection_get_certificate:
+ * @conn: a #GTlsConnection
*
- * Gets the filesystem type for the unix mount.
+ * Gets @conn's certificate, as set by
+ * g_tls_connection_set_certificate().
*
- * Returns: a string containing the file system type.
+ * Returns: (transfer none): @conn's certificate, or %NULL
+ * Since: 2.28
*/
/**
- * g_unix_mount_get_mount_path:
- * @mount_entry: input #GUnixMountEntry to get the mount path for.
+ * g_tls_connection_get_database:
+ * @conn: a #GTlsConnection
*
- * Gets the mount path for a unix mount.
+ * Gets the certificate database that @conn uses to verify
+ * peer certificates. See g_tls_connection_set_database().
*
- * Returns: (type filename): the mount path for @mount_entry.
+ * Returns: (transfer none): the certificate database that @conn uses or %NULL
+ * Since: 2.30
*/
/**
- * g_unix_mount_get_options:
- * @mount_entry: a #GUnixMountEntry.
- *
- * Gets a comma-separated list of mount options for the unix mount. For example,
- * `rw,relatime,seclabel,data=ordered`.
+ * g_tls_connection_get_interaction:
+ * @conn: a connection
*
- * This is similar to g_unix_mount_point_get_options(), but it takes
- * a #GUnixMountEntry as an argument.
+ * Get the object that will be used to interact with the user. It will be used
+ * for things like prompting the user for passwords. If %NULL is returned, then
+ * no user interaction will occur for this connection.
*
- * Returns: (nullable): a string containing the options, or %NULL if not
- * available.
- * Since: 2.58
+ * Returns: (transfer none): The interaction object.
+ * Since: 2.30
*/
/**
- * g_unix_mount_guess_can_eject:
- * @mount_entry: a #GUnixMountEntry
+ * g_tls_connection_get_peer_certificate:
+ * @conn: a #GTlsConnection
*
- * Guesses whether a Unix mount can be ejected.
+ * Gets @conn's peer's certificate after the handshake has completed.
+ * (It is not set during the emission of
+ * #GTlsConnection::accept-certificate.)
*
- * Returns: %TRUE if @mount_entry is deemed to be ejectable.
+ * Returns: (transfer none): @conn's peer's certificate, or %NULL
+ * Since: 2.28
*/
/**
- * g_unix_mount_guess_icon:
- * @mount_entry: a #GUnixMountEntry
+ * g_tls_connection_get_peer_certificate_errors:
+ * @conn: a #GTlsConnection
*
- * Guesses the icon of a Unix mount.
+ * Gets the errors associated with validating @conn's peer's
+ * certificate, after the handshake has completed. (It is not set
+ * during the emission of #GTlsConnection::accept-certificate.)
*
- * Returns: (transfer full): a #GIcon
+ * Returns: @conn's peer's certificate errors
+ * Since: 2.28
*/
/**
- * g_unix_mount_guess_name:
- * @mount_entry: a #GUnixMountEntry
+ * g_tls_connection_get_rehandshake_mode:
+ * @conn: a #GTlsConnection
*
- * Guesses the name of a Unix mount.
- * The result is a translated string.
+ * Gets @conn rehandshaking mode. See
+ * g_tls_connection_set_rehandshake_mode() for details.
*
- * Returns: A newly allocated string that must
- * be freed with g_free()
+ * Returns: @conn's rehandshaking mode
+ * Since: 2.28
*/
/**
- * g_unix_mount_guess_should_display:
- * @mount_entry: a #GUnixMountEntry
+ * g_tls_connection_get_require_close_notify:
+ * @conn: a #GTlsConnection
*
- * Guesses whether a Unix mount should be displayed in the UI.
+ * Tests whether or not @conn expects a proper TLS close notification
+ * when the connection is closed. See
+ * g_tls_connection_set_require_close_notify() for details.
*
- * Returns: %TRUE if @mount_entry is deemed to be displayable.
+ * Returns: %TRUE if @conn requires a proper TLS close
+ * notification.
+ * Since: 2.28
*/
/**
- * g_unix_mount_guess_symbolic_icon:
- * @mount_entry: a #GUnixMountEntry
+ * g_tls_connection_get_use_system_certdb:
+ * @conn: a #GTlsConnection
*
- * Guesses the symbolic icon of a Unix mount.
+ * Gets whether @conn uses the system certificate database to verify
+ * peer certificates. See g_tls_connection_set_use_system_certdb().
*
- * Returns: (transfer full): a #GIcon
- * Since: 2.34
+ * Returns: whether @conn uses the system certificate database
+ * Deprecated: 2.30: Use g_tls_connection_get_database() instead
*/
/**
- * g_unix_mount_guess_type:
- * @mount_entry: a #GUnixMount.
+ * g_tls_connection_handshake:
+ * @conn: a #GTlsConnection
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: a #GError, or %NULL
*
- * Guesses the type of a unix mount. If the mount type cannot be
- * determined, returns %G_UNIX_MOUNT_TYPE_UNKNOWN.
+ * Attempts a TLS handshake on @conn.
*
- * Returns: a #GUnixMountType.
+ * On the client side, it is never necessary to call this method;
+ * although the connection needs to perform a handshake after
+ * connecting (or after sending a "STARTTLS"-type command) and may
+ * need to rehandshake later if the server requests it,
+ * #GTlsConnection will handle this for you automatically when you try
+ * to send or receive data on the connection. However, you can call
+ * g_tls_connection_handshake() manually if you want to know for sure
+ * whether the initial handshake succeeded or failed (as opposed to
+ * just immediately trying to write to @conn's output stream, in which
+ * case if it fails, it may not be possible to tell if it failed
+ * before or after completing the handshake).
+ *
+ * Likewise, on the server side, although a handshake is necessary at
+ * the beginning of the communication, you do not need to call this
+ * function explicitly unless you want clearer error reporting.
+ * However, you may call g_tls_connection_handshake() later on to
+ * rehandshake, if TLS 1.2 or older is in use. With TLS 1.3, this will
+ * instead perform a rekey.
+ *
+ * #GTlsConnection::accept_certificate may be emitted during the
+ * handshake.
+ *
+ * Returns: success or failure
+ * Since: 2.28
*/
/**
- * g_unix_mount_is_readonly:
- * @mount_entry: a #GUnixMount.
+ * g_tls_connection_handshake_async:
+ * @conn: a #GTlsConnection
+ * @io_priority: the [I/O priority][io-priority] of the request
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: callback to call when the handshake is complete
+ * @user_data: the data to pass to the callback function
*
- * Checks if a unix mount is mounted read only.
+ * Asynchronously performs a TLS handshake on @conn. See
+ * g_tls_connection_handshake() for more information.
*
- * Returns: %TRUE if @mount_entry is read only.
+ * Since: 2.28
*/
/**
- * g_unix_mount_is_system_internal:
- * @mount_entry: a #GUnixMount.
- *
- * Checks if a Unix mount is a system mount. This is the Boolean OR of
- * g_unix_is_system_fs_type(), g_unix_is_system_device_path() and
- * g_unix_is_mount_path_system_internal() on @mount_entry’s properties.
+ * g_tls_connection_handshake_finish:
+ * @conn: a #GTlsConnection
+ * @result: a #GAsyncResult.
+ * @error: a #GError pointer, or %NULL
*
- * The definition of what a ‘system’ mount entry is may change over time as new
- * file system types and device paths are ignored.
+ * Finish an asynchronous TLS handshake operation. See
+ * g_tls_connection_handshake() for more information.
*
- * Returns: %TRUE if the unix mount is for a system path.
+ * Returns: %TRUE on success, %FALSE on failure, in which
+ * case @error will be set.
+ * Since: 2.28
*/
/**
- * g_unix_mount_monitor_get:
+ * g_tls_connection_set_certificate:
+ * @conn: a #GTlsConnection
+ * @certificate: the certificate to use for @conn
*
- * Gets the #GUnixMountMonitor for the current thread-default main
- * context.
+ * This sets the certificate that @conn will present to its peer
+ * during the TLS handshake. For a #GTlsServerConnection, it is
+ * mandatory to set this, and that will normally be done at construct
+ * time.
*
- * 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).
+ * For a #GTlsClientConnection, this is optional. If a handshake fails
+ * with %G_TLS_ERROR_CERTIFICATE_REQUIRED, that means that the server
+ * requires a certificate, and if you try connecting again, you should
+ * call this method first. You can call
+ * g_tls_client_connection_get_accepted_cas() on the failed connection
+ * to get a list of Certificate Authorities that the server will
+ * accept certificates from.
*
- * You must only call g_object_unref() on the return value from under
- * the same main context as you called this function.
+ * (It is also possible that a server will allow the connection with
+ * or without a certificate; in that case, if you don't provide a
+ * certificate, you can tell that the server requested one by the fact
+ * that g_tls_client_connection_get_accepted_cas() will return
+ * non-%NULL.)
*
- * Returns: (transfer full): the #GUnixMountMonitor.
- * Since: 2.44
+ * Since: 2.28
*/
/**
- * g_unix_mount_monitor_new:
- *
- * Deprecated alias for g_unix_mount_monitor_get().
+ * g_tls_connection_set_database:
+ * @conn: a #GTlsConnection
+ * @database: a #GTlsDatabase
*
- * This function was never a true constructor, which is why it was
- * renamed.
+ * Sets the certificate database that is used to verify peer certificates.
+ * This is set to the default database by default. See
+ * g_tls_backend_get_default_database(). If set to %NULL, then
+ * peer certificate validation will always set the
+ * %G_TLS_CERTIFICATE_UNKNOWN_CA error (meaning
+ * #GTlsConnection::accept-certificate will always be emitted on
+ * client-side connections, unless that bit is not set in
+ * #GTlsClientConnection:validation-flags).
*
- * Returns: a #GUnixMountMonitor.
- * Deprecated: 2.44: Use g_unix_mount_monitor_get() instead.
+ * Since: 2.30
*/
/**
- * g_unix_mount_monitor_set_rate_limit:
- * @mount_monitor: a #GUnixMountMonitor
- * @limit_msec: a integer with the limit in milliseconds to
- * poll for changes.
+ * g_tls_connection_set_interaction:
+ * @conn: a connection
+ * @interaction: (nullable): an interaction object, or %NULL
*
- * This function does nothing.
+ * Set the object that will be used to interact with the user. It will be used
+ * for things like prompting the user for passwords.
*
- * 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.
+ * The @interaction argument will normally be a derived subclass of
+ * #GTlsInteraction. %NULL can also be provided if no user interaction
+ * should occur for this connection.
*
- * Since: 2.18
- * Deprecated: 2.44: This function does nothing. Don't call it.
+ * Since: 2.30
*/
/**
- * g_unix_mount_point_compare:
- * @mount1: a #GUnixMount.
- * @mount2: a #GUnixMount.
+ * g_tls_connection_set_rehandshake_mode:
+ * @conn: a #GTlsConnection
+ * @mode: the rehandshaking mode
*
- * Compares two unix mount points.
+ * Sets how @conn behaves with respect to rehandshaking requests, when
+ * TLS 1.2 or older is in use.
*
- * Returns: 1, 0 or -1 if @mount1 is greater than, equal to,
- * or less than @mount2, respectively.
+ * %G_TLS_REHANDSHAKE_NEVER means that it will never agree to
+ * rehandshake after the initial handshake is complete. (For a client,
+ * this means it will refuse rehandshake requests from the server, and
+ * for a server, this means it will close the connection with an error
+ * if the client attempts to rehandshake.)
+ *
+ * %G_TLS_REHANDSHAKE_SAFELY means that the connection will allow a
+ * rehandshake only if the other end of the connection supports the
+ * TLS `renegotiation_info` extension. This is the default behavior,
+ * but means that rehandshaking will not work against older
+ * implementations that do not support that extension.
+ *
+ * %G_TLS_REHANDSHAKE_UNSAFELY means that the connection will allow
+ * rehandshaking even without the `renegotiation_info` extension. On
+ * the server side in particular, this is not recommended, since it
+ * leaves the server open to certain attacks. However, this mode is
+ * necessary if you need to allow renegotiation with older client
+ * software.
+ *
+ * Since: 2.28
*/
/**
- * g_unix_mount_point_copy:
- * @mount_point: a #GUnixMountPoint.
+ * g_tls_connection_set_require_close_notify:
+ * @conn: a #GTlsConnection
+ * @require_close_notify: whether or not to require close notification
*
- * Makes a copy of @mount_point.
+ * Sets whether or not @conn expects a proper TLS close notification
+ * before the connection is closed. If this is %TRUE (the default),
+ * then @conn will expect to receive a TLS close notification from its
+ * peer before the connection is closed, and will return a
+ * %G_TLS_ERROR_EOF error if the connection is closed without proper
+ * notification (since this may indicate a network error, or
+ * man-in-the-middle attack).
*
- * Returns: (transfer full): a new #GUnixMountPoint
- * Since: 2.54
+ * In some protocols, the application will know whether or not the
+ * connection was closed cleanly based on application-level data
+ * (because the application-level data includes a length field, or is
+ * somehow self-delimiting); in this case, the close notify is
+ * redundant and sometimes omitted. (TLS 1.1 explicitly allows this;
+ * in TLS 1.0 it is technically an error, but often done anyway.) You
+ * can use g_tls_connection_set_require_close_notify() to tell @conn
+ * to allow an "unannounced" connection close, in which case the close
+ * will show up as a 0-length read, as in a non-TLS
+ * #GSocketConnection, and it is up to the application to check that
+ * the data has been fully received.
+ *
+ * Note that this only affects the behavior when the peer closes the
+ * connection; when the application calls g_io_stream_close() itself
+ * on @conn, this will send a close notification regardless of the
+ * setting of this property. If you explicitly want to do an unclean
+ * close, you can close @conn's #GTlsConnection:base-io-stream rather
+ * than closing @conn itself, but note that this may only be done when no other
+ * operations are pending on @conn or the base I/O stream.
+ *
+ * Since: 2.28
*/
/**
- * g_unix_mount_point_free:
- * @mount_point: unix mount point to free.
+ * g_tls_connection_set_use_system_certdb:
+ * @conn: a #GTlsConnection
+ * @use_system_certdb: whether to use the system certificate database
*
- * Frees a unix mount point.
+ * Sets whether @conn uses the system certificate database to verify
+ * peer certificates. This is %TRUE by default. If set to %FALSE, then
+ * peer certificate validation will always set the
+ * %G_TLS_CERTIFICATE_UNKNOWN_CA error (meaning
+ * #GTlsConnection::accept-certificate will always be emitted on
+ * client-side connections, unless that bit is not set in
+ * #GTlsClientConnection:validation-flags).
+ *
+ * Deprecated: 2.30: Use g_tls_connection_set_database() instead
*/
/**
- * g_unix_mount_point_get_device_path:
- * @mount_point: a #GUnixMountPoint.
+ * g_tls_database_create_certificate_handle:
+ * @self: a #GTlsDatabase
+ * @certificate: certificate for which to create a handle.
*
- * Gets the device path for a unix mount point.
+ * Create a handle string for the certificate. The database will only be able
+ * to create a handle for certificates that originate from the database. In
+ * cases where the database cannot create a handle for a certificate, %NULL
+ * will be returned.
*
- * Returns: (type filename): a string containing the device path.
+ * This handle should be stable across various instances of the application,
+ * and between applications. If a certificate is modified in the database,
+ * then it is not guaranteed that this handle will continue to point to it.
+ *
+ * Returns: (nullable): a newly allocated string containing the
+ * handle.
+ * Since: 2.30
*/
/**
- * g_unix_mount_point_get_fs_type:
- * @mount_point: a #GUnixMountPoint.
+ * g_tls_database_lookup_certificate_for_handle:
+ * @self: a #GTlsDatabase
+ * @handle: a certificate handle
+ * @interaction: (nullable): used to interact with the user if necessary
+ * @flags: Flags which affect the lookup.
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: (nullable): a #GError, or %NULL
*
- * Gets the file system type for the mount point.
+ * Lookup a certificate by its handle.
+ *
+ * The handle should have been created by calling
+ * g_tls_database_create_certificate_handle() on a #GTlsDatabase object of
+ * the same TLS backend. The handle is designed to remain valid across
+ * instantiations of the database.
+ *
+ * If the handle is no longer valid, or does not point to a certificate in
+ * this database, then %NULL will be returned.
+ *
+ * This function can block, use g_tls_database_lookup_certificate_for_handle_async() to perform
+ * the lookup operation asynchronously.
*
- * Returns: a string containing the file system type.
+ * Returns: (transfer full) (nullable): a newly allocated
+ * #GTlsCertificate, or %NULL. Use g_object_unref() to release the certificate.
+ * Since: 2.30
*/
/**
- * g_unix_mount_point_get_mount_path:
- * @mount_point: a #GUnixMountPoint.
+ * g_tls_database_lookup_certificate_for_handle_async:
+ * @self: a #GTlsDatabase
+ * @handle: a certificate handle
+ * @interaction: (nullable): used to interact with the user if necessary
+ * @flags: Flags which affect the lookup.
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: callback to call when the operation completes
+ * @user_data: the data to pass to the callback function
*
- * Gets the mount path for a unix mount point.
+ * Asynchronously lookup a certificate by its handle in the database. See
+ * g_tls_database_lookup_certificate_for_handle() for more information.
*
- * Returns: (type filename): a string containing the mount path.
+ * Since: 2.30
*/
/**
- * g_unix_mount_point_get_options:
- * @mount_point: a #GUnixMountPoint.
+ * g_tls_database_lookup_certificate_for_handle_finish:
+ * @self: a #GTlsDatabase
+ * @result: a #GAsyncResult.
+ * @error: a #GError pointer, or %NULL
*
- * Gets the options for the mount point.
+ * Finish an asynchronous lookup of a certificate by its handle. See
+ * g_tls_database_lookup_certificate_by_handle() for more information.
*
- * Returns: a string containing the options.
- * Since: 2.32
+ * If the handle is no longer valid, or does not point to a certificate in
+ * this database, then %NULL will be returned.
+ *
+ * Returns: (transfer full): a newly allocated #GTlsCertificate object.
+ * Use g_object_unref() to release the certificate.
+ * Since: 2.30
*/
/**
- * g_unix_mount_point_guess_can_eject:
- * @mount_point: a #GUnixMountPoint
+ * g_tls_database_lookup_certificate_issuer:
+ * @self: a #GTlsDatabase
+ * @certificate: a #GTlsCertificate
+ * @interaction: (nullable): used to interact with the user if necessary
+ * @flags: flags which affect the lookup operation
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: (nullable): a #GError, or %NULL
*
- * Guesses whether a Unix mount point can be ejected.
+ * Lookup the issuer of @certificate in the database.
*
- * Returns: %TRUE if @mount_point is deemed to be ejectable.
- */
-
-
-/**
- * g_unix_mount_point_guess_icon:
- * @mount_point: a #GUnixMountPoint
+ * The %issuer property
+ * of @certificate is not modified, and the two certificates are not hooked
+ * into a chain.
*
- * Guesses the icon of a Unix mount point.
+ * This function can block, use g_tls_database_lookup_certificate_issuer_async() to perform
+ * the lookup operation asynchronously.
*
- * Returns: (transfer full): a #GIcon
+ * Returns: (transfer full): a newly allocated issuer #GTlsCertificate,
+ * or %NULL. Use g_object_unref() to release the certificate.
+ * Since: 2.30
*/
/**
- * g_unix_mount_point_guess_name:
- * @mount_point: a #GUnixMountPoint
+ * g_tls_database_lookup_certificate_issuer_async:
+ * @self: a #GTlsDatabase
+ * @certificate: a #GTlsCertificate
+ * @interaction: (nullable): used to interact with the user if necessary
+ * @flags: flags which affect the lookup operation
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: callback to call when the operation completes
+ * @user_data: the data to pass to the callback function
*
- * Guesses the name of a Unix mount point.
- * The result is a translated string.
+ * Asynchronously lookup the issuer of @certificate in the database. See
+ * g_tls_database_lookup_certificate_issuer() for more information.
*
- * Returns: A newly allocated string that must
- * be freed with g_free()
+ * Since: 2.30
*/
/**
- * g_unix_mount_point_guess_symbolic_icon:
- * @mount_point: a #GUnixMountPoint
+ * g_tls_database_lookup_certificate_issuer_finish:
+ * @self: a #GTlsDatabase
+ * @result: a #GAsyncResult.
+ * @error: a #GError pointer, or %NULL
*
- * Guesses the symbolic icon of a Unix mount point.
+ * Finish an asynchronous lookup issuer operation. See
+ * g_tls_database_lookup_certificate_issuer() for more information.
*
- * Returns: (transfer full): a #GIcon
- * Since: 2.34
+ * Returns: (transfer full): a newly allocated issuer #GTlsCertificate,
+ * or %NULL. Use g_object_unref() to release the certificate.
+ * Since: 2.30
*/
/**
- * g_unix_mount_point_guess_type:
- * @mount_point: a #GUnixMountPoint.
+ * g_tls_database_lookup_certificates_issued_by:
+ * @self: a #GTlsDatabase
+ * @issuer_raw_dn: a #GByteArray which holds the DER encoded issuer DN.
+ * @interaction: (nullable): used to interact with the user if necessary
+ * @flags: Flags which affect the lookup operation.
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: (nullable): a #GError, or %NULL
*
- * Guesses the type of a unix mount point.
- * If the mount type cannot be determined,
- * returns %G_UNIX_MOUNT_TYPE_UNKNOWN.
+ * Lookup certificates issued by this issuer in the database.
*
- * Returns: a #GUnixMountType.
+ * This function can block, use g_tls_database_lookup_certificates_issued_by_async() to perform
+ * the lookup operation asynchronously.
+ *
+ * Returns: (transfer full) (element-type GTlsCertificate): a newly allocated list of #GTlsCertificate
+ * objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.
+ * Since: 2.30
*/
/**
- * g_unix_mount_point_is_loopback:
- * @mount_point: a #GUnixMountPoint.
+ * g_tls_database_lookup_certificates_issued_by_async:
+ * @self: a #GTlsDatabase
+ * @issuer_raw_dn: a #GByteArray which holds the DER encoded issuer DN.
+ * @interaction: (nullable): used to interact with the user if necessary
+ * @flags: Flags which affect the lookup operation.
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: callback to call when the operation completes
+ * @user_data: the data to pass to the callback function
*
- * Checks if a unix mount point is a loopback device.
+ * Asynchronously lookup certificates issued by this issuer in the database. See
+ * g_tls_database_lookup_certificates_issued_by() for more information.
*
- * Returns: %TRUE if the mount point is a loopback. %FALSE otherwise.
+ * The database may choose to hold a reference to the issuer byte array for the duration
+ * of of this asynchronous operation. The byte array should not be modified during
+ * this time.
+ *
+ * Since: 2.30
*/
/**
- * g_unix_mount_point_is_readonly:
- * @mount_point: a #GUnixMountPoint.
+ * g_tls_database_lookup_certificates_issued_by_finish:
+ * @self: a #GTlsDatabase
+ * @result: a #GAsyncResult.
+ * @error: a #GError pointer, or %NULL
*
- * Checks if a unix mount point is read only.
+ * Finish an asynchronous lookup of certificates. See
+ * g_tls_database_lookup_certificates_issued_by() for more information.
*
- * Returns: %TRUE if a mount point is read only.
+ * Returns: (transfer full) (element-type GTlsCertificate): a newly allocated list of #GTlsCertificate
+ * objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.
+ * Since: 2.30
*/
/**
- * g_unix_mount_point_is_user_mountable:
- * @mount_point: a #GUnixMountPoint.
+ * g_tls_database_verify_chain:
+ * @self: a #GTlsDatabase
+ * @chain: a #GTlsCertificate chain
+ * @purpose: the purpose that this certificate chain will be used for.
+ * @identity: (nullable): the expected peer identity
+ * @interaction: (nullable): used to interact with the user if necessary
+ * @flags: additional verify flags
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @error: (nullable): a #GError, or %NULL
*
- * Checks if a unix mount point is mountable by the user.
+ * Determines the validity of a certificate chain after looking up and
+ * adding any missing certificates to the chain.
*
- * Returns: %TRUE if the mount point is user mountable.
- */
-
-
-/**
- * g_unix_mount_points_changed_since:
- * @time: guint64 to contain a timestamp.
+ * @chain is a chain of #GTlsCertificate objects each pointing to the next
+ * certificate in the chain by its #GTlsCertificate:issuer property. The chain may initially
+ * consist of one or more certificates. After the verification process is
+ * complete, @chain may be modified by adding missing certificates, or removing
+ * extra certificates. If a certificate anchor was found, then it is added to
+ * the @chain.
*
- * Checks if the unix mount points have changed since a given unix time.
+ * @purpose describes the purpose (or usage) for which the certificate
+ * is being used. Typically @purpose will be set to #G_TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER
+ * which means that the certificate is being used to authenticate a server
+ * (and we are acting as the client).
*
- * Returns: %TRUE if the mount points have changed since @time.
- */
-
-
-/**
- * g_unix_mount_points_get:
- * @time_read: (out) (optional): guint64 to contain a timestamp.
+ * The @identity is used to check for pinned certificates (trust exceptions)
+ * in the database. These will override the normal verification process on a
+ * host by host basis.
*
- * Gets a #GList of #GUnixMountPoint containing the unix mount points.
- * If @time_read is set, it will be filled with the mount timestamp,
- * allowing for checking if the mounts have changed with
- * g_unix_mount_points_changed_since().
+ * Currently there are no @flags, and %G_TLS_DATABASE_VERIFY_NONE should be
+ * used.
*
- * Returns: (element-type GUnixMountPoint) (transfer full):
- * a #GList of the UNIX mountpoints.
- */
-
-
-/**
- * g_unix_mounts_changed_since:
- * @time: guint64 to contain a timestamp.
+ * If @chain is found to be valid, then the return value will be 0. If
+ * @chain is found to be invalid, then the return value will indicate
+ * the problems found. If the function is unable to determine whether
+ * @chain is valid or not (eg, because @cancellable is triggered
+ * before it completes) then the return value will be
+ * %G_TLS_CERTIFICATE_GENERIC_ERROR and @error will be set
+ * accordingly. @error is not set when @chain is successfully analyzed
+ * but found to be invalid.
*
- * Checks if the unix mounts have changed since a given unix time.
+ * This function can block, use g_tls_database_verify_chain_async() to perform
+ * the verification operation asynchronously.
*
- * Returns: %TRUE if the mounts have changed since @time.
+ * Returns: the appropriate #GTlsCertificateFlags which represents the
+ * result of verification.
+ * Since: 2.30
*/
/**
- * g_unix_mounts_get:
- * @time_read: (out) (optional): guint64 to contain a timestamp, or %NULL
+ * g_tls_database_verify_chain_async:
+ * @self: a #GTlsDatabase
+ * @chain: a #GTlsCertificate chain
+ * @purpose: the purpose that this certificate chain will be used for.
+ * @identity: (nullable): the expected peer identity
+ * @interaction: (nullable): used to interact with the user if necessary
+ * @flags: additional verify flags
+ * @cancellable: (nullable): a #GCancellable, or %NULL
+ * @callback: callback to call when the operation completes
+ * @user_data: the data to pass to the callback function
*
- * Gets a #GList of #GUnixMountEntry containing the unix mounts.
- * If @time_read is set, it will be filled with the mount
- * timestamp, allowing for checking if the mounts have changed
- * with g_unix_mounts_changed_since().
+ * Asynchronously determines the validity of a certificate chain after
+ * looking up and adding any missing certificates to the chain. See
+ * g_tls_database_verify_chain() for more information.
*
- * Returns: (element-type GUnixMountEntry) (transfer full):
- * a #GList of the UNIX mounts.
+ * Since: 2.30
*/
/**
- * g_unix_output_stream_get_close_fd:
- * @stream: a #GUnixOutputStream
+ * g_tls_database_verify_chain_finish:
+ * @self: a #GTlsDatabase
+ * @result: a #GAsyncResult.
+ * @error: a #GError pointer, or %NULL
*
- * Returns whether the file descriptor of @stream will be
- * closed when the stream is closed.
+ * Finish an asynchronous verify chain operation. See
+ * g_tls_database_verify_chain() for more information.
*
- * Returns: %TRUE if the file descriptor is closed when done
- * Since: 2.20
+ * If @chain is found to be valid, then the return value will be 0. If
+ * @chain is found to be invalid, then the return value will indicate
+ * the problems found. If the function is unable to determine whether
+ * @chain is valid or not (eg, because @cancellable is triggered
+ * before it completes) then the return value will be
+ * %G_TLS_CERTIFICATE_GENERIC_ERROR and @error will be set
+ * accordingly. @error is not set when @chain is successfully analyzed
+ * but found to be invalid.
+ *
+ * Returns: the appropriate #GTlsCertificateFlags which represents the
+ * result of verification.
+ * Since: 2.30
*/
/**
- * g_unix_output_stream_get_fd:
- * @stream: a #GUnixOutputStream
+ * g_tls_error_quark:
*
- * Return the UNIX file descriptor that the stream writes to.
+ * Gets the TLS error quark.
*
- * Returns: The file descriptor of @stream
- * Since: 2.20
+ * Returns: a #GQuark.
+ * Since: 2.28
*/
/**
- * g_unix_output_stream_new:
- * @fd: a UNIX file descriptor
- * @close_fd: %TRUE to close the file descriptor when done
+ * g_tls_file_database_new:
+ * @anchors: (type filename): filename of anchor certificate authorities.
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Creates a new #GUnixOutputStream for the given @fd.
+ * Creates a new #GTlsFileDatabase which uses anchor certificate authorities
+ * in @anchors to verify certificate chains.
*
- * If @close_fd, is %TRUE, the file descriptor will be closed when
- * the output stream is destroyed.
+ * The certificates in @anchors must be PEM encoded.
*
- * Returns: a new #GOutputStream
+ * Returns: (transfer full) (type GTlsFileDatabase): the new
+ * #GTlsFileDatabase, or %NULL on error
+ * Since: 2.30
*/
/**
- * g_unix_output_stream_set_close_fd:
- * @stream: a #GUnixOutputStream
- * @close_fd: %TRUE to close the file descriptor when done
+ * g_tls_interaction_ask_password:
+ * @interaction: a #GTlsInteraction object
+ * @password: a #GTlsPassword object
+ * @cancellable: an optional #GCancellable cancellation object
+ * @error: an optional location to place an error on failure
*
- * Sets whether the file descriptor of @stream shall be closed
- * when the stream is closed.
+ * Run synchronous interaction to ask the user for a password. In general,
+ * g_tls_interaction_invoke_ask_password() should be used instead of this
+ * function.
*
- * Since: 2.20
- */
-
-
-/**
- * g_unix_socket_address_abstract_names_supported:
+ * Derived subclasses usually implement a password prompt, although they may
+ * also choose to provide a password from elsewhere. The @password value will
+ * be filled in and then @callback will be called. Alternatively the user may
+ * abort this password request, which will usually abort the TLS connection.
*
- * Checks if abstract UNIX domain socket names are supported.
+ * If the interaction is cancelled by the cancellation object, or by the
+ * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
+ * contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
+ * not support immediate cancellation.
*
- * Returns: %TRUE if supported, %FALSE otherwise
- * Since: 2.22
+ * Returns: The status of the ask password interaction.
+ * Since: 2.30
*/
/**
- * g_unix_socket_address_get_address_type:
- * @address: a #GInetSocketAddress
+ * g_tls_interaction_ask_password_async:
+ * @interaction: a #GTlsInteraction object
+ * @password: a #GTlsPassword object
+ * @cancellable: an optional #GCancellable cancellation object
+ * @callback: (nullable): will be called when the interaction completes
+ * @user_data: (nullable): data to pass to the @callback
*
- * Gets @address's type.
+ * Run asynchronous interaction to ask the user for a password. In general,
+ * g_tls_interaction_invoke_ask_password() should be used instead of this
+ * function.
*
- * Returns: a #GUnixSocketAddressType
- * Since: 2.26
- */
-
-
-/**
- * g_unix_socket_address_get_is_abstract:
- * @address: a #GInetSocketAddress
+ * Derived subclasses usually implement a password prompt, although they may
+ * also choose to provide a password from elsewhere. The @password value will
+ * be filled in and then @callback will be called. Alternatively the user may
+ * abort this password request, which will usually abort the TLS connection.
*
- * Tests if @address is abstract.
+ * If the interaction is cancelled by the cancellation object, or by the
+ * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
+ * contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
+ * not support immediate cancellation.
*
- * Returns: %TRUE if the address is abstract, %FALSE otherwise
- * Since: 2.22
- * Deprecated: Use g_unix_socket_address_get_address_type()
+ * Certain implementations may not support immediate cancellation.
+ *
+ * Since: 2.30
*/
/**
- * g_unix_socket_address_get_path:
- * @address: a #GInetSocketAddress
+ * g_tls_interaction_ask_password_finish:
+ * @interaction: a #GTlsInteraction object
+ * @result: the result passed to the callback
+ * @error: an optional location to place an error on failure
*
- * Gets @address's path, or for abstract sockets the "name".
+ * Complete an ask password user interaction request. This should be once
+ * the g_tls_interaction_ask_password_async() completion callback is called.
*
- * Guaranteed to be zero-terminated, but an abstract socket
- * may contain embedded zeros, and thus you should use
- * g_unix_socket_address_get_path_len() to get the true length
- * of this string.
+ * If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsPassword passed
+ * to g_tls_interaction_ask_password() will have its password filled in.
*
- * Returns: the path for @address
- * Since: 2.22
+ * If the interaction is cancelled by the cancellation object, or by the
+ * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
+ * contains a %G_IO_ERROR_CANCELLED error code.
+ *
+ * Returns: The status of the ask password interaction.
+ * Since: 2.30
*/
/**
- * g_unix_socket_address_get_path_len:
- * @address: a #GInetSocketAddress
+ * g_tls_interaction_invoke_ask_password:
+ * @interaction: a #GTlsInteraction object
+ * @password: a #GTlsPassword object
+ * @cancellable: an optional #GCancellable cancellation object
+ * @error: an optional location to place an error on failure
*
- * Gets the length of @address's path.
+ * Invoke the interaction to ask the user for a password. It invokes this
+ * interaction in the main loop, specifically the #GMainContext returned by
+ * g_main_context_get_thread_default() when the interaction is created. This
+ * is called by called by #GTlsConnection or #GTlsDatabase to ask the user
+ * for a password.
*
- * For details, see g_unix_socket_address_get_path().
+ * Derived subclasses usually implement a password prompt, although they may
+ * also choose to provide a password from elsewhere. The @password value will
+ * be filled in and then @callback will be called. Alternatively the user may
+ * abort this password request, which will usually abort the TLS connection.
*
- * Returns: the length of the path
- * Since: 2.22
+ * The implementation can either be a synchronous (eg: modal dialog) or an
+ * asynchronous one (eg: modeless dialog). This function will take care of
+ * calling which ever one correctly.
+ *
+ * If the interaction is cancelled by the cancellation object, or by the
+ * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
+ * contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
+ * not support immediate cancellation.
+ *
+ * Returns: The status of the ask password interaction.
+ * Since: 2.30
*/
/**
- * g_unix_socket_address_new:
- * @path: the socket path
+ * g_tls_interaction_invoke_request_certificate:
+ * @interaction: a #GTlsInteraction object
+ * @connection: a #GTlsConnection object
+ * @flags: flags providing more information about the request
+ * @cancellable: an optional #GCancellable cancellation object
+ * @error: an optional location to place an error on failure
*
- * Creates a new #GUnixSocketAddress for @path.
+ * Invoke the interaction to ask the user to choose a certificate to
+ * use with the connection. It invokes this interaction in the main
+ * loop, specifically the #GMainContext returned by
+ * g_main_context_get_thread_default() when the interaction is
+ * created. This is called by called by #GTlsConnection when the peer
+ * requests a certificate during the handshake.
*
- * To create abstract socket addresses, on systems that support that,
- * use g_unix_socket_address_new_abstract().
+ * Derived subclasses usually implement a certificate selector,
+ * although they may also choose to provide a certificate from
+ * elsewhere. Alternatively the user may abort this certificate
+ * request, which may or may not abort the TLS connection.
*
- * Returns: a new #GUnixSocketAddress
- * Since: 2.22
- */
-
-
-/**
- * g_unix_socket_address_new_abstract:
- * @path: (array length=path_len) (element-type gchar): the abstract name
- * @path_len: the length of @path, or -1
+ * The implementation can either be a synchronous (eg: modal dialog) or an
+ * asynchronous one (eg: modeless dialog). This function will take care of
+ * calling which ever one correctly.
*
- * Creates a new %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED
- * #GUnixSocketAddress for @path.
+ * If the interaction is cancelled by the cancellation object, or by the
+ * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
+ * contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
+ * not support immediate cancellation.
*
- * Returns: a new #GUnixSocketAddress
- * Deprecated: Use g_unix_socket_address_new_with_type().
+ * Returns: The status of the certificate request interaction.
+ * Since: 2.40
*/
/**
- * g_unix_socket_address_new_with_type:
- * @path: (array length=path_len) (element-type gchar): the name
- * @path_len: the length of @path, or -1
- * @type: a #GUnixSocketAddressType
+ * g_tls_interaction_request_certificate:
+ * @interaction: a #GTlsInteraction object
+ * @connection: a #GTlsConnection object
+ * @flags: flags providing more information about the request
+ * @cancellable: an optional #GCancellable cancellation object
+ * @error: an optional location to place an error on failure
*
- * Creates a new #GUnixSocketAddress of type @type with name @path.
+ * Run synchronous interaction to ask the user to choose a certificate to use
+ * with the connection. In general, g_tls_interaction_invoke_request_certificate()
+ * should be used instead of this function.
*
- * If @type is %G_UNIX_SOCKET_ADDRESS_PATH, this is equivalent to
- * calling g_unix_socket_address_new().
+ * Derived subclasses usually implement a certificate selector, although they may
+ * also choose to provide a certificate from elsewhere. Alternatively the user may
+ * abort this certificate request, which will usually abort the TLS connection.
*
- * If @type is %G_UNIX_SOCKET_ADDRESS_ANONYMOUS, @path and @path_len will be
- * ignored.
+ * If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsConnection
+ * passed to g_tls_interaction_request_certificate() will have had its
+ * #GTlsConnection:certificate filled in.
*
- * If @path_type is %G_UNIX_SOCKET_ADDRESS_ABSTRACT, then @path_len
- * bytes of @path will be copied to the socket's path, and only those
- * bytes will be considered part of the name. (If @path_len is -1,
- * then @path is assumed to be NUL-terminated.) For example, if @path
- * was "test", then calling g_socket_address_get_native_size() on the
- * returned socket would return 7 (2 bytes of overhead, 1 byte for the
- * abstract-socket indicator byte, and 4 bytes for the name "test").
+ * If the interaction is cancelled by the cancellation object, or by the
+ * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
+ * contains a %G_IO_ERROR_CANCELLED error code. Certain implementations may
+ * not support immediate cancellation.
*
- * If @path_type is %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED, then
- * @path_len bytes of @path will be copied to the socket's path, the
- * rest of the path will be padded with 0 bytes, and the entire
- * zero-padded buffer will be considered the name. (As above, if
- * @path_len is -1, then @path is assumed to be NUL-terminated.) In
- * this case, g_socket_address_get_native_size() will always return
- * the full size of a `struct sockaddr_un`, although
- * g_unix_socket_address_get_path_len() will still return just the
- * length of @path.
+ * Returns: The status of the request certificate interaction.
+ * Since: 2.40
+ */
+
+
+/**
+ * g_tls_interaction_request_certificate_async:
+ * @interaction: a #GTlsInteraction object
+ * @connection: a #GTlsConnection object
+ * @flags: flags providing more information about the request
+ * @cancellable: an optional #GCancellable cancellation object
+ * @callback: (nullable): will be called when the interaction completes
+ * @user_data: (nullable): data to pass to the @callback
+ *
+ * Run asynchronous interaction to ask the user for a certificate to use with
+ * the connection. In general, g_tls_interaction_invoke_request_certificate() should
+ * be used instead of this function.
*
- * %G_UNIX_SOCKET_ADDRESS_ABSTRACT is preferred over
- * %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED for new programs. Of course,
- * when connecting to a server created by another process, you must
- * use the appropriate type corresponding to how that process created
- * its listening socket.
+ * Derived subclasses usually implement a certificate selector, although they may
+ * also choose to provide a certificate from elsewhere. @callback will be called
+ * when the operation completes. Alternatively the user may abort this certificate
+ * request, which will usually abort the TLS connection.
*
- * Returns: a new #GUnixSocketAddress
- * Since: 2.26
+ * Since: 2.40
*/
/**
- * g_vfs_get_default:
+ * g_tls_interaction_request_certificate_finish:
+ * @interaction: a #GTlsInteraction object
+ * @result: the result passed to the callback
+ * @error: an optional location to place an error on failure
*
- * Gets the default #GVfs for the system.
+ * Complete an request certificate user interaction request. This should be once
+ * the g_tls_interaction_request_certificate_async() completion callback is called.
*
- * Returns: (transfer none): a #GVfs.
+ * If %G_TLS_INTERACTION_HANDLED is returned, then the #GTlsConnection
+ * passed to g_tls_interaction_request_certificate_async() will have had its
+ * #GTlsConnection:certificate filled in.
+ *
+ * If the interaction is cancelled by the cancellation object, or by the
+ * user then %G_TLS_INTERACTION_FAILED will be returned with an error that
+ * contains a %G_IO_ERROR_CANCELLED error code.
+ *
+ * Returns: The status of the request certificate interaction.
+ * Since: 2.40
*/
/**
- * g_vfs_get_file_for_path:
- * @vfs: a #GVfs.
- * @path: a string containing a VFS path.
+ * g_tls_password_get_description:
+ * @password: a #GTlsPassword object
*
- * Gets a #GFile for @path.
+ * Get a description string about what the password will be used for.
*
- * Returns: (transfer full): a #GFile.
- * Free the returned object with g_object_unref().
+ * Returns: The description of the password.
+ * Since: 2.30
*/
/**
- * g_vfs_get_file_for_uri:
- * @vfs: a#GVfs.
- * @uri: a string containing a URI
- *
- * Gets a #GFile for @uri.
+ * g_tls_password_get_flags:
+ * @password: a #GTlsPassword object
*
- * This operation never fails, but the returned object
- * might not support any I/O operation if the URI
- * is malformed or if the URI scheme is not supported.
+ * Get flags about the password.
*
- * Returns: (transfer full): a #GFile.
- * Free the returned object with g_object_unref().
+ * Returns: The flags about the password.
+ * Since: 2.30
*/
/**
- * g_vfs_get_local:
+ * g_tls_password_get_value:
+ * @password: a #GTlsPassword object
+ * @length: (nullable): location to place the length of the password.
*
- * Gets the local #GVfs for the system.
+ * Get the password value. If @length is not %NULL then it will be
+ * filled in with the length of the password value. (Note that the
+ * password value is not nul-terminated, so you can only pass %NULL
+ * for @length in contexts where you know the password will have a
+ * certain fixed length.)
*
- * Returns: (transfer none): a #GVfs.
+ * Returns: The password value (owned by the password object).
+ * Since: 2.30
*/
/**
- * g_vfs_get_supported_uri_schemes:
- * @vfs: a #GVfs.
+ * g_tls_password_get_warning:
+ * @password: a #GTlsPassword object
*
- * Gets a list of URI schemes supported by @vfs.
+ * Get a user readable translated warning. Usually this warning is a
+ * representation of the password flags returned from
+ * g_tls_password_get_flags().
*
- * Returns: (transfer none): a %NULL-terminated array of strings.
- * The returned array belongs to GIO and must
- * not be freed or modified.
+ * Returns: The warning.
+ * Since: 2.30
*/
/**
- * g_vfs_is_active:
- * @vfs: a #GVfs.
+ * g_tls_password_new:
+ * @flags: the password flags
+ * @description: description of what the password is for
*
- * Checks if the VFS is active.
+ * Create a new #GTlsPassword object.
*
- * Returns: %TRUE if construction of the @vfs was successful
- * and it is now active.
+ * Returns: (transfer full): The newly allocated password object
*/
/**
- * g_vfs_parse_name:
- * @vfs: a #GVfs.
- * @parse_name: a string to be parsed by the VFS module.
+ * g_tls_password_set_description:
+ * @password: a #GTlsPassword object
+ * @description: The description of the password
*
- * This operation never fails, but the returned object might
- * not support any I/O operations if the @parse_name cannot
- * be parsed by the #GVfs module.
+ * Set a description string about what the password will be used for.
*
- * Returns: (transfer full): a #GFile for the given @parse_name.
- * Free the returned object with g_object_unref().
+ * Since: 2.30
*/
/**
- * g_vfs_register_uri_scheme:
- * @vfs: a #GVfs
- * @scheme: an URI scheme, e.g. "http"
- * @uri_func: (scope notified) (nullable): a #GVfsFileLookupFunc
- * @uri_data: (nullable): custom data passed to be passed to @uri_func, or %NULL
- * @uri_destroy: (nullable): function to be called when unregistering the
- * URI scheme, or when @vfs is disposed, to free the resources used
- * by the URI lookup function
- * @parse_name_func: (scope notified) (nullable): a #GVfsFileLookupFunc
- * @parse_name_data: (nullable): custom data passed to be passed to
- * @parse_name_func, or %NULL
- * @parse_name_destroy: (nullable): function to be called when unregistering the
- * URI scheme, or when @vfs is disposed, to free the resources used
- * by the parse name lookup function
- *
- * Registers @uri_func and @parse_name_func as the #GFile URI and parse name
- * lookup functions for URIs with a scheme matching @scheme.
- * Note that @scheme is registered only within the running application, as
- * opposed to desktop-wide as it happens with GVfs backends.
- *
- * When a #GFile is requested with an URI containing @scheme (e.g. through
- * g_file_new_for_uri()), @uri_func will be called to allow a custom
- * constructor. The implementation of @uri_func should not be blocking, and
- * must not call g_vfs_register_uri_scheme() or g_vfs_unregister_uri_scheme().
- *
- * When g_file_parse_name() is called with a parse name obtained from such file,
- * @parse_name_func will be called to allow the #GFile to be created again. In
- * that case, it's responsibility of @parse_name_func to make sure the parse
- * name matches what the custom #GFile implementation returned when
- * g_file_get_parse_name() was previously called. The implementation of
- * @parse_name_func should not be blocking, and must not call
- * g_vfs_register_uri_scheme() or g_vfs_unregister_uri_scheme().
+ * g_tls_password_set_flags:
+ * @password: a #GTlsPassword object
+ * @flags: The flags about the password
*
- * It's an error to call this function twice with the same scheme. To unregister
- * a custom URI scheme, use g_vfs_unregister_uri_scheme().
+ * Set flags about the password.
*
- * Returns: %TRUE if @scheme was successfully registered, or %FALSE if a handler
- * for @scheme already exists.
- * Since: 2.50
+ * Since: 2.30
*/
/**
- * g_vfs_unregister_uri_scheme:
- * @vfs: a #GVfs
- * @scheme: an URI scheme, e.g. "http"
+ * g_tls_password_set_value:
+ * @password: a #GTlsPassword object
+ * @value: (array length=length): the new password value
+ * @length: the length of the password, or -1
*
- * Unregisters the URI handler for @scheme previously registered with
- * g_vfs_register_uri_scheme().
+ * Set the value for this password. The @value will be copied by the password
+ * object.
*
- * Returns: %TRUE if @scheme was successfully unregistered, or %FALSE if a
- * handler for @scheme does not exist.
- * Since: 2.50
+ * Specify the @length, for a non-nul-terminated password. Pass -1 as
+ * @length if using a nul-terminated password, and @length will be
+ * calculated automatically. (Note that the terminating nul is not
+ * considered part of the password in this case.)
+ *
+ * Since: 2.30
*/
/**
- * g_volume_can_eject:
- * @volume: a #GVolume
+ * g_tls_password_set_value_full: (virtual set_value)
+ * @password: a #GTlsPassword object
+ * @value: (array length=length): the value for the password
+ * @length: the length of the password, or -1
+ * @destroy: (nullable): a function to use to free the password.
*
- * Checks if a volume can be ejected.
+ * Provide the value for this password.
*
- * Returns: %TRUE if the @volume can be ejected. %FALSE otherwise
+ * The @value will be owned by the password object, and later freed using
+ * the @destroy function callback.
+ *
+ * Specify the @length, for a non-nul-terminated password. Pass -1 as
+ * @length if using a nul-terminated password, and @length will be
+ * calculated automatically. (Note that the terminating nul is not
+ * considered part of the password in this case.)
+ *
+ * Since: 2.30
*/
/**
- * g_volume_can_mount:
- * @volume: a #GVolume
+ * g_tls_password_set_warning:
+ * @password: a #GTlsPassword object
+ * @warning: The user readable warning
*
- * Checks if a volume can be mounted.
+ * Set a user readable translated warning. Usually this warning is a
+ * representation of the password flags returned from
+ * g_tls_password_get_flags().
*
- * Returns: %TRUE if the @volume can be mounted. %FALSE otherwise
+ * Since: 2.30
*/
/**
- * g_volume_eject:
- * @volume: a #GVolume
- * @flags: flags affecting the unmount if required for eject
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL
- * @user_data: user data that gets passed to @callback
+ * g_tls_server_connection_new:
+ * @base_io_stream: the #GIOStream to wrap
+ * @certificate: (nullable): the default server certificate, or %NULL
+ * @error: #GError for error reporting, or %NULL to ignore.
*
- * Ejects a volume. This is an asynchronous operation, and is
- * finished by calling g_volume_eject_finish() with the @volume
- * and #GAsyncResult returned in the @callback.
+ * Creates a new #GTlsServerConnection wrapping @base_io_stream (which
+ * must have pollable input and output streams).
*
- * Deprecated: 2.22: Use g_volume_eject_with_operation() instead.
+ * See the documentation for #GTlsConnection:base-io-stream for restrictions
+ * on when application code can run operations on the @base_io_stream after
+ * this function has returned.
+ *
+ * Returns: (transfer full) (type GTlsServerConnection): the new
+ * #GTlsServerConnection, or %NULL on error
+ * Since: 2.28
*/
/**
- * g_volume_eject_finish:
- * @volume: pointer to a #GVolume
- * @result: a #GAsyncResult
- * @error: a #GError location to store an error, or %NULL to ignore
+ * g_unix_connection_receive_credentials:
+ * @connection: A #GUnixConnection.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
*
- * Finishes ejecting a volume. If any errors occurred during the operation,
- * @error will be set to contain the errors and %FALSE will be returned.
+ * Receives credentials from the sending end of the connection. The
+ * sending end has to call g_unix_connection_send_credentials() (or
+ * similar) for this to work.
*
- * Returns: %TRUE, %FALSE if operation failed
- * Deprecated: 2.22: Use g_volume_eject_with_operation_finish() instead.
+ * As well as reading the credentials this also reads (and discards) a
+ * single byte from the stream, as this is required for credentials
+ * passing to work on some implementations.
+ *
+ * Other ways to exchange credentials with a foreign peer includes the
+ * #GUnixCredentialsMessage type and g_socket_get_credentials() function.
+ *
+ * Returns: (transfer full): Received credentials on success (free with
+ * g_object_unref()), %NULL if @error is set.
+ * Since: 2.26
*/
/**
- * g_volume_eject_with_operation:
- * @volume: a #GVolume
- * @flags: flags affecting the unmount if required for eject
- * @mount_operation: (nullable): a #GMountOperation or %NULL to
- * avoid user interaction
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL
- * @user_data: user data passed to @callback
+ * g_unix_connection_receive_credentials_async:
+ * @connection: A #GUnixConnection.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Ejects a volume. This is an asynchronous operation, and is
- * finished by calling g_volume_eject_with_operation_finish() with the @volume
- * and #GAsyncResult data returned in the @callback.
+ * Asynchronously receive credentials.
*
- * Since: 2.22
+ * For more details, see g_unix_connection_receive_credentials() which is
+ * the synchronous version of this call.
+ *
+ * When the operation is finished, @callback will be called. You can then call
+ * g_unix_connection_receive_credentials_finish() to get the result of the operation.
+ *
+ * Since: 2.32
*/
/**
- * g_volume_eject_with_operation_finish:
- * @volume: a #GVolume
- * @result: a #GAsyncResult
- * @error: a #GError location to store the error occurring, or %NULL
+ * g_unix_connection_receive_credentials_finish:
+ * @connection: A #GUnixConnection.
+ * @result: a #GAsyncResult.
+ * @error: a #GError, or %NULL
*
- * Finishes ejecting a volume. If any errors occurred during the operation,
- * @error will be set to contain the errors and %FALSE will be returned.
+ * Finishes an asynchronous receive credentials operation started with
+ * g_unix_connection_receive_credentials_async().
*
- * Returns: %TRUE if the volume was successfully ejected. %FALSE otherwise
- * Since: 2.22
+ * Returns: (transfer full): a #GCredentials, or %NULL on error.
+ * Free the returned object with g_object_unref().
+ * Since: 2.32
*/
/**
- * g_volume_enumerate_identifiers:
- * @volume: a #GVolume
+ * g_unix_connection_receive_fd:
+ * @connection: a #GUnixConnection
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @error: (nullable): #GError for error reporting, or %NULL to ignore
*
- * Gets the kinds of [identifiers][volume-identifier] that @volume has.
- * Use g_volume_get_identifier() to obtain the identifiers themselves.
+ * Receives a file descriptor from the sending end of the connection.
+ * The sending end has to call g_unix_connection_send_fd() for this
+ * to work.
*
- * Returns: (array zero-terminated=1) (transfer full): a %NULL-terminated array
- * of strings containing kinds of identifiers. Use g_strfreev() to free.
+ * As well as reading the fd this also reads a single byte from the
+ * stream, as this is required for fd passing to work on some
+ * implementations.
+ *
+ * Returns: a file descriptor on success, -1 on error.
+ * Since: 2.22
*/
/**
- * g_volume_get_activation_root:
- * @volume: a #GVolume
- *
- * Gets the activation root for a #GVolume if it is known ahead of
- * mount time. Returns %NULL otherwise. If not %NULL and if @volume
- * is mounted, then the result of g_mount_get_root() on the
- * #GMount object obtained from g_volume_get_mount() will always
- * either be equal or a prefix of what this function returns. In
- * other words, in code
+ * g_unix_connection_send_credentials:
+ * @connection: A #GUnixConnection.
+ * @cancellable: (nullable): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
*
- * |[<!-- language="C" -->
- * GMount *mount;
- * GFile *mount_root
- * GFile *volume_activation_root;
+ * Passes the credentials of the current user the receiving side
+ * of the connection. The receiving end has to call
+ * g_unix_connection_receive_credentials() (or similar) to accept the
+ * credentials.
*
- * mount = g_volume_get_mount (volume); // mounted, so never NULL
- * mount_root = g_mount_get_root (mount);
- * volume_activation_root = g_volume_get_activation_root (volume); // assume not NULL
- * ]|
- * then the expression
- * |[<!-- language="C" -->
- * (g_file_has_prefix (volume_activation_root, mount_root) ||
- * g_file_equal (volume_activation_root, mount_root))
- * ]|
- * will always be %TRUE.
+ * As well as sending the credentials this also writes a single NUL
+ * byte to the stream, as this is required for credentials passing to
+ * work on some implementations.
*
- * Activation roots are typically used in #GVolumeMonitor
- * implementations to find the underlying mount to shadow, see
- * g_mount_is_shadowed() for more details.
+ * Other ways to exchange credentials with a foreign peer includes the
+ * #GUnixCredentialsMessage type and g_socket_get_credentials() function.
*
- * Returns: (nullable) (transfer full): the activation root of @volume
- * or %NULL. Use g_object_unref() to free.
- * Since: 2.18
+ * Returns: %TRUE on success, %FALSE if @error is set.
+ * Since: 2.26
*/
/**
- * g_volume_get_drive:
- * @volume: a #GVolume
+ * g_unix_connection_send_credentials_async:
+ * @connection: A #GUnixConnection.
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
- * Gets the drive for the @volume.
+ * Asynchronously send credentials.
*
- * Returns: (transfer full) (nullable): a #GDrive or %NULL if @volume is not
- * associated with a drive. The returned object should be unreffed
- * with g_object_unref() when no longer needed.
- */
-
-
-/**
- * g_volume_get_icon:
- * @volume: a #GVolume
+ * For more details, see g_unix_connection_send_credentials() which is
+ * the synchronous version of this call.
*
- * Gets the icon for @volume.
+ * When the operation is finished, @callback will be called. You can then call
+ * g_unix_connection_send_credentials_finish() to get the result of the operation.
*
- * Returns: (transfer full): a #GIcon.
- * The returned object should be unreffed with g_object_unref()
- * when no longer needed.
+ * Since: 2.32
*/
/**
- * g_volume_get_identifier:
- * @volume: a #GVolume
- * @kind: the kind of identifier to return
+ * g_unix_connection_send_credentials_finish:
+ * @connection: A #GUnixConnection.
+ * @result: a #GAsyncResult.
+ * @error: a #GError, or %NULL
*
- * Gets the identifier of the given kind for @volume.
- * See the [introduction][volume-identifier] for more
- * information about volume identifiers.
+ * Finishes an asynchronous send credentials operation started with
+ * g_unix_connection_send_credentials_async().
*
- * Returns: (nullable) (transfer full): a newly allocated string containing the
- * requested identifier, or %NULL if the #GVolume
- * doesn't have this kind of identifier
+ * Returns: %TRUE if the operation was successful, otherwise %FALSE.
+ * Since: 2.32
*/
/**
- * g_volume_get_mount:
- * @volume: a #GVolume
+ * g_unix_connection_send_fd:
+ * @connection: a #GUnixConnection
+ * @fd: a file descriptor
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore.
+ * @error: (nullable): #GError for error reporting, or %NULL to ignore.
*
- * Gets the mount for the @volume.
+ * Passes a file descriptor to the receiving side of the
+ * connection. The receiving end has to call g_unix_connection_receive_fd()
+ * to accept the file descriptor.
*
- * Returns: (transfer full) (nullable): a #GMount or %NULL if @volume isn't mounted.
- * The returned object should be unreffed with g_object_unref()
- * when no longer needed.
+ * As well as sending the fd this also writes a single byte to the
+ * stream, as this is required for fd passing to work on some
+ * implementations.
+ *
+ * Returns: a %TRUE on success, %NULL on error.
+ * Since: 2.22
*/
/**
- * g_volume_get_name:
- * @volume: a #GVolume
+ * g_unix_credentials_message_get_credentials:
+ * @message: A #GUnixCredentialsMessage.
*
- * Gets the name of @volume.
+ * Gets the credentials stored in @message.
*
- * Returns: the name for the given @volume. The returned string should
- * be freed with g_free() when no longer needed.
+ * Returns: (transfer none): A #GCredentials instance. Do not free, it is owned by @message.
+ * Since: 2.26
*/
/**
- * g_volume_get_sort_key:
- * @volume: a #GVolume
+ * g_unix_credentials_message_is_supported:
*
- * Gets the sort key for @volume, if any.
+ * Checks if passing #GCredentials on a #GSocket is supported on this platform.
*
- * Returns: (nullable): Sorting key for @volume or %NULL if no such key is available
- * Since: 2.32
+ * Returns: %TRUE if supported, %FALSE otherwise
+ * Since: 2.26
*/
/**
- * g_volume_get_symbolic_icon:
- * @volume: a #GVolume
+ * g_unix_credentials_message_new:
*
- * Gets the symbolic icon for @volume.
+ * Creates a new #GUnixCredentialsMessage with credentials matching the current processes.
*
- * Returns: (transfer full): a #GIcon.
- * The returned object should be unreffed with g_object_unref()
- * when no longer needed.
- * Since: 2.34
+ * Returns: a new #GUnixCredentialsMessage
+ * Since: 2.26
*/
/**
- * g_volume_get_uuid:
- * @volume: a #GVolume
+ * g_unix_credentials_message_new_with_credentials:
+ * @credentials: A #GCredentials object.
*
- * Gets the UUID for the @volume. The reference is typically based on
- * the file system UUID for the volume in question and should be
- * considered an opaque string. Returns %NULL if there is no UUID
- * available.
+ * Creates a new #GUnixCredentialsMessage holding @credentials.
*
- * Returns: (nullable) (transfer full): the UUID for @volume or %NULL if no UUID
- * can be computed.
- * The returned string should be freed with g_free()
- * when no longer needed.
+ * Returns: a new #GUnixCredentialsMessage
+ * Since: 2.26
*/
/**
- * g_volume_monitor_adopt_orphan_mount:
- * @mount: a #GMount object to find a parent for
- *
- * This function should be called by any #GVolumeMonitor
- * implementation when a new #GMount object is created that is not
- * associated with a #GVolume object. It must be called just before
- * emitting the @mount_added signal.
- *
- * If the return value is not %NULL, the caller must associate the
- * returned #GVolume object with the #GMount. This involves returning
- * it in its g_mount_get_volume() implementation. The caller must
- * also listen for the "removed" signal on the returned object
- * and give up its reference when handling that signal
+ * g_unix_fd_list_append:
+ * @list: a #GUnixFDList
+ * @fd: a valid open file descriptor
+ * @error: a #GError pointer
*
- * Similary, if implementing g_volume_monitor_adopt_orphan_mount(),
- * the implementor must take a reference to @mount and return it in
- * its g_volume_get_mount() implemented. Also, the implementor must
- * listen for the "unmounted" signal on @mount and give up its
- * reference upon handling that signal.
+ * Adds a file descriptor to @list.
*
- * There are two main use cases for this function.
+ * The file descriptor is duplicated using dup(). You keep your copy
+ * of the descriptor and the copy contained in @list will be closed
+ * when @list is finalized.
*
- * One is when implementing a user space file system driver that reads
- * blocks of a block device that is already represented by the native
- * volume monitor (for example a CD Audio file system driver). Such
- * a driver will generate its own #GMount object that needs to be
- * associated with the #GVolume object that represents the volume.
+ * A possible cause of failure is exceeding the per-process or
+ * system-wide file descriptor limit.
*
- * The other is for implementing a #GVolumeMonitor whose sole purpose
- * is to return #GVolume objects representing entries in the users
- * "favorite servers" list or similar.
+ * The index of the file descriptor in the list is returned. If you use
+ * this index with g_unix_fd_list_get() then you will receive back a
+ * duplicated copy of the same file descriptor.
*
- * Returns: (transfer full): the #GVolume object that is the parent for @mount or %NULL
- * if no wants to adopt the #GMount.
- * Deprecated: 2.20: Instead of using this function, #GVolumeMonitor
- * implementations should instead create shadow mounts with the URI of
- * the mount they intend to adopt. See the proxy volume monitor in
- * gvfs for an example of this. Also see g_mount_is_shadowed(),
- * g_mount_shadow() and g_mount_unshadow() functions.
+ * Returns: the index of the appended fd in case of success, else -1
+ * (and @error is set)
+ * Since: 2.24
*/
/**
- * g_volume_monitor_get:
+ * g_unix_fd_list_get:
+ * @list: a #GUnixFDList
+ * @index_: the index into the list
+ * @error: a #GError pointer
*
- * Gets the volume monitor used by gio.
+ * Gets a file descriptor out of @list.
*
- * Returns: (transfer full): a reference to the #GVolumeMonitor used by gio. Call
- * g_object_unref() when done with it.
- */
-
-
-/**
- * g_volume_monitor_get_connected_drives:
- * @volume_monitor: a #GVolumeMonitor.
+ * @index_ specifies the index of the file descriptor to get. It is a
+ * programmer error for @index_ to be out of range; see
+ * g_unix_fd_list_get_length().
*
- * Gets a list of drives connected to the system.
+ * The file descriptor is duplicated using dup() and set as
+ * close-on-exec before being returned. You must call close() on it
+ * when you are done.
*
- * The returned list should be freed with g_list_free(), after
- * its elements have been unreffed with g_object_unref().
+ * A possible cause of failure is exceeding the per-process or
+ * system-wide file descriptor limit.
*
- * Returns: (element-type GDrive) (transfer full): a #GList of connected #GDrive objects.
+ * Returns: the file descriptor, or -1 in case of error
+ * Since: 2.24
*/
/**
- * g_volume_monitor_get_mount_for_uuid:
- * @volume_monitor: a #GVolumeMonitor.
- * @uuid: the UUID to look for
+ * g_unix_fd_list_get_length:
+ * @list: a #GUnixFDList
*
- * Finds a #GMount object by its UUID (see g_mount_get_uuid())
+ * Gets the length of @list (ie: the number of file descriptors
+ * contained within).
*
- * Returns: (transfer full): a #GMount or %NULL if no such mount is available.
- * Free the returned object with g_object_unref().
+ * Returns: the length of @list
+ * Since: 2.24
*/
/**
- * g_volume_monitor_get_mounts:
- * @volume_monitor: a #GVolumeMonitor.
- *
- * Gets a list of the mounts on the system.
+ * g_unix_fd_list_new:
*
- * The returned list should be freed with g_list_free(), after
- * its elements have been unreffed with g_object_unref().
+ * Creates a new #GUnixFDList containing no file descriptors.
*
- * Returns: (element-type GMount) (transfer full): a #GList of #GMount objects.
+ * Returns: a new #GUnixFDList
+ * Since: 2.24
*/
/**
- * g_volume_monitor_get_volume_for_uuid:
- * @volume_monitor: a #GVolumeMonitor.
- * @uuid: the UUID to look for
+ * g_unix_fd_list_new_from_array:
+ * @fds: (array length=n_fds): the initial list of file descriptors
+ * @n_fds: the length of #fds, or -1
*
- * Finds a #GVolume object by its UUID (see g_volume_get_uuid())
+ * Creates a new #GUnixFDList containing the file descriptors given in
+ * @fds. The file descriptors become the property of the new list and
+ * may no longer be used by the caller. The array itself is owned by
+ * the caller.
*
- * Returns: (transfer full): a #GVolume or %NULL if no such volume is available.
- * Free the returned object with g_object_unref().
+ * Each file descriptor in the array should be set to close-on-exec.
+ *
+ * If @n_fds is -1 then @fds must be terminated with -1.
+ *
+ * Returns: a new #GUnixFDList
+ * Since: 2.24
*/
/**
- * g_volume_monitor_get_volumes:
- * @volume_monitor: a #GVolumeMonitor.
+ * g_unix_fd_list_peek_fds:
+ * @list: a #GUnixFDList
+ * @length: (out) (optional): pointer to the length of the returned
+ * array, or %NULL
*
- * Gets a list of the volumes on the system.
+ * Returns the array of file descriptors that is contained in this
+ * object.
*
- * The returned list should be freed with g_list_free(), after
- * its elements have been unreffed with g_object_unref().
+ * After this call, the descriptors remain the property of @list. The
+ * caller must not close them and must not free the array. The array is
+ * valid only until @list is changed in any way.
*
- * Returns: (element-type GVolume) (transfer full): a #GList of #GVolume objects.
+ * If @length is non-%NULL then it is set to the number of file
+ * descriptors in the returned array. The returned array is also
+ * terminated with -1.
+ *
+ * This function never returns %NULL. In case there are no file
+ * descriptors contained in @list, an empty array is returned.
+ *
+ * Returns: (array length=length) (transfer none): an array of file
+ * descriptors
+ * Since: 2.24
*/
/**
- * g_volume_mount: (virtual mount_fn)
- * @volume: a #GVolume
- * @flags: flags affecting the operation
- * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid user interaction
- * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
- * @callback: (nullable): a #GAsyncReadyCallback, or %NULL
- * @user_data: user data that gets passed to @callback
+ * g_unix_fd_list_steal_fds:
+ * @list: a #GUnixFDList
+ * @length: (out) (optional): pointer to the length of the returned
+ * array, or %NULL
*
- * Mounts a volume. This is an asynchronous operation, and is
- * finished by calling g_volume_mount_finish() with the @volume
- * and #GAsyncResult returned in the @callback.
+ * Returns the array of file descriptors that is contained in this
+ * object.
+ *
+ * After this call, the descriptors are no longer contained in
+ * @list. Further calls will return an empty list (unless more
+ * descriptors have been added).
+ *
+ * The return result of this function must be freed with g_free().
+ * The caller is also responsible for closing all of the file
+ * descriptors. The file descriptors in the array are set to
+ * close-on-exec.
+ *
+ * If @length is non-%NULL then it is set to the number of file
+ * descriptors in the returned array. The returned array is also
+ * terminated with -1.
+ *
+ * This function never returns %NULL. In case there are no file
+ * descriptors contained in @list, an empty array is returned.
+ *
+ * Returns: (array length=length) (transfer full): an array of file
+ * descriptors
+ * Since: 2.24
*/
/**
- * g_volume_mount_finish:
- * @volume: a #GVolume
- * @result: a #GAsyncResult
- * @error: a #GError location to store an error, or %NULL to ignore
+ * g_unix_fd_message_append_fd:
+ * @message: a #GUnixFDMessage
+ * @fd: a valid open file descriptor
+ * @error: a #GError pointer
*
- * Finishes mounting a volume. If any errors occurred during the operation,
- * @error will be set to contain the errors and %FALSE will be returned.
+ * Adds a file descriptor to @message.
*
- * If the mount operation succeeded, g_volume_get_mount() on @volume
- * is guaranteed to return the mount right after calling this
- * function; there's no need to listen for the 'mount-added' signal on
- * #GVolumeMonitor.
+ * The file descriptor is duplicated using dup(). You keep your copy
+ * of the descriptor and the copy contained in @message will be closed
+ * when @message is finalized.
*
- * Returns: %TRUE, %FALSE if operation failed
+ * A possible cause of failure is exceeding the per-process or
+ * system-wide file descriptor limit.
+ *
+ * Returns: %TRUE in case of success, else %FALSE (and @error is set)
+ * Since: 2.22
*/
/**
- * g_volume_should_automount:
- * @volume: a #GVolume
+ * g_unix_fd_message_get_fd_list:
+ * @message: a #GUnixFDMessage
*
- * Returns whether the volume should be automatically mounted.
+ * Gets the #GUnixFDList contained in @message. This function does not
+ * return a reference to the caller, but the returned list is valid for
+ * the lifetime of @message.
*
- * Returns: %TRUE if the volume should be automatically mounted
+ * Returns: (transfer none): the #GUnixFDList from @message
+ * Since: 2.24
*/
/**
- * g_win32_input_stream_get_close_handle:
- * @stream: a #GWin32InputStream
+ * g_unix_fd_message_new:
*
- * Returns whether the handle of @stream will be
- * closed when the stream is closed.
+ * Creates a new #GUnixFDMessage containing an empty file descriptor
+ * list.
*
- * Returns: %TRUE if the handle is closed when done
- * Since: 2.26
+ * Returns: a new #GUnixFDMessage
+ * Since: 2.22
*/
/**
- * g_win32_input_stream_get_handle:
- * @stream: a #GWin32InputStream
+ * g_unix_fd_message_new_with_fd_list:
+ * @fd_list: a #GUnixFDList
*
- * Return the Windows file handle that the stream reads from.
+ * Creates a new #GUnixFDMessage containing @list.
*
- * Returns: The file handle of @stream
- * Since: 2.26
+ * Returns: a new #GUnixFDMessage
+ * Since: 2.24
*/
/**
- * g_win32_input_stream_new:
- * @handle: a Win32 file handle
- * @close_handle: %TRUE to close the handle when done
+ * g_unix_fd_message_steal_fds:
+ * @message: a #GUnixFDMessage
+ * @length: (out) (optional): pointer to the length of the returned
+ * array, or %NULL
*
- * Creates a new #GWin32InputStream for the given @handle.
+ * Returns the array of file descriptors that is contained in this
+ * object.
*
- * If @close_handle is %TRUE, the handle will be closed
- * when the stream is closed.
+ * After this call, the descriptors are no longer contained in
+ * @message. Further calls will return an empty list (unless more
+ * descriptors have been added).
*
- * Note that "handle" here means a Win32 HANDLE, not a "file descriptor"
- * as used in the Windows C libraries.
+ * The return result of this function must be freed with g_free().
+ * The caller is also responsible for closing all of the file
+ * descriptors.
*
- * Returns: a new #GWin32InputStream
+ * If @length is non-%NULL then it is set to the number of file
+ * descriptors in the returned array. The returned array is also
+ * terminated with -1.
+ *
+ * This function never returns %NULL. In case there are no file
+ * descriptors contained in @message, an empty array is returned.
+ *
+ * Returns: (array length=length) (transfer full): an array of file
+ * descriptors
+ * Since: 2.22
*/
/**
- * g_win32_input_stream_set_close_handle:
- * @stream: a #GWin32InputStream
- * @close_handle: %TRUE to close the handle when done
+ * g_unix_input_stream_get_close_fd:
+ * @stream: a #GUnixInputStream
*
- * Sets whether the handle of @stream shall be closed
- * when the stream is closed.
+ * Returns whether the file descriptor of @stream will be
+ * closed when the stream is closed.
*
- * Since: 2.26
+ * Returns: %TRUE if the file descriptor is closed when done
+ * Since: 2.20
*/
/**
- * g_win32_output_stream_get_close_handle:
- * @stream: a #GWin32OutputStream
+ * g_unix_input_stream_get_fd:
+ * @stream: a #GUnixInputStream
*
- * Returns whether the handle of @stream will be closed when the
- * stream is closed.
+ * Return the UNIX file descriptor that the stream reads from.
*
- * Returns: %TRUE if the handle is closed when done
- * Since: 2.26
+ * Returns: The file descriptor of @stream
+ * Since: 2.20
*/
/**
- * g_win32_output_stream_get_handle:
- * @stream: a #GWin32OutputStream
+ * g_unix_input_stream_new:
+ * @fd: a UNIX file descriptor
+ * @close_fd: %TRUE to close the file descriptor when done
*
- * Return the Windows handle that the stream writes to.
+ * Creates a new #GUnixInputStream for the given @fd.
*
- * Returns: The handle descriptor of @stream
- * Since: 2.26
+ * If @close_fd is %TRUE, the file descriptor will be closed
+ * when the stream is closed.
+ *
+ * Returns: a new #GUnixInputStream
*/
/**
- * g_win32_output_stream_new:
- * @handle: a Win32 file handle
- * @close_handle: %TRUE to close the handle when done
- *
- * Creates a new #GWin32OutputStream for the given @handle.
+ * g_unix_input_stream_set_close_fd:
+ * @stream: a #GUnixInputStream
+ * @close_fd: %TRUE to close the file descriptor when done
*
- * If @close_handle, is %TRUE, the handle will be closed when the
- * output stream is destroyed.
+ * Sets whether the file descriptor of @stream shall be closed
+ * when the stream is closed.
*
- * Returns: a new #GOutputStream
- * Since: 2.26
+ * Since: 2.20
*/
/**
- * g_win32_output_stream_set_close_handle:
- * @stream: a #GWin32OutputStream
- * @close_handle: %TRUE to close the handle when done
+ * g_unix_is_mount_path_system_internal:
+ * @mount_path: (type filename): a mount path, e.g. `/media/disk` or `/usr`
*
- * Sets whether the handle of @stream shall be closed when the stream
- * is closed.
+ * Determines if @mount_path is considered an implementation of the
+ * OS. This is primarily used for hiding mountable and mounted volumes
+ * that only are used in the OS and has little to no relevance to the
+ * casual user.
*
- * Since: 2.26
+ * Returns: %TRUE if @mount_path is considered an implementation detail
+ * of the OS.
*/
/**
- * g_win32_registry_key_erase_change_indicator:
- * @key: (in) (transfer none): a #GWin32RegistryKey
+ * g_unix_is_system_device_path:
+ * @device_path: a device path, e.g. `/dev/loop0` or `nfsd`
*
- * Erases change indicator of the @key.
+ * Determines if @device_path is considered a block device path which is only
+ * used in implementation of the OS. This is primarily used for hiding
+ * mounted volumes that are intended as APIs for programs to read, and system
+ * administrators at a shell; rather than something that should, for example,
+ * appear in a GUI. For example, the Linux `/proc` filesystem.
*
- * 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.
+ * The list of device paths considered ‘system’ ones may change over time.
*
- * Since: 2.46
+ * Returns: %TRUE if @device_path is considered an implementation detail of
+ * the OS.
+ * Since: 2.56
*/
/**
- * g_win32_registry_key_get_child:
- * @key: (in) (transfer none): a parent #GWin32RegistryKey
- * @subkey: (in) (transfer none): name of a child key to open (in UTF-8), relative to @key
- * @error: (inout) (optional) (nullable): a pointer to a %NULL #GError, or %NULL
+ * g_unix_is_system_fs_type:
+ * @fs_type: a file system type, e.g. `procfs` or `tmpfs`
*
- * Opens a @subkey of the @key.
+ * Determines if @fs_type is considered a type of file system which is only
+ * used in implementation of the OS. This is primarily used for hiding
+ * mounted volumes that are intended as APIs for programs to read, and system
+ * administrators at a shell; rather than something that should, for example,
+ * appear in a GUI. For example, the Linux `/proc` filesystem.
*
- * Returns: (nullable): a #GWin32RegistryKey or %NULL if can't be opened. Free
- * with g_object_unref().
+ * The list of file system types considered ‘system’ ones may change over time.
+ *
+ * Returns: %TRUE if @fs_type is considered an implementation detail of the OS.
+ * Since: 2.56
*/
/**
- * g_win32_registry_key_get_child_w:
- * @key: (in) (transfer none): a parent #GWin32RegistryKey
- * @subkey: (in) (transfer none): name of a child key to open (in UTF-8), relative to @key
- * @error: (inout) (optional) (nullable): a pointer to a %NULL #GError, or %NULL
+ * g_unix_mount_at:
+ * @mount_path: (type filename): path for a possible unix mount.
+ * @time_read: (out) (optional): guint64 to contain a timestamp.
*
- * Opens a @subkey of the @key.
+ * Gets a #GUnixMountEntry for a given mount path. If @time_read
+ * is set, it will be filled with a unix timestamp for checking
+ * if the mounts have changed since with g_unix_mounts_changed_since().
*
- * Returns: (nullable): a #GWin32RegistryKey or %NULL if can't be opened. Free
- * with g_object_unref().
+ * Returns: (transfer full): a #GUnixMountEntry.
*/
/**
- * g_win32_registry_key_get_path:
- * @key: (in) (transfer none): a #GWin32RegistryKey
+ * g_unix_mount_compare:
+ * @mount1: first #GUnixMountEntry to compare.
+ * @mount2: second #GUnixMountEntry to compare.
*
- * Get full path to the key
+ * Compares two unix mounts.
*
- * Returns: (transfer none): a full path to the key (in UTF-8),
- * or %NULL if it can't be converted to UTF-8.
- * Since: 2.46
+ * Returns: 1, 0 or -1 if @mount1 is greater than, equal to,
+ * or less than @mount2, respectively.
*/
/**
- * g_win32_registry_key_get_path_w:
- * @key: (in) (transfer none): a #GWin32RegistryKey
+ * g_unix_mount_copy:
+ * @mount_entry: a #GUnixMountEntry.
*
- * Get full path to the key
+ * Makes a copy of @mount_entry.
*
- * Returns: (transfer none): a full path to the key (in UTF-16)
- * Since: 2.46
+ * Returns: (transfer full): a new #GUnixMountEntry
+ * Since: 2.54
*/
/**
- * g_win32_registry_key_get_value:
- * @key: (in) (transfer none): a #GWin32RegistryKey
- * @auto_expand: (in): %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR
- * to G_WIN32_REGISTRY_VALUE_STR.
- * @value_name: (in) (transfer none): name of the value to get (in UTF-8).
- * Empty string means the '(Default)' value.
- * @value_type: (out) (optional): type of the value retrieved.
- * @value_data: (out callee-allocates) (optional): contents of the value.
- * @value_data_size: (out) (optional): size of the buffer pointed
- * by @value_data.
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ * g_unix_mount_for:
+ * @file_path: (type filename): file path on some unix mount.
+ * @time_read: (out) (optional): guint64 to contain a timestamp.
*
- * Get data from a value of a key. String data is guaranteed to be
- * appropriately terminated and will be in UTF-8.
+ * Gets a #GUnixMountEntry for a given file path. If @time_read
+ * is set, it will be filled with a unix timestamp for checking
+ * if the mounts have changed since with g_unix_mounts_changed_since().
*
- * Returns: %TRUE on success, %FALSE on failure.
- * Since: 2.46
+ * Returns: (transfer full): a #GUnixMountEntry.
+ * Since: 2.52
*/
/**
- * g_win32_registry_key_get_value_w:
- * @key: (in) (transfer none): a #GWin32RegistryKey
- * @auto_expand: (in): %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR
- * to G_WIN32_REGISTRY_VALUE_STR.
- * @value_name: (in) (transfer none): name of the value to get (in UTF-16).
- * Empty string means the '(Default)' value.
- * @value_type: (out) (optional): type of the value retrieved.
- * @value_data: (out callee-allocates) (optional): contents of the value.
- * @value_data_size: (out) (optional): size of the buffer pointed
- * by @value_data.
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
- *
- * Get data from a value of a key.
- *
- * 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.
+ * g_unix_mount_free:
+ * @mount_entry: a #GUnixMountEntry.
*
- * Returns: %TRUE on success, %FALSE on failure.
- * Since: 2.46
+ * Frees a unix mount.
*/
/**
- * g_win32_registry_key_has_changed:
- * @key: (in) (transfer none): a #GWin32RegistryKey
+ * g_unix_mount_get_device_path:
+ * @mount_entry: a #GUnixMount.
*
- * Check the @key's status indicator.
+ * Gets the device path for a unix mount.
*
- * Returns: %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.
- * Since: 2.46
+ * Returns: (type filename): a string containing the device path.
*/
/**
- * g_win32_registry_key_new:
- * @path: absolute full name of a key to open (in UTF-8)
- * @error: (nullable): a pointer to a %NULL #GError, or %NULL
+ * g_unix_mount_get_fs_type:
+ * @mount_entry: a #GUnixMount.
*
- * 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 '\\'.
+ * Gets the filesystem type for the unix mount.
*
- * Returns: (nullable) (transfer full): a #GWin32RegistryKey or %NULL if can't
- * be opened. Free with g_object_unref().
+ * Returns: a string containing the file system type.
*/
/**
- * g_win32_registry_key_new_w:
- * @path: (in) (transfer none): absolute full name of a key to open (in UTF-16)
- * @error: (inout) (optional) (nullable): a pointer to a %NULL #GError, or %NULL
+ * g_unix_mount_get_mount_path:
+ * @mount_entry: input #GUnixMountEntry to get the mount path for.
*
- * 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'\\'.
+ * Gets the mount path for a unix mount.
*
- * Returns: (nullable) (transfer full): a #GWin32RegistryKey or %NULL if can't
- * be opened. Free with g_object_unref().
+ * Returns: (type filename): the mount path for @mount_entry.
*/
/**
- * g_win32_registry_key_watch:
- * @key: (in) (transfer none): a #GWin32RegistryKey
- * @watch_children: (in): %TRUE also watch the children of the @key, %FALSE
- * to watch the key only.
- * @watch_flags: (in): specifies the types of changes to watch for.
- * @callback: (in) (nullable): a function to invoke when a change occurs.
- * @user_data: (in) (nullable): a pointer to pass to @callback on invocation.
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ * g_unix_mount_get_options:
+ * @mount_entry: a #GUnixMountEntry.
*
- * Puts @key under a watch.
+ * Gets a comma-separated list of mount options for the unix mount. For example,
+ * `rw,relatime,seclabel,data=ordered`.
*
- * 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.
+ * This is similar to g_unix_mount_point_get_options(), but it takes
+ * a #GUnixMountEntry as an argument.
*
- * Calling g_win32_registry_key_watch_for_changes() for a key that is already
- * being watched is allowed and affects nothing.
+ * Returns: (nullable): a string containing the options, or %NULL if not
+ * available.
+ * Since: 2.58
+ */
+
+
+/**
+ * g_unix_mount_guess_can_eject:
+ * @mount_entry: a #GUnixMountEntry
*
- * The fact that the key is being watched will be used internally to update
- * key path (if it changes).
+ * Guesses whether a Unix mount can be ejected.
*
- * Returns: %TRUE on success, %FALSE on failure.
- * Since: 2.46
+ * Returns: %TRUE if @mount_entry is deemed to be ejectable.
*/
/**
- * g_win32_registry_subkey_iter_assign:
- * @iter: a #GWin32RegistrySubkeyIter
- * @other: another #GWin32RegistrySubkeyIter
+ * g_unix_mount_guess_icon:
+ * @mount_entry: a #GUnixMountEntry
*
- * 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.
+ * Guesses the icon of a Unix mount.
*
- * Since: 2.46
+ * Returns: (transfer full): a #GIcon
*/
/**
- * g_win32_registry_subkey_iter_clear:
- * @iter: (in) (transfer none): a #GWin32RegistrySubkeyIter
+ * g_unix_mount_guess_name:
+ * @mount_entry: a #GUnixMountEntry
*
- * Frees internal buffers of a #GWin32RegistrySubkeyIter.
+ * Guesses the name of a Unix mount.
+ * The result is a translated string.
*
- * Since: 2.46
+ * Returns: A newly allocated string that must
+ * be freed with g_free()
*/
/**
- * g_win32_registry_subkey_iter_copy:
- * @iter: an iterator
+ * g_unix_mount_guess_should_display:
+ * @mount_entry: a #GUnixMountEntry
*
- * Creates a dynamically-allocated copy of an iterator. Dynamically-allocated
- * state of the iterator is duplicated too.
+ * Guesses whether a Unix mount should be displayed in the UI.
*
- * Returns: (transfer full): a copy of the @iter,
- * free with g_win32_registry_subkey_iter_free ()
- * Since: 2.46
+ * Returns: %TRUE if @mount_entry is deemed to be displayable.
*/
/**
- * g_win32_registry_subkey_iter_free:
- * @iter: a dynamically-allocated iterator
+ * g_unix_mount_guess_symbolic_icon:
+ * @mount_entry: a #GUnixMountEntry
*
- * Free an iterator allocated on the heap. For iterators that are allocated
- * on the stack use g_win32_registry_subkey_iter_clear () instead.
+ * Guesses the symbolic icon of a Unix mount.
*
- * Since: 2.46
+ * Returns: (transfer full): a #GIcon
+ * Since: 2.34
*/
/**
- * g_win32_registry_subkey_iter_get_name:
- * @iter: (in) (transfer none): a #GWin32RegistrySubkeyIter
- * @subkey_name: (out callee-allocates) (transfer none): Pointer to a location
- * to store the name of a subkey (in UTF-8). Free with g_free().
- * @subkey_name_len: (out) (optional): Pointer to a location to store the
- * length of @subkey_name, in gchars, excluding NUL-terminator.
- * %NULL if length is not needed.
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ * g_unix_mount_guess_type:
+ * @mount_entry: a #GUnixMount.
*
- * Gets the name of the subkey at the @iter potision.
+ * Guesses the type of a unix mount. If the mount type cannot be
+ * determined, returns %G_UNIX_MOUNT_TYPE_UNKNOWN.
*
- * Returns: %TRUE if the name was retrieved, %FALSE otherwise.
- * Since: 2.46
+ * Returns: a #GUnixMountType.
*/
/**
- * g_win32_registry_subkey_iter_get_name_w:
- * @iter: (in) (transfer none): a #GWin32RegistrySubkeyIter
- * @subkey_name: (out callee-allocates) (transfer none): Pointer to a location
- * to store the name of a subkey (in UTF-16).
- * @subkey_name_len: (out) (optional) (transfer none): Pointer to a location
- * to store the length of @subkey_name, in gunichar2s, excluding
- * NUL-terminator.
- * %NULL if length is not needed.
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ * g_unix_mount_is_readonly:
+ * @mount_entry: a #GUnixMount.
*
- * Same as g_win32_registry_subkey_iter_get_next(), but outputs UTF-16-encoded
- * data, without converting it to UTF-8 first.
+ * Checks if a unix mount is mounted read only.
*
- * Returns: %TRUE if the name was retrieved, %FALSE otherwise.
- * Since: 2.46
+ * Returns: %TRUE if @mount_entry is read only.
*/
/**
- * g_win32_registry_subkey_iter_init:
- * @iter: (in) (transfer none): a pointer to a #GWin32RegistrySubkeyIter
- * @key: (in) (transfer none): a #GWin32RegistryKey to iterate over
- * @error: (inout) (optional) (nullable): a pointer to %NULL #GError, or %NULL
+ * g_unix_mount_is_system_internal:
+ * @mount_entry: a #GUnixMount.
*
- * Initialises (without allocating) a #GWin32RegistrySubkeyIter. @iter may be
- * completely uninitialised prior to this call; its old value is
- * ignored.
+ * Checks if a Unix mount is a system mount. This is the Boolean OR of
+ * g_unix_is_system_fs_type(), g_unix_is_system_device_path() and
+ * g_unix_is_mount_path_system_internal() on @mount_entry’s properties.
*
- * 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.
+ * The definition of what a ‘system’ mount entry is may change over time as new
+ * file system types and device paths are ignored.
*
- * Returns: %TRUE if iterator was initialized successfully, %FALSE on error.
- * Since: 2.46
+ * Returns: %TRUE if the unix mount is for a system path.
*/
/**
- * g_win32_registry_subkey_iter_n_subkeys:
- * @iter: (in) (transfer none): a #GWin32RegistrySubkeyIter
+ * g_unix_mount_monitor_get:
*
- * 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.
+ * Gets the #GUnixMountMonitor for the current thread-default main
+ * context.
*
- * This information is accurate at the point of iterator initialization,
- * and may go out of sync with reality even while subkeys are enumerated.
+ * 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).
*
- * Returns: the number of subkeys in the key
- * Since: 2.46
+ * You must only call g_object_unref() on the return value from under
+ * the same main context as you called this function.
+ *
+ * Returns: (transfer full): the #GUnixMountMonitor.
+ * Since: 2.44
*/
/**
- * g_win32_registry_subkey_iter_next:
- * @iter: (in) (transfer none): a #GWin32RegistrySubkeyIter
- * @skip_errors: (in): %TRUE if iterator should silently ignore errors (such as
- * the actual number of subkeys being less than expected) and
- * proceed forward
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
- *
- * 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():
- * |[<!-- language="C" -->
- * // recursively iterate a key
- * void
- * iterate_key_recursive (GWin32RegistryKey *key)
- * {
- * GWin32RegistrySubkeyIter iter;
- * gchar *name;
- * GWin32RegistryKey *child;
- *
- * if (!g_win32_registry_subkey_iter_init (&iter, key, NULL))
- * return;
- *
- * while (g_win32_registry_subkey_iter_next (&iter, TRUE, NULL))
- * {
- * if (!g_win32_registry_subkey_iter_get_name (&iter, &name, NULL, NULL))
- * continue;
- *
- * g_print ("subkey '%s'\n", name);
- * child = g_win32_registry_key_get_child (key, name, NULL);
+ * g_unix_mount_monitor_new:
*
- * if (child)
- * iterate_key_recursive (child);
- * }
+ * Deprecated alias for g_unix_mount_monitor_get().
*
- * g_win32_registry_subkey_iter_clear (&iter);
- * }
- * ]|
+ * This function was never a true constructor, which is why it was
+ * renamed.
*
- * Returns: %TRUE if next subkey info was retrieved, %FALSE otherwise.
- * Since: 2.46
+ * Returns: a #GUnixMountMonitor.
+ * Deprecated: 2.44: Use g_unix_mount_monitor_get() instead.
*/
/**
- * g_win32_registry_value_iter_assign:
- * @iter: a #GWin32RegistryValueIter
- * @other: another #GWin32RegistryValueIter
+ * g_unix_mount_monitor_set_rate_limit:
+ * @mount_monitor: a #GUnixMountMonitor
+ * @limit_msec: a integer with the limit in milliseconds to
+ * poll for changes.
*
- * 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.
+ * This function does nothing.
*
- * Since: 2.46
+ * 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.
*/
/**
- * g_win32_registry_value_iter_clear:
- * @iter: (in) (transfer none): a #GWin32RegistryValueIter
+ * g_unix_mount_point_compare:
+ * @mount1: a #GUnixMount.
+ * @mount2: a #GUnixMount.
*
- * Frees internal buffers of a #GWin32RegistryValueIter.
+ * Compares two unix mount points.
*
- * Since: 2.46
+ * Returns: 1, 0 or -1 if @mount1 is greater than, equal to,
+ * or less than @mount2, respectively.
*/
/**
- * g_win32_registry_value_iter_copy:
- * @iter: an iterator
+ * g_unix_mount_point_copy:
+ * @mount_point: a #GUnixMountPoint.
*
- * Creates a dynamically-allocated copy of an iterator. Dynamically-allocated
- * state of the iterator is duplicated too.
+ * Makes a copy of @mount_point.
*
- * Returns: (transfer full): a copy of the @iter,
- * free with g_win32_registry_value_iter_free ().
- * Since: 2.46
+ * Returns: (transfer full): a new #GUnixMountPoint
+ * Since: 2.54
*/
/**
- * g_win32_registry_value_iter_free:
- * @iter: a dynamically-allocated iterator
- *
- * Free an iterator allocated on the heap. For iterators that are allocated
- * on the stack use g_win32_registry_value_iter_clear () instead.
+ * g_unix_mount_point_free:
+ * @mount_point: unix mount point to free.
*
- * Since: 2.46
+ * Frees a unix mount point.
*/
/**
- * g_win32_registry_value_iter_get_data:
- * @iter: (in) (transfer none): a #GWin32RegistryValueIter
- * @auto_expand: (in): %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR to
- * G_WIN32_REGISTRY_VALUE_STR
- * @value_data: (out callee-allocates) (optional) (transfer none): Pointer to a
- * location to store the data of the value (in UTF-8, if it's a string)
- * @value_data_size: (out) (optional): 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
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ * g_unix_mount_point_get_device_path:
+ * @mount_point: a #GUnixMountPoint.
*
- * Stores the data of the value currently being iterated over in @value_data,
- * and its length - in @value_data_len (if not %NULL).
+ * Gets the device path for a unix mount point.
*
- * Returns: %TRUE if value data was retrieved, %FALSE otherwise.
- * Since: 2.46
+ * Returns: (type filename): a string containing the device path.
*/
/**
- * g_win32_registry_value_iter_get_data_w:
- * @iter: (in) (transfer none): a #GWin32RegistryValueIter
- * @auto_expand: (in): %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR to
- * G_WIN32_REGISTRY_VALUE_STR
- * @value_data: (out callee-allocates) (optional) (transfer none): Pointer to a
- * location to store the data of the value (in UTF-16, if it's a string)
- * @value_data_size: (out) (optional): 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.
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ * g_unix_mount_point_get_fs_type:
+ * @mount_point: a #GUnixMountPoint.
*
- * Stores the data of the value currently being iterated over in @value_data,
- * and its length - in @value_data_len (if not %NULL).
+ * Gets the file system type for the mount point.
*
- * Returns: %TRUE if value data was retrieved, %FALSE otherwise.
- * Since: 2.46
+ * Returns: a string containing the file system type.
*/
/**
- * g_win32_registry_value_iter_get_name:
- * @iter: (in) (transfer none): a #GWin32RegistryValueIter
- * @value_name: (out callee-allocates) (transfer none): Pointer to a location
- * to store the name of a value (in UTF-8).
- * @value_name_len: (out) (optional): Pointer to a location to store the length
- * of @value_name, in gchars, excluding NUL-terminator.
- * %NULL if length is not needed.
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ * g_unix_mount_point_get_mount_path:
+ * @mount_point: a #GUnixMountPoint.
*
- * Stores the name of the value currently being iterated over in @value_name,
- * and its length - in @value_name_len (if not %NULL).
+ * Gets the mount path for a unix mount point.
*
- * Returns: %TRUE if value name was retrieved, %FALSE otherwise.
- * Since: 2.46
+ * Returns: (type filename): a string containing the mount path.
*/
/**
- * g_win32_registry_value_iter_get_name_w:
- * @iter: (in) (transfer none): a #GWin32RegistryValueIter
- * @value_name: (out callee-allocates) (transfer none): Pointer to a location
- * to store the name of a value (in UTF-16).
- * @value_name_len: (out) (optional): Pointer to a location to store the length
- * of @value_name, in gunichar2s, excluding NUL-terminator.
- * %NULL if length is not needed.
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ * g_unix_mount_point_get_options:
+ * @mount_point: a #GUnixMountPoint.
*
- * Stores the name of the value currently being iterated over in @value_name,
- * and its length - in @value_name (if not %NULL).
+ * Gets the options for the mount point.
*
- * Returns: %TRUE if value name was retrieved, %FALSE otherwise.
- * Since: 2.46
+ * Returns: a string containing the options.
+ * Since: 2.32
*/
/**
- * g_win32_registry_value_iter_get_value_type:
- * @iter: (in) (transfer none): a #GWin32RegistryValueIter
- * @value_type: (out): Pointer to a location to store the type of
- * the value.
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ * g_unix_mount_point_guess_can_eject:
+ * @mount_point: a #GUnixMountPoint
*
- * Stores the type of the value currently being iterated over in @value_type.
+ * Guesses whether a Unix mount point can be ejected.
*
- * Returns: %TRUE if value type was retrieved, %FALSE otherwise.
- * Since: 2.46
+ * Returns: %TRUE if @mount_point is deemed to be ejectable.
*/
/**
- * g_win32_registry_value_iter_init:
- * @iter: (in) (transfer none): a pointer to a #GWin32RegistryValueIter
- * @key: (in) (transfer none): a #GWin32RegistryKey to iterate over
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
- *
- * Initialises (without allocating) a #GWin32RegistryValueIter. @iter may be
- * completely uninitialised prior to this call; its old value is
- * ignored.
+ * g_unix_mount_point_guess_icon:
+ * @mount_point: a #GUnixMountPoint
*
- * 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.
+ * Guesses the icon of a Unix mount point.
*
- * Returns: %TRUE if iterator was initialized successfully, %FALSE on error.
- * Since: 2.46
+ * Returns: (transfer full): a #GIcon
*/
/**
- * g_win32_registry_value_iter_n_values:
- * @iter: (in) (transfer none): a #GWin32RegistryValueIter
- *
- * 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.
+ * g_unix_mount_point_guess_name:
+ * @mount_point: a #GUnixMountPoint
*
- * This information is accurate at the point of iterator initialization,
- * and may go out of sync with reality even while values are enumerated.
+ * Guesses the name of a Unix mount point.
+ * The result is a translated string.
*
- * Returns: the number of values in the key
- * Since: 2.46
+ * Returns: A newly allocated string that must
+ * be freed with g_free()
*/
/**
- * g_win32_registry_value_iter_next:
- * @iter: (in) (transfer none): a #GWin32RegistryValueIter
- * @skip_errors: (in): %TRUE if iterator should silently ignore errors (such as
- * the actual number of values being less than expected) and
- * proceed forward
- * @error: (nullable): a pointer to %NULL #GError, or %NULL
- *
- * 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():
- * |[<!-- language="C" -->
- * // 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 (&iter, key, NULL))
- * return;
- *
- * while (g_win32_registry_value_iter_next (&iter, TRUE, NULL))
- * {
- * if ((!g_win32_registry_value_iter_get_value_type (&iter, &value)) ||
- * ((val_type != G_WIN32_REGISTRY_VALUE_STR) &&
- * (val_type != G_WIN32_REGISTRY_VALUE_EXPAND_STR)))
- * continue;
- *
- * if (g_win32_registry_value_iter_get_value (&iter, TRUE, &name, NULL,
- * &val_data, NULL, NULL))
- * g_print ("value '%s' = '%s'\n", name, val_data);
- * }
+ * g_unix_mount_point_guess_symbolic_icon:
+ * @mount_point: a #GUnixMountPoint
*
- * g_win32_registry_value_iter_clear (&iter);
- * }
- * ]|
+ * Guesses the symbolic icon of a Unix mount point.
*
- * Returns: %TRUE if next value info was retrieved, %FALSE otherwise.
- * Since: 2.46
+ * Returns: (transfer full): a #GIcon
+ * Since: 2.34
*/
/**
- * g_zlib_compressor_get_file_info:
- * @compressor: a #GZlibCompressor
+ * g_unix_mount_point_guess_type:
+ * @mount_point: a #GUnixMountPoint.
*
- * Returns the #GZlibCompressor:file-info property.
+ * Guesses the type of a unix mount point.
+ * If the mount type cannot be determined,
+ * returns %G_UNIX_MOUNT_TYPE_UNKNOWN.
*
- * Returns: (transfer none): a #GFileInfo, or %NULL
- * Since: 2.26
+ * Returns: a #GUnixMountType.
*/
/**
- * g_zlib_compressor_new:
- * @format: The format to use for the compressed data
- * @level: compression level (0-9), -1 for default
+ * g_unix_mount_point_is_loopback:
+ * @mount_point: a #GUnixMountPoint.
*
- * Creates a new #GZlibCompressor.
+ * Checks if a unix mount point is a loopback device.
*
- * Returns: a new #GZlibCompressor
- * Since: 2.24
+ * Returns: %TRUE if the mount point is a loopback. %FALSE otherwise.
*/
/**
- * g_zlib_compressor_set_file_info:
- * @compressor: a #GZlibCompressor
- * @file_info: (nullable): a #GFileInfo
- *
- * 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.
+ * g_unix_mount_point_is_readonly:
+ * @mount_point: a #GUnixMountPoint.
*
- * 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().
+ * Checks if a unix mount point is read only.
*
- * Since: 2.26
+ * Returns: %TRUE if a mount point is read only.
*/
/**
- * g_zlib_decompressor_get_file_info:
- * @decompressor: a #GZlibDecompressor
+ * g_unix_mount_point_is_user_mountable:
+ * @mount_point: a #GUnixMountPoint.
*
- * 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.
+ * Checks if a unix mount point is mountable by the user.
*
- * Returns: (transfer none): a #GFileInfo, or %NULL
- * Since: 2.26
+ * Returns: %TRUE if the mount point is user mountable.
*/
/**
- * g_zlib_decompressor_new:
- * @format: The format to use for the compressed data
+ * g_unix_mount_points_changed_since:
+ * @time: guint64 to contain a timestamp.
*
- * Creates a new #GZlibDecompressor.
+ * Checks if the unix mount points have changed since a given unix time.
*
- * Returns: a new #GZlibDecompressor
- * Since: 2.24
+ * Returns: %TRUE if the mount points have changed since @time.
*/
/**
- * get_viewable_logical_drives:
+ * g_unix_mount_points_get:
+ * @time_read: (out) (optional): guint64 to contain a timestamp.
*
- * 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.
+ * Gets a #GList of #GUnixMountPoint containing the unix mount points.
+ * If @time_read is set, it will be filled with the mount timestamp,
+ * allowing for checking if the mounts have changed with
+ * g_unix_mount_points_changed_since().
*
- * Returns: bitmask with same meaning as returned by GetLogicalDrives()
+ * Returns: (element-type GUnixMountPoint) (transfer full):
+ * a #GList of the UNIX mountpoints.
*/
/**
- * gxdp_documents_call_add:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_o_path_fd: Argument to pass with the method invocation.
- * @arg_reuse_existing: Argument to pass with the method invocation.
- * @arg_persistent: Argument to pass with the method invocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_unix_mounts_changed_since:
+ * @time: guint64 to contain a timestamp.
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Add">Add()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_call_add_finish() to get the result of the operation.
+ * Checks if the unix mounts have changed since a given unix time.
*
- * See gxdp_documents_call_add_sync() for the synchronous, blocking version of this method.
+ * Returns: %TRUE if the mounts have changed since @time.
*/
/**
- * gxdp_documents_call_add_finish:
- * @proxy: A #GXdpDocumentsProxy.
- * @out_doc_id: (out): Return location for return parameter or %NULL to ignore.
- * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_add().
- * @error: Return location for error or %NULL.
+ * g_unix_mounts_get:
+ * @time_read: (out) (optional): guint64 to contain a timestamp, or %NULL
*
- * Finishes an operation started with gxdp_documents_call_add().
+ * Gets a #GList of #GUnixMountEntry containing the unix mounts.
+ * If @time_read is set, it will be filled with the mount
+ * timestamp, allowing for checking if the mounts have changed
+ * with g_unix_mounts_changed_since().
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (element-type GUnixMountEntry) (transfer full):
+ * a #GList of the UNIX mounts.
*/
/**
- * gxdp_documents_call_add_full:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_o_path_fds: Argument to pass with the method invocation.
- * @arg_flags: Argument to pass with the method invocation.
- * @arg_app_id: Argument to pass with the method invocation.
- * @arg_permissions: Argument to pass with the method invocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_unix_output_stream_get_close_fd:
+ * @stream: a #GUnixOutputStream
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddFull">AddFull()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_call_add_full_finish() to get the result of the operation.
+ * Returns whether the file descriptor of @stream will be
+ * closed when the stream is closed.
*
- * See gxdp_documents_call_add_full_sync() for the synchronous, blocking version of this method.
+ * Returns: %TRUE if the file descriptor is closed when done
+ * Since: 2.20
*/
/**
- * gxdp_documents_call_add_full_finish:
- * @proxy: A #GXdpDocumentsProxy.
- * @out_doc_ids: (out): Return location for return parameter or %NULL to ignore.
- * @out_extra_out: (out): Return location for return parameter or %NULL to ignore.
- * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_add_full().
- * @error: Return location for error or %NULL.
+ * g_unix_output_stream_get_fd:
+ * @stream: a #GUnixOutputStream
*
- * Finishes an operation started with gxdp_documents_call_add_full().
+ * Return the UNIX file descriptor that the stream writes to.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: The file descriptor of @stream
+ * Since: 2.20
*/
/**
- * gxdp_documents_call_add_full_sync:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_o_path_fds: Argument to pass with the method invocation.
- * @arg_flags: Argument to pass with the method invocation.
- * @arg_app_id: Argument to pass with the method invocation.
- * @arg_permissions: Argument to pass with the method invocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @out_doc_ids: (out): Return location for return parameter or %NULL to ignore.
- * @out_extra_out: (out): Return location for return parameter or %NULL to ignore.
- * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_unix_output_stream_new:
+ * @fd: a UNIX file descriptor
+ * @close_fd: %TRUE to close the file descriptor when done
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddFull">AddFull()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Creates a new #GUnixOutputStream for the given @fd.
*
- * See gxdp_documents_call_add_full() for the asynchronous version of this method.
+ * If @close_fd, is %TRUE, the file descriptor will be closed when
+ * the output stream is destroyed.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: a new #GOutputStream
*/
/**
- * gxdp_documents_call_add_named:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_o_path_parent_fd: Argument to pass with the method invocation.
- * @arg_filename: Argument to pass with the method invocation.
- * @arg_reuse_existing: Argument to pass with the method invocation.
- * @arg_persistent: Argument to pass with the method invocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_unix_output_stream_set_close_fd:
+ * @stream: a #GUnixOutputStream
+ * @close_fd: %TRUE to close the file descriptor when done
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamed">AddNamed()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_call_add_named_finish() to get the result of the operation.
+ * Sets whether the file descriptor of @stream shall be closed
+ * when the stream is closed.
*
- * See gxdp_documents_call_add_named_sync() for the synchronous, blocking version of this method.
+ * Since: 2.20
*/
/**
- * gxdp_documents_call_add_named_finish:
- * @proxy: A #GXdpDocumentsProxy.
- * @out_doc_id: (out): Return location for return parameter or %NULL to ignore.
- * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_add_named().
- * @error: Return location for error or %NULL.
+ * g_unix_socket_address_abstract_names_supported:
*
- * Finishes an operation started with gxdp_documents_call_add_named().
+ * Checks if abstract UNIX domain socket names are supported.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE if supported, %FALSE otherwise
+ * Since: 2.22
*/
/**
- * gxdp_documents_call_add_named_sync:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_o_path_parent_fd: Argument to pass with the method invocation.
- * @arg_filename: Argument to pass with the method invocation.
- * @arg_reuse_existing: Argument to pass with the method invocation.
- * @arg_persistent: Argument to pass with the method invocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @out_doc_id: (out): Return location for return parameter or %NULL to ignore.
- * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamed">AddNamed()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * g_unix_socket_address_get_address_type:
+ * @address: a #GInetSocketAddress
*
- * See gxdp_documents_call_add_named() for the asynchronous version of this method.
+ * Gets @address's type.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: a #GUnixSocketAddressType
+ * Since: 2.26
*/
/**
- * gxdp_documents_call_add_sync:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_o_path_fd: Argument to pass with the method invocation.
- * @arg_reuse_existing: Argument to pass with the method invocation.
- * @arg_persistent: Argument to pass with the method invocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @out_doc_id: (out): Return location for return parameter or %NULL to ignore.
- * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Add">Add()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * g_unix_socket_address_get_is_abstract:
+ * @address: a #GInetSocketAddress
*
- * See gxdp_documents_call_add() for the asynchronous version of this method.
+ * Tests if @address is abstract.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE if the address is abstract, %FALSE otherwise
+ * Since: 2.22
+ * Deprecated: Use g_unix_socket_address_get_address_type()
*/
/**
- * gxdp_documents_call_delete:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_doc_id: Argument to pass with the method invocation.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_unix_socket_address_get_path:
+ * @address: a #GInetSocketAddress
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Delete">Delete()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_call_delete_finish() to get the result of the operation.
+ * Gets @address's path, or for abstract sockets the "name".
+ *
+ * Guaranteed to be zero-terminated, but an abstract socket
+ * may contain embedded zeros, and thus you should use
+ * g_unix_socket_address_get_path_len() to get the true length
+ * of this string.
*
- * See gxdp_documents_call_delete_sync() for the synchronous, blocking version of this method.
+ * Returns: the path for @address
+ * Since: 2.22
*/
/**
- * gxdp_documents_call_delete_finish:
- * @proxy: A #GXdpDocumentsProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_delete().
- * @error: Return location for error or %NULL.
+ * g_unix_socket_address_get_path_len:
+ * @address: a #GInetSocketAddress
+ *
+ * Gets the length of @address's path.
*
- * Finishes an operation started with gxdp_documents_call_delete().
+ * For details, see g_unix_socket_address_get_path().
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: the length of the path
+ * Since: 2.22
*/
/**
- * gxdp_documents_call_delete_sync:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_doc_id: Argument to pass with the method invocation.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_unix_socket_address_new:
+ * @path: the socket path
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Delete">Delete()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Creates a new #GUnixSocketAddress for @path.
*
- * See gxdp_documents_call_delete() for the asynchronous version of this method.
+ * To create abstract socket addresses, on systems that support that,
+ * use g_unix_socket_address_new_abstract().
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: a new #GUnixSocketAddress
+ * Since: 2.22
*/
/**
- * gxdp_documents_call_get_mount_point:
- * @proxy: A #GXdpDocumentsProxy.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_unix_socket_address_new_abstract:
+ * @path: (array length=path_len) (element-type gchar): the abstract name
+ * @path_len: the length of @path, or -1
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GetMountPoint">GetMountPoint()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_call_get_mount_point_finish() to get the result of the operation.
+ * Creates a new %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED
+ * #GUnixSocketAddress for @path.
*
- * See gxdp_documents_call_get_mount_point_sync() for the synchronous, blocking version of this method.
+ * Returns: a new #GUnixSocketAddress
+ * Deprecated: Use g_unix_socket_address_new_with_type().
*/
/**
- * gxdp_documents_call_get_mount_point_finish:
- * @proxy: A #GXdpDocumentsProxy.
- * @out_path: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_get_mount_point().
- * @error: Return location for error or %NULL.
+ * g_unix_socket_address_new_with_type:
+ * @path: (array length=path_len) (element-type gchar): the name
+ * @path_len: the length of @path, or -1
+ * @type: a #GUnixSocketAddressType
*
- * Finishes an operation started with gxdp_documents_call_get_mount_point().
+ * Creates a new #GUnixSocketAddress of type @type with name @path.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-
-
-/**
- * gxdp_documents_call_get_mount_point_sync:
- * @proxy: A #GXdpDocumentsProxy.
- * @out_path: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * If @type is %G_UNIX_SOCKET_ADDRESS_PATH, this is equivalent to
+ * calling g_unix_socket_address_new().
+ *
+ * If @type is %G_UNIX_SOCKET_ADDRESS_ANONYMOUS, @path and @path_len will be
+ * ignored.
+ *
+ * If @path_type is %G_UNIX_SOCKET_ADDRESS_ABSTRACT, then @path_len
+ * bytes of @path will be copied to the socket's path, and only those
+ * bytes will be considered part of the name. (If @path_len is -1,
+ * then @path is assumed to be NUL-terminated.) For example, if @path
+ * was "test", then calling g_socket_address_get_native_size() on the
+ * returned socket would return 7 (2 bytes of overhead, 1 byte for the
+ * abstract-socket indicator byte, and 4 bytes for the name "test").
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GetMountPoint">GetMountPoint()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * If @path_type is %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED, then
+ * @path_len bytes of @path will be copied to the socket's path, the
+ * rest of the path will be padded with 0 bytes, and the entire
+ * zero-padded buffer will be considered the name. (As above, if
+ * @path_len is -1, then @path is assumed to be NUL-terminated.) In
+ * this case, g_socket_address_get_native_size() will always return
+ * the full size of a `struct sockaddr_un`, although
+ * g_unix_socket_address_get_path_len() will still return just the
+ * length of @path.
*
- * See gxdp_documents_call_get_mount_point() for the asynchronous version of this method.
+ * %G_UNIX_SOCKET_ADDRESS_ABSTRACT is preferred over
+ * %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED for new programs. Of course,
+ * when connecting to a server created by another process, you must
+ * use the appropriate type corresponding to how that process created
+ * its listening socket.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: a new #GUnixSocketAddress
+ * Since: 2.26
*/
/**
- * gxdp_documents_call_grant_permissions:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_doc_id: Argument to pass with the method invocation.
- * @arg_app_id: Argument to pass with the method invocation.
- * @arg_permissions: Argument to pass with the method invocation.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_vfs_get_default:
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GrantPermissions">GrantPermissions()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_call_grant_permissions_finish() to get the result of the operation.
+ * Gets the default #GVfs for the system.
*
- * See gxdp_documents_call_grant_permissions_sync() for the synchronous, blocking version of this method.
+ * Returns: (transfer none): a #GVfs.
*/
/**
- * gxdp_documents_call_grant_permissions_finish:
- * @proxy: A #GXdpDocumentsProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_grant_permissions().
- * @error: Return location for error or %NULL.
+ * g_vfs_get_file_for_path:
+ * @vfs: a #GVfs.
+ * @path: a string containing a VFS path.
*
- * Finishes an operation started with gxdp_documents_call_grant_permissions().
+ * Gets a #GFile for @path.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (transfer full): a #GFile.
+ * Free the returned object with g_object_unref().
*/
/**
- * gxdp_documents_call_grant_permissions_sync:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_doc_id: Argument to pass with the method invocation.
- * @arg_app_id: Argument to pass with the method invocation.
- * @arg_permissions: Argument to pass with the method invocation.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_vfs_get_file_for_uri:
+ * @vfs: a#GVfs.
+ * @uri: a string containing a URI
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GrantPermissions">GrantPermissions()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Gets a #GFile for @uri.
*
- * See gxdp_documents_call_grant_permissions() for the asynchronous version of this method.
+ * This operation never fails, but the returned object
+ * might not support any I/O operation if the URI
+ * is malformed or if the URI scheme is not supported.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (transfer full): a #GFile.
+ * Free the returned object with g_object_unref().
*/
/**
- * gxdp_documents_call_info:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_doc_id: Argument to pass with the method invocation.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_vfs_get_local:
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Info">Info()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_call_info_finish() to get the result of the operation.
+ * Gets the local #GVfs for the system.
*
- * See gxdp_documents_call_info_sync() for the synchronous, blocking version of this method.
+ * Returns: (transfer none): a #GVfs.
*/
/**
- * gxdp_documents_call_info_finish:
- * @proxy: A #GXdpDocumentsProxy.
- * @out_path: (out): Return location for return parameter or %NULL to ignore.
- * @out_apps: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_info().
- * @error: Return location for error or %NULL.
+ * g_vfs_get_supported_uri_schemes:
+ * @vfs: a #GVfs.
*
- * Finishes an operation started with gxdp_documents_call_info().
+ * Gets a list of URI schemes supported by @vfs.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (transfer none): a %NULL-terminated array of strings.
+ * The returned array belongs to GIO and must
+ * not be freed or modified.
*/
/**
- * gxdp_documents_call_info_sync:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_doc_id: Argument to pass with the method invocation.
- * @out_path: (out): Return location for return parameter or %NULL to ignore.
- * @out_apps: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Info">Info()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * g_vfs_is_active:
+ * @vfs: a #GVfs.
*
- * See gxdp_documents_call_info() for the asynchronous version of this method.
+ * Checks if the VFS is active.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE if construction of the @vfs was successful
+ * and it is now active.
*/
/**
- * gxdp_documents_call_list:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_app_id: Argument to pass with the method invocation.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_vfs_parse_name:
+ * @vfs: a #GVfs.
+ * @parse_name: a string to be parsed by the VFS module.
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.List">List()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_call_list_finish() to get the result of the operation.
+ * This operation never fails, but the returned object might
+ * not support any I/O operations if the @parse_name cannot
+ * be parsed by the #GVfs module.
*
- * See gxdp_documents_call_list_sync() for the synchronous, blocking version of this method.
+ * Returns: (transfer full): a #GFile for the given @parse_name.
+ * Free the returned object with g_object_unref().
*/
/**
- * gxdp_documents_call_list_finish:
- * @proxy: A #GXdpDocumentsProxy.
- * @out_docs: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_list().
- * @error: Return location for error or %NULL.
+ * g_vfs_register_uri_scheme:
+ * @vfs: a #GVfs
+ * @scheme: an URI scheme, e.g. "http"
+ * @uri_func: (scope notified) (nullable): a #GVfsFileLookupFunc
+ * @uri_data: (nullable): custom data passed to be passed to @uri_func, or %NULL
+ * @uri_destroy: (nullable): function to be called when unregistering the
+ * URI scheme, or when @vfs is disposed, to free the resources used
+ * by the URI lookup function
+ * @parse_name_func: (scope notified) (nullable): a #GVfsFileLookupFunc
+ * @parse_name_data: (nullable): custom data passed to be passed to
+ * @parse_name_func, or %NULL
+ * @parse_name_destroy: (nullable): function to be called when unregistering the
+ * URI scheme, or when @vfs is disposed, to free the resources used
+ * by the parse name lookup function
*
- * Finishes an operation started with gxdp_documents_call_list().
+ * Registers @uri_func and @parse_name_func as the #GFile URI and parse name
+ * lookup functions for URIs with a scheme matching @scheme.
+ * Note that @scheme is registered only within the running application, as
+ * opposed to desktop-wide as it happens with GVfs backends.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-
-
-/**
- * gxdp_documents_call_list_sync:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_app_id: Argument to pass with the method invocation.
- * @out_docs: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * When a #GFile is requested with an URI containing @scheme (e.g. through
+ * g_file_new_for_uri()), @uri_func will be called to allow a custom
+ * constructor. The implementation of @uri_func should not be blocking, and
+ * must not call g_vfs_register_uri_scheme() or g_vfs_unregister_uri_scheme().
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.List">List()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * When g_file_parse_name() is called with a parse name obtained from such file,
+ * @parse_name_func will be called to allow the #GFile to be created again. In
+ * that case, it's responsibility of @parse_name_func to make sure the parse
+ * name matches what the custom #GFile implementation returned when
+ * g_file_get_parse_name() was previously called. The implementation of
+ * @parse_name_func should not be blocking, and must not call
+ * g_vfs_register_uri_scheme() or g_vfs_unregister_uri_scheme().
*
- * See gxdp_documents_call_list() for the asynchronous version of this method.
+ * It's an error to call this function twice with the same scheme. To unregister
+ * a custom URI scheme, use g_vfs_unregister_uri_scheme().
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE if @scheme was successfully registered, or %FALSE if a handler
+ * for @scheme already exists.
+ * Since: 2.50
*/
/**
- * gxdp_documents_call_lookup:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_filename: Argument to pass with the method invocation.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_vfs_unregister_uri_scheme:
+ * @vfs: a #GVfs
+ * @scheme: an URI scheme, e.g. "http"
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Lookup">Lookup()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_call_lookup_finish() to get the result of the operation.
+ * Unregisters the URI handler for @scheme previously registered with
+ * g_vfs_register_uri_scheme().
*
- * See gxdp_documents_call_lookup_sync() for the synchronous, blocking version of this method.
+ * Returns: %TRUE if @scheme was successfully unregistered, or %FALSE if a
+ * handler for @scheme does not exist.
+ * Since: 2.50
*/
/**
- * gxdp_documents_call_lookup_finish:
- * @proxy: A #GXdpDocumentsProxy.
- * @out_doc_id: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_lookup().
- * @error: Return location for error or %NULL.
+ * g_volume_can_eject:
+ * @volume: a #GVolume
*
- * Finishes an operation started with gxdp_documents_call_lookup().
+ * Checks if a volume can be ejected.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE if the @volume can be ejected. %FALSE otherwise
*/
/**
- * gxdp_documents_call_lookup_sync:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_filename: Argument to pass with the method invocation.
- * @out_doc_id: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Lookup">Lookup()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * g_volume_can_mount:
+ * @volume: a #GVolume
*
- * See gxdp_documents_call_lookup() for the asynchronous version of this method.
+ * Checks if a volume can be mounted.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE if the @volume can be mounted. %FALSE otherwise
*/
/**
- * gxdp_documents_call_revoke_permissions:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_doc_id: Argument to pass with the method invocation.
- * @arg_app_id: Argument to pass with the method invocation.
- * @arg_permissions: Argument to pass with the method invocation.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_volume_eject:
+ * @volume: a #GVolume
+ * @flags: flags affecting the unmount if required for eject
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL
+ * @user_data: user data that gets passed to @callback
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.RevokePermissions">RevokePermissions()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_call_revoke_permissions_finish() to get the result of the operation.
+ * Ejects a volume. This is an asynchronous operation, and is
+ * finished by calling g_volume_eject_finish() with the @volume
+ * and #GAsyncResult returned in the @callback.
*
- * See gxdp_documents_call_revoke_permissions_sync() for the synchronous, blocking version of this method.
+ * Deprecated: 2.22: Use g_volume_eject_with_operation() instead.
*/
/**
- * gxdp_documents_call_revoke_permissions_finish:
- * @proxy: A #GXdpDocumentsProxy.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_revoke_permissions().
- * @error: Return location for error or %NULL.
+ * g_volume_eject_finish:
+ * @volume: pointer to a #GVolume
+ * @result: a #GAsyncResult
+ * @error: a #GError location to store an error, or %NULL to ignore
*
- * Finishes an operation started with gxdp_documents_call_revoke_permissions().
+ * Finishes ejecting a volume. If any errors occurred during the operation,
+ * @error will be set to contain the errors and %FALSE will be returned.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE, %FALSE if operation failed
+ * Deprecated: 2.22: Use g_volume_eject_with_operation_finish() instead.
*/
/**
- * gxdp_documents_call_revoke_permissions_sync:
- * @proxy: A #GXdpDocumentsProxy.
- * @arg_doc_id: Argument to pass with the method invocation.
- * @arg_app_id: Argument to pass with the method invocation.
- * @arg_permissions: Argument to pass with the method invocation.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.RevokePermissions">RevokePermissions()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * g_volume_eject_with_operation:
+ * @volume: a #GVolume
+ * @flags: flags affecting the unmount if required for eject
+ * @mount_operation: (nullable): a #GMountOperation or %NULL to
+ * avoid user interaction
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL
+ * @user_data: user data passed to @callback
*
- * See gxdp_documents_call_revoke_permissions() for the asynchronous version of this method.
+ * Ejects a volume. This is an asynchronous operation, and is
+ * finished by calling g_volume_eject_with_operation_finish() with the @volume
+ * and #GAsyncResult data returned in the @callback.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Since: 2.22
*/
/**
- * gxdp_documents_complete_add:
- * @object: A #GXdpDocuments.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @doc_id: Parameter to return.
+ * g_volume_eject_with_operation_finish:
+ * @volume: a #GVolume
+ * @result: a #GAsyncResult
+ * @error: a #GError location to store the error occurring, or %NULL
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Add">Add()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Finishes ejecting a volume. If any errors occurred during the operation,
+ * @error will be set to contain the errors and %FALSE will be returned.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: %TRUE if the volume was successfully ejected. %FALSE otherwise
+ * Since: 2.22
*/
/**
- * gxdp_documents_complete_add_full:
- * @object: A #GXdpDocuments.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @doc_ids: Parameter to return.
- * @extra_out: Parameter to return.
+ * g_volume_enumerate_identifiers:
+ * @volume: a #GVolume
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddFull">AddFull()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the kinds of [identifiers][volume-identifier] that @volume has.
+ * Use g_volume_get_identifier() to obtain the identifiers themselves.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (array zero-terminated=1) (transfer full): a %NULL-terminated array
+ * of strings containing kinds of identifiers. Use g_strfreev() to free.
*/
/**
- * gxdp_documents_complete_add_named:
- * @object: A #GXdpDocuments.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @doc_id: Parameter to return.
+ * g_volume_get_activation_root:
+ * @volume: a #GVolume
+ *
+ * Gets the activation root for a #GVolume if it is known ahead of
+ * mount time. Returns %NULL otherwise. If not %NULL and if @volume
+ * is mounted, then the result of g_mount_get_root() on the
+ * #GMount object obtained from g_volume_get_mount() will always
+ * either be equal or a prefix of what this function returns. In
+ * other words, in code
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamed">AddNamed()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * |[<!-- language="C" -->
+ * GMount *mount;
+ * GFile *mount_root
+ * GFile *volume_activation_root;
*
- * This method will free @invocation, you cannot use it afterwards.
- */
-
-
-/**
- * gxdp_documents_complete_delete:
- * @object: A #GXdpDocuments.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * mount = g_volume_get_mount (volume); // mounted, so never NULL
+ * mount_root = g_mount_get_root (mount);
+ * volume_activation_root = g_volume_get_activation_root (volume); // assume not NULL
+ * ]|
+ * then the expression
+ * |[<!-- language="C" -->
+ * (g_file_has_prefix (volume_activation_root, mount_root) ||
+ * g_file_equal (volume_activation_root, mount_root))
+ * ]|
+ * will always be %TRUE.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Delete">Delete()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Activation roots are typically used in #GVolumeMonitor
+ * implementations to find the underlying mount to shadow, see
+ * g_mount_is_shadowed() for more details.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (nullable) (transfer full): the activation root of @volume
+ * or %NULL. Use g_object_unref() to free.
+ * Since: 2.18
*/
/**
- * gxdp_documents_complete_get_mount_point:
- * @object: A #GXdpDocuments.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @path: Parameter to return.
+ * g_volume_get_drive:
+ * @volume: a #GVolume
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GetMountPoint">GetMountPoint()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the drive for the @volume.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (transfer full) (nullable): a #GDrive or %NULL if @volume is not
+ * associated with a drive. The returned object should be unreffed
+ * with g_object_unref() when no longer needed.
*/
/**
- * gxdp_documents_complete_grant_permissions:
- * @object: A #GXdpDocuments.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * g_volume_get_icon:
+ * @volume: a #GVolume
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GrantPermissions">GrantPermissions()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the icon for @volume.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (transfer full): a #GIcon.
+ * The returned object should be unreffed with g_object_unref()
+ * when no longer needed.
*/
/**
- * gxdp_documents_complete_info:
- * @object: A #GXdpDocuments.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @path: Parameter to return.
- * @apps: Parameter to return.
+ * g_volume_get_identifier:
+ * @volume: a #GVolume
+ * @kind: the kind of identifier to return
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Info">Info()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the identifier of the given kind for @volume.
+ * See the [introduction][volume-identifier] for more
+ * information about volume identifiers.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (nullable) (transfer full): a newly allocated string containing the
+ * requested identifier, or %NULL if the #GVolume
+ * doesn't have this kind of identifier
*/
/**
- * gxdp_documents_complete_list:
- * @object: A #GXdpDocuments.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @docs: Parameter to return.
+ * g_volume_get_mount:
+ * @volume: a #GVolume
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.List">List()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the mount for the @volume.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (transfer full) (nullable): a #GMount or %NULL if @volume isn't mounted.
+ * The returned object should be unreffed with g_object_unref()
+ * when no longer needed.
*/
/**
- * gxdp_documents_complete_lookup:
- * @object: A #GXdpDocuments.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @doc_id: Parameter to return.
+ * g_volume_get_name:
+ * @volume: a #GVolume
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Lookup">Lookup()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the name of @volume.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: the name for the given @volume. The returned string should
+ * be freed with g_free() when no longer needed.
*/
/**
- * gxdp_documents_complete_revoke_permissions:
- * @object: A #GXdpDocuments.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * g_volume_get_sort_key:
+ * @volume: a #GVolume
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.RevokePermissions">RevokePermissions()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Gets the sort key for @volume, if any.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: (nullable): Sorting key for @volume or %NULL if no such key is available
+ * Since: 2.32
*/
/**
- * gxdp_documents_get_version: (skip)
- * @object: A #GXdpDocuments.
- *
- * Gets the value of the <link linkend="gdbus-property-org-freedesktop-portal-Documents.version">"version"</link> D-Bus property.
+ * g_volume_get_symbolic_icon:
+ * @volume: a #GVolume
*
- * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+ * Gets the symbolic icon for @volume.
*
- * Returns: The property value.
+ * Returns: (transfer full): a #GIcon.
+ * The returned object should be unreffed with g_object_unref()
+ * when no longer needed.
+ * Since: 2.34
*/
/**
- * gxdp_documents_interface_info:
+ * g_volume_get_uuid:
+ * @volume: a #GVolume
*
- * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link> D-Bus interface.
+ * Gets the UUID for the @volume. The reference is typically based on
+ * the file system UUID for the volume in question and should be
+ * considered an opaque string. Returns %NULL if there is no UUID
+ * available.
*
- * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ * Returns: (nullable) (transfer full): the UUID for @volume or %NULL if no UUID
+ * can be computed.
+ * The returned string should be freed with g_free()
+ * when no longer needed.
*/
/**
- * gxdp_documents_override_properties:
- * @klass: The class structure for a #GObject<!-- -->-derived class.
- * @property_id_begin: The property id to assign to the first overridden property.
+ * g_volume_monitor_adopt_orphan_mount:
+ * @mount: a #GMount object to find a parent for
*
- * Overrides all #GObject properties in the #GXdpDocuments interface for a concrete class.
- * The properties are overridden in the order they are defined.
+ * This function should be called by any #GVolumeMonitor
+ * implementation when a new #GMount object is created that is not
+ * associated with a #GVolume object. It must be called just before
+ * emitting the @mount_added signal.
*
- * Returns: The last property id.
- */
-
-
-/**
- * gxdp_documents_proxy_new:
- * @connection: A #GDBusConnection.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: User data to pass to @callback.
+ * If the return value is not %NULL, the caller must associate the
+ * returned #GVolume object with the #GMount. This involves returning
+ * it in its g_mount_get_volume() implementation. The caller must
+ * also listen for the "removed" signal on the returned object
+ * and give up its reference when handling that signal
*
- * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link>. See g_dbus_proxy_new() for more details.
+ * Similary, if implementing g_volume_monitor_adopt_orphan_mount(),
+ * the implementor must take a reference to @mount and return it in
+ * its g_volume_get_mount() implemented. Also, the implementor must
+ * listen for the "unmounted" signal on @mount and give up its
+ * reference upon handling that signal.
*
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_proxy_new_finish() to get the result of the operation.
+ * There are two main use cases for this function.
*
- * See gxdp_documents_proxy_new_sync() for the synchronous, blocking version of this constructor.
- */
-
-
-/**
- * gxdp_documents_proxy_new_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_proxy_new().
- * @error: Return location for error or %NULL
+ * One is when implementing a user space file system driver that reads
+ * blocks of a block device that is already represented by the native
+ * volume monitor (for example a CD Audio file system driver). Such
+ * a driver will generate its own #GMount object that needs to be
+ * associated with the #GVolume object that represents the volume.
*
- * Finishes an operation started with gxdp_documents_proxy_new().
+ * The other is for implementing a #GVolumeMonitor whose sole purpose
+ * is to return #GVolume objects representing entries in the users
+ * "favorite servers" list or similar.
*
- * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: (transfer full): the #GVolume object that is the parent for @mount or %NULL
+ * if no wants to adopt the #GMount.
+ * Deprecated: 2.20: Instead of using this function, #GVolumeMonitor
+ * implementations should instead create shadow mounts with the URI of
+ * the mount they intend to adopt. See the proxy volume monitor in
+ * gvfs for an example of this. Also see g_mount_is_shadowed(),
+ * g_mount_shadow() and g_mount_unshadow() functions.
*/
/**
- * gxdp_documents_proxy_new_for_bus:
- * @bus_type: A #GBusType.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: User data to pass to @callback.
- *
- * Like gxdp_documents_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ * g_volume_monitor_get:
*
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_documents_proxy_new_for_bus_finish() to get the result of the operation.
+ * Gets the volume monitor used by gio.
*
- * See gxdp_documents_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ * Returns: (transfer full): a reference to the #GVolumeMonitor used by gio. Call
+ * g_object_unref() when done with it.
*/
/**
- * gxdp_documents_proxy_new_for_bus_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_proxy_new_for_bus().
- * @error: Return location for error or %NULL
+ * g_volume_monitor_get_connected_drives:
+ * @volume_monitor: a #GVolumeMonitor.
+ *
+ * Gets a list of drives connected to the system.
*
- * Finishes an operation started with gxdp_documents_proxy_new_for_bus().
+ * The returned list should be freed with g_list_free(), after
+ * its elements have been unreffed with g_object_unref().
*
- * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: (element-type GDrive) (transfer full): a #GList of connected #GDrive objects.
*/
/**
- * gxdp_documents_proxy_new_for_bus_sync:
- * @bus_type: A #GBusType.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL
- *
- * Like gxdp_documents_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
- *
- * The calling thread is blocked until a reply is received.
+ * g_volume_monitor_get_mount_for_uuid:
+ * @volume_monitor: a #GVolumeMonitor.
+ * @uuid: the UUID to look for
*
- * See gxdp_documents_proxy_new_for_bus() for the asynchronous version of this constructor.
+ * Finds a #GMount object by its UUID (see g_mount_get_uuid())
*
- * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: (transfer full): a #GMount or %NULL if no such mount is available.
+ * Free the returned object with g_object_unref().
*/
/**
- * gxdp_documents_proxy_new_sync:
- * @connection: A #GDBusConnection.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL
- *
- * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link>. See g_dbus_proxy_new_sync() for more details.
+ * g_volume_monitor_get_mounts:
+ * @volume_monitor: a #GVolumeMonitor.
*
- * The calling thread is blocked until a reply is received.
+ * Gets a list of the mounts on the system.
*
- * See gxdp_documents_proxy_new() for the asynchronous version of this constructor.
+ * The returned list should be freed with g_list_free(), after
+ * its elements have been unreffed with g_object_unref().
*
- * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: (element-type GMount) (transfer full): a #GList of #GMount objects.
*/
/**
- * gxdp_documents_set_version: (skip)
- * @object: A #GXdpDocuments.
- * @value: The value to set.
+ * g_volume_monitor_get_volume_for_uuid:
+ * @volume_monitor: a #GVolumeMonitor.
+ * @uuid: the UUID to look for
*
- * Sets the <link linkend="gdbus-property-org-freedesktop-portal-Documents.version">"version"</link> D-Bus property to @value.
+ * Finds a #GVolume object by its UUID (see g_volume_get_uuid())
*
- * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
+ * Returns: (transfer full): a #GVolume or %NULL if no such volume is available.
+ * Free the returned object with g_object_unref().
*/
/**
- * gxdp_documents_skeleton_new:
+ * g_volume_monitor_get_volumes:
+ * @volume_monitor: a #GVolumeMonitor.
+ *
+ * Gets a list of the volumes on the system.
*
- * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link>.
+ * The returned list should be freed with g_list_free(), after
+ * its elements have been unreffed with g_object_unref().
*
- * Returns: (transfer full) (type GXdpDocumentsSkeleton): The skeleton object.
+ * Returns: (element-type GVolume) (transfer full): a #GList of #GVolume objects.
*/
/**
- * gxdp_network_monitor_emit_changed:
- * @object: A #GXdpNetworkMonitor.
- * @arg_available: Argument to pass with the signal.
+ * g_volume_mount: (virtual mount_fn)
+ * @volume: a #GVolume
+ * @flags: flags affecting the operation
+ * @mount_operation: (nullable): a #GMountOperation or %NULL to avoid user interaction
+ * @cancellable: (nullable): optional #GCancellable object, %NULL to ignore
+ * @callback: (nullable): a #GAsyncReadyCallback, or %NULL
+ * @user_data: user data that gets passed to @callback
*
- * Emits the <link linkend="gdbus-signal-org-freedesktop-portal-NetworkMonitor.changed">"changed"</link> D-Bus signal.
+ * Mounts a volume. This is an asynchronous operation, and is
+ * finished by calling g_volume_mount_finish() with the @volume
+ * and #GAsyncResult returned in the @callback.
*/
/**
- * gxdp_network_monitor_get_available: (skip)
- * @object: A #GXdpNetworkMonitor.
+ * g_volume_mount_finish:
+ * @volume: a #GVolume
+ * @result: a #GAsyncResult
+ * @error: a #GError location to store an error, or %NULL to ignore
*
- * Gets the value of the <link linkend="gdbus-property-org-freedesktop-portal-NetworkMonitor.available">"available"</link> D-Bus property.
+ * Finishes mounting a volume. If any errors occurred during the operation,
+ * @error will be set to contain the errors and %FALSE will be returned.
*
- * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+ * If the mount operation succeeded, g_volume_get_mount() on @volume
+ * is guaranteed to return the mount right after calling this
+ * function; there's no need to listen for the 'mount-added' signal on
+ * #GVolumeMonitor.
*
- * Returns: The property value.
+ * Returns: %TRUE, %FALSE if operation failed
*/
/**
- * gxdp_network_monitor_get_connectivity: (skip)
- * @object: A #GXdpNetworkMonitor.
- *
- * Gets the value of the <link linkend="gdbus-property-org-freedesktop-portal-NetworkMonitor.connectivity">"connectivity"</link> D-Bus property.
+ * g_volume_should_automount:
+ * @volume: a #GVolume
*
- * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+ * Returns whether the volume should be automatically mounted.
*
- * Returns: The property value.
+ * Returns: %TRUE if the volume should be automatically mounted
*/
/**
- * gxdp_network_monitor_get_metered: (skip)
- * @object: A #GXdpNetworkMonitor.
- *
- * Gets the value of the <link linkend="gdbus-property-org-freedesktop-portal-NetworkMonitor.metered">"metered"</link> D-Bus property.
+ * g_win32_input_stream_get_close_handle:
+ * @stream: a #GWin32InputStream
*
- * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+ * Returns whether the handle of @stream will be
+ * closed when the stream is closed.
*
- * Returns: The property value.
+ * Returns: %TRUE if the handle is closed when done
+ * Since: 2.26
*/
/**
- * gxdp_network_monitor_interface_info:
+ * g_win32_input_stream_get_handle:
+ * @stream: a #GWin32InputStream
*
- * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-portal-NetworkMonitor.top_of_page">org.freedesktop.portal.NetworkMonitor</link> D-Bus interface.
+ * Return the Windows file handle that the stream reads from.
*
- * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ * Returns: The file handle of @stream
+ * Since: 2.26
*/
/**
- * gxdp_network_monitor_override_properties:
- * @klass: The class structure for a #GObject<!-- -->-derived class.
- * @property_id_begin: The property id to assign to the first overridden property.
+ * g_win32_input_stream_new:
+ * @handle: a Win32 file handle
+ * @close_handle: %TRUE to close the handle when done
*
- * Overrides all #GObject properties in the #GXdpNetworkMonitor interface for a concrete class.
- * The properties are overridden in the order they are defined.
+ * Creates a new #GWin32InputStream for the given @handle.
+ *
+ * If @close_handle is %TRUE, the handle will be closed
+ * when the stream is closed.
*
- * Returns: The last property id.
+ * Note that "handle" here means a Win32 HANDLE, not a "file descriptor"
+ * as used in the Windows C libraries.
+ *
+ * Returns: a new #GWin32InputStream
*/
/**
- * gxdp_network_monitor_proxy_new:
- * @connection: A #GDBusConnection.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: User data to pass to @callback.
- *
- * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-NetworkMonitor.top_of_page">org.freedesktop.portal.NetworkMonitor</link>. See g_dbus_proxy_new() for more details.
+ * g_win32_input_stream_set_close_handle:
+ * @stream: a #GWin32InputStream
+ * @close_handle: %TRUE to close the handle when done
*
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_network_monitor_proxy_new_finish() to get the result of the operation.
+ * Sets whether the handle of @stream shall be closed
+ * when the stream is closed.
*
- * See gxdp_network_monitor_proxy_new_sync() for the synchronous, blocking version of this constructor.
+ * Since: 2.26
*/
/**
- * gxdp_network_monitor_proxy_new_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_network_monitor_proxy_new().
- * @error: Return location for error or %NULL
+ * g_win32_output_stream_get_close_handle:
+ * @stream: a #GWin32OutputStream
*
- * Finishes an operation started with gxdp_network_monitor_proxy_new().
+ * Returns whether the handle of @stream will be closed when the
+ * stream is closed.
*
- * Returns: (transfer full) (type GXdpNetworkMonitorProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: %TRUE if the handle is closed when done
+ * Since: 2.26
*/
/**
- * gxdp_network_monitor_proxy_new_for_bus:
- * @bus_type: A #GBusType.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: User data to pass to @callback.
- *
- * Like gxdp_network_monitor_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ * g_win32_output_stream_get_handle:
+ * @stream: a #GWin32OutputStream
*
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_network_monitor_proxy_new_for_bus_finish() to get the result of the operation.
+ * Return the Windows handle that the stream writes to.
*
- * See gxdp_network_monitor_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ * Returns: The handle descriptor of @stream
+ * Since: 2.26
*/
/**
- * gxdp_network_monitor_proxy_new_for_bus_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_network_monitor_proxy_new_for_bus().
- * @error: Return location for error or %NULL
+ * g_win32_output_stream_new:
+ * @handle: a Win32 file handle
+ * @close_handle: %TRUE to close the handle when done
+ *
+ * Creates a new #GWin32OutputStream for the given @handle.
*
- * Finishes an operation started with gxdp_network_monitor_proxy_new_for_bus().
+ * If @close_handle, is %TRUE, the handle will be closed when the
+ * output stream is destroyed.
*
- * Returns: (transfer full) (type GXdpNetworkMonitorProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: a new #GOutputStream
+ * Since: 2.26
*/
/**
- * gxdp_network_monitor_proxy_new_for_bus_sync:
- * @bus_type: A #GBusType.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL
- *
- * Like gxdp_network_monitor_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
- *
- * The calling thread is blocked until a reply is received.
+ * g_win32_output_stream_set_close_handle:
+ * @stream: a #GWin32OutputStream
+ * @close_handle: %TRUE to close the handle when done
*
- * See gxdp_network_monitor_proxy_new_for_bus() for the asynchronous version of this constructor.
+ * Sets whether the handle of @stream shall be closed when the stream
+ * is closed.
*
- * Returns: (transfer full) (type GXdpNetworkMonitorProxy): The constructed proxy object or %NULL if @error is set.
+ * Since: 2.26
*/
/**
- * gxdp_network_monitor_proxy_new_sync:
- * @connection: A #GDBusConnection.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL
- *
- * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-NetworkMonitor.top_of_page">org.freedesktop.portal.NetworkMonitor</link>. See g_dbus_proxy_new_sync() for more details.
+ * g_win32_registry_key_erase_change_indicator:
+ * @key: (in) (transfer none): a #GWin32RegistryKey
*
- * The calling thread is blocked until a reply is received.
+ * Erases change indicator of the @key.
*
- * See gxdp_network_monitor_proxy_new() for the asynchronous version of this constructor.
+ * 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.
*
- * Returns: (transfer full) (type GXdpNetworkMonitorProxy): The constructed proxy object or %NULL if @error is set.
+ * Since: 2.46
*/
/**
- * gxdp_network_monitor_set_available: (skip)
- * @object: A #GXdpNetworkMonitor.
- * @value: The value to set.
+ * g_win32_registry_key_get_child:
+ * @key: (in) (transfer none): a parent #GWin32RegistryKey
+ * @subkey: (in) (transfer none): name of a child key to open (in UTF-8), relative to @key
+ * @error: (inout) (optional) (nullable): a pointer to a %NULL #GError, or %NULL
*
- * Sets the <link linkend="gdbus-property-org-freedesktop-portal-NetworkMonitor.available">"available"</link> D-Bus property to @value.
+ * Opens a @subkey of the @key.
*
- * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
+ * Returns: (nullable): a #GWin32RegistryKey or %NULL if can't be opened. Free
+ * with g_object_unref().
*/
/**
- * gxdp_network_monitor_set_connectivity: (skip)
- * @object: A #GXdpNetworkMonitor.
- * @value: The value to set.
+ * g_win32_registry_key_get_child_w:
+ * @key: (in) (transfer none): a parent #GWin32RegistryKey
+ * @subkey: (in) (transfer none): name of a child key to open (in UTF-8), relative to @key
+ * @error: (inout) (optional) (nullable): a pointer to a %NULL #GError, or %NULL
*
- * Sets the <link linkend="gdbus-property-org-freedesktop-portal-NetworkMonitor.connectivity">"connectivity"</link> D-Bus property to @value.
+ * Opens a @subkey of the @key.
*
- * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
+ * Returns: (nullable): a #GWin32RegistryKey or %NULL if can't be opened. Free
+ * with g_object_unref().
*/
/**
- * gxdp_network_monitor_set_metered: (skip)
- * @object: A #GXdpNetworkMonitor.
- * @value: The value to set.
+ * g_win32_registry_key_get_path:
+ * @key: (in) (transfer none): a #GWin32RegistryKey
*
- * Sets the <link linkend="gdbus-property-org-freedesktop-portal-NetworkMonitor.metered">"metered"</link> D-Bus property to @value.
+ * Get full path to the key
*
- * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
+ * Returns: (transfer none): a full path to the key (in UTF-8),
+ * or %NULL if it can't be converted to UTF-8.
+ * Since: 2.46
*/
/**
- * gxdp_network_monitor_skeleton_new:
+ * g_win32_registry_key_get_path_w:
+ * @key: (in) (transfer none): a #GWin32RegistryKey
*
- * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-NetworkMonitor.top_of_page">org.freedesktop.portal.NetworkMonitor</link>.
+ * Get full path to the key
*
- * Returns: (transfer full) (type GXdpNetworkMonitorSkeleton): The skeleton object.
+ * Returns: (transfer none): a full path to the key (in UTF-16)
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_call_open_file:
- * @proxy: A #GXdpOpenURIProxy.
- * @arg_parent_window: Argument to pass with the method invocation.
- * @arg_fd: Argument to pass with the method invocation.
- * @arg_options: Argument to pass with the method invocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_win32_registry_key_get_value:
+ * @key: (in) (transfer none): a #GWin32RegistryKey
+ * @auto_expand: (in): %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR
+ * to G_WIN32_REGISTRY_VALUE_STR.
+ * @value_name: (in) (transfer none): name of the value to get (in UTF-8).
+ * Empty string means the '(Default)' value.
+ * @value_type: (out) (optional): type of the value retrieved.
+ * @value_data: (out callee-allocates) (optional): contents of the value.
+ * @value_data_size: (out) (optional): size of the buffer pointed
+ * by @value_data.
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenFile">OpenFile()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_open_uri_call_open_file_finish() to get the result of the operation.
+ * Get data from a value of a key. String data is guaranteed to be
+ * appropriately terminated and will be in UTF-8.
*
- * See gxdp_open_uri_call_open_file_sync() for the synchronous, blocking version of this method.
+ * Returns: %TRUE on success, %FALSE on failure.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_call_open_file_finish:
- * @proxy: A #GXdpOpenURIProxy.
- * @out_handle: (out): Return location for return parameter or %NULL to ignore.
- * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_open_uri_call_open_file().
- * @error: Return location for error or %NULL.
+ * g_win32_registry_key_get_value_w:
+ * @key: (in) (transfer none): a #GWin32RegistryKey
+ * @auto_expand: (in): %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR
+ * to G_WIN32_REGISTRY_VALUE_STR.
+ * @value_name: (in) (transfer none): name of the value to get (in UTF-16).
+ * Empty string means the '(Default)' value.
+ * @value_type: (out) (optional): type of the value retrieved.
+ * @value_data: (out callee-allocates) (optional): contents of the value.
+ * @value_data_size: (out) (optional): size of the buffer pointed
+ * by @value_data.
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ *
+ * Get data from a value of a key.
*
- * Finishes an operation started with gxdp_open_uri_call_open_file().
+ * 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.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE on success, %FALSE on failure.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_call_open_file_sync:
- * @proxy: A #GXdpOpenURIProxy.
- * @arg_parent_window: Argument to pass with the method invocation.
- * @arg_fd: Argument to pass with the method invocation.
- * @arg_options: Argument to pass with the method invocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @out_handle: (out): Return location for return parameter or %NULL to ignore.
- * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenFile">OpenFile()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * g_win32_registry_key_has_changed:
+ * @key: (in) (transfer none): a #GWin32RegistryKey
*
- * See gxdp_open_uri_call_open_file() for the asynchronous version of this method.
+ * Check the @key's status indicator.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %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.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_call_open_uri:
- * @proxy: A #GXdpOpenURIProxy.
- * @arg_parent_window: Argument to pass with the method invocation.
- * @arg_uri: Argument to pass with the method invocation.
- * @arg_options: Argument to pass with the method invocation.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_win32_registry_key_new:
+ * @path: absolute full name of a key to open (in UTF-8)
+ * @error: (nullable): a pointer to a %NULL #GError, or %NULL
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenURI">OpenURI()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_open_uri_call_open_uri_finish() to get the result of the operation.
+ * 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 '\\'.
*
- * See gxdp_open_uri_call_open_uri_sync() for the synchronous, blocking version of this method.
+ * Returns: (nullable) (transfer full): a #GWin32RegistryKey or %NULL if can't
+ * be opened. Free with g_object_unref().
*/
/**
- * gxdp_open_uri_call_open_uri_finish:
- * @proxy: A #GXdpOpenURIProxy.
- * @out_handle: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_open_uri_call_open_uri().
- * @error: Return location for error or %NULL.
+ * g_win32_registry_key_new_w:
+ * @path: (in) (transfer none): absolute full name of a key to open (in UTF-16)
+ * @error: (inout) (optional) (nullable): a pointer to a %NULL #GError, or %NULL
*
- * Finishes an operation started with gxdp_open_uri_call_open_uri().
+ * 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'\\'.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: (nullable) (transfer full): a #GWin32RegistryKey or %NULL if can't
+ * be opened. Free with g_object_unref().
*/
/**
- * gxdp_open_uri_call_open_uri_sync:
- * @proxy: A #GXdpOpenURIProxy.
- * @arg_parent_window: Argument to pass with the method invocation.
- * @arg_uri: Argument to pass with the method invocation.
- * @arg_options: Argument to pass with the method invocation.
- * @out_handle: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
+ * g_win32_registry_key_watch:
+ * @key: (in) (transfer none): a #GWin32RegistryKey
+ * @watch_children: (in): %TRUE also watch the children of the @key, %FALSE
+ * to watch the key only.
+ * @watch_flags: (in): specifies the types of changes to watch for.
+ * @callback: (in) (nullable): a function to invoke when a change occurs.
+ * @user_data: (in) (nullable): a pointer to pass to @callback on invocation.
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
*
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenURI">OpenURI()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * Puts @key under a watch.
*
- * See gxdp_open_uri_call_open_uri() for the asynchronous version of this method.
+ * 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.
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
- */
-
-
-/**
- * gxdp_open_uri_complete_open_file:
- * @object: A #GXdpOpenURI.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @fd_list: (allow-none): A #GUnixFDList or %NULL.
- * @handle: Parameter to return.
+ * Calling g_win32_registry_key_watch_for_changes() for a key that is already
+ * being watched is allowed and affects nothing.
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenFile">OpenFile()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * The fact that the key is being watched will be used internally to update
+ * key path (if it changes).
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: %TRUE on success, %FALSE on failure.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_complete_open_uri:
- * @object: A #GXdpOpenURI.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @handle: Parameter to return.
+ * g_win32_registry_subkey_iter_assign:
+ * @iter: a #GWin32RegistrySubkeyIter
+ * @other: another #GWin32RegistrySubkeyIter
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenURI">OpenURI()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * 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.
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_get_version: (skip)
- * @object: A #GXdpOpenURI.
- *
- * Gets the value of the <link linkend="gdbus-property-org-freedesktop-portal-OpenURI.version">"version"</link> D-Bus property.
+ * g_win32_registry_subkey_iter_clear:
+ * @iter: (in) (transfer none): a #GWin32RegistrySubkeyIter
*
- * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
+ * Frees internal buffers of a #GWin32RegistrySubkeyIter.
*
- * Returns: The property value.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_interface_info:
+ * g_win32_registry_subkey_iter_copy:
+ * @iter: an iterator
*
- * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link> D-Bus interface.
+ * Creates a dynamically-allocated copy of an iterator. Dynamically-allocated
+ * state of the iterator is duplicated too.
*
- * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ * Returns: (transfer full): a copy of the @iter,
+ * free with g_win32_registry_subkey_iter_free ()
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_override_properties:
- * @klass: The class structure for a #GObject<!-- -->-derived class.
- * @property_id_begin: The property id to assign to the first overridden property.
+ * g_win32_registry_subkey_iter_free:
+ * @iter: a dynamically-allocated iterator
*
- * Overrides all #GObject properties in the #GXdpOpenURI interface for a concrete class.
- * The properties are overridden in the order they are defined.
+ * Free an iterator allocated on the heap. For iterators that are allocated
+ * on the stack use g_win32_registry_subkey_iter_clear () instead.
*
- * Returns: The last property id.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_proxy_new:
- * @connection: A #GDBusConnection.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: User data to pass to @callback.
- *
- * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link>. See g_dbus_proxy_new() for more details.
+ * g_win32_registry_subkey_iter_get_name:
+ * @iter: (in) (transfer none): a #GWin32RegistrySubkeyIter
+ * @subkey_name: (out callee-allocates) (transfer none): Pointer to a location
+ * to store the name of a subkey (in UTF-8). Free with g_free().
+ * @subkey_name_len: (out) (optional): Pointer to a location to store the
+ * length of @subkey_name, in gchars, excluding NUL-terminator.
+ * %NULL if length is not needed.
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
*
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_open_uri_proxy_new_finish() to get the result of the operation.
+ * Gets the name of the subkey at the @iter potision.
*
- * See gxdp_open_uri_proxy_new_sync() for the synchronous, blocking version of this constructor.
+ * Returns: %TRUE if the name was retrieved, %FALSE otherwise.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_proxy_new_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_open_uri_proxy_new().
- * @error: Return location for error or %NULL
+ * g_win32_registry_subkey_iter_get_name_w:
+ * @iter: (in) (transfer none): a #GWin32RegistrySubkeyIter
+ * @subkey_name: (out callee-allocates) (transfer none): Pointer to a location
+ * to store the name of a subkey (in UTF-16).
+ * @subkey_name_len: (out) (optional) (transfer none): Pointer to a location
+ * to store the length of @subkey_name, in gunichar2s, excluding
+ * NUL-terminator.
+ * %NULL if length is not needed.
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
*
- * Finishes an operation started with gxdp_open_uri_proxy_new().
+ * Same as g_win32_registry_subkey_iter_get_next(), but outputs UTF-16-encoded
+ * data, without converting it to UTF-8 first.
*
- * Returns: (transfer full) (type GXdpOpenURIProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: %TRUE if the name was retrieved, %FALSE otherwise.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_proxy_new_for_bus:
- * @bus_type: A #GBusType.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: User data to pass to @callback.
+ * g_win32_registry_subkey_iter_init:
+ * @iter: (in) (transfer none): a pointer to a #GWin32RegistrySubkeyIter
+ * @key: (in) (transfer none): a #GWin32RegistryKey to iterate over
+ * @error: (inout) (optional) (nullable): a pointer to %NULL #GError, or %NULL
*
- * Like gxdp_open_uri_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ * Initialises (without allocating) a #GWin32RegistrySubkeyIter. @iter may be
+ * completely uninitialised prior to this call; its old value is
+ * ignored.
*
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_open_uri_proxy_new_for_bus_finish() to get the result of the operation.
+ * 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.
*
- * See gxdp_open_uri_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ * Returns: %TRUE if iterator was initialized successfully, %FALSE on error.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_proxy_new_for_bus_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_open_uri_proxy_new_for_bus().
- * @error: Return location for error or %NULL
+ * g_win32_registry_subkey_iter_n_subkeys:
+ * @iter: (in) (transfer none): a #GWin32RegistrySubkeyIter
+ *
+ * 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.
*
- * Finishes an operation started with gxdp_open_uri_proxy_new_for_bus().
+ * This information is accurate at the point of iterator initialization,
+ * and may go out of sync with reality even while subkeys are enumerated.
*
- * Returns: (transfer full) (type GXdpOpenURIProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: the number of subkeys in the key
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_proxy_new_for_bus_sync:
- * @bus_type: A #GBusType.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL
+ * g_win32_registry_subkey_iter_next:
+ * @iter: (in) (transfer none): a #GWin32RegistrySubkeyIter
+ * @skip_errors: (in): %TRUE if iterator should silently ignore errors (such as
+ * the actual number of subkeys being less than expected) and
+ * proceed forward
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ *
+ * Moves iterator to the next subkey.
+ * Enumeration errors can be ignored if @skip_errors is %TRUE
*
- * Like gxdp_open_uri_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ * Here is an example for iterating with g_win32_registry_subkey_iter_next():
+ * |[<!-- language="C" -->
+ * // recursively iterate a key
+ * void
+ * iterate_key_recursive (GWin32RegistryKey *key)
+ * {
+ * GWin32RegistrySubkeyIter iter;
+ * gchar *name;
+ * GWin32RegistryKey *child;
+ *
+ * if (!g_win32_registry_subkey_iter_init (&iter, key, NULL))
+ * return;
+ *
+ * while (g_win32_registry_subkey_iter_next (&iter, TRUE, NULL))
+ * {
+ * if (!g_win32_registry_subkey_iter_get_name (&iter, &name, NULL, NULL))
+ * continue;
+ *
+ * g_print ("subkey '%s'\n", name);
+ * child = g_win32_registry_key_get_child (key, name, NULL);
*
- * The calling thread is blocked until a reply is received.
+ * if (child)
+ * iterate_key_recursive (child);
+ * }
*
- * See gxdp_open_uri_proxy_new_for_bus() for the asynchronous version of this constructor.
+ * g_win32_registry_subkey_iter_clear (&iter);
+ * }
+ * ]|
*
- * Returns: (transfer full) (type GXdpOpenURIProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: %TRUE if next subkey info was retrieved, %FALSE otherwise.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_proxy_new_sync:
- * @connection: A #GDBusConnection.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL
- *
- * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link>. See g_dbus_proxy_new_sync() for more details.
- *
- * The calling thread is blocked until a reply is received.
+ * g_win32_registry_value_iter_assign:
+ * @iter: a #GWin32RegistryValueIter
+ * @other: another #GWin32RegistryValueIter
*
- * See gxdp_open_uri_proxy_new() for the asynchronous version of this constructor.
+ * 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.
*
- * Returns: (transfer full) (type GXdpOpenURIProxy): The constructed proxy object or %NULL if @error is set.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_set_version: (skip)
- * @object: A #GXdpOpenURI.
- * @value: The value to set.
+ * g_win32_registry_value_iter_clear:
+ * @iter: (in) (transfer none): a #GWin32RegistryValueIter
*
- * Sets the <link linkend="gdbus-property-org-freedesktop-portal-OpenURI.version">"version"</link> D-Bus property to @value.
+ * Frees internal buffers of a #GWin32RegistryValueIter.
*
- * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
+ * Since: 2.46
*/
/**
- * gxdp_open_uri_skeleton_new:
+ * g_win32_registry_value_iter_copy:
+ * @iter: an iterator
*
- * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link>.
+ * Creates a dynamically-allocated copy of an iterator. Dynamically-allocated
+ * state of the iterator is duplicated too.
*
- * Returns: (transfer full) (type GXdpOpenURISkeleton): The skeleton object.
+ * Returns: (transfer full): a copy of the @iter,
+ * free with g_win32_registry_value_iter_free ().
+ * Since: 2.46
*/
/**
- * gxdp_proxy_resolver_call_lookup:
- * @proxy: A #GXdpProxyResolverProxy.
- * @arg_uri: Argument to pass with the method invocation.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
- * @user_data: User data to pass to @callback.
+ * g_win32_registry_value_iter_free:
+ * @iter: a dynamically-allocated iterator
*
- * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-ProxyResolver.Lookup">Lookup()</link> D-Bus method on @proxy.
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_proxy_resolver_call_lookup_finish() to get the result of the operation.
+ * Free an iterator allocated on the heap. For iterators that are allocated
+ * on the stack use g_win32_registry_value_iter_clear () instead.
*
- * See gxdp_proxy_resolver_call_lookup_sync() for the synchronous, blocking version of this method.
+ * Since: 2.46
*/
/**
- * gxdp_proxy_resolver_call_lookup_finish:
- * @proxy: A #GXdpProxyResolverProxy.
- * @out_proxies: (out): Return location for return parameter or %NULL to ignore.
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_proxy_resolver_call_lookup().
- * @error: Return location for error or %NULL.
+ * g_win32_registry_value_iter_get_data:
+ * @iter: (in) (transfer none): a #GWin32RegistryValueIter
+ * @auto_expand: (in): %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR to
+ * G_WIN32_REGISTRY_VALUE_STR
+ * @value_data: (out callee-allocates) (optional) (transfer none): Pointer to a
+ * location to store the data of the value (in UTF-8, if it's a string)
+ * @value_data_size: (out) (optional): 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
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
*
- * Finishes an operation started with gxdp_proxy_resolver_call_lookup().
+ * Stores the data of the value currently being iterated over in @value_data,
+ * and its length - in @value_data_len (if not %NULL).
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE if value data was retrieved, %FALSE otherwise.
+ * Since: 2.46
*/
/**
- * gxdp_proxy_resolver_call_lookup_sync:
- * @proxy: A #GXdpProxyResolverProxy.
- * @arg_uri: Argument to pass with the method invocation.
- * @out_proxies: (out): Return location for return parameter or %NULL to ignore.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL.
- *
- * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-ProxyResolver.Lookup">Lookup()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ * g_win32_registry_value_iter_get_data_w:
+ * @iter: (in) (transfer none): a #GWin32RegistryValueIter
+ * @auto_expand: (in): %TRUE to automatically expand G_WIN32_REGISTRY_VALUE_EXPAND_STR to
+ * G_WIN32_REGISTRY_VALUE_STR
+ * @value_data: (out callee-allocates) (optional) (transfer none): Pointer to a
+ * location to store the data of the value (in UTF-16, if it's a string)
+ * @value_data_size: (out) (optional): 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.
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
*
- * See gxdp_proxy_resolver_call_lookup() for the asynchronous version of this method.
+ * Stores the data of the value currently being iterated over in @value_data,
+ * and its length - in @value_data_len (if not %NULL).
*
- * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ * Returns: %TRUE if value data was retrieved, %FALSE otherwise.
+ * Since: 2.46
*/
/**
- * gxdp_proxy_resolver_complete_lookup:
- * @object: A #GXdpProxyResolver.
- * @invocation: (transfer full): A #GDBusMethodInvocation.
- * @proxies: Parameter to return.
+ * g_win32_registry_value_iter_get_name:
+ * @iter: (in) (transfer none): a #GWin32RegistryValueIter
+ * @value_name: (out callee-allocates) (transfer none): Pointer to a location
+ * to store the name of a value (in UTF-8).
+ * @value_name_len: (out) (optional): Pointer to a location to store the length
+ * of @value_name, in gchars, excluding NUL-terminator.
+ * %NULL if length is not needed.
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
*
- * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-ProxyResolver.Lookup">Lookup()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ * Stores the name of the value currently being iterated over in @value_name,
+ * and its length - in @value_name_len (if not %NULL).
*
- * This method will free @invocation, you cannot use it afterwards.
+ * Returns: %TRUE if value name was retrieved, %FALSE otherwise.
+ * Since: 2.46
*/
/**
- * gxdp_proxy_resolver_interface_info:
+ * g_win32_registry_value_iter_get_name_w:
+ * @iter: (in) (transfer none): a #GWin32RegistryValueIter
+ * @value_name: (out callee-allocates) (transfer none): Pointer to a location
+ * to store the name of a value (in UTF-16).
+ * @value_name_len: (out) (optional): Pointer to a location to store the length
+ * of @value_name, in gunichar2s, excluding NUL-terminator.
+ * %NULL if length is not needed.
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
*
- * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link> D-Bus interface.
+ * Stores the name of the value currently being iterated over in @value_name,
+ * and its length - in @value_name (if not %NULL).
*
- * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ * Returns: %TRUE if value name was retrieved, %FALSE otherwise.
+ * Since: 2.46
*/
/**
- * gxdp_proxy_resolver_override_properties:
- * @klass: The class structure for a #GObject<!-- -->-derived class.
- * @property_id_begin: The property id to assign to the first overridden property.
+ * g_win32_registry_value_iter_get_value_type:
+ * @iter: (in) (transfer none): a #GWin32RegistryValueIter
+ * @value_type: (out): Pointer to a location to store the type of
+ * the value.
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
*
- * Overrides all #GObject properties in the #GXdpProxyResolver interface for a concrete class.
- * The properties are overridden in the order they are defined.
+ * Stores the type of the value currently being iterated over in @value_type.
*
- * Returns: The last property id.
+ * Returns: %TRUE if value type was retrieved, %FALSE otherwise.
+ * Since: 2.46
*/
/**
- * gxdp_proxy_resolver_proxy_new:
- * @connection: A #GDBusConnection.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: User data to pass to @callback.
+ * g_win32_registry_value_iter_init:
+ * @iter: (in) (transfer none): a pointer to a #GWin32RegistryValueIter
+ * @key: (in) (transfer none): a #GWin32RegistryKey to iterate over
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
*
- * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link>. See g_dbus_proxy_new() for more details.
+ * Initialises (without allocating) a #GWin32RegistryValueIter. @iter may be
+ * completely uninitialised prior to this call; its old value is
+ * ignored.
*
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_proxy_resolver_proxy_new_finish() to get the result of the operation.
+ * 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.
*
- * See gxdp_proxy_resolver_proxy_new_sync() for the synchronous, blocking version of this constructor.
+ * Returns: %TRUE if iterator was initialized successfully, %FALSE on error.
+ * Since: 2.46
*/
/**
- * gxdp_proxy_resolver_proxy_new_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_proxy_resolver_proxy_new().
- * @error: Return location for error or %NULL
+ * g_win32_registry_value_iter_n_values:
+ * @iter: (in) (transfer none): a #GWin32RegistryValueIter
+ *
+ * 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.
*
- * Finishes an operation started with gxdp_proxy_resolver_proxy_new().
+ * This information is accurate at the point of iterator initialization,
+ * and may go out of sync with reality even while values are enumerated.
*
- * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: the number of values in the key
+ * Since: 2.46
*/
/**
- * gxdp_proxy_resolver_proxy_new_for_bus:
- * @bus_type: A #GBusType.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
- * @user_data: User data to pass to @callback.
+ * g_win32_registry_value_iter_next:
+ * @iter: (in) (transfer none): a #GWin32RegistryValueIter
+ * @skip_errors: (in): %TRUE if iterator should silently ignore errors (such as
+ * the actual number of values being less than expected) and
+ * proceed forward
+ * @error: (nullable): a pointer to %NULL #GError, or %NULL
+ *
+ * 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():
+ * |[<!-- language="C" -->
+ * // 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 (&iter, key, NULL))
+ * return;
+ *
+ * while (g_win32_registry_value_iter_next (&iter, TRUE, NULL))
+ * {
+ * if ((!g_win32_registry_value_iter_get_value_type (&iter, &value)) ||
+ * ((val_type != G_WIN32_REGISTRY_VALUE_STR) &&
+ * (val_type != G_WIN32_REGISTRY_VALUE_EXPAND_STR)))
+ * continue;
*
- * Like gxdp_proxy_resolver_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ * if (g_win32_registry_value_iter_get_value (&iter, TRUE, &name, NULL,
+ * &val_data, NULL, NULL))
+ * g_print ("value '%s' = '%s'\n", name, val_data);
+ * }
*
- * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
- * You can then call gxdp_proxy_resolver_proxy_new_for_bus_finish() to get the result of the operation.
+ * g_win32_registry_value_iter_clear (&iter);
+ * }
+ * ]|
*
- * See gxdp_proxy_resolver_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ * Returns: %TRUE if next value info was retrieved, %FALSE otherwise.
+ * Since: 2.46
*/
/**
- * gxdp_proxy_resolver_proxy_new_for_bus_finish:
- * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_proxy_resolver_proxy_new_for_bus().
- * @error: Return location for error or %NULL
+ * g_zlib_compressor_get_file_info:
+ * @compressor: a #GZlibCompressor
*
- * Finishes an operation started with gxdp_proxy_resolver_proxy_new_for_bus().
+ * Returns the #GZlibCompressor:file-info property.
*
- * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: (transfer none): a #GFileInfo, or %NULL
+ * Since: 2.26
*/
/**
- * gxdp_proxy_resolver_proxy_new_for_bus_sync:
- * @bus_type: A #GBusType.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: A bus name (well-known or unique).
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL
+ * g_zlib_compressor_new:
+ * @format: The format to use for the compressed data
+ * @level: compression level (0-9), -1 for default
+ *
+ * Creates a new #GZlibCompressor.
*
- * Like gxdp_proxy_resolver_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ * Returns: a new #GZlibCompressor
+ * Since: 2.24
+ */
+
+
+/**
+ * g_zlib_compressor_set_file_info:
+ * @compressor: a #GZlibCompressor
+ * @file_info: (nullable): a #GFileInfo
*
- * The calling thread is blocked until a reply is received.
+ * 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.
*
- * See gxdp_proxy_resolver_proxy_new_for_bus() for the asynchronous version of this constructor.
+ * 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().
*
- * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set.
+ * Since: 2.26
*/
/**
- * gxdp_proxy_resolver_proxy_new_sync:
- * @connection: A #GDBusConnection.
- * @flags: Flags from the #GDBusProxyFlags enumeration.
- * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
- * @object_path: An object path.
- * @cancellable: (allow-none): A #GCancellable or %NULL.
- * @error: Return location for error or %NULL
+ * g_zlib_decompressor_get_file_info:
+ * @decompressor: a #GZlibDecompressor
*
- * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link>. See g_dbus_proxy_new_sync() for more details.
+ * 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.
*
- * The calling thread is blocked until a reply is received.
+ * Returns: (transfer none): a #GFileInfo, or %NULL
+ * Since: 2.26
+ */
+
+
+/**
+ * g_zlib_decompressor_new:
+ * @format: The format to use for the compressed data
*
- * See gxdp_proxy_resolver_proxy_new() for the asynchronous version of this constructor.
+ * Creates a new #GZlibDecompressor.
*
- * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set.
+ * Returns: a new #GZlibDecompressor
+ * Since: 2.24
*/
/**
- * gxdp_proxy_resolver_skeleton_new:
+ * get_viewable_logical_drives:
*
- * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link>.
+ * 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.
*
- * Returns: (transfer full) (type GXdpProxyResolverSkeleton): The skeleton object.
+ * Returns: bitmask with same meaning as returned by GetLogicalDrives()
*/