public abstract class BlockStore extends 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 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 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 |
setNextBlock(int offset,
int nextBlock)
Changes the record of what block follows the specified one.
|
protected abstract int getBlockStoreBlockSize()
protected abstract ByteBuffer getBlockAt(int offset) throws IOException
IOException
protected abstract ByteBuffer createBlockIfNeeded(int offset) throws IOException
IOException
protected 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 IOException
IOException
protected abstract BlockStore.ChainLoopDetector getChainLoopDetector() throws IOException
IOException
Copyright © 2020. All rights reserved.