public abstract class BlockStore
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
protected class |
BlockStore.ChainLoopDetector
Used to detect if a chain has a loop in it, so
we can bail out with an error rather than
spinning away for ever...
|
Constructor and Description |
---|
BlockStore() |
Modifier and Type | Method and Description |
---|---|
protected abstract java.nio.ByteBuffer |
createBlockIfNeeded(int offset)
Extends the file if required to hold blocks up to
the specified offset, and return the block from there.
|
protected abstract BATBlock.BATBlockAndIndex |
getBATBlockAndIndex(int offset)
Returns the BATBlock that handles the specified offset,
and the relative index within it
|
protected abstract java.nio.ByteBuffer |
getBlockAt(int offset)
Load the block at the given offset.
|
protected abstract int |
getBlockStoreBlockSize()
Returns the size of the blocks managed through the block store.
|
protected abstract BlockStore.ChainLoopDetector |
getChainLoopDetector()
Creates a Detector for loops in the chain
|
protected abstract int |
getFreeBlock()
Finds a free block, and returns its offset.
|
protected abstract int |
getNextBlock(int offset)
Works out what block follows the specified one.
|
protected abstract void |
releaseBuffer(java.nio.ByteBuffer buffer)
Releases a mmap-ed buffer, which you are sure won't be used again
|
protected abstract void |
setNextBlock(int offset,
int nextBlock)
Changes the record of what block follows the specified one.
|
protected abstract int getBlockStoreBlockSize()
protected abstract java.nio.ByteBuffer getBlockAt(int offset) throws java.io.IOException
java.io.IOException
protected abstract java.nio.ByteBuffer createBlockIfNeeded(int offset) throws java.io.IOException
java.io.IOException
protected abstract void releaseBuffer(java.nio.ByteBuffer buffer)
buffer
- the bufferprotected abstract BATBlock.BATBlockAndIndex getBATBlockAndIndex(int offset)
protected abstract int getNextBlock(int offset)
protected abstract void setNextBlock(int offset, int nextBlock)
protected abstract int getFreeBlock() throws java.io.IOException
java.io.IOException
protected abstract BlockStore.ChainLoopDetector getChainLoopDetector() throws java.io.IOException
java.io.IOException
Copyright 2022 The Apache Software Foundation or its licensors, as applicable.