class FileChannelVol : Volume
Volume which uses FileChannel. Uses global lock and does not use mapped memory.
<init> |
FileChannelVol(file: File, readOnly: Boolean, fileLockWait: Long, sliceShift: Int, initSize: Long) FileChannelVol(file: File) |
FACTORY |
static val FACTORY: VolumeFactory |
UNSAFE_VOL_FACTORY |
static val UNSAFE_VOL_FACTORY: VolumeFactory If |
clear |
fun clear(startOffset: Long, endOffset: Long): Unit static fun clear(channel: FileChannel, startOffset: Long, endOffset: Long): Unit |
close |
fun close(): Unit |
ensureAvailable |
fun ensureAvailable(offset: Long): Unit |
getByte |
fun getByte(offset: Long): Byte |
getData |
fun getData(offset: Long, bytes: ByteArray, bytesPos: Int, size: Int): Unit |
getDataInput |
fun getDataInput(offset: Long, size: Int): ByteBuffer |
getFile |
fun getFile(): File |
getFileLocked |
fun getFileLocked(): Boolean |
getInt |
fun getInt(offset: Long): Int |
getLong |
fun getLong(offset: Long): Long |
isReadOnly |
fun isReadOnly(): Boolean |
isSliced |
fun isSliced(): Boolean |
length |
fun length(): Long |
putByte |
fun putByte(offset: Long, value: Byte): Unit |
putData |
fun putData(offset: Long, src: ByteArray, srcPos: Int, srcSize: Int): Unit fun putData(offset: Long, buf: ByteBuffer): Unit |
putInt |
fun putInt(offset: Long, value: Int): Unit |
putLong |
fun putLong(offset: Long, value: Long): Unit |
sliceSize |
fun sliceSize(): Int |
sync |
fun sync(): Unit |
truncate |
fun truncate(size: Long): Unit |
assertZeroes |
open fun assertZeroes(startOffset: Long, endOffset: Long): Unit Check that all bytes between given offsets are zero. This might cross 1MB boundaries |
clearOverlap |
open fun clearOverlap(startOffset: Long, endOffset: Long): Unit |
copyFrom |
open fun copyFrom(input: InputStream): Unit Copy content from InputStream into this Volume. |
copyTo |
open fun copyTo(inputOffset: Long, target: Volume, targetOffset: Long, size: Long): Unit Transfers data from this Volume into target volume. If its possible, the implementation should override this method to enable direct memory transfer. Caller must respect slice boundaries. ie it is not possible to transfer data which cross slice boundaries. open fun copyTo(to: Volume): Unit Copy content of this volume to another. Target volume might grow, but is never shrank. Target is also not synced open fun copyTo(output: OutputStream): Unit Copy content of this volume to OutputStream. |
deleteFile |
open fun deleteFile(): Unit |
fileLoad |
open fun fileLoad(): Boolean If underlying storage is memory-mapped-file, this method will try to load and precache all file data into disk cache. Most likely it will call |
getDataInputOverlap |
open fun getDataInputOverlap(offset: Long, size: Int): DataInput2 |
getPackedLong |
open fun getPackedLong(position: Long): Long Unpack long value from the Volume. Highest 4 bits reused to indicate number of bytes read from Volume. One can use |
getSixLong |
open fun getSixLong(pos: Long): Long |
getUnsignedByte |
open fun getUnsignedByte(offset: Long): Int |
getUnsignedShort |
open fun getUnsignedShort(offset: Long): Int |
hash |
open fun hash(off: Long, len: Long, seed: Long): Long Calculates XXHash64 from this Volume content. |
isClosed |
open fun isClosed(): Boolean |
putDataOverlap |
open fun putDataOverlap(offset: Long, src: ByteArray, srcPos: Int, srcSize: Int): Unit |
putPackedLong |
open fun putPackedLong(pos: Long, value: Long): Int Put packed long at given position. |
putSixLong |
open fun putSixLong(pos: Long, value: Long): Unit |
putUnsignedByte |
open fun putUnsignedByte(offset: Long, b: Int): Unit |
putUnsignedShort |
open fun putUnsignedShort(offset: Long, value: Int): Unit |