[−][src]Struct capnp_rpc::RpcSystem
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][−]
network: Box<dyn VatNetwork<VatId>>,
bootstrap: Option<Client>
) -> RpcSystem<VatId>
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][−]
T: FromClientHook,
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
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][+]
U: From<T>,
impl<T> From<T> for T
[src][+]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<F> IntoFuture for F where
F: Future,
[src][+]
F: Future,