@Override public void headers(HeadersFrame frame, Callback callback) { if (startWrite(callback)) session.frames(this, this, frame, Frame.EMPTY_ARRAY); }
@Override public void reset(ResetFrame frame, Callback callback) { if (isReset()) return; localReset = true; session.frames(this, callback, frame, Frame.EMPTY_ARRAY); }
@Override public void reset(ResetFrame frame, Callback callback) { if (isReset()) return; localReset = true; session.frames(this, callback, frame, Frame.EMPTY_ARRAY); }
@Override public void headers(HeadersFrame frame, Callback callback) { if (startWrite(callback)) session.frames(this, this, frame, Frame.EMPTY_ARRAY); }
@Override public void onOpen() { Map<Integer, Integer> settings = listener.onPreface(getSession()); if (settings == null) settings = new HashMap<>(); settings.computeIfAbsent(SettingsFrame.INITIAL_WINDOW_SIZE, k -> client.getInitialStreamRecvWindow()); settings.computeIfAbsent(SettingsFrame.MAX_CONCURRENT_STREAMS, k -> client.getMaxConcurrentPushedStreams()); Integer maxFrameLength = settings.get(SettingsFrame.MAX_FRAME_SIZE); if (maxFrameLength != null) getParser().setMaxFrameLength(maxFrameLength); PrefaceFrame prefaceFrame = new PrefaceFrame(); SettingsFrame settingsFrame = new SettingsFrame(settings, false); ISession session = getSession(); int windowDelta = client.getInitialSessionRecvWindow() - FlowControlStrategy.DEFAULT_WINDOW_SIZE; if (windowDelta > 0) { session.updateRecvWindow(windowDelta); session.frames(null, this, prefaceFrame, settingsFrame, new WindowUpdateFrame(0, windowDelta)); } else { session.frames(null, this, prefaceFrame, settingsFrame); } }
if (LOG.isDebugEnabled()) LOG.debug("Data consumed, {} bytes, updated session recv window by {}/{} for {}", length, level, maxLevel, session); session.frames(null, Callback.NOOP, new WindowUpdateFrame(0, level), Frame.EMPTY_ARRAY); if (LOG.isDebugEnabled()) LOG.debug("Data consumed, {} bytes, updated stream recv window by {}/{} for {}", length, level, maxLevel, stream); session.frames(stream, Callback.NOOP, new WindowUpdateFrame(stream.getId(), level), Frame.EMPTY_ARRAY);
if (LOG.isDebugEnabled()) LOG.debug("Data consumed, {} bytes, updated session recv window by {}/{} for {}", length, level, maxLevel, session); session.frames(null, Callback.NOOP, new WindowUpdateFrame(0, level), Frame.EMPTY_ARRAY); if (LOG.isDebugEnabled()) LOG.debug("Data consumed, {} bytes, updated stream recv window by {}/{} for {}", length, level, maxLevel, stream); session.frames(stream, Callback.NOOP, new WindowUpdateFrame(stream.getId(), level), Frame.EMPTY_ARRAY);
session.frames(stream, Callback.NOOP, sessionFrame, streamFrame);
session.frames(stream, Callback.NOOP, sessionFrame, streamFrame);