logo
pub struct Proxy<'a> { /* fields omitted */ }
Expand description

A blocking wrapper of crate::Proxy.

This API is mostly the same as crate::Proxy, except that all its methods block to completion.

Example

use std::result::Result;
use std::error::Error;
use zbus::blocking::{Connection, Proxy};

fn main() -> Result<(), Box<dyn Error>> {
    let connection = Connection::session()?;
    let p = Proxy::new(
        &connection,
        "org.freedesktop.DBus",
        "/org/freedesktop/DBus",
        "org.freedesktop.DBus",
    )?;
    // owned return value
    let _id: String = p.call("GetId", &())?;
    // borrowed return value
    let _id: &str = p.call_method("GetId", &())?.body()?;
    Ok(())
}

Note

It is recommended to use the dbus_proxy macro, which provides a more convenient and type-safe façade Proxy derived from a Rust trait.

Current limitations:

At the moment, Proxy doesn’t prevent auto-launching.

Implementations

Create a new Proxy for the given destination/path/interface.

Create a new Proxy for the given destination/path/interface, taking ownership of all passed arguments.

Get a reference to the associated connection.

Get a reference to the destination service name.

Get a reference to the object path.

Get a reference to the interface.

Introspect the associated object, and return the XML description.

See the xml module for parsing the result.

Get the cached value of the property property_name.

This returns None if the property is not in the cache. This could be because the cache was invalidated by an update, because caching was disabled for this property or proxy, or because the cache has not yet been populated. Use get_property to fetch the value from the peer.

Get the cached value of the property property_name.

Same as cached_property, but gives you access to the raw value stored in the cache. This is useful if you want to avoid allocations and cloning.

Get the property property_name.

Get the property value from the cache or call the Get method of the org.freedesktop.DBus.Properties interface.

Set the property property_name.

Effectively, call the Set method of the org.freedesktop.DBus.Properties interface.

Call a method and return the reply.

Typically, you would want to use call method instead. Use this method if you need to deserialize the reply message manually (this way, you can avoid the memory allocation/copying, by deserializing the reply to an unowned type).

Call a method and return the reply body.

Use call_method instead if you need to deserialize the reply manually/separately.

Call a method without expecting a reply

This sets the NoReplyExpected flag on the calling message and does not wait for a reply.

Create a stream for signal named signal_name.

Errors

Apart from general I/O errors that can result from socket communications, calling this method will also result in an error if the destination service has not yet registered its well-known name with the bus (assuming you’re using the well-known name as destination).

Create a stream for all signals emitted by this service.

Errors

Apart from general I/O errors that can result from socket communications, calling this method will also result in an error if the destination service has not yet registered its well-known name with the bus (assuming you’re using the well-known name as destination).

Get an iterator to receive owner changed events.

If the proxy destination is a unique name, the stream will be notified of the peer disconnection from the bus (with a None value).

If the proxy destination is a well-known name, the stream will be notified whenever the name owner is changed, either by a new peer being granted ownership (Some value) or when the name is released (with a None value).

Note that zbus doesn’t queue the updates. If the listener is slower than the receiver, it will only receive the last update.

Get an iterator to receive property changed events.

Note that zbus doesn’t queue the updates. If the listener is slower than the receiver, it will only receive the last update.

Get a reference to the underlying async Proxy.

Get the underlying async Proxy, consuming self.

Trait Implementations

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Performs the conversion.

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Performs the conversion.

Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.