Class DBusMethodInvocation
- All Implemented Interfaces:
Proxy
GDBusMethodInvocation
class are used when
handling D-Bus method calls. It provides a way to asynchronously
return results and errors.
The normal way to obtain a GDBusMethodInvocation
object is to receive
it as an argument to the handle_method_call()
function in a
Gio.DBusInterfaceVTable
that was passed to
DBusConnection.registerObject(java.lang.String, org.gnome.gio.DBusInterfaceInfo, org.gnome.gio.DBusInterfaceVTable, java.lang.foreign.MemorySegment)
.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Inner class implementing a builder pattern to construct a GObject with properties.Nested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass
-
Constructor Summary
ConstructorDescriptionDBusMethodInvocation
(MemorySegment address) Create a DBusMethodInvocation proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionprotected DBusMethodInvocation
asParent()
Returns this instance as if it were its parent type.static DBusMethodInvocation.Builder
<? extends DBusMethodInvocation.Builder> builder()
ADBusMethodInvocation.Builder
object constructs aDBusMethodInvocation
with the specified properties.Gets theGDBusConnection
the method was invoked on.Gets the name of the D-Bus interface the method was invoked on.Gets theGDBusMessage
for the method invocation.Gets information about the method call, if any.Gets the name of the method that was invoked.Gets the object path the method was invoked on.Gets the parameters of the method invocation.Gets information about the property that this method call is for, if any.Gets the bus name that invoked the method.static Type
getType()
Get the GType of the DBusMethodInvocation classGets theuserData
gpointer
passed to g_dbus_connection_register_object().void
returnDbusError
(String errorName, String errorMessage) Finishes handling a D-Bus method call by returning an error.void
returnError
(Quark domain, int code, String format, Object... varargs) Finishes handling a D-Bus method call by returning an error.void
returnErrorLiteral
(Quark domain, int code, String message) Like g_dbus_method_invocation_return_error() but without printf()-style formatting.void
returnGerror
(GError error) Like g_dbus_method_invocation_return_error() but takes aGError
instead of the error domain, error code and message.void
returnValue
(@Nullable Variant parameters) Finishes handling a D-Bus method call by returningparameters
.void
returnValueWithUnixFdList
(@Nullable Variant parameters, @Nullable UnixFDList fdList) Like g_dbus_method_invocation_return_value() but also takes aGUnixFDList
.void
Like g_dbus_method_invocation_return_gerror() but takes ownership oferror
so the caller does not need to free it.Methods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getMemoryLayout, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newInstance, newInstance, newv, notify_, notify_, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withProperties
Methods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClass
Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
DBusMethodInvocation
Create a DBusMethodInvocation proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
-
Method Details
-
getType
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuper
keyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()
doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName()
. This will call the native function pointer of this virtual method in the typeclass of the parent type. -
getConnection
Gets theGDBusConnection
the method was invoked on.- Returns:
- A
GDBusConnection
. Do not free, it is owned by this DBusMethodInvocation.
-
getInterfaceName
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 this DBusMethodInvocation.
-
getMessage
Gets theGDBusMessage
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 theGVariant
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:
GDBusMessage
. Do not free, it is owned by this DBusMethodInvocation.
-
getMethodInfo
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() andGDBusInterfaceVTable
for more information.- Returns:
- A
GDBusMethodInfo
ornull
. Do not free, it is owned by this DBusMethodInvocation.
-
getMethodName
Gets the name of the method that was invoked.- Returns:
- A string. Do not free, it is owned by this DBusMethodInvocation.
-
getObjectPath
Gets the object path the method was invoked on.- Returns:
- A string. Do not free, it is owned by this DBusMethodInvocation.
-
getParameters
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:
- A
GVariant
tuple. Do not unref this because it is owned by this DBusMethodInvocation.
-
getPropertyInfo
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:
- a
GDBusPropertyInfo
ornull
-
getSender
Gets the bus name that invoked the method.- Returns:
- A string. Do not free, it is owned by this DBusMethodInvocation.
-
getUserData
Gets theuserData
gpointer
passed to g_dbus_connection_register_object().- Returns:
- A
gpointer
.
-
returnDbusError
Finishes handling a D-Bus method call by returning an error.This method will take ownership of this DBusMethodInvocation. See
GDBusInterfaceVTable
for more information about the ownership of this DBusMethodInvocation.- Parameters:
errorName
- A valid D-Bus error name.errorMessage
- A valid D-Bus error message.
-
returnError
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 ofGError
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 this DBusMethodInvocation. See
GDBusInterfaceVTable
for more information about the ownership of this DBusMethodInvocation.Since 2.48, if the method call requested for a reply not to be sent then this call will free this DBusMethodInvocation but otherwise do nothing (as per the recommendations of the D-Bus specification).
- Parameters:
domain
- AGQuark
for theGError
error domain.code
- The error code.format
- printf()-style format.varargs
- Parameters forformat
.
-
returnErrorLiteral
Like g_dbus_method_invocation_return_error() but without printf()-style formatting.This method will take ownership of this DBusMethodInvocation. See
GDBusInterfaceVTable
for more information about the ownership of this DBusMethodInvocation.- Parameters:
domain
- AGQuark
for theGError
error domain.code
- The error code.message
- The error message.
-
returnGerror
Like g_dbus_method_invocation_return_error() but takes aGError
instead of the error domain, error code and message.This method will take ownership of this DBusMethodInvocation. See
GDBusInterfaceVTable
for more information about the ownership of this DBusMethodInvocation.- Parameters:
error
- AGError
.
-
returnValue
Finishes handling a D-Bus method call by returningparameters
. If theparameters
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 benull
or an empty tuple.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 this DBusMethodInvocation. See
GDBusInterfaceVTable
for more information about the ownership of this DBusMethodInvocation.Since 2.48, if the method call requested for a reply not to be sent then this call will sink
parameters
and free this DBusMethodInvocation, but otherwise do nothing (as per the recommendations of the D-Bus specification).- Parameters:
parameters
- AGVariant
tuple with out parameters for the method ornull
if not passing any parameters.
-
returnValueWithUnixFdList
public void returnValueWithUnixFdList(@Nullable @Nullable Variant parameters, @Nullable @Nullable UnixFDList fdList) Like g_dbus_method_invocation_return_value() but also takes aGUnixFDList
.This method is only available on UNIX.
This method will take ownership of this DBusMethodInvocation. See
GDBusInterfaceVTable
for more information about the ownership of this DBusMethodInvocation.- Parameters:
parameters
- AGVariant
tuple with out parameters for the method ornull
if not passing any parameters.fdList
- AGUnixFDList
ornull
.
-
takeError
Like g_dbus_method_invocation_return_gerror() but takes ownership oferror
so the caller does not need to free it.This method will take ownership of this DBusMethodInvocation. See
GDBusInterfaceVTable
for more information about the ownership of this DBusMethodInvocation.- Parameters:
error
- AGError
.
-
builder
ADBusMethodInvocation.Builder
object constructs aDBusMethodInvocation
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withDBusMethodInvocation.Builder.build()
.
-