public boolean isFlagSet(final FrameFlag flag) { return (getFlags() & flag.value) != 0; }
public boolean isType(final FrameType type) { return getType() == type.value; }
private void logFrameInfo(final String prefix, final RawFrame frame) { try { final LogAppendable logAppendable = new LogAppendable(frameLog, prefix); framePrinter.printFrameInfo(frame, logAppendable); logAppendable.flush(); } catch (final IOException ignore) { } }
private void logFramePayload(final String prefix, final RawFrame frame) { try { final LogAppendable logAppendable = new LogAppendable(framePayloadLog, prefix); framePrinter.printPayload(frame, logAppendable); logAppendable.flush(); } catch (final IOException ignore) { // ignore } }
private LoggingHttp2StreamListener() { this.framePrinter = new FramePrinter(); this.headerLog = LoggerFactory.getLogger("org.apache.hc.core5.http.headers"); this.frameLog = LoggerFactory.getLogger("org.apache.hc.core5.http2.frame"); this.framePayloadLog = LoggerFactory.getLogger("org.apache.hc.core5.http2.frame.payload"); this.flowCtrlLog = LoggerFactory.getLogger("org.apache.hc.core5.http2.flow"); }
public boolean isPadded() { return isFlagSet(FrameFlag.PADDED); }
private int generateStreamId() { for (;;) { final int currentId = lastStreamId.get(); final int newStreamId = idGenerator.generate(currentId); if (lastStreamId.compareAndSet(currentId, newStreamId)) { return newStreamId; } } }
@Override public RawFrame createContinuation(final int streamId, final ByteBuffer payload, final boolean endHeaders) { Args.positive(streamId, "Stream id"); final int flags = (endHeaders ? FrameFlag.END_HEADERS.value : 0); return new RawFrame(FrameType.CONTINUATION.getValue(), flags, streamId, payload); }
private void logFrameInfo(final String prefix, final RawFrame frame) { try { final LogAppendable logAppendable = new LogAppendable(frameLog, prefix); framePrinter.printFrameInfo(frame, logAppendable); logAppendable.flush(); } catch (final IOException ignore) { } }
private void logFramePayload(final String prefix, final RawFrame frame) { try { final LogAppendable logAppendable = new LogAppendable(framePayloadLog, prefix); framePrinter.printPayload(frame, logAppendable); logAppendable.flush(); } catch (final IOException ignore) { } }
@Override public RawFrame createHeaders(final int streamId, final ByteBuffer payload, final boolean endHeaders, final boolean endStream) { Args.positive(streamId, "Stream id"); final int flags = (endHeaders ? FrameFlag.END_HEADERS.value : 0) | (endStream ? FrameFlag.END_STREAM.value : 0); return new RawFrame(FrameType.HEADERS.getValue(), flags, streamId, payload); }
private void logFrameInfo(final String prefix, final RawFrame frame) { try { final LogAppendable logAppendable = new LogAppendable(frameLog, prefix); framePrinter.printFrameInfo(frame, logAppendable); logAppendable.flush(); } catch (final IOException ignore) { // ignore } }
@Override public RawFrame createPushPromise(final int streamId, final ByteBuffer payload, final boolean endHeaders) { Args.positive(streamId, "Stream id"); final int flags = (endHeaders ? FrameFlag.END_HEADERS.value : 0); return new RawFrame(FrameType.PUSH_PROMISE.getValue(), flags, streamId, payload); }
public RawFrame createSettings(final H2Setting... settings) { final ByteBuffer payload = ByteBuffer.allocate(settings.length * 12); for (final H2Setting setting: settings) { payload.putShort((short) setting.getCode()); payload.putInt(setting.getValue()); } payload.flip(); return new RawFrame(FrameType.SETTINGS.getValue(), 0, 0, payload); }
public RawFrame createWindowUpdate(final int streamId, final int increment) { Args.notNegative(streamId, "Stream id"); Args.positive(increment, "Increment"); final ByteBuffer payload = ByteBuffer.allocate(4); payload.putInt(increment); payload.flip(); return new RawFrame(FrameType.WINDOW_UPDATE.getValue(), 0, streamId, payload); }