@Override public final void close() { getLifeCycle().checkStateAndClose(() -> closeImpl()); }
@Override public void addPeers(Iterable<RaftPeer> peers) { getProxies().addPeers(peers); }
@Override public final void start() { getLifeCycle().startAndTransition(() -> startImpl()); }
@Override public void closeImpl() throws IOException { ipcServer.stop(); super.closeImpl(); }
public RaftServerRpcWithProxy(Supplier<RaftPeerId> idSupplier, Function<RaftPeerId, PROXIES> proxyCreater) { this.idSupplier = idSupplier; this.lifeCycleSupplier = JavaUtils.memoize(() -> new LifeCycle(getId() + "-" + getClass().getSimpleName())); this.proxiesSupplier = JavaUtils.memoize(() -> proxyCreater.apply(getId())); }
@Override public final void start() throws IOException { getLifeCycle().startAndTransition(this::startImpl, IOException.class); }
@Override public void closeImpl() throws IOException { final String name = getId() + ": shutdown server with port " + server.getPort(); LOG.info("{} now", name); final Server s = server.shutdownNow(); super.closeImpl(); try { s.awaitTermination(); } catch(InterruptedException e) { throw IOUtils.toInterruptedIOException(name + " failed", e); } LOG.info("{} successfully", name); }
@Override public final void close() throws IOException{ getLifeCycle().checkStateAndClose(() -> closeImpl()); }
@Override public void closeImpl() throws IOException { bossGroup.shutdownGracefully(); workerGroup.shutdownGracefully(); final ChannelFuture f = getChannel().close(); super.closeImpl(); f.syncUninterruptibly(); }
public void closeImpl() { getProxies().close(); } }
@Override public void addPeers(Iterable<RaftPeer> peers) { getProxies().addPeers(peers); }
@Override public void handleException(RaftPeerId serverId, Exception e, boolean reconnect) { getProxies().handleException(serverId, e, reconnect); }
@Override public void handleException(RaftPeerId serverId, Exception e, boolean reconnect) { getProxies().handleException(serverId, e, reconnect); }
public void closeImpl() throws IOException { getProxies().close(); } }