Package de.bsvrz.dav.daf.main.impl
Class CacheManager
- java.lang.Object
-
- de.bsvrz.dav.daf.main.impl.CacheManager
-
public class CacheManager extends java.lang.Object
Die interne Subkomponente Cache-Manager ist für das Speichern der ankommenden Daten und für die Bereitstellung bereits gespeicherte Daten zuständig. Die gespeicherten Daten werden nach ihrem Index sortiert festgehalten. Ein im Hintergrund laufender Thread, der CacheCleaner, sorgt dafür, dass die Daten, nach ihrer beim Anmelden angegebenen Verweilzeit, aus dem Cache gelöscht werden. Diese Subkomponente wird von ClientDavConnection erzeugt.
-
-
Constructor Summary
Constructors Constructor Description CacheManager(SubscriptionManager _subscriptionManager, ConfigurationManager _configurationManager)
Dieser Konstruktor erzeugt eine Instanz und hält eine Referenz auf die Subkomponenten Anmeldemanager und Konfigurationsmanager fest.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Schliesst diese Komponente und beendet den ThreadCacheCleaner
java.util.List<CachedObject>
getCachedData(BaseSubscriptionInfo baseSubscriptionInfo, boolean delayedDataFlag, int n)
Diese Methode iteriert durch den Cache-Inhalt und sammelt die letzen n Datensätze, vom aktuellen Datensatz startend in die Vergangenheit.java.util.List<CachedObject>
getCachedData(BaseSubscriptionInfo baseSubscriptionInfo, boolean delayedDataFlag, long fromTime, long toTime)
Diese Methode iteriert durch den Cache-Inhalt und sammelt die Datensätze, deren Zeitstempel zwischen den spezifizierten Zeiten liegt.CachedObject
getLastValueOfCachedData(BaseSubscriptionInfo baseSubscriptionInfo, boolean delayedDataFlag)
Gibt den aktuellen Datensatz der spezifizierten Daten zurück.void
update(SendDataObject newData)
Diese Methode wird von der Protokollsteuerung DaV-DAF aufgerufen, wenn ein aktuelles Datum angekommen ist.
-
-
-
Constructor Detail
-
CacheManager
public CacheManager(SubscriptionManager _subscriptionManager, ConfigurationManager _configurationManager)
Dieser Konstruktor erzeugt eine Instanz und hält eine Referenz auf die Subkomponenten Anmeldemanager und Konfigurationsmanager fest. Auch eine Instanz des CacheCleaners wird gestartet.- Parameters:
_subscriptionManager
- Im Konstruktor wird die MethodeSubscriptionManager.setCacheManager(CacheManager)
aufgerufen und dieses Objekt übergeben._configurationManager
- Wird zum anfordern des Datenmodells benötigt.
-
-
Method Detail
-
update
public void update(SendDataObject newData) throws java.lang.InterruptedException
Diese Methode wird von der Protokollsteuerung DaV-DAF aufgerufen, wenn ein aktuelles Datum angekommen ist. Die Datensätze, die als Bytestrom ankommen, werden zuerst in Attribute umgewandelt, und ein neues CachedObject wird gebildet. Dieses wird nach dem Datensatzindex sortiert in den Cache eingefügt, und die SubscriptionManager- Subkomponente wird über das Ankommen des aktuellen Datums benachrichtigt.- Parameters:
newData
- Neuer Datensatz- Throws:
java.lang.InterruptedException
- Wenn der Thread während eines blockierenden Aufrufs unterbrochen wurde
-
close
public final void close()
Schliesst diese Komponente und beendet den ThreadCacheCleaner
-
getLastValueOfCachedData
public final CachedObject getLastValueOfCachedData(BaseSubscriptionInfo baseSubscriptionInfo, boolean delayedDataFlag)
Gibt den aktuellen Datensatz der spezifizierten Daten zurück. Wenn der Datensatz kein nachgelieferter sein darf, dann wird der letzte nicht nachgeliefert Datensatz zurückgegeben. Ist kein passender Datensatz vorhanden, so wirdnull
zurückgegeben.- Parameters:
baseSubscriptionInfo
- Anmeldeinformation eines DatensatzesdelayedDataFlag
- Nachgelieferte Daten- Returns:
- Datensatz, der die Parameter erfüllt oder
null
, falls kein Datensatz vorhanden ist.
-
getCachedData
public final java.util.List<CachedObject> getCachedData(BaseSubscriptionInfo baseSubscriptionInfo, boolean delayedDataFlag, int n)
Diese Methode iteriert durch den Cache-Inhalt und sammelt die letzen n Datensätze, vom aktuellen Datensatz startend in die Vergangenheit. Wenn keine nachgelieferten erwünscht sind, so werden alle nachgelieferte Daten übersprungen. Ist kein passender Datensatz vorhanden, so wird null zurückgegeben. Sind weniger als n Datensätze vorhanden, so werden diese zurückgegeben.- Parameters:
baseSubscriptionInfo
- Anmeldeinformation eines DatensatzesdelayedDataFlag
- Nachgelieferte Datenn
- Anzahl der gültigen Versionen eines Datensatzes- Returns:
- Datensätze/satz oder
null
, falls kein Datensatz vorhanden ist. Der Datensatz, der als letztes gecasht wurde steht an Index 0.
-
getCachedData
public final java.util.List<CachedObject> getCachedData(BaseSubscriptionInfo baseSubscriptionInfo, boolean delayedDataFlag, long fromTime, long toTime)
Diese Methode iteriert durch den Cache-Inhalt und sammelt die Datensätze, deren Zeitstempel zwischen den spezifizierten Zeiten liegt. Wenn keine nachgelieferten erwünscht sind, so werden alle nachgelieferte Daten übersprungen. Ist kein passender Datensatz vorhanden, so wirdnull
zurückgegeben.- Parameters:
baseSubscriptionInfo
- Anmeldeinformation eines DatensatzesdelayedDataFlag
- Nachgelieferte DatenfromTime
- Start Zeitintervall. Wird der Wert -1 übergeben, so wird die Datenzeit des zuletzt gecachten Objekts benutzt.toTime
- Ende Zeitintervall. Wird der Wert -1 übergeben, so wird die Datenzeit des zuletzt gecachten Objekts benutzt.- Returns:
- Datensätze/Datensatz für den die übergebenen Parameter erfüllt sind oder
null
wenn kein Datensatz vorhanden ist
-
-