Added support for gzipped txlog files and org.apache.jdbm as backing
store
This commit is contained in:
@ -0,0 +1,54 @@
|
||||
package org.apache.jdbm;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
interface Storage {
|
||||
|
||||
/**
|
||||
* Bite shift used to calculate page size.
|
||||
* If you want to modify page size, do it here.
|
||||
*
|
||||
* 1<<9 = 512
|
||||
* 1<<10 = 1024
|
||||
* 1<<11 = 2048
|
||||
* 1<<12 = 4096
|
||||
*/
|
||||
int PAGE_SIZE_SHIFT = 12;
|
||||
|
||||
/**
|
||||
* the lenght of single page.
|
||||
* <p>
|
||||
*!!! DO NOT MODIFY THI DIRECTLY !!!
|
||||
|
||||
*/
|
||||
int PAGE_SIZE = 1<< PAGE_SIZE_SHIFT;
|
||||
|
||||
|
||||
/**
|
||||
* use 'val & OFFSET_MASK' to quickly get offset within the page;
|
||||
*/
|
||||
long OFFSET_MASK = 0xFFFFFFFFFFFFFFFFL >>> (64-Storage.PAGE_SIZE_SHIFT);
|
||||
|
||||
|
||||
void write(long pageNumber, ByteBuffer data) throws IOException;
|
||||
|
||||
ByteBuffer read(long pageNumber) throws IOException;
|
||||
|
||||
void forceClose() throws IOException;
|
||||
|
||||
boolean isReadonly();
|
||||
|
||||
DataInputStream readTransactionLog();
|
||||
|
||||
void deleteTransactionLog();
|
||||
|
||||
void sync() throws IOException;
|
||||
|
||||
DataOutputStream openTransactionLog() throws IOException;
|
||||
|
||||
void deleteAllFiles() throws IOException;
|
||||
}
|
Reference in New Issue
Block a user