Package io.aeron

Class ImageFragmentAssembler

java.lang.Object
io.aeron.ImageFragmentAssembler
All Implemented Interfaces:
FragmentHandler

public class ImageFragmentAssembler extends Object implements 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 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 Details

    • ImageFragmentAssembler

      public ImageFragmentAssembler(FragmentHandler delegate)
      Construct an adapter to reassemble message fragments and delegate on only whole messages.
      Parameters:
      delegate - onto which whole messages are forwarded.
    • ImageFragmentAssembler

      public ImageFragmentAssembler(FragmentHandler delegate, int initialBufferLength)
      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 direct ByteBuffer?
  • Method Details

    • delegate

      public FragmentHandler delegate()
      Get the delegate unto which assembled messages are delegated.
      Returns:
      the delegate unto which assembled messages are delegated.
    • bufferBuilder

      public BufferBuilder bufferBuilder()
      Get the BufferBuilder for resetting this assembler.
      Returns:
      the BufferBuilder for resetting this assembler.
    • onFragment

      public void onFragment(DirectBuffer buffer, int offset, int length, Header header)
      The implementation of FragmentHandler that reassembles and forwards whole messages.
      Specified by:
      onFragment in interface FragmentHandler
      Parameters:
      buffer - containing the data.
      offset - at which the data begins.
      length - of the data in bytes.
      header - representing the metadata for the data.