/** * @return the close and reset compression flags as integer * @see #FLAG_CLOSE * @see #FLAG_RESET_COMPRESSION */ public byte getFlags() { byte flags = isClose() ? FLAG_CLOSE : 0; flags += isResetCompression() ? FLAG_RESET_COMPRESSION : 0; return flags; }
@Override public void onHeaders(Stream stream, HeadersInfo headersInfo) { logger.debug("Received {} on {}", headersInfo, stream); ServerHTTPSPDYAsyncConnection connection = (ServerHTTPSPDYAsyncConnection)stream.getAttribute(CONNECTION_ATTRIBUTE); connection.headers(headersInfo.getHeaders()); if (headersInfo.isClose()) connection.endRequest(); }
@Override public void onHeaders(Stream stream, HeadersInfo headersInfo) { if (LOG.isDebugEnabled()) LOG.debug("Received {} on {}", headersInfo, stream); HttpChannelOverSPDY channel = (HttpChannelOverSPDY)stream.getAttribute(CHANNEL_ATTRIBUTE); channel.requestHeaders(headersInfo.getHeaders(), headersInfo.isClose()); }
@Override public void headers(HeadersInfo headersInfo, Callback callback) { notIdle(); if (!canSend()) { session.rst(new RstInfo(getId(), StreamStatus.PROTOCOL_ERROR), new StreamCallback()); throw new IllegalStateException("Protocol violation: cannot send a HEADERS frame before a SYN_REPLY frame"); } if (isLocallyClosed()) { session.rst(new RstInfo(getId(), StreamStatus.PROTOCOL_ERROR), new StreamCallback()); throw new IllegalStateException("Protocol violation: cannot send a HEADERS frame on a closed stream"); } updateCloseState(headersInfo.isClose(), true); HeadersFrame frame = new HeadersFrame(session.getVersion(), headersInfo.getFlags(), getId(), headersInfo.getHeaders()); session.control(this, frame, headersInfo.getTimeout(), headersInfo.getUnit(), new StreamCallback(callback)); }