public class ImageFragmentAssembler extends java.lang.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 Image
s 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 |
---|---|
FragmentHandler |
delegate()
Get the delegate unto which assembled messages are delegated.
|
void |
onFragment(org.agrona.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 void onFragment(org.agrona.DirectBuffer buffer, int offset, int length, Header header)
FragmentHandler
that reassembles and forwards whole messages.onFragment
in interface FragmentHandler
buffer
- containing the data.offset
- at which the data begins.length
- of the data in bytes.header
- representing the meta data for the data.Copyright © 2014-2018 Real Logic Ltd. All Rights Reserved.