public class ImageFragmentAssembler extends Object implements FragmentHandler
FragmentHandler that sits in a chain-of-responsibility pattern that reassembles fragmented messages
so that the next handler in the chain only sees whole messages. This is for a single session on an Image
and not for multiple session Images in a Subscription.
Unfragmented messages are delegated without copy. Fragmented messages are copied to a temporary buffer for reassembly before delegation.
The Header passed to the delegate on assembling a message will be that of the last fragment.
| Constructor and Description |
|---|
ImageFragmentAssembler(FragmentHandler delegate)
Construct an adapter to reassemble message fragments and delegate on only whole messages.
|
ImageFragmentAssembler(FragmentHandler delegate,
int initialBufferLength)
Construct an adapter to reassemble message fragments and delegate on only whole messages.
|
ImageFragmentAssembler(FragmentHandler delegate,
int initialBufferLength,
boolean isDirectByteBuffer)
Construct an adapter to reassemble message fragments and delegate on only whole messages.
|
| Modifier and Type | Method and Description |
|---|---|
BufferBuilder |
bufferBuilder()
Get the
BufferBuilder for resetting this assembler. |
FragmentHandler |
delegate()
Get the delegate unto which assembled messages are delegated.
|
void |
onFragment(DirectBuffer buffer,
int offset,
int length,
Header header)
The implementation of
FragmentHandler that reassembles and forwards whole messages. |
public ImageFragmentAssembler(FragmentHandler delegate)
delegate - onto which whole messages are forwarded.public ImageFragmentAssembler(FragmentHandler delegate, int initialBufferLength)
delegate - onto which whole messages are forwarded.initialBufferLength - to be used for the session.public ImageFragmentAssembler(FragmentHandler delegate, int initialBufferLength, boolean isDirectByteBuffer)
delegate - onto which whole messages are forwarded.initialBufferLength - to be used for the session.isDirectByteBuffer - is the underlying buffer to be a direct ByteBuffer?public FragmentHandler delegate()
public BufferBuilder bufferBuilder()
BufferBuilder for resetting this assembler.BufferBuilder for resetting this assembler.public void onFragment(DirectBuffer buffer, int offset, int length, Header header)
FragmentHandler that reassembles and forwards whole messages.onFragment in interface FragmentHandlerbuffer - containing the data.offset - at which the data begins.length - of the data in bytes.header - representing the metadata for the data.Copyright © 2014-2023 Real Logic Limited. All Rights Reserved.