|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Dieses Interface ist von allen Klassen zu implementieren, deren Objekte in einem Cache verwaltet werden sollen. Über die Implementierung der einzelnen Methoden kann die Klasse festlegen, nach welchen Strategien ihre Objekte in Cache behandelt werden sollen.
Die wichtigsten Daten eines jeden Cacheable-Objektes
sind sein dirty-Flag und sein swapable-Flag:
isDirty() abgefragt und entscheidet darüber,
ob das Objekt vor dem Entfernen aus dem Cache in den
Hintergrundspeicher geschrieben wird. Ein falscher Umgang mit
diesem Flag, das der Implementiere selbst verwalten muß, kann also
zu Datenverlust führen. Dies ist der Fall, wenn ein Objekt trotz
Änderungen das dirty-Flag nicht auf true
setzt. Dann nimmt das Cache an, das Objekt sein mit der Kopie im
Hintergrundspeicher identisch und entfernt es einfach. isSwapable()
zurückzuliefern und entscheidet darüber, ob das Objekt ausgelagert
werden darf. Solange ein Objekt einen Aufruf von
isSwapable() mit false beantwortet,
verbleibt es im Cache. Setzt es sein swapable-Flag auf
true, so wird es bei nächster Gelegenheit aus dem
Cache entfernt und, falls es dirty ist, in den
Hintergrundspeicher geschrieben.Wie ein Objekt mit diesen beiden Flaggen umgeht, ist völlig von den Eigenschaften der Objekt-Klasse und der umgebenden Anwendung abhängig und kann daher hier nicht vorgegeben werden.
| Method Summary | |
boolean |
isDirty()
Gibt an, ob dieses Objekt dirty ist, also in den persistenten Speicher geschrieben werden muß. |
boolean |
isSwapable()
Liefert die Information zurück, ob dieses Objekt ausgelagert werden kann. |
void |
setModified(boolean b)
Setzt das dirty-Flag dieses Objektes. |
void |
swapIn(Cache chCache)
Hier kann das Objekt Aktionen ausführen, die beim Einlagern nötig sind. |
void |
swapOut()
Hier kann das Objekt Aktionen ausführen, die beim Auslagern nötig sind. |
| Methods inherited from interface AMETAS.util.cache.Storeable |
getName, setName |
| Method Detail |
public boolean isSwapable()
true, falls dieses Objekt ausgelagert
werden kann, false sonst.public boolean isDirty()
true, falls sich dieses Objekt seit der
letzten persistenten Speicherung geändert hat,
false sonst.public void swapIn(Cache chCache)
isSwapable() verwendet werden.
chCache - der Cache, in den das Objekt eingelagert wird.public void swapOut()
public void setModified(boolean b)
true als Parameter
aufgerufen, um eine Veränderung anzuzeigen. In dieser Methode
ist das dirty-Flag auf den übergebenen Wert zu setzen,
damit die Veränderung durch isDirty() angezeigt
wird. Merke: Vorzugsweise sollten die verwendenden
Klassen das Objekt über die Methode
Cache.setModified(Cacheable) als modifiziert
kennzeichnen, da so der write through-Mechanismus
verwendet werden kann.
b - true falls das Objekt verändert wurde,
false falls keine Änderung vorliegt.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||