Package uk.ac.starlink.table.storage
Class NioByteStoreAccess
java.lang.Object
uk.ac.starlink.table.storage.NioByteStoreAccess
- All Implemented Interfaces:
ByteStoreAccess
Partial implementation of ByteStoreAccess.
Not thread-safe.
- Since:
- 20 Aug 2010
- Author:
- Mark Taylor
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ByteBuffer[]
copyBuffers
(ByteBuffer[] bufs) Utility method to make a deep copy of an array of ByteBuffers.static ByteStoreAccess
createAccess
(ByteBuffer[] bbufs) Returns a reader implementation for an array of ByteBuffers.protected abstract ByteBuffer
getBuffer
(int nbyte) Returns a buffer with at least the requested number of bytes between the current position and the limit.byte
readByte()
Reads a byte from the current position.void
readBytes
(byte[] b, int offset, int length) Reads bytes into a buffer from the current position.char
readChar()
Reads a char from the current position.double
Reads a double from the current position.float
Reads a float from the current position.int
readInt()
Reads an int from the current position.long
readLong()
Reads a long from the current position.short
Reads a short from the current position.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface uk.ac.starlink.table.storage.ByteStoreAccess
seek, skip
-
Constructor Details
-
NioByteStoreAccess
public NioByteStoreAccess()
-
-
Method Details
-
getBuffer
Returns a buffer with at least the requested number of bytes between the current position and the limit. Whennbyte
bytes have been read from the returned buffer, the current position of this ByteStoreAccess will have advanced bynbyte
bytes. The position in the case that this call is made with no corresponding read is undefined, so it's important that the read is actually done (don't call this method speculatively).If no such buffer is available (the end of the storage has been reached), then an IOException will be thrown.
- Parameters:
nbyte
- number of bytes required- Returns:
- buffer from which
nbyte
bytes can be read - Throws:
IOException
-
readByte
Description copied from interface:ByteStoreAccess
Reads a byte from the current position.- Specified by:
readByte
in interfaceByteStoreAccess
- Returns:
- read value
- Throws:
IOException
-
readShort
Description copied from interface:ByteStoreAccess
Reads a short from the current position.- Specified by:
readShort
in interfaceByteStoreAccess
- Returns:
- read value
- Throws:
IOException
-
readChar
Description copied from interface:ByteStoreAccess
Reads a char from the current position.- Specified by:
readChar
in interfaceByteStoreAccess
- Returns:
- read value
- Throws:
IOException
-
readInt
Description copied from interface:ByteStoreAccess
Reads an int from the current position.- Specified by:
readInt
in interfaceByteStoreAccess
- Returns:
- read value
- Throws:
IOException
-
readLong
Description copied from interface:ByteStoreAccess
Reads a long from the current position.- Specified by:
readLong
in interfaceByteStoreAccess
- Returns:
- read value
- Throws:
IOException
-
readFloat
Description copied from interface:ByteStoreAccess
Reads a float from the current position.- Specified by:
readFloat
in interfaceByteStoreAccess
- Returns:
- read value
- Throws:
IOException
-
readDouble
Description copied from interface:ByteStoreAccess
Reads a double from the current position.- Specified by:
readDouble
in interfaceByteStoreAccess
- Returns:
- read value
- Throws:
IOException
-
readBytes
Description copied from interface:ByteStoreAccess
Reads bytes into a buffer from the current position.- Specified by:
readBytes
in interfaceByteStoreAccess
- Parameters:
b
- buffer to receive bytesoffset
- offset intob
for first bytelength
- number of bytes to read- Throws:
IOException
-
copyBuffers
Utility method to make a deep copy of an array of ByteBuffers.- Parameters:
bufs
- input buffers- Returns:
- matching array with buffers that are duplicates of the input elements
-
createAccess
Returns a reader implementation for an array of ByteBuffers.- Parameters:
bbufs
- buffer array- Returns:
- reader implementation
-