[1325:14] static extends: object
Alternate constructors for GDBusConnection. Usage:
GDBusConnectionCtors.<name>(...). The primary constructor lives
directly on GDBusConnection.
newForAddressFinish (object res)
Finishes an operation started with g_dbus_connection_new_for_address().
res is a #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_connection_new().A new GDBusConnection.newForAddressSync (string address, string flags, object observer, object cancellable)
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. 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, %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS or %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER flags. This is a synchronous failable constructor. See g_dbus_connection_new_for_address() for the asynchronous version. If
is not %NULL it may be used to control the authentication process.address is a D-Bus address.flags is flags describing how to make the connection.observer is a #GDBusAuthObserver or %NULL.cancellable is a #GCancellable or %NULL.A new GDBusConnection.newSync (object stream, string guid, string flags, object observer, object cancellable)
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.
stream is a #GIOStream.guid is the GUID to use if authenticating as a server or %NULL.flags is flags describing how to make the connection.observer is a #GDBusAuthObserver or %NULL.cancellable is a #GCancellable or %NULL.A new GDBusConnection.[1480:14] static extends: object
Generated metadata helpers for DBusConnection class surfaces.
properties ()
Returns property metadata for
DBusConnection.
A list.signals ()
Returns signal metadata for
DBusConnection.
A list.[47:7] extends: object
The GDBusConnection type is used for D-Bus connections to remote peers such
as a message buses. It is a low-level API that offers a lot of flexibility.
For instance, it lets you establish a connection over any transport that can
by represented as a [class@Gio.IOStream]. This class is rarely used directly
in D-Bus clients. If you are writing a D-Bus client, it is often easier to
use the [func@Gio.bus_own_name], [func@Gio.bus_watch_name] or
[func@Gio.DBusProxy.new_for_bus] APIs. As an exception to the usual GLib rule
that a particular object must not be used by two threads at the same time,
GDBusConnections methods may be called from any thread. This is so that
[func@Gio.bus_get] and [func@Gio.bus_get_sync] can safely return the same
GDBusConnection when called from any thread. Most of the ways to obtain a
GDBusConnection automatically initialize it (i.e. connect to D-Bus): for
instance, [func@Gio.DBusConnection.new] and [func@Gio.bus_get], and the
synchronous versions of those methods, give you an initialized connection.
Language bindings for GIO should use [func@Gio.Initable.new] or
[func@Gio.AsyncInitable.new_async], which also initialize the connection. If
you construct an uninitialized GDBusConnection, such as via
[ctor@GObject.Object.new], you must initialize it via
[method@Gio.Initable.init] or [method@Gio.AsyncInitable.init_async] before
using its methods or properties. Calling methods or accessing properties on a
GDBusConnection that has not completed initialization successfully is
considered to be invalid, and leads to undefined behaviour. In particular, if
initialization fails with a GError, the only valid thing you can do with
that GDBusConnection is to free it with [method@GObject.Object.unref]. ##
An example D-Bus server Here is an example for a D-Bus server:
gdbus-example-server.c
subtree: gdbus-example-subtree.c
file descriptors: gdbus-unix-fd-client.c
#GObject: gdbus-example-export.c
GDBusConnection (res = null)
Finishes an operation started with g_dbus_connection_new().
res is a #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_connection_new()..toNativeHandle (Source)
Normalizes a constructor argument into a raw pointer carrier. Accepts a raw NativeHandle, a raw NativeBuffer returned from
fn.call(...), another generated wrapper exposinghandle(), or null. Returns null when the argument carries no pointer.
Source is the raw handle, raw buffer, wrapper, or null.A raw pointer carrier or null when no pointer is present.getLib ()
Returns the opened native library for this generated wrapper.
The opened native library.handle ()
Returns the wrapped NativeHandle.
The wrapped NativeHandle.isNull ()
Returns true when the wrapped handle is null.
A bool.describe ()
Returns a small string for debugging generated wrappers.
A string.asObject ()
Wraps this handle as
GObject.
A GObject object.asAsyncInitable ()
Wraps this handle as
GAsyncInitable.
A GAsyncInitable object.asInitable ()
Wraps this handle as
GInitable.
A GInitable object.connectSignal (string Name, CallbackObj)
Connects one generated callback wrapper to a named signal.
Name is the signal name.CallbackObj is the generated callback wrapper to connect.The connected handler id.disconnectSignalHandler (int HandlerId)
Disconnects one retained signal handler id.
HandlerId is the signal handler id to disconnect.None.setOnClosed (callback Fn, UserData = null)
Emitted when the connection is closed. The cause of this event can be - If g_dbus_connection_close() is called. In this case
is set to %FALSE and @error is %NULL. - If the remote peer closes the connection. In this case @remote_peer_vanished is set to %TRUE and @error is set. - If the remote peer sends invalid or malformed data. In this case @remote_peer_vanished is set to %FALSE andis set. Upon receiving this signal, you should give up your reference to @connection. You are guaranteed that this signal is emitted only once.Fn is the Aussom callback.Fn is called with (GDBusConnection Self, bool Remote_peer_vanished, GError Error).UserData is retained and passed through to the generated callback wrapper when provided.The connected handler id.getProperty (string Name)
Reads one generated property by name.
setProperty (string Name, Value)
Writes one generated property by name.
setExitonclose (bool Value)
A boolean specifying whether the process will be terminated (by calling
raise(SIGTERM)) if the connection is closed by the remote peer. Note that #GDBusConnection objects returned by g_bus_get_finish() and g_bus_get_sync() will (usually) have this property set to %TRUE.
Value is the new property value.None.add_filter (object user_data_free_func)
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. Similarly, 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.)
filter_function is a filter function.user_data is user data to pass to @filter_function.user_data_free_func is function to free @user_data with when filter is removed or %NULL.a filter identifier that can be used with g_dbus_connection_remove_filter().call (string bus_name, string object_path, string interface_name, string method_name, object parameters, object reply_type, string flags, int timeout_msec, object cancellable, user_data)
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.: |[ 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 (see [method@GLib.MainContext.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.
bus_name is a unique or well-known bus name or %NULL if @connection is not a message bus connection.object_path is path of remote object.interface_name is D-Bus interface to invoke method on.method_name is the name of the method to invoke.parameters is a #GVariant tuple with parameters for the method or %NULL if not passing parameters.reply_type is the expected type of the reply (which will be a tuple), or %NULL.flags is flags from the #GDBusCallFlags enumeration.timeout_msec is the timeout in milliseconds, -1 to use the default timeout or %G_MAXINT for no timeout.cancellable is a #GCancellable or %NULL.callback is 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 is the data to pass to @callback.None.call_finish (object res)
Finishes an operation started with g_dbus_connection_call().
res is a #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_connection_call().%NULL if @error is set. Otherwise a non-floating #GVariant tuple with return values. Free with g_variant_unref()..call_sync (string bus_name, string object_path, string interface_name, string method_name, object parameters, object reply_type, string flags, int timeout_msec, object cancellable)
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.: |[ 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.
bus_name is a unique or well-known bus name or %NULL if @connection is not a message bus connection.object_path is path of remote object.interface_name is D-Bus interface to invoke method on.method_name is the name of the method to invoke.parameters is a #GVariant tuple with parameters for the method or %NULL if not passing parameters.reply_type is the expected type of the reply, or %NULL.flags is flags from the #GDBusCallFlags enumeration.timeout_msec is the timeout in milliseconds, -1 to use the default timeout or %G_MAXINT for no timeout.cancellable is a #GCancellable or %NULL.%NULL if @error is set. Otherwise a non-floating #GVariant tuple with return values. Free with g_variant_unref()..call_with_unix_fd_list (string bus_name, string object_path, string interface_name, string method_name, object parameters, object reply_type, string flags, int timeout_msec, object fd_list, object cancellable, user_data)
Like g_dbus_connection_call() but also takes a #GUnixFDList object. The file descriptors normally correspond to %G_VARIANT_TYPE_HANDLE values in the body of the message. For example, if a message contains two file descriptors, @fd_list would have length 2, and
g_variant_new_handle (0)andg_variant_new_handle (1)would appear somewhere in the body of the message (not necessarily in that order!) to represent the file descriptors at indexes 0 and 1 respectively. When designing D-Bus APIs that are intended to be interoperable, please note that non-GDBus implementations of D-Bus can usually only access file descriptors if they are referenced in this way by a value of type %G_VARIANT_TYPE_HANDLE in the body of the message. This method is only available on UNIX.
bus_name is a unique or well-known bus name or %NULL if @connection is not a message bus connection.object_path is path of remote object.interface_name is D-Bus interface to invoke method on.method_name is the name of the method to invoke.parameters is a #GVariant tuple with parameters for the method or %NULL if not passing parameters.reply_type is the expected type of the reply, or %NULL.flags is flags from the #GDBusCallFlags enumeration.timeout_msec is the timeout in milliseconds, -1 to use the default timeout or %G_MAXINT for no timeout.fd_list is a #GUnixFDList or %NULL.cancellable is a #GCancellable or %NULL.callback is 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 is The data to pass to @callback..None.call_with_unix_fd_list_finish (object res)
Finishes an operation started with g_dbus_connection_call_with_unix_fd_list(). The file descriptors normally correspond to %G_VARIANT_TYPE_HANDLE values in the body of the message. For example, if g_variant_get_handle() returns 5, that is intended to be a reference to the file descriptor that can be accessed by
g_unix_fd_list_get (*out_fd_list, 5, ...). When designing D-Bus APIs that are intended to be interoperable, please note that non-GDBus implementations of D-Bus can usually only access file descriptors if they are referenced in this way by a value of type %G_VARIANT_TYPE_HANDLE in the body of the message.
out_fd_list is return location for a #GUnixFDList or %NULL.res is a #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_connection_call_with_unix_fd_list().%NULL if @error is set. Otherwise a non-floating #GVariant tuple with return values. Free with g_variant_unref()..call_with_unix_fd_list_sync (string bus_name, string object_path, string interface_name, string method_name, object parameters, object reply_type, string flags, int timeout_msec, object fd_list, object cancellable)
Like g_dbus_connection_call_sync() but also takes and returns #GUnixFDList objects. See g_dbus_connection_call_with_unix_fd_list() and g_dbus_connection_call_with_unix_fd_list_finish() for more details. This method is only available on UNIX.
bus_name is a unique or well-known bus name or %NULL if @connection is not a message bus connection.object_path is path of remote object.interface_name is D-Bus interface to invoke method on.method_name is the name of the method to invoke.parameters is a #GVariant tuple with parameters for the method or %NULL if not passing parameters.reply_type is the expected type of the reply, or %NULL.flags is flags from the #GDBusCallFlags enumeration.timeout_msec is the timeout in milliseconds, -1 to use the default timeout or %G_MAXINT for no timeout.fd_list is a #GUnixFDList or %NULL.out_fd_list is return location for a #GUnixFDList or %NULL.cancellable is a #GCancellable or %NULL.%NULL if @error is set. Otherwise a non-floating #GVariant tuple with return values. Free with g_variant_unref()..close (object cancellable, user_data)
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 (see [method@GLib.MainContext.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 (see [method@GLib.MainContext.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.
cancellable is a #GCancellable or %NULL.callback is a #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result.user_data is The data to pass to @callback.None.close_finish (object res)
Finishes an operation started with g_dbus_connection_close().
res is a #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_connection_close().%TRUE if the operation succeeded, %FALSE if @error is set.close_sync (object cancellable)
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.
cancellable is a #GCancellable or %NULL.%TRUE if the operation succeeded, %FALSE if @error is set.emit_signal (string destination_bus_name, string object_path, string interface_name, string signal_name, object parameters)
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).
destination_bus_name is the unique bus name for the destination for the signal or %NULL to emit to all listeners.object_path is path of remote object.interface_name is D-Bus interface to emit a signal on.signal_name is the name of the signal to emit.parameters is a #GVariant tuple with parameters for the signal or %NULL if not passing parameters.%TRUE unless @error is set.export_action_group (string object_path, object action_group)
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 [method@Gio.DBusConnection.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.
object_path is a D-Bus object path.action_group is an action group.the ID of the export (never zero), or 0 in case of failure.export_menu_model (string object_path, object menu)
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
set accordingly). Exporting menus with sections containing more than %G_MENU_EXPORTER_MAX_SECTION_SIZE items is not supported and results in undefined behavior. You can unexport the menu model using g_dbus_connection_unexport_menu_model() with the return value of this function.object_path is a D-Bus object path.menu is a #GMenuModel.the ID of the export (never zero), or 0 in case of failure.flush (object cancellable, user_data)
Asynchronously flushes @connection, that is, writes all queued outgoing messages to the transport and then flushes the transport (using g_output_stream_flush_async()). This is useful in programs that want to emit a D-Bus signal and then exit immediately. Without flushing the connection, there is no guarantee 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 (see [method@GLib.MainContext.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.
cancellable is a #GCancellable or %NULL.callback is a #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result.user_data is The data to pass to @callback.None.flush_finish (object res)
Finishes an operation started with g_dbus_connection_flush().
res is a #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_connection_flush().%TRUE if the operation succeeded, %FALSE if @error is set.flush_sync (object cancellable)
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.
cancellable is a #GCancellable or %NULL.%TRUE if the operation succeeded, %FALSE if @error is set.get_capabilities ()
Gets the capabilities negotiated with the remote peer
zero or more flags from the #GDBusCapabilityFlags enumeration.get_exit_on_close ()
Gets whether the process is terminated when @connection is closed by the remote peer. See #GDBusConnection:exit-on-close for more details.
whether the process is terminated when @connection is closed by the remote peer.get_flags ()
Gets the flags used to construct this connection
zero or more flags from the #GDBusConnectionFlags enumeration.get_guid ()
The GUID of the peer performing the role of server when authenticating. See #GDBusConnection:guid for more details.
The GUID. Do not free this string, it is owned by @connection..get_last_serial ()
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().
the last used serial or zero when no message has been sent within the current thread.get_peer_credentials ()
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.
a #GCredentials or %NULL if not available. Do not free this object, it is owned by @connection..get_stream ()
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.
the stream used for IO.get_unique_name ()
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.
the unique name or %NULL if @connection is not a message bus connection. Do not free this string, it is owned by @connection..is_closed ()
Gets whether @connection is closed.
%TRUE if the connection is closed, %FALSE otherwise.register_object (string object_path, object interface_info, object vtable, user_data, object user_data_free_func)
Registers callbacks for exported objects at @object_path with the D-Bus interface that is described in @interface_info. Calls to functions in
(and @user_data_free_func) will happen in the thread-default main context (see [method@GLib.MainContext.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 atand @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][class@Gio.DBusConnection#an-example-d-bus-server] for an example of how to use this method.object_path is the object path to register at.interface_info is introspection data for the interface.vtable is a #GDBusInterfaceVTable to call into or %NULL.user_data is data to pass to functions in @vtable.user_data_free_func is function to call when the object path is unregistered.0 if @error is set, otherwise a registration id (never 0) that can be used with g_dbus_connection_unregister_object().register_object_with_closures (string object_path, object interface_info, object method_call_closure, object get_property_closure, object set_property_closure)
Version of g_dbus_connection_register_object() using closures instead of a #GDBusInterfaceVTable for easier binding in other languages. Note that the reference counting semantics of the function wrapped by
are the same as those of [callback@Gio.DBusInterfaceMethodCallFunc]: ownership of a reference to the [class@Gio.DBusMethodInvocation] is transferred to the function.object_path is The object path to register at..interface_info is Introspection data for the interface..method_call_closure is #GClosure for handling incoming method calls..get_property_closure is #GClosure for getting a property..set_property_closure is #GClosure for setting a property..0 if @error is set, otherwise a registration ID (never 0) that can be used with g_dbus_connection_unregister_object() ..register_object_with_closures2 (string object_path, object interface_info, object method_call_closure, object get_property_closure, object set_property_closure)
Version of [method@Gio.DBusConnection.register_object] using closures instead of a [type@Gio.DBusInterfaceVTable] for easier binding in other languages. In contrast to [method@Gio.DBusConnection.register_object] and [method@Gio.DBusConnection.register_object_with_closures], the reference counting semantics of the function wrapped by @method_call_closure are not the same as those of [callback@Gio.DBusInterfaceMethodCallFunc]. Ownership of a reference to the [class@Gio.DBusMethodInvocation] is not transferred to the function. Bindings must ensure that they add a reference to the [class@Gio.DBusMethodInvocation] before calling any
g_dbus_method_invocation_return_*()methods on it. This should be automatic as a result of the introspection annotations on those methods.
object_path is The object path to register at..interface_info is Introspection data for the interface..method_call_closure is [type@GObject.Closure] for handling incoming method calls..get_property_closure is [type@GObject.Closure] for getting a property..set_property_closure is [type@GObject.Closure] for setting a property..0 if @error is set, otherwise a registration ID (never 0) that can be used with [method@Gio.DBusConnection.unregister_object]..register_subtree (string object_path, object vtable, string flags, user_data, object user_data_free_func)
Registers a whole subtree of dynamic objects. The @enumerate and
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 thefunction 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 (see [method@GLib.MainContext.push_thread_default]) of the thread you are calling this method from. If an existing subtree is already registered ator 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][class@Gio.DBusConnection#an-example-for-exporting-a-subtree] for an example of how to use this method.object_path is the object path to register the subtree at.vtable is a #GDBusSubtreeVTable to enumerate, introspect and dispatch nodes in the subtree.flags is flags used to fine tune the behavior of the subtree.user_data is data to pass to functions in @vtable.user_data_free_func is function to call when the subtree is unregistered.0 if @error is set, otherwise a subtree registration ID (never 0) that can be used with g_dbus_connection_unregister_subtree().remove_filter (int filter_id)
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.
filter_id is an identifier obtained from g_dbus_connection_add_filter().None.send_message (object message, string flags)
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
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. While it has a volatile qualifier, this is a historical artifact and the argument passed to it should not be volatile. 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][class@Gio.DBusConnection#an-example-d-bus-server] and [client][class@Gio.DBusConnection#an-example-for-file-descriptor-passing] 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.message is a #GDBusMessage.flags is flags affecting how the message is sent.out_serial is return location for serial number assigned to @message when sending it or %NULL.%TRUE if the message was well-formed and queued for transmission, %FALSE if @error is set.send_message_with_reply (object message, string flags, int timeout_msec, object cancellable, user_data)
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
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. While it has a volatile qualifier, this is a historical artifact and the argument passed to it should not be volatile. 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 (see [method@GLib.MainContext.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, unlesscontain the %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag. See this [server][class@Gio.DBusConnection#an-example-d-bus-server] and [client][class@Gio.DBusConnection#an-example-for-file-descriptor-passing] for an example of how to use this low-level API to send and receive UNIX file descriptors.message is a #GDBusMessage.flags is flags affecting how the message is sent.timeout_msec is the timeout in milliseconds, -1 to use the default timeout or %G_MAXINT for no timeout.out_serial is return location for serial number assigned to @message when sending it or %NULL.cancellable is a #GCancellable or %NULL.callback is a #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result.user_data is The data to pass to @callback.None.send_message_with_reply_finish (object res)
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][class@Gio.DBusConnection#an-example-d-bus-server] and [client][class@Gio.DBusConnection#an-example-for-file-descriptor-passing] for an example of how to use this low-level API to send and receive UNIX file descriptors.
res is a #GAsyncResult obtained from the #GAsyncReadyCallback passed to g_dbus_connection_send_message_with_reply().a locked #GDBusMessage or %NULL if @error is set.send_message_with_reply_sync (object message, string flags, int timeout_msec, object cancellable)
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. While it has a
volatilequalifier, this is a historical artifact and the argument passed to it should not bevolatile. 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][class@Gio.DBusConnection#an-example-d-bus-server] and [client][class@Gio.DBusConnection#an-example-for-file-descriptor-passing] 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.
message is a #GDBusMessage.flags is flags affecting how the message is sent..timeout_msec is the timeout in milliseconds, -1 to use the default timeout or %G_MAXINT for no timeout.out_serial is return location for serial number assigned to @message when sending it or %NULL.cancellable is a #GCancellable or %NULL.a locked #GDBusMessage that is the reply to @message or %NULL ifis set.set_exit_on_close (bool exit_on_close)
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 with the session bus, and expect all of a user's 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.
exit_on_close is whether the process should be terminated whenis closed by the remote peer.None.signal_subscribe (string sender, string interface_name, string member, string object_path, string arg0, string flags, object user_data_free_func)
Subscribes to signals on @connection and invokes @callback whenever the signal is received. Note that @callback will be invoked in the thread-default main context (see [method@GLib.MainContext.push_thread_default]) of the thread you are calling this method from. If @connection is not a message bus connection,
must be %NULL. If @sender is a well-known name note thatis 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.) As @callback is potentially invoked in a different thread from where it’s emitted, it’s possible for this to happen after g_dbus_connection_signal_unsubscribe() has been called in another thread. Due to this, @user_data should have a strong reference which is freed with @user_data_free_func, rather than pointing to data whose lifecycle is tied to the signal subscription. For example, if a #GObject is used to store the subscription ID from g_dbus_connection_signal_subscribe(), a strong reference to that #GObject must be passed to @user_data, and g_object_unref() passed to @user_data_free_func. You are responsible for breaking the resulting reference count cycle by explicitly unsubscribing from the signal when dropping the last external reference to the #GObject. Alternatively, a weak reference may be used. It is guaranteed that if you unsubscribe from a signal using g_dbus_connection_signal_unsubscribe() from the same thread which made the corresponding g_dbus_connection_signal_subscribe() call, @callback will not be invoked after g_dbus_connection_signal_unsubscribe() returns. The returned subscription identifier is an opaque value which is guaranteed to never be zero. This function can never fail.sender is sender name to match on (unique or well-known name) or %NULL to listen from all senders.interface_name is D-Bus interface name to match on or %NULL to match on all interfaces.member is D-Bus signal name to match on or %NULL to match on all signals.object_path is object path to match on or %NULL to match on all object paths.arg0 is contents of first string argument to match on or %NULL to match on all kinds of arguments.flags is #GDBusSignalFlags describing how arg0 is used in subscribing to the signal.callback is callback to invoke when there is a signal matching the requested data.user_data is user data to pass to @callback.user_data_free_func is function to free @user_data with when subscription is removed or %NULL.a subscription identifier that can be used with g_dbus_connection_signal_unsubscribe().signal_unsubscribe (int subscription_id)
Unsubscribes from signals. Note that there may still be D-Bus traffic to process (relating to this signal subscription) in the current thread-default #GMainContext after this function has returned. You should continue to iterate the #GMainContext until the #GDestroyNotify function passed to g_dbus_connection_signal_subscribe() is called, in order to avoid memory leaks through callbacks queued on the #GMainContext after it’s stopped being iterated. Alternatively, any idle source with a priority lower than %G_PRIORITY_DEFAULT that was scheduled after unsubscription, also indicates that all resources of this subscription are released.
subscription_id is a subscription id obtained from g_dbus_connection_signal_subscribe().None.start_message_processing ()
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.
None.unexport_action_group (int export_id)
Reverses the effect of a previous call to [method@Gio.DBusConnection.export_action_group]. It is an error to call this function with an ID that wasn’t returned from [method@Gio.DBusConnection.export_action_group] or to call it with the same ID more than once.
export_id is the ID from [method@Gio.DBusConnection.export_action_group].None.unexport_menu_model (int export_id)
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.
export_id is the ID from g_dbus_connection_export_menu_model().None.unregister_object (int registration_id)
Unregisters an object.
registration_id is a registration id obtained from g_dbus_connection_register_object().%TRUE if the object was unregistered, %FALSE otherwise.unregister_subtree (int registration_id)
Unregisters a subtree.
registration_id is a subtree registration id obtained from g_dbus_connection_register_subtree().%TRUE if the subtree was unregistered, %FALSE otherwise.[1408:7] extends: object
Generated low-level callback wrapper for GIR callback closed.
GDBusConnectionClosedCallback (callback Fn, UserData = null)
Creates one native callback wrapper. The wrapper owns a trampoline that converts native pointers into generated wrapper objects before invoking
Fn.
Fn is the Aussom callback implementation.UserData is retained and passed through to Fn on each invocation when provided.trampoline (nativeSelf, remote_peer_vanished, error, nativeUserData)
Internal trampoline. Converts native pointer arguments into generated wrapper instances, then invokes the user's callback.
callback ()
Returns the wrapped NativeCallback.
handle ()
Returns the callback as a NativeHandle.
close ()
Closes the underlying NativeCallback.
isClosed ()
Returns true when the callback has been closed.