Class DBusInterfaceVTable
- All Implemented Interfaces:
Proxy
Since 2.38, if you want to handle getting/setting D-Bus properties
asynchronously, give null as your get_property() or set_property()
function. The D-Bus call will be directed to your methodCall function,
with the provided interfaceName set to "org.freedesktop.DBus.Properties".
Ownership of the GDBusMethodInvocation object passed to the
method_call() function is transferred to your handler; you must
call one of the methods of GDBusMethodInvocation to return a reply
(possibly empty), or an error. These functions also take ownership
of the passed-in invocation object, so unless the invocation
object has otherwise been referenced, it will be then be freed.
Calling one of these functions may be done within your
method_call() implementation but it also can be done at a later
point to handle the method asynchronously.
The usual checks on the validity of the calls is performed. For
Get calls, an error is automatically returned if the property does
not exist or the permissions do not allow access. The same checks are
performed for Set calls, and the provided value is also checked for
being the correct type.
For both Get and Set calls, the GDBusMethodInvocation
passed to the methodCall handler can be queried with
g_dbus_method_invocation_get_property_info() to get a pointer
to the GDBusPropertyInfo of the property.
If you have readable properties specified in your interface info,
you must ensure that you either provide a non-null getProperty()
function or provide implementations of both the Get and GetAll
methods on org.freedesktop.DBus.Properties interface in your methodCall
function. Note that the required return type of the Get call is
(v), not the type of the property. GetAll expects a return value
of type a{sv}.
If you have writable properties specified in your interface info,
you must ensure that you either provide a non-null setProperty()
function or provide an implementation of the Set call. If implementing
the call, you must return the value of type G_VARIANT_TYPE_UNIT.
- Since:
- 2.26
-
Constructor Summary
ConstructorsConstructorDescriptionAllocate a new DBusInterfaceVTable.DBusInterfaceVTable(Arena arena) Allocate a new DBusInterfaceVTable.DBusInterfaceVTable(MemorySegment address) Create a DBusInterfaceVTable proxy instance for the provided memory address.DBusInterfaceVTable(DBusInterfaceMethodCallFunc methodCall, DBusInterfaceGetPropertyFunc getProperty, DBusInterfaceSetPropertyFunc setProperty) Allocate a new DBusInterfaceVTable with the fields set to the provided values.DBusInterfaceVTable(DBusInterfaceMethodCallFunc methodCall, DBusInterfaceGetPropertyFunc getProperty, DBusInterfaceSetPropertyFunc setProperty, Arena arena) Allocate a new DBusInterfaceVTable with the fields set to the provided values. -
Method Summary
Modifier and TypeMethodDescriptionstatic MemoryLayoutThe memory layout of the native struct.@Nullable DBusInterfaceGetPropertyFuncRead the value of the fieldget_property.@Nullable DBusInterfaceMethodCallFuncRead the value of the fieldmethod_call.@Nullable DBusInterfaceSetPropertyFuncRead the value of the fieldset_property.voidwriteGetProperty(@Nullable DBusInterfaceGetPropertyFunc getProperty, Arena _arena) Write a value in the fieldget_property.voidwriteMethodCall(@Nullable DBusInterfaceMethodCallFunc methodCall, Arena _arena) Write a value in the fieldmethod_call.voidwriteSetProperty(@Nullable DBusInterfaceSetPropertyFunc setProperty, Arena _arena) Write a value in the fieldset_property.Methods inherited from class org.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
DBusInterfaceVTable
Create a DBusInterfaceVTable proxy instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
DBusInterfaceVTable
Allocate a new DBusInterfaceVTable.- Parameters:
arena- to control the memory allocation scope
-
DBusInterfaceVTable
public DBusInterfaceVTable()Allocate a new DBusInterfaceVTable. The memory is allocated withArena.ofAuto(). -
DBusInterfaceVTable
public DBusInterfaceVTable(DBusInterfaceMethodCallFunc methodCall, DBusInterfaceGetPropertyFunc getProperty, DBusInterfaceSetPropertyFunc setProperty, Arena arena) Allocate a new DBusInterfaceVTable with the fields set to the provided values.- Parameters:
methodCall- value for the fieldmethodCallgetProperty- value for the fieldgetPropertysetProperty- value for the fieldsetPropertyarena- to control the memory allocation scope
-
DBusInterfaceVTable
public DBusInterfaceVTable(DBusInterfaceMethodCallFunc methodCall, DBusInterfaceGetPropertyFunc getProperty, DBusInterfaceSetPropertyFunc setProperty) Allocate a new DBusInterfaceVTable with the fields set to the provided values. The memory is allocated withArena.ofAuto().- Parameters:
methodCall- value for the fieldmethodCallgetProperty- value for the fieldgetPropertysetProperty- value for the fieldsetProperty
-
-
Method Details
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
readMethodCall
Read the value of the fieldmethod_call.- Returns:
- The value of the field
method_call
-
writeMethodCall
Write a value in the fieldmethod_call.- Parameters:
methodCall- The new value for the fieldmethod_call_arena- to control the memory allocation scope
-
readGetProperty
Read the value of the fieldget_property.- Returns:
- The value of the field
get_property
-
writeGetProperty
Write a value in the fieldget_property.- Parameters:
getProperty- The new value for the fieldget_property_arena- to control the memory allocation scope
-
readSetProperty
Read the value of the fieldset_property.- Returns:
- The value of the field
set_property
-
writeSetProperty
Write a value in the fieldset_property.- Parameters:
setProperty- The new value for the fieldset_property_arena- to control the memory allocation scope
-