pub trait Interface: Any + Send + Sync {
fn name() -> InterfaceName<'static>
where
Self: Sized;
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
property_name: &'life1 str
) -> Pin<Box<dyn Future<Output = Option<Result<OwnedValue>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn get_all<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = HashMap<String, OwnedValue>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn set_mut<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 mut self,
property_name: &'life1 str,
value: &'life2 Value<'life3>,
ctxt: &'life4 SignalContext<'life5>
) -> Pin<Box<dyn Future<Output = Option<Result<()>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Self: 'async_trait;
fn call<'call>(
&'call self,
server: &'call ObjectServer,
connection: &'call Connection,
msg: &'call Message,
name: MemberName<'call>
) -> DispatchResult<'call>;
fn call_mut<'call>(
&'call mut self,
server: &'call ObjectServer,
connection: &'call Connection,
msg: &'call Message,
name: MemberName<'call>
) -> DispatchResult<'call>;
fn introspect_to_writer(&self, writer: &mut dyn Write, level: usize);
fn set<'call>(
&'call self,
property_name: &'call str,
value: &'call Value<'_>,
ctxt: &'call SignalContext<'_>
) -> DispatchResult<'call> { ... }
}
Expand description
The trait used to dispatch messages to an interface instance.
Note: It is not recommended to manually implement this trait. The dbus_interface
macro
implements it for you.
Required Methods
fn name() -> InterfaceName<'static> where
Self: Sized,
fn name() -> InterfaceName<'static> where
Self: Sized,
Return the name of the interface. Ex: “org.foo.MyInterface”
Get a property value. Returns None
if the property doesn’t exist.
Return all the properties.
fn set_mut<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 mut self,
property_name: &'life1 str,
value: &'life2 Value<'life3>,
ctxt: &'life4 SignalContext<'life5>
) -> Pin<Box<dyn Future<Output = Option<Result<()>>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Self: 'async_trait,
fn set_mut<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'async_trait>(
&'life0 mut self,
property_name: &'life1 str,
value: &'life2 Value<'life3>,
ctxt: &'life4 SignalContext<'life5>
) -> Pin<Box<dyn Future<Output = Option<Result<()>>> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
Self: 'async_trait,
Set a property value.
Returns None
if the property doesn’t exist.
This will only be invoked if set
returned RequiresMut
.
fn call<'call>(
&'call self,
server: &'call ObjectServer,
connection: &'call Connection,
msg: &'call Message,
name: MemberName<'call>
) -> DispatchResult<'call>
fn call<'call>(
&'call self,
server: &'call ObjectServer,
connection: &'call Connection,
msg: &'call Message,
name: MemberName<'call>
) -> DispatchResult<'call>
Call a method.
Return DispatchResult::NotFound
if the method doesn’t exist, or
DispatchResult::RequiresMut
if call_mut
should be used instead.
It is valid, though inefficient, for this to always return RequiresMut
.
fn call_mut<'call>(
&'call mut self,
server: &'call ObjectServer,
connection: &'call Connection,
msg: &'call Message,
name: MemberName<'call>
) -> DispatchResult<'call>
fn call_mut<'call>(
&'call mut self,
server: &'call ObjectServer,
connection: &'call Connection,
msg: &'call Message,
name: MemberName<'call>
) -> DispatchResult<'call>
Call a &mut self
method.
This will only be invoked if call
returned RequiresMut
.
fn introspect_to_writer(&self, writer: &mut dyn Write, level: usize)
fn introspect_to_writer(&self, writer: &mut dyn Write, level: usize)
Write introspection XML to the writer, with the given indentation level.
Provided Methods
fn set<'call>(
&'call self,
property_name: &'call str,
value: &'call Value<'_>,
ctxt: &'call SignalContext<'_>
) -> DispatchResult<'call>
fn set<'call>(
&'call self,
property_name: &'call str,
value: &'call Value<'_>,
ctxt: &'call SignalContext<'_>
) -> DispatchResult<'call>
Set a property value.
Return DispatchResult::NotFound
if the property doesn’t exist, or
DispatchResult::RequiresMut
if set_mut
should be used instead. The default
implementation just returns RequiresMut
.