[]Struct gio::DBusMethodInvocation

pub struct DBusMethodInvocation(_, _);

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 DBusConnection::register_object.

Implements

glib::object::ObjectExt

Implementations

impl DBusMethodInvocation[src]

pub fn return_error<T: ErrorDomain>(&self, error: T, message: &str)[src]

Finishes handling a D-Bus method call by returning an error.

See DBusError::encode_gerror for details about what error name will be returned on the wire. In a nutshell, if the given error is registered using DBusError::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 glib::Error between applications using GDBus.

If you are writing an application intended to be portable, always register errors with DBusError::register_error or use DBusMethodInvocation::return_dbus_error.

This method will take ownership of self. See DBusInterfaceVTable for more information about the ownership of self.

Since 2.48, if the method call requested for a reply not to be sent then this call will free self but otherwise do nothing (as per the recommendations of the D-Bus specification).

domain

A glib::Quark for the glib::Error error domain.

code

The error code.

format

printf-style format.

pub fn return_gerror(&self, error: Error)[src]

Like DBusMethodInvocation::return_error but takes a glib::Error instead of the error domain, error code and message.

This method will take ownership of self. See DBusInterfaceVTable for more information about the ownership of self.

error

A glib::Error.

impl DBusMethodInvocation[src]

pub fn get_connection(&self) -> Option<DBusConnection>[src]

Gets the DBusConnection the method was invoked on.

Returns

A DBusConnection. Do not free, it is owned by self.

pub fn get_interface_name(&self) -> Option<GString>[src]

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.

Returns

A string. Do not free, it is owned by self.

pub fn get_message(&self) -> Option<DBusMessage>[src]

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 glib::Variant 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

DBusMessage. Do not free, it is owned by self.

pub fn get_method_info(&self) -> Option<DBusMethodInfo>[src]

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 None will be returned. See DBusMethodInvocation::get_property_info and DBusInterfaceVTable for more information.

Returns

A DBusMethodInfo or None. Do not free, it is owned by self.

pub fn get_method_name(&self) -> Option<GString>[src]

Gets the name of the method that was invoked.

Returns

A string. Do not free, it is owned by self.

pub fn get_object_path(&self) -> Option<GString>[src]

Gets the object path the method was invoked on.

Returns

A string. Do not free, it is owned by self.

pub fn get_parameters(&self) -> Option<Variant>[src]

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 glib::Variant tuple. Do not unref this because it is owned by self.

pub fn get_property_info(&self) -> Option<DBusPropertyInfo>[src]

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, None will be returned.

Returns

a DBusPropertyInfo or None

pub fn get_sender(&self) -> Option<GString>[src]

Gets the bus name that invoked the method.

Returns

A string. Do not free, it is owned by self.

pub fn return_dbus_error(&self, error_name: &str, error_message: &str)[src]

Finishes handling a D-Bus method call by returning an error.

This method will take ownership of self. See DBusInterfaceVTable for more information about the ownership of self.

error_name

A valid D-Bus error name.

error_message

A valid D-Bus error message.

pub fn return_value(&self, parameters: Option<&Variant>)[src]

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 None 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 @self here; returning a value does that

This method will take ownership of self. See DBusInterfaceVTable for more information about the ownership of self.

Since 2.48, if the method call requested for a reply not to be sent then this call will sink parameters and free self, but otherwise do nothing (as per the recommendations of the D-Bus specification).

parameters

A glib::Variant tuple with out parameters for the method or None if not passing any parameters.

pub fn return_value_with_unix_fd_list<P: IsA<UnixFDList>>(
    &self,
    parameters: Option<&Variant>,
    fd_list: Option<&P>
)
[src]

Like DBusMethodInvocation::return_value but also takes a UnixFDList.

This method is only available on UNIX.

This method will take ownership of self. See DBusInterfaceVTable for more information about the ownership of self.

parameters

A glib::Variant tuple with out parameters for the method or None if not passing any parameters.

fd_list

A UnixFDList or None.

Trait Implementations

impl Clone for DBusMethodInvocation

impl Debug for DBusMethodInvocation

impl Display for DBusMethodInvocation[src]

impl Eq for DBusMethodInvocation

impl Hash for DBusMethodInvocation

impl Ord for DBusMethodInvocation

impl<T: ObjectType> PartialEq<T> for DBusMethodInvocation

impl<T: ObjectType> PartialOrd<T> for DBusMethodInvocation

impl StaticType for DBusMethodInvocation

Auto Trait Implementations

impl RefUnwindSafe for DBusMethodInvocation

impl !Send for DBusMethodInvocation

impl !Sync for DBusMethodInvocation

impl Unpin for DBusMethodInvocation

impl UnwindSafe for DBusMethodInvocation

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<Super, Sub> CanDowncast<Sub> for Super where
    Sub: IsA<Super>,
    Super: IsA<Super>, 

impl<T> Cast for T where
    T: ObjectType, 

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ObjectExt for T where
    T: ObjectType, 

impl<'a, T> ToGlibContainerFromSlice<'a, *const GList> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 

type Storage = (Option<List>, Vec<Stash<'a, <T as GlibPtrDefault>::GlibType, T>>)

impl<'a, T> ToGlibContainerFromSlice<'a, *const GPtrArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 

type Storage = (Option<PtrArray>, Vec<Stash<'a, <T as GlibPtrDefault>::GlibType, T>>)

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 

type Storage = (Option<Array>, Vec<Stash<'a, <T as GlibPtrDefault>::GlibType, T>>)

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GList> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 

type Storage = (Option<List>, Vec<Stash<'a, <T as GlibPtrDefault>::GlibType, T>>)

impl<'a, T> ToGlibContainerFromSlice<'a, *mut GPtrArray> for T where
    T: GlibPtrDefault + ToGlibPtr<'a, <T as GlibPtrDefault>::GlibType>, 

type Storage = (Option<PtrArray>, Vec<Stash<'a, <T as GlibPtrDefault>::GlibType, T>>)

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToSendValue for T where
    T: ToValue + SetValue + Send + ?Sized

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> ToValue for T where
    T: SetValue + ?Sized

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.