diff --git a/runtime-rpc/src/main/java/org/capnproto/RpcSystem.java b/runtime-rpc/src/main/java/org/capnproto/RpcSystem.java index cb6eff2..caee17e 100644 --- a/runtime-rpc/src/main/java/org/capnproto/RpcSystem.java +++ b/runtime-rpc/src/main/java/org/capnproto/RpcSystem.java @@ -1,9 +1,5 @@ package org.capnproto; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; @@ -15,7 +11,8 @@ public class RpcSystem { private final Map, RpcState> connections = new ConcurrentHashMap<>(); public RpcSystem(VatNetwork network) { - this(network, (BootstrapFactory)null); + this(network, clientId -> new Capability.Client( + Capability.newBrokenCap("No bootstrap interface available"))); } public RpcSystem(VatNetwork network, @@ -25,12 +22,7 @@ public class RpcSystem { public RpcSystem(VatNetwork network, Capability.Client bootstrapInterface) { - this(network, new BootstrapFactory() { - @Override - public Capability.Client createFor(VatId clientId) { - return bootstrapInterface; - } - }); + this(network, clientId -> bootstrapInterface); } public RpcSystem(VatNetwork network, @@ -47,19 +39,16 @@ public class RpcSystem { var hook = state.restore(); return new Capability.Client(hook); } - else if (this.bootstrapFactory != null) { + else { return this.bootstrapFactory.createFor(vatId); } - else { - return new Capability.Client(Capability.newBrokenCap("No bootstrap interface available")); - } } - public VatNetwork getNetwork() { - return this.network; + public void accept(VatNetwork.Connection connection) { + getConnectionState(connection); } - RpcState getConnectionState(VatNetwork.Connection connection) { + private RpcState getConnectionState(VatNetwork.Connection connection) { return this.connections.computeIfAbsent(connection, conn -> { var onDisconnect = new CompletableFuture(); onDisconnect.thenCompose(info -> { @@ -70,10 +59,6 @@ public class RpcSystem { }); } - public void accept(VatNetwork.Connection connection) { - getConnectionState(connection); - } - private void startAcceptLoop() { this.network.accept() .thenAccept(this::accept)