Package uk.ac.starlink.fits
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 Summary
Constructors Constructor Description MultiByteBufferInput(java.nio.ByteBuffer[] bufs)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.nio.ByteBuffer
acquireBlock(int iblock)
Obtains a buffer corresponding to a named block of the stream.void
close()
Releases resources belonging to this object.long
getBlockOffset(int iblock, int offsetInBlock)
Returns the offset into this stream corresponding to a given block index and offset into that block.int[]
getBlockPos(long offset)
Returns the block location of a given byte offset.-
Methods inherited from class uk.ac.starlink.fits.BlockInput
getBlockCount, getOffset, isRandom, readByte, readBytes, readDouble, readFloat, readInt, readLong, readShort, seek, skip
-
-
-
-
Method Detail
-
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 classBlockInput
- 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 classBlockInput
- Parameters:
iblock
- block indexoffsetInBlock
- offset into that block- Returns:
- offset into stream
-
acquireBlock
protected java.nio.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 classBlockInput
- 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 interfaceBasicInput
- Overrides:
close
in classBlockInput
-
-