@Override public void rst(RstInfo rstInfo) throws InterruptedException, ExecutionException, TimeoutException { FutureCallback result = new FutureCallback(); rst(rstInfo, result); if (rstInfo.getTimeout() > 0) result.get(rstInfo.getTimeout(), rstInfo.getUnit()); else result.get(); }
@Override public void rst(RstInfo rstInfo, Callback callback) { // SPEC v3, 2.2.2 if (goAwaySent.get()) { complete(callback); } else { int streamId = rstInfo.getStreamId(); IStream stream = streams.get(streamId); RstStreamFrame frame = new RstStreamFrame(version, streamId, rstInfo.getStreamStatus().getCode(version)); control(stream, frame, rstInfo.getTimeout(), rstInfo.getUnit(), callback); if (stream != null) { stream.process(frame); removeStream(stream); } } }
@Override public void rst(RstInfo rstInfo, Callback handler) { // Not much we can do in HTTP land: just close the connection goAway(new GoAwayInfo(rstInfo.getTimeout(), rstInfo.getUnit()), handler); }