[][src]Struct capnp_rpc::RpcSystem

#[must_use = "futures do nothing unless polled"]
pub struct RpcSystem<VatId> where
    VatId: 'static, 
{ /* fields omitted */ }
[]

A portal to objects available on the network.

The RPC implemententation sits on top of an implementation of VatNetwork, which determines how to form connections between vats. The RPC implementation determines how to use such connections to manage object references and make method calls.

At the moment, this is all rather more general than it needs to be, because the only implementation of VatNetwork is twoparty::VatNetwork. However, eventually we will need to have more sophisticated VatNetwork implementations, in order to support level 3 features.

An RpcSystem is a Future and needs to be driven by a task executor. A common way accomplish that is to pass the RpcSystem to tokio_core::reactor::Handle::spawn().

Methods

impl<VatId> RpcSystem<VatId>[src][]

pub fn new(
    network: Box<dyn VatNetwork<VatId>>,
    bootstrap: Option<Client>
) -> RpcSystem<VatId>
[src][]

Constructs a new RpcSystem with the given network and bootstrap capability.

pub fn bootstrap<T>(&mut self, vat_id: VatId) -> T where
    T: FromClientHook
[src][]

Connects to the given vat and returns its bootstrap interface.

pub fn get_disconnector(&self) -> Disconnector<VatId>[src][]

Returns a Disconnector future that can be run to cleanly close the connection to this RpcSystem's network. You should get the Disconnector before you spawn the RpcSystem.

Trait Implementations

impl<VatId> Future for RpcSystem<VatId> where
    VatId: 'static, 
[src][+]

type Item = ()

The type of value that this future will resolved with if it is successful. Read more

type Error = Error

The type of error that this future will resolve with if it fails in a normal fashion. Read more

Auto Trait Implementations

impl<VatId> !Send for RpcSystem<VatId>

impl<VatId> !Sync for RpcSystem<VatId>

impl<VatId> Unpin for RpcSystem<VatId>

impl<VatId> !UnwindSafe for RpcSystem<VatId>

impl<VatId> !RefUnwindSafe for RpcSystem<VatId>

Blanket Implementations

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

impl<T> From<T> for 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.

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

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

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

impl<F> IntoFuture for F where
    F: Future
[src][+]

type Future = F

The future that this type can be converted into.

type Item = <F as Future>::Item

The item that the future may resolve with.

type Error = <F as Future>::Error

The error that the future may resolve with.