package org.warp.cowdb; import java.io.IOException; public interface IBlocksMetadata { long EMPTY_BLOCK_ID = -1; long ERROR_BLOCK_ID = -2; BlockInfo EMPTY_BLOCK_INFO = new BlockInfo(0, 0); /** * Get block info * @param blockId block id * @return block metadata */ BlockInfo getBlockInfo(long blockId) throws IOException; /** * New empty block info * @return block id */ default long newBlock() { return EMPTY_BLOCK_ID; } /** * Set block info * @param index block index * @param size block size * @return block id */ long newBlock(long index, int size) throws IOException; /** * Set block info * @param blockInfo block info * @return block id */ default long newBlock(BlockInfo blockInfo) throws IOException { return this.newBlock(blockInfo.getIndex(), blockInfo.getSize()); } /** * Close file */ void close() throws IOException; /** * Get total count of blocks * @return */ long getTotalBlocksCount(); }