Struct DBus

Source
pub struct DBus { /* private fields */ }
Expand description

This struct represents an object to communicate with the DBus daemon.

Implementations§

Source§

impl DBus

Source

pub async fn session( introspectable: bool, peer: bool, ) -> DBusResult<(DBus, JoinHandle<()>)>

Connect to the session DBus.

If the first argument (introspectable) is true then the Peer is introspectable. If the second argument (peer) is true then the Peer has the org.freedesktop.DBus.Peer.

The DBUS_SESSION_BUS_ADDRESS environment variable have to be defined.

Source

pub async fn system( introspectable: bool, peer: bool, ) -> DBusResult<(DBus, JoinHandle<()>)>

Connect to the system DBus.

If the first argument (introspectable) is true then the Peer is introspectable. If the second argument (peer) is true then the Peer has the org.freedesktop.DBus.Peer.

If there DBUS_SYSTEM_BUS_ADDRESS environment variable is defined then this path will be used, else unix:path=/var/run/dbus/system_bus_socket.

Source

pub async fn new( addressses: &str, introspectable: bool, peer: bool, ) -> DBusResult<(DBus, JoinHandle<()>)>

Connect to the specific (addressses) DBus daemon.

If the second argument (introspectable) is true then the Peer is introspectable. If the third argument (peer) is true then the Peer has the org.freedesktop.DBus.Peer.

Source

pub fn send(&self, msg: Message) -> DBusResult<()>

Send a Message.

Source

pub async fn call(&self, msg: Message) -> DBusResult<Message>

Send a Message and wait for a response.

The Message have to be a MessageCall.

Source

pub async fn call_reply_serial( &self, msg: Message, msg_sender: MpscSender<Message>, ) -> DBusResult<u32>

Send a Message and specify a channel, where the response should be send.

This function returns the serial number of the Message. This is useful, where the the response and signals have to be processed in order.

Source

pub async fn request_name( &self, name: Bus, flags: &DBusNameFlag, ) -> DBusResult<Message>

Register a name for the peer. This calls the RequestName(String, UInt32) method of the DBus daemon.

Source

pub fn add_method_call( &self, object_path: ObjectPath, sender: MpscSender<Message>, ) -> DBusResult<()>

Add a channel to a specific ObjectPath.

The channel will receive all MethodCall messages for the specified ObjectPath.

If there is already channel added for this ObjectPath then it will be replace. So the old channel will not receive any MethodCall messages for the ObjectPath anymore.

Source

pub fn delete_object_path(&self, object_path: ObjectPath) -> DBusResult<()>

Delete the channel for a specific ObjectPath (see add_method_call).

Even if there is no channel for this ObjectPath the function will return Ok().

Source

pub fn delete_method_call_sender( &self, sender: MpscSender<Message>, ) -> DBusResult<()>

Delete the channel for every ObjectPath, which the given sender is connected to (see add_method_call).

Source

pub fn delete_method_call_receiver( &self, receiver: MpscReceiver<Message>, ) -> DBusResult<()>

Delete the channel for every ObjectPath, which the given sender is connected to (see add_method_call).

Source

pub fn add_method_call_interface( &self, interface: Interface, sender: MpscSender<Message>, ) -> DBusResult<()>

Add a channel to a specific Interface.

The channel will only receive all MethodCall messages for the specified Interface, if there is no channel by the ObjectPath.

If there is already channel added for this Interface then it will be replace. So the old channel will not receive any MethodCall messages for the Interface anymore.

Source

pub fn delete_method_call_interface_sender( &self, sender: MpscSender<Message>, ) -> DBusResult<()>

Delete the channel for every Interface, which the given sender is connected to (see add_method_call_interface).

Source

pub fn delete_method_call_interface_receiver( &self, receiver: MpscReceiver<Message>, ) -> DBusResult<()>

Delete the channel for every Interface, which the given sender is connected to (see add_method_call_interface).

Source

pub fn add_signal( &self, object_path: ObjectPath, filter: Option<fn(&Message) -> bool>, sender: MpscSender<Message>, ) -> DBusResult<()>

Add a channel to a specific ObjectPath.

The channel will receive all Signal messages for the specified ObjectPath.

The second argument specify a closure to filter the Message. If the closure returns true then the Message will not be send to the channel.

There can be multiple channels, which will receive message of the specific ObjectPath.

Source

pub fn delete_signal_sender( &self, sender: MpscSender<Message>, ) -> DBusResult<()>

Delete the channel for every ObjectPath, which the given sender is connected to (see add_signal).

Source

pub fn delete_signal_receiver( &self, receiver: MpscReceiver<Message>, ) -> DBusResult<()>

Delete the channel for every ObjectPath, which the given sender is connected to (see add_signal).

Source

pub fn add_match_rules( &self, match_rules: Vec<MatchRule>, sender: MpscSender<Message>, ) -> DBusResult<()>

Add a channel to a specific MatchRules.

The channel will receive all message, which match the given MatchRules.

Source

pub fn delete_match_rules_sender( &self, sender: MpscSender<Message>, ) -> DBusResult<()>

Delete the channel for every MatchRules, which the given sender is connected to (see add_match_rules).

Source

pub fn delete_match_rules_receiver( &self, receiver: MpscReceiver<Message>, ) -> DBusResult<()>

Delete the channel for every MatchRules, which the given sender is connected to (see add_match_rules).

Source

pub async fn list_method_call( &self, object_path: ObjectPath, ) -> DBusResult<HashSet<String>>

List all ObjectPaths under the given ObjectPath.

This will only list the ObjectPath for the MethodCall messages (see add_method_call).

Source

pub fn close(&self) -> DBusResult<()>

Close the DBus connection.

Source

pub fn get_address(&self) -> &Address

Get the current path of the DBus daemon.

Trait Implementations§

Source§

impl Clone for DBus

Source§

fn clone(&self) -> DBus

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl Freeze for DBus

§

impl !RefUnwindSafe for DBus

§

impl Send for DBus

§

impl Sync for DBus

§

impl Unpin for DBus

§

impl !UnwindSafe for DBus

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.