public static Frame from( int streamId, FrameType type, @Nullable ByteBuf metadata, ByteBuf data, int flags) { final Frame frame = RECYCLER.get(); frame.setRefCnt(1); frame.content = ByteBufAllocator.DEFAULT.buffer( FrameHeaderFlyweight.computeFrameHeaderLength( type, metadata != null ? metadata.readableBytes() : null, data.readableBytes())); frame.content.writerIndex( FrameHeaderFlyweight.encode(frame.content, streamId, flags, type, metadata, data)); return frame; } }
public static Frame from(int streamId) { final Frame frame = RECYCLER.get(); frame.setRefCnt(1); frame.content = ByteBufAllocator.DEFAULT.buffer( FrameHeaderFlyweight.computeFrameHeaderLength(FrameType.CANCEL, null, 0)); frame.content.writerIndex( FrameHeaderFlyweight.encode( frame.content, streamId, 0, FrameType.CANCEL, null, Unpooled.EMPTY_BUFFER)); return frame; } }
@Test public void metadataSlice() { ByteBuf metadata = Unpooled.wrappedBuffer(new byte[] {1, 2, 3, 4}); FrameHeaderFlyweight.encode( byteBuf, 0, FLAGS_M, FrameType.REQUEST_RESPONSE, metadata, Unpooled.EMPTY_BUFFER); metadata.resetReaderIndex(); assertEquals(metadata, FrameHeaderFlyweight.sliceFrameMetadata(byteBuf)); }
@Test public void frameLength() { int length = FrameHeaderFlyweight.encode( byteBuf, 0, FLAGS_M, FrameType.SETUP, Unpooled.EMPTY_BUFFER, Unpooled.EMPTY_BUFFER); assertEquals(length, 12); // 72 bits }
@Test public void frameLengthNullMetadata() { int length = FrameHeaderFlyweight.encode(byteBuf, 0, 0, FrameType.SETUP, null, Unpooled.EMPTY_BUFFER); assertEquals(length, 9); // 72 bits }
@Test public void dataSlice() { ByteBuf data = Unpooled.wrappedBuffer(new byte[] {1, 2, 3, 4, 5}); FrameHeaderFlyweight.encode( byteBuf, 0, FLAGS_M, FrameType.REQUEST_RESPONSE, Unpooled.EMPTY_BUFFER, data); data.resetReaderIndex(); assertEquals(data, FrameHeaderFlyweight.sliceFrameData(byteBuf)); }
@Test public void metadataLength() { ByteBuf metadata = Unpooled.wrappedBuffer(new byte[] {1, 2, 3, 4}); FrameHeaderFlyweight.encode( byteBuf, 0, FLAGS_M, FrameType.SETUP, metadata, Unpooled.EMPTY_BUFFER); assertEquals( 4, FrameHeaderFlyweight.decodeMetadataLength(byteBuf, FrameHeaderFlyweight.FRAME_HEADER_LENGTH) .longValue()); }
@Test public void dataLength() { ByteBuf data = Unpooled.wrappedBuffer(new byte[] {1, 2, 3, 4, 5}); int length = FrameHeaderFlyweight.encode( byteBuf, 0, FLAGS_M, FrameType.SETUP, Unpooled.EMPTY_BUFFER, data); assertEquals( 5, FrameHeaderFlyweight.dataLength( byteBuf, FrameType.SETUP, FrameHeaderFlyweight.FRAME_HEADER_LENGTH)); }
@Test public void streamId() { int streamId = 1234; FrameHeaderFlyweight.encode( byteBuf, streamId, FLAGS_M, FrameType.SETUP, Unpooled.EMPTY_BUFFER, Unpooled.EMPTY_BUFFER); assertEquals(streamId, FrameHeaderFlyweight.streamId(byteBuf)); }
public static Frame from( int streamId, FrameType type, @Nullable ByteBuf metadata, ByteBuf data, int flags) { final Frame frame = RECYCLER.get(); frame.setRefCnt(1); frame.content = ByteBufAllocator.DEFAULT.buffer( FrameHeaderFlyweight.computeFrameHeaderLength( type, metadata != null ? metadata.readableBytes() : null, data.readableBytes())); frame.content.writerIndex( FrameHeaderFlyweight.encode(frame.content, streamId, flags, type, metadata, data)); return frame; } }
public static Frame from(int streamId) { final Frame frame = RECYCLER.get(); frame.setRefCnt(1); frame.content = ByteBufAllocator.DEFAULT.buffer( FrameHeaderFlyweight.computeFrameHeaderLength(FrameType.CANCEL, null, 0)); frame.content.writerIndex( FrameHeaderFlyweight.encode( frame.content, streamId, 0, FrameType.CANCEL, null, Unpooled.EMPTY_BUFFER)); return frame; } }