Add ability to pass Restorer to RpcClient. Also various fixups

and added __dir__ reflection to DynamicCapabilityClient
This commit is contained in:
Jason Paryani
2013-11-13 10:58:16 -08:00
parent 5251cb5575
commit 11543b7abf
5 changed files with 82 additions and 15 deletions

View File

@@ -47,3 +47,13 @@ capnp::Capability::Client restoreHelper(capnp::RpcSystem<capnp::rpc::twoparty::S
hostId.setSide(capnp::rpc::twoparty::Side::SERVER);
return client.restore(hostId, objectId.getRoot<capnp::ObjectPointer>());
}
template <typename SturdyRefHostId, typename ProvisionId,
typename RecipientId, typename ThirdPartyCapId, typename JoinAnswer>
capnp::RpcSystem<SturdyRefHostId> makeRpcClientWithRestorer(
capnp::VatNetwork<SturdyRefHostId, ProvisionId, RecipientId, ThirdPartyCapId, JoinAnswer>& network,
const kj::EventLoop& eventLoop, PyRestorer& restorer) {
using namespace capnp;
return RpcSystem<SturdyRefHostId>(network,
kj::Maybe<SturdyRefRestorer<ObjectPointer>&>(restorer), eventLoop);
}