Class MultiByteBufferInput

java.lang.Object
uk.ac.starlink.fits.BlockInput
uk.ac.starlink.fits.MultiByteBufferInput
All Implemented Interfaces:
BasicInput

public class MultiByteBufferInput extends BlockInput
Random-access BasicInput implementation based on a supplied array of byte buffers.
Since:
19 Mar 2021
Author:
Mark Taylor
  • Constructor Details

    • MultiByteBufferInput

      public MultiByteBufferInput(ByteBuffer[] bufs)
      Constructor.
      Parameters:
      bufs - byte buffers holding data
  • Method Details

    • getBlockPos

      public int[] getBlockPos(long offset)
      Description copied from class: BlockInput
      Returns the block location of a given byte offset.

      This does the opposite of getBlockOffset.

      Specified by:
      getBlockPos in class BlockInput
      Parameters:
      offset - offset into this input stream
      Returns:
      2-element array giving [blockIndex, offsetInBlock]
    • getBlockOffset

      public long getBlockOffset(int iblock, int offsetInBlock)
      Description copied from class: BlockInput
      Returns the offset into this stream corresponding to a given block index and offset into that block.

      This does the opposite of getBlockPos.

      Specified by:
      getBlockOffset in class BlockInput
      Parameters:
      iblock - block index
      offsetInBlock - offset into that block
      Returns:
      offset into stream
    • acquireBlock

      protected ByteBuffer acquireBlock(int iblock)
      Description copied from class: BlockInput
      Obtains a buffer corresponding to a named block of the stream. The buffer's position must be zero. This method is called whenever a buffer is required which is not the same as the most recently used one.
      Specified by:
      acquireBlock in class BlockInput
      Parameters:
      iblock - block index
      Returns:
      byte buffer for given block, positioned at start
    • close

      public void close()
      Description copied from interface: BasicInput
      Releases resources belonging to this object. Attempts to use it after a call to this method result in undefined behaviour.
      Specified by:
      close in interface BasicInput
      Overrides:
      close in class BlockInput