[][src]Struct zbus::Proxy

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

A client-side interface proxy.

A Proxy is a helper to interact with an interface on a remote object.

Example

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

fn main() -> Result<(), Box<dyn Error>> {
    let connection = Connection::new_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 this point, the Proxy is "simple". Notably, it doesn't:

  • have any signal handling
  • cache properties
  • track the current name owner
  • prevent auto-launching

Implementations

impl<'a> Proxy<'a>[src]

pub fn new(
    conn: &Connection,
    destination: &'a str,
    path: &'a str,
    interface: &'a str
) -> Result<Self>
[src]

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

pub fn new_owned(
    conn: Connection,
    destination: String,
    path: String,
    interface: String
) -> Result<Self>
[src]

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

pub fn introspect(&self) -> Result<String>[src]

Introspect the associated object, and return the XML description.

See the xml module for parsing the result.

pub fn get_property<T>(&self, property_name: &str) -> Result<T> where
    T: TryFrom<OwnedValue>, 
[src]

Get the property property_name.

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

pub fn set_property<'t, T: 't>(
    &self,
    property_name: &str,
    value: T
) -> Result<()> where
    T: Into<Value<'t>>, 
[src]

Set the property property_name.

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

pub fn call_method<B>(&self, method_name: &str, body: &B) -> Result<Message> where
    B: Serialize + Type
[src]

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 avoid the memory allocation/copying, by deserializing the reply to an unowned type).

pub fn call<B, R>(&self, method_name: &str, body: &B) -> Result<R> where
    B: Serialize + Type,
    R: DeserializeOwned + Type
[src]

Call a method and return the reply body.

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

Auto Trait Implementations

impl<'a> !RefUnwindSafe for Proxy<'a>

impl<'a> !Send for Proxy<'a>

impl<'a> !Sync for Proxy<'a>

impl<'a> Unpin for Proxy<'a>

impl<'a> !UnwindSafe for Proxy<'a>

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<T> From<T> for T[src]

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

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.