@NotStorableClass public abstract class AbstractHeapDataManager extends Object implements IHeapDataManager, Serializable
| Modifier and Type | Field and Description |
|---|---|
protected static String |
CLEAR_STANDBY_MODIFICATION_FAILED |
protected static String |
FAILED_READ_DATA_RECORD |
protected static String |
FLUSH_FAILED |
protected JoafipLogger |
logger |
| Constructor and Description |
|---|
AbstractHeapDataManager() |
| Modifier and Type | Method and Description |
|---|---|
DataRecordIdentifier |
ceilingDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier) |
protected DataRecordIdentifier |
ceilingDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) |
void |
clear()
clear the heap content.
|
protected abstract void |
clearImpl() |
void |
clearStandbyModification()
clear creation, modification, and deletion to do on the heap.
|
protected abstract void |
clearStandbyModificationImpl() |
protected abstract void |
closeHeapManagerAfterException()
close heap element manager after exception
|
Iterator<DataRecordIdentifier> |
dataRecordIterator() |
protected abstract Iterator<DataRecordIdentifier> |
dataRecordIteratorImpl() |
boolean |
deleteDataRecord(DataRecordIdentifier dataRecordIdentifier)
delete an existing data record knowing its identifier.
|
protected abstract boolean |
deleteDataRecordImpl(DataRecordIdentifier dataRecordIdentifier) |
DataRecordIdentifier |
firstDataRecordIdentifier() |
protected DataRecordIdentifier |
firstDataRecordIdentifierImpl() |
DataRecordIdentifier |
floorDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier) |
protected DataRecordIdentifier |
floorDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) |
void |
flush()
flush creation, modification, and deletion to the heap
the heap is updated. |
protected abstract void |
flushImp()
implement all flush action after call to
#updateHeapRecordImpl(DataRecordIdentifier, IHeapDataRecord) |
long |
freeSize()
get heap total free size in bytes.
|
protected abstract long |
freeSizeImpl() |
Set<DataRecordIdentifier> |
getDataRecordIdentifierSet()
for test purpose
|
protected abstract Set<DataRecordIdentifier> |
getDataRecordIdentifierSetImpl() |
DataRecordIdentifier |
getNewDataRecordIdentifier()
to get a new data identifier for data record creation: return the next
free data record identifier and internally increment the next free data
record identifier
when created #readHeapDataRecord(DataRecordIdentifier) can be
used for the data record identifierIHeapDataManager.flush() must be call to store the modification. |
protected abstract DataRecordIdentifier |
getNewDataRecordIdentifierImpl()
to get a new data identifier for future data record creation
|
DataRecordIdentifier |
getNextFreeDataRecordIdentifier()
get the next free data record identifier
|
protected abstract DataRecordIdentifier |
getNextFreeDataRecordIdentifierImpl() |
int |
getNumberOfDataRecord()
get number of data record in heap file.
|
protected abstract int |
getNumberOfDataRecordImpl() |
int |
getNumberOfFreeRecord()
get number of free record in heap file.
|
protected abstract int |
getNumberOfFreeRecordImpl() |
boolean |
hasDataRecord(DataRecordIdentifier dataRecordIdentifier)
to check if have data record for a data record identifier.
|
protected abstract boolean |
hasDataRecordImpl(DataRecordIdentifier dataRecordIdentifier) |
long |
heapSize()
get heap total size in bytes.
|
protected abstract long |
heapSizeImpl() |
DataRecordIdentifier |
higherDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier) |
protected DataRecordIdentifier |
higherDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) |
boolean |
isServiceStarted() |
DataRecordIdentifier |
lastDataRecordIdentifier() |
protected DataRecordIdentifier |
lastDataRecordIdentifierImpl() |
DataRecordIdentifier |
lowerDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier) |
protected DataRecordIdentifier |
lowerDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) |
DataRecordIdentifier |
nextDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier) |
protected DataRecordIdentifier |
nextDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) |
byte[] |
readDataRecord(DataRecordIdentifier dataRecordIdentifier)
read data for a data record.
|
protected abstract byte[] |
readDataRecordImpl(DataRecordIdentifier dataRecordIdentifier) |
protected abstract void |
removeFiles()
remove existing files
|
DataRecordIdentifier |
removeFirstDataRecord()
remove first data record and return its data record identifier.
|
protected abstract DataRecordIdentifier |
removeFirstDataRecordImpl() |
void |
setNextFreeDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier)
set the next free data record identifier.
|
protected abstract void |
setNextFreeDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) |
void |
startService(boolean removeFiles)
start heap data manager service.
|
protected abstract void |
startServiceImpl(boolean removeFiles)
to implement open actions
|
void |
stopService()
stop heap data manager service, do not flush in file any modification.
|
void |
stopService(boolean removeFiles) |
protected abstract void |
stopServiceImpl(boolean removeFiles)
to implement close actions
|
long |
usedSize()
get heap total used size in bytes.
|
protected abstract long |
usedSizeImpl() |
boolean |
writeDataRecord(DataRecordIdentifier dataRecordIdentifier,
byte[] data)
write data record.
|
protected abstract boolean |
writeDataRecordImpl(DataRecordIdentifier dataRecordIdentifier,
byte[] data) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitbackup, getLastRecordPositionInFile, getRecordPositionInfile, getStorageFileName, isDataLost, setDataRecordKeyManagerprotected final JoafipLogger logger
protected static final String FLUSH_FAILED
protected static final String FAILED_READ_DATA_RECORD
protected static final String CLEAR_STANDBY_MODIFICATION_FAILED
public final void startService(boolean removeFiles)
throws HeapException
IHeapDataManagerstartService in interface IHeapDataManagerremoveFiles - true if remove files before open common initialization at
constructionHeapException - read/write error, file restored from stable backup, file
management is not opened, no file in stable stateprotected abstract void removeFiles()
throws HeapException
HeapExceptionprotected abstract void startServiceImpl(boolean removeFiles)
throws HeapException
removeFiles - HeapExceptionpublic final void stopService()
throws HeapException
IHeapDataManagerstopService in interface IHeapDataManagerHeapExceptionpublic void stopService(boolean removeFiles)
throws HeapException
stopService in interface IHeapDataManagerHeapExceptionprotected abstract void stopServiceImpl(boolean removeFiles)
throws HeapException
HeapExceptionpublic boolean isServiceStarted()
isServiceStarted in interface IHeapDataManagerpublic void clear()
throws HeapException
IHeapDataManagerclear in interface IHeapDataManagerHeapExceptionprotected abstract void clearImpl()
throws HeapException
HeapExceptionpublic void flush()
throws HeapException
IHeapDataManagerflush in interface IHeapDataManagerHeapExceptionprotected abstract void flushImp()
throws HeapException
#updateHeapRecordImpl(DataRecordIdentifier, IHeapDataRecord)HeapExceptionpublic void clearStandbyModification()
throws HeapException
IHeapDataManagerclearStandbyModification in interface IHeapDataManagerHeapExceptionprotected abstract void clearStandbyModificationImpl()
throws HeapException
HeapExceptionpublic DataRecordIdentifier getNextFreeDataRecordIdentifier() throws HeapException
IHeapDataManagergetNextFreeDataRecordIdentifier in interface IHeapDataManagerHeapExceptionprotected abstract DataRecordIdentifier getNextFreeDataRecordIdentifierImpl() throws HeapException
HeapExceptionpublic void setNextFreeDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier) throws HeapException
IHeapDataManagerIHeapDataManager.flush() must be call to store the modification.setNextFreeDataRecordIdentifier in interface IHeapDataManagerdataRecordIdentifier - the next free data record identifierHeapExceptionprotected abstract void setNextFreeDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) throws HeapException
HeapExceptionpublic DataRecordIdentifier getNewDataRecordIdentifier() throws HeapException
IHeapDataManager#readHeapDataRecord(DataRecordIdentifier) can be
used for the data record identifierIHeapDataManager.flush() must be call to store the modification.getNewDataRecordIdentifier in interface IHeapDataManagerHeapExceptionprotected abstract DataRecordIdentifier getNewDataRecordIdentifierImpl() throws HeapException
HeapExceptionpublic boolean deleteDataRecord(DataRecordIdentifier dataRecordIdentifier) throws HeapException
IHeapDataManagerIHeapDataManager.flush() must be call to store the modification.deleteDataRecord in interface IHeapDataManagerdataRecordIdentifier - data record to delete identifierHeapExceptionprotected abstract boolean deleteDataRecordImpl(DataRecordIdentifier dataRecordIdentifier) throws HeapException
HeapExceptionpublic byte[] readDataRecord(DataRecordIdentifier dataRecordIdentifier) throws HeapException
IHeapDataManagerreadDataRecord in interface IHeapDataManagerdataRecordIdentifier - data record to read identifierHeapExceptionprotected abstract byte[] readDataRecordImpl(DataRecordIdentifier dataRecordIdentifier) throws HeapException
HeapExceptionpublic boolean writeDataRecord(DataRecordIdentifier dataRecordIdentifier, byte[] data) throws HeapException
IHeapDataManagerIHeapDataManager.flush() must be call to store the modification.writeDataRecord in interface IHeapDataManagerdataRecordIdentifier - data record to write identifierdata - the data to writeHeapExceptionprotected abstract boolean writeDataRecordImpl(DataRecordIdentifier dataRecordIdentifier, byte[] data) throws HeapException
dataRecordIdentifier - data - HeapExceptionpublic boolean hasDataRecord(DataRecordIdentifier dataRecordIdentifier) throws HeapException
IHeapDataManagerhasDataRecord in interface IHeapDataManagerHeapExceptionprotected abstract boolean hasDataRecordImpl(DataRecordIdentifier dataRecordIdentifier) throws HeapException
HeapExceptionpublic DataRecordIdentifier firstDataRecordIdentifier() throws HeapException
firstDataRecordIdentifier in interface IHeapDataManagerHeapExceptionprotected DataRecordIdentifier firstDataRecordIdentifierImpl() throws HeapException
HeapExceptionpublic DataRecordIdentifier nextDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier) throws HeapException
nextDataRecordIdentifier in interface IHeapDataManagerdataRecordIdentifier - wich for next is requestedHeapExceptionprotected DataRecordIdentifier nextDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) throws HeapException
HeapExceptionpublic DataRecordIdentifier lastDataRecordIdentifier() throws HeapException
lastDataRecordIdentifier in interface IHeapDataManagerHeapExceptionprotected DataRecordIdentifier lastDataRecordIdentifierImpl() throws HeapException
HeapExceptionpublic DataRecordIdentifier lowerDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier) throws HeapException
lowerDataRecordIdentifier in interface IHeapDataManagerdataRecordIdentifier - the keynull if there is no such key.HeapExceptionprotected DataRecordIdentifier lowerDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) throws HeapException
HeapExceptionpublic DataRecordIdentifier floorDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier) throws HeapException
floorDataRecordIdentifier in interface IHeapDataManagerdataRecordIdentifier - the keykey, or
null if there is no such keyHeapExceptionprotected DataRecordIdentifier floorDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) throws HeapException
HeapExceptionpublic DataRecordIdentifier ceilingDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier) throws HeapException
ceilingDataRecordIdentifier in interface IHeapDataManagerdataRecordIdentifier - the keykey, or
null if there is no such keyHeapExceptionprotected DataRecordIdentifier ceilingDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) throws HeapException
HeapExceptionpublic DataRecordIdentifier higherDataRecordIdentifier(DataRecordIdentifier dataRecordIdentifier) throws HeapException
higherDataRecordIdentifier in interface IHeapDataManagerdataRecordIdentifier - the keykey, or null if there
is no such keyHeapExceptionprotected DataRecordIdentifier higherDataRecordIdentifierImpl(DataRecordIdentifier dataRecordIdentifier) throws HeapException
HeapExceptionpublic DataRecordIdentifier removeFirstDataRecord() throws HeapException
IHeapDataManagerIHeapDataManager.flush() must be call to store the modification.removeFirstDataRecord in interface IHeapDataManagerHeapExceptionprotected abstract DataRecordIdentifier removeFirstDataRecordImpl() throws HeapException
HeapExceptionpublic int getNumberOfDataRecord()
throws HeapException
IHeapDataManagergetNumberOfDataRecord in interface IHeapDataManagerHeapExceptionprotected abstract int getNumberOfDataRecordImpl()
throws HeapException
HeapExceptionpublic int getNumberOfFreeRecord()
throws HeapException
IHeapDataManagergetNumberOfFreeRecord in interface IHeapDataManagerHeapExceptionprotected abstract int getNumberOfFreeRecordImpl()
throws HeapException
HeapExceptionpublic long heapSize()
throws HeapException
IHeapDataManagerheapSize in interface IHeapDataManagerHeapExceptionprotected abstract long heapSizeImpl()
throws HeapException
HeapExceptionpublic long freeSize()
throws HeapException
IHeapDataManagerfreeSize in interface IHeapDataManagerHeapExceptionprotected abstract long freeSizeImpl()
throws HeapException
HeapExceptionpublic long usedSize()
throws HeapException
IHeapDataManagerusedSize in interface IHeapDataManagerHeapExceptionprotected abstract long usedSizeImpl()
throws HeapException
HeapExceptionprotected abstract void closeHeapManagerAfterException()
@Fortest public Set<DataRecordIdentifier> getDataRecordIdentifierSet() throws HeapException
IHeapDataManagergetDataRecordIdentifierSet in interface IHeapDataManagerHeapException@Fortest protected abstract Set<DataRecordIdentifier> getDataRecordIdentifierSetImpl() throws HeapException
HeapExceptionpublic Iterator<DataRecordIdentifier> dataRecordIterator() throws HeapException
dataRecordIterator in interface IHeapDataManagerHeapExceptionprotected abstract Iterator<DataRecordIdentifier> dataRecordIteratorImpl() throws HeapException
HeapExceptionCopyright © 2007-2012 Luc Peuvrier. All Rights Reserved.