Package io.aeron
Class ImageFragmentAssembler
java.lang.Object
io.aeron.ImageFragmentAssembler
- All Implemented Interfaces:
FragmentHandler
A
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 Summary
ConstructorDescriptionImageFragmentAssembler
(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. -
Method Summary
Modifier and TypeMethodDescriptionGet theBufferBuilder
for resetting this assembler.delegate()
Get the delegate unto which assembled messages are delegated.void
onFragment
(DirectBuffer buffer, int offset, int length, Header header) The implementation ofFragmentHandler
that reassembles and forwards whole messages.
-
Constructor Details
-
ImageFragmentAssembler
Construct an adapter to reassemble message fragments and delegate on only whole messages.- Parameters:
delegate
- onto which whole messages are forwarded.
-
ImageFragmentAssembler
Construct an adapter to reassemble message fragments and delegate on only whole messages.- Parameters:
delegate
- onto which whole messages are forwarded.initialBufferLength
- to be used for the session.
-
ImageFragmentAssembler
public ImageFragmentAssembler(FragmentHandler delegate, int initialBufferLength, boolean isDirectByteBuffer) Construct an adapter to reassemble message fragments and delegate on only whole messages.- Parameters:
delegate
- onto which whole messages are forwarded.initialBufferLength
- to be used for the session.isDirectByteBuffer
- is the underlying buffer to be a directByteBuffer
?
-
-
Method Details
-
delegate
Get the delegate unto which assembled messages are delegated.- Returns:
- the delegate unto which assembled messages are delegated.
-
bufferBuilder
Get theBufferBuilder
for resetting this assembler.- Returns:
- the
BufferBuilder
for resetting this assembler.
-
onFragment
The implementation ofFragmentHandler
that reassembles and forwards whole messages.- Specified by:
onFragment
in interfaceFragmentHandler
- Parameters:
buffer
- containing the data.offset
- at which the data begins.length
- of the data in bytes.header
- representing the metadata for the data.
-