/** * Return {@link ByteBuf} that is a {@link ByteBuf#slice()} for the frame metadata * * <p>If no metadata is present, the ByteBuf will have 0 capacity. * * @return ByteBuf containing the content */ public ByteBuf sliceMetadata() { return hasMetadata() ? FrameHeaderFlyweight.sliceFrameMetadata(content) : Unpooled.EMPTY_BUFFER; }
@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)); }
FrameType type = FrameHeaderFlyweight.frameType(content); StringBuilder payload = new StringBuilder(); @Nullable ByteBuf metadata = FrameHeaderFlyweight.sliceFrameMetadata(content);
@Test public void validFrame() { ByteBuf metadata = Unpooled.wrappedBuffer(new byte[] {1, 2, 3, 4}); ByteBuf data = Unpooled.wrappedBuffer(new byte[] {5, 4, 3}); SetupFrameFlyweight.encode(byteBuf, 0, 5, 500, "metadata_type", "data_type", metadata, data); metadata.resetReaderIndex(); data.resetReaderIndex(); assertEquals(FrameType.SETUP, FrameHeaderFlyweight.frameType(byteBuf)); assertEquals("metadata_type", SetupFrameFlyweight.metadataMimeType(byteBuf)); assertEquals("data_type", SetupFrameFlyweight.dataMimeType(byteBuf)); assertEquals(metadata, FrameHeaderFlyweight.sliceFrameMetadata(byteBuf)); assertEquals(data, FrameHeaderFlyweight.sliceFrameData(byteBuf)); }
@Test public void validResumeFrame() { ByteBuf token = Unpooled.wrappedBuffer(new byte[] {2, 3}); ByteBuf metadata = Unpooled.wrappedBuffer(new byte[] {1, 2, 3, 4}); ByteBuf data = Unpooled.wrappedBuffer(new byte[] {5, 4, 3}); SetupFrameFlyweight.encode( byteBuf, SetupFrameFlyweight.FLAGS_RESUME_ENABLE, 5, 500, token, "metadata_type", "data_type", metadata, data); token.resetReaderIndex(); metadata.resetReaderIndex(); data.resetReaderIndex(); assertEquals(FrameType.SETUP, FrameHeaderFlyweight.frameType(byteBuf)); assertEquals("metadata_type", SetupFrameFlyweight.metadataMimeType(byteBuf)); assertEquals("data_type", SetupFrameFlyweight.dataMimeType(byteBuf)); assertEquals(metadata, FrameHeaderFlyweight.sliceFrameMetadata(byteBuf)); assertEquals(data, FrameHeaderFlyweight.sliceFrameData(byteBuf)); assertEquals( SetupFrameFlyweight.FLAGS_RESUME_ENABLE, FrameHeaderFlyweight.flags(byteBuf) & SetupFrameFlyweight.FLAGS_RESUME_ENABLE); }
/** * Return {@link ByteBuf} that is a {@link ByteBuf#slice()} for the frame metadata * * <p>If no metadata is present, the ByteBuf will have 0 capacity. * * @return ByteBuf containing the content */ public ByteBuf sliceMetadata() { return hasMetadata() ? FrameHeaderFlyweight.sliceFrameMetadata(content) : Unpooled.EMPTY_BUFFER; }
FrameType type = FrameHeaderFlyweight.frameType(content); StringBuilder payload = new StringBuilder(); @Nullable ByteBuf metadata = FrameHeaderFlyweight.sliceFrameMetadata(content);