public static class CacheManager.Cache
extends java.lang.Object
Realisiert den Zwischenspeicher für eine Containerdatei.
Modifier and Type | Field and Description |
---|---|
private int |
_bufferedCount
Anzahl der bisher von diesem Cache zwischengespeicherten Datenblöcke.
|
private int |
_bufferSize
Kapazität des Zwischenspeichers in Byte
|
private int |
_containerSize
Größe der ContainerDatei wie sie nach dem Schreiben der noch zwischengespeicherten Daten wäre.
|
private boolean |
_createFile
true , falls beim nächsten Schreibvorgang eine neue Datei erzeugt werden soll; false , false beim nächsten Schreibvorgang an die bereits vorhandenen Datei angehangen werden soll. |
private java.io.File |
_file
Datei in die zwischengespeicherte Daten letztendlich geschrieben werden sollen.
|
private java.io.ByteArrayOutputStream |
_out
Zwischenspeicher für noch zu schreibende Bytes.
|
private int |
_processedCount
Anzahl der bisher von diesem Cache bearbeiteten Datenblöcke.
|
private int |
_unbufferedCount
Anzahl der bisher von diesem Cache nicht zwischengespeicherten Datenblöcke.
|
private int |
_writeCount
Anzahl der bisher durchgeführten Datei-Schreibvorgänge in diesem Container.
|
private long |
_writtenBytes |
Modifier | Constructor and Description |
---|---|
private |
Cache(java.io.File file,
boolean createFile,
int bufferSize)
Erzeugt einen neuen Cache für die angegebene Datei.
|
Modifier and Type | Method and Description |
---|---|
void |
cache(byte[] data,
int length)
Cachen der übergebenen Daten.
|
void |
flush()
Schreibt die zwischengespeicherten Daten in die ContainerDatei.
|
(package private) int |
getBufferedCount() |
(package private) int |
getBufferSize() |
long |
getContainerSize()
Bestimmt die Größe der ContainerDatei wie sie nach dem Schreiben der noch zwischengespeicherten Daten wäre.
|
(package private) java.io.File |
getFile() |
(package private) int |
getProcessedCount() |
(package private) int |
getUnbufferedCount() |
(package private) int |
getWriteCount() |
(package private) boolean |
isCreateFile() |
java.lang.String |
toString() |
private void |
writeCacheAndDataToFile(byte[] data,
int offset,
int length)
Schreibt eventuell zwischengespeicherte Daten und optional zusätzlich einen weiteren Datensatz in die ContainerDatei
|
private final java.io.File _file
Datei in die zwischengespeicherte Daten letztendlich geschrieben werden sollen.
private boolean _createFile
true
, falls beim nächsten Schreibvorgang eine neue Datei erzeugt werden soll; false
, false beim nächsten Schreibvorgang an die bereits vorhandenen Datei angehangen werden soll.
private final int _bufferSize
Kapazität des Zwischenspeichers in Byte
private final java.io.ByteArrayOutputStream _out
Zwischenspeicher für noch zu schreibende Bytes.
private int _containerSize
Größe der ContainerDatei wie sie nach dem Schreiben der noch zwischengespeicherten Daten wäre.
private int _writeCount
Anzahl der bisher durchgeführten Datei-Schreibvorgänge in diesem Container.
private int _processedCount
Anzahl der bisher von diesem Cache bearbeiteten Datenblöcke.
private int _bufferedCount
Anzahl der bisher von diesem Cache zwischengespeicherten Datenblöcke.
private int _unbufferedCount
Anzahl der bisher von diesem Cache nicht zwischengespeicherten Datenblöcke.
private long _writtenBytes
private Cache(java.io.File file, boolean createFile, int bufferSize)
Erzeugt einen neuen Cache für die angegebene Datei.
file
- Datei in die zwischengespeicherte Daten letztendlich geschrieben werden sollen.createFile
- true
, falls eine neue Datei erzeugt werden soll; false
, false an die bereits vorhandenen Datei angehangen werden soll.bufferSize
- Kapazität des Zwischenspeichers in Bytes.java.io.File getFile()
boolean isCreateFile()
true
, falls beim nächsten Schreibvorgang eine neue Datei erzeugt werden soll; false
, false beim nächsten Schreibvorgang an die bereits vorhandenen Datei angehangen werden soll.int getBufferSize()
int getWriteCount()
int getProcessedCount()
int getBufferedCount()
int getUnbufferedCount()
public long getContainerSize()
Bestimmt die Größe der ContainerDatei wie sie nach dem Schreiben der noch zwischengespeicherten Daten wäre.
public void cache(byte[] data, int length) throws PersistenceException
Cachen der übergebenen Daten. Falls die Gesamtgröße der zwischengespeicherten Daten die Größe des Caches überschreiten würde, werden die bereits zwischengespeicherten Daten vorher in die Containerdatei geschrieben.
data
- Array mit den zu speichernden Byteslength
- Anzahl der zu speichernden Bytes im ArrayPersistenceException
- Wenn beim Schreiben der Daten ein Problem aufgetreten ist.public void flush() throws PersistenceException
Schreibt die zwischengespeicherten Daten in die ContainerDatei.
PersistenceException
- Wenn beim Schreiben der Daten ein Problem aufgetreten ist.public java.lang.String toString()
toString
in class java.lang.Object
private void writeCacheAndDataToFile(byte[] data, int offset, int length) throws PersistenceException
Schreibt eventuell zwischengespeicherte Daten und optional zusätzlich einen weiteren Datensatz in die ContainerDatei
data
- Array mit weiteren zu schreibenden Daten oder null
, falls nur die zwischengespeicherten Daten geschrieben werden sollen.offset
- Index des ersten zu schreibenden Bytes im Arraylength
- Anzahl der zu schreibenden Bytes im ArrayPersistenceException
- Wenn beim Schreiben der Daten ein Problem aufgetreten ist.