Package io.aeron
Class ImageControlledFragmentAssembler
java.lang.Object
io.aeron.ImageControlledFragmentAssembler
- All Implemented Interfaces:
ControlledFragmentHandler
A
ControlledFragmentHandler
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.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.aeron.logbuffer.ControlledFragmentHandler
ControlledFragmentHandler.Action
-
Constructor Summary
ConstructorsConstructorDescriptionConstruct an adapter to reassemble message fragments and delegate on whole messages.ImageControlledFragmentAssembler
(ControlledFragmentHandler delegate, int initialBufferLength) Construct an adapter to reassemble message fragments and delegate on whole messages.ImageControlledFragmentAssembler
(ControlledFragmentHandler delegate, int initialBufferLength, boolean isDirectByteBuffer) Construct an adapter to reassemble message fragments and delegate on whole messages. -
Method Summary
Modifier and TypeMethodDescriptiondelegate()
Get the delegate unto which assembled messages are delegated.onFragment
(DirectBuffer buffer, int offset, int length, Header header) The implementation ofControlledFragmentHandler
that reassembles and forwards whole messages.
-
Constructor Details
-
ImageControlledFragmentAssembler
Construct an adapter to reassemble message fragments and delegate on whole messages.- Parameters:
delegate
- onto which whole messages are forwarded.
-
ImageControlledFragmentAssembler
public ImageControlledFragmentAssembler(ControlledFragmentHandler delegate, int initialBufferLength) Construct an adapter to reassemble message fragments and delegate on whole messages.- Parameters:
delegate
- onto which whole messages are forwarded.initialBufferLength
- to be used for the session.
-
ImageControlledFragmentAssembler
public ImageControlledFragmentAssembler(ControlledFragmentHandler delegate, int initialBufferLength, boolean isDirectByteBuffer) Construct an adapter to reassemble message fragments and delegate on 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.
-
onFragment
public ControlledFragmentHandler.Action onFragment(DirectBuffer buffer, int offset, int length, Header header) The implementation ofControlledFragmentHandler
that reassembles and forwards whole messages.- Specified by:
onFragment
in interfaceControlledFragmentHandler
- Parameters:
buffer
- containing the data.offset
- at which the data begins.length
- of the data in bytes.header
- representing the metadata for the data.- Returns:
ControlledFragmentHandler.Action
to be taken after processing fragment.
-