Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
Instances of the DBusMethodInvocation
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 DBusMethodInvocation
object is to receive
it as an argument to the handle_method_call()
function in a
DBusInterfaceVTable
that was passed to g_dbus_connection_register_object()
.
Since: 2.26
Synopsis
- newtype DBusMethodInvocation = DBusMethodInvocation (ManagedPtr DBusMethodInvocation)
- class GObject o => IsDBusMethodInvocation o
- toDBusMethodInvocation :: (MonadIO m, IsDBusMethodInvocation o) => o -> m DBusMethodInvocation
- noDBusMethodInvocation :: Maybe DBusMethodInvocation
- dBusMethodInvocationGetConnection :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> m DBusConnection
- dBusMethodInvocationGetInterfaceName :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> m Text
- dBusMethodInvocationGetMessage :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> m DBusMessage
- dBusMethodInvocationGetMethodInfo :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> m DBusMethodInfo
- dBusMethodInvocationGetMethodName :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> m Text
- dBusMethodInvocationGetObjectPath :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> m Text
- dBusMethodInvocationGetParameters :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> m GVariant
- dBusMethodInvocationGetPropertyInfo :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> m DBusPropertyInfo
- dBusMethodInvocationGetSender :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> m Text
- dBusMethodInvocationReturnDbusError :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> Text -> Text -> m ()
- dBusMethodInvocationReturnErrorLiteral :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> Word32 -> Int32 -> Text -> m ()
- dBusMethodInvocationReturnGerror :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> GError -> m ()
- dBusMethodInvocationReturnValue :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) => a -> Maybe GVariant -> m ()
- dBusMethodInvocationReturnValueWithUnixFdList :: (HasCallStack, MonadIO m, IsDBusMethodInvocation a, IsUnixFDList b) => a -> Maybe GVariant -> Maybe b -> m ()
Exported types
newtype DBusMethodInvocation Source #
Memory-managed wrapper type.
Instances
class GObject o => IsDBusMethodInvocation o Source #
Type class for types which can be safely cast to DBusMethodInvocation
, for instance with toDBusMethodInvocation
.
Instances
toDBusMethodInvocation :: (MonadIO m, IsDBusMethodInvocation o) => o -> m DBusMethodInvocation Source #
Cast to DBusMethodInvocation
, for types for which this is known to be safe. For general casts, use castTo
.
noDBusMethodInvocation :: Maybe DBusMethodInvocation Source #
A convenience alias for Nothing
:: Maybe
DBusMethodInvocation
.
Methods
getConnection
dBusMethodInvocationGetConnection Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> m DBusConnection | Returns: A |
Gets the DBusConnection
the method was invoked on.
Since: 2.26
getInterfaceName
dBusMethodInvocationGetInterfaceName Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> m Text | Returns: A string. Do not free, it is owned by |
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
DBusInterfaceVTable
for more information.
Since: 2.26
getMessage
dBusMethodInvocationGetMessage Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> m DBusMessage | Returns: |
Gets the DBusMessage
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.
Since: 2.26
getMethodInfo
dBusMethodInvocationGetMethodInfo Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> m DBusMethodInfo | Returns: A |
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 Nothing
will be
returned. See dBusMethodInvocationGetPropertyInfo
and
DBusInterfaceVTable
for more information.
Since: 2.26
getMethodName
dBusMethodInvocationGetMethodName Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> m Text | Returns: A string. Do not free, it is owned by |
Gets the name of the method that was invoked.
Since: 2.26
getObjectPath
dBusMethodInvocationGetObjectPath Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> m Text | Returns: A string. Do not free, it is owned by |
Gets the object path the method was invoked on.
Since: 2.26
getParameters
dBusMethodInvocationGetParameters Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> m GVariant | Returns: A |
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.
Since: 2.26
getPropertyInfo
dBusMethodInvocationGetPropertyInfo Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> m DBusPropertyInfo | Returns: a |
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 DBusInterfaceVTable
for more information.
If the call was GetAll, Nothing
will be returned.
Since: 2.38
getSender
dBusMethodInvocationGetSender Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> m Text | Returns: A string. Do not free, it is owned by |
Gets the bus name that invoked the method.
Since: 2.26
returnDbusError
dBusMethodInvocationReturnDbusError Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> Text |
|
-> Text |
|
-> m () |
Finishes handling a D-Bus method call by returning an error.
This method will take ownership of invocation
. See
DBusInterfaceVTable
for more information about the ownership of
invocation
.
Since: 2.26
returnErrorLiteral
dBusMethodInvocationReturnErrorLiteral Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> Word32 |
|
-> Int32 |
|
-> Text |
|
-> m () |
Like g_dbus_method_invocation_return_error()
but without printf()
-style formatting.
This method will take ownership of invocation
. See
DBusInterfaceVTable
for more information about the ownership of
invocation
.
Since: 2.26
returnGerror
dBusMethodInvocationReturnGerror Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> GError |
|
-> m () |
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
DBusInterfaceVTable
for more information about the ownership of
invocation
.
Since: 2.26
returnValue
dBusMethodInvocationReturnValue Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a) | |
=> a |
|
-> Maybe GVariant |
|
-> m () |
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 Nothing
or an empty tuple.
C code
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
DBusInterfaceVTable
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
returnValueWithUnixFdList
dBusMethodInvocationReturnValueWithUnixFdList Source #
:: (HasCallStack, MonadIO m, IsDBusMethodInvocation a, IsUnixFDList b) | |
=> a |
|
-> Maybe GVariant |
|
-> Maybe b |
|
-> m () |
Like dBusMethodInvocationReturnValue
but also takes a UnixFDList
.
This method is only available on UNIX.
This method will take ownership of invocation
. See
DBusInterfaceVTable
for more information about the ownership of
invocation
.
Since: 2.30