de.bsvrz.dav.dav.main
Class CacheManager

java.lang.Object
  extended by de.bsvrz.dav.dav.main.CacheManager

public class CacheManager
extends Object

Speichert die Telegramme des zuletzt versendeten aktuellen Datensatzes und den zuletzt verwendeten Datensatzindex von aktuellen oder nachgelieferten Datensätzen je Datenidentifikation ab.

Author:
Kappich Systemberatung

Nested Class Summary
(package private) static class CacheManager.CacheEntry
          Klasse für die je Datenidentifikation gespeicherten Einträge mit den Telegrammen des zuletzt versendeten aktuellen Datensatzes und dem zuletzt verwendeten Datensatzindex von aktuellen oder nachgelieferten Datensätzen.
 
Field Summary
private  HashMap<BaseSubscriptionInfo,CacheManager.CacheEntry> _cache
          Map in der je Datenidentifikation ein Eintrag mit den Telegrammen des zuletzt versendeten aktuellen Datensatzes und dem zuletzt verwendeten Datensatzindex von aktuellen oder nachgelieferten Datensätzen enthalten ist.
 
Constructor Summary
CacheManager()
          Erzeugt ein neues Objekt ohne Parameter.
 
Method Summary
(package private)  void clean(BaseSubscriptionInfo dataIdentification)
          Löscht den zur angegebenen Datenidentifikation gespeicherten Datensatz.
(package private)  CacheManager.CacheEntry getCacheEntry(BaseSubscriptionInfo baseSubscriptionInfo)
           
(package private)  ApplicationDataTelegram[] getCurrentDataForApplication(BaseSubscriptionInfo dataIdentification)
          Liefert ein Array mit den Applikations-Telegrammen des zuletzt versendeten aktuellen Datensatzes der angegebenen Datenidentifikation zurück.
(package private)  TransmitterDataTelegram[] getCurrentDataForTransmitter(BaseSubscriptionInfo dataIdentification)
          Liefert ein Array mit den Datenverteiler-Telegrammen des zuletzt versendeten aktuellen Datensatzes der angegebenen Datenidentifikation zurück.
(package private)  long getCurrentDataIndex(BaseSubscriptionInfo dataIdentification)
          Bestimmt den zuletzt verwendeten Datensatzindex von aktuellen oder nachgelieferten Datensätzen der angegebenen Datenidentifikation.
(package private)  void putNewCacheEntry(BaseSubscriptionInfo baseSubscriptionInfo, long newDataIndex, TransmitterDataTelegram[] transmitterTelegrams)
           
(package private)  boolean update(TransmitterDataTelegram[] transmitterTelegrams, boolean delayedData)
          Speichert den übergebenen Datensatz wenn er nicht als nachgeliefert markiert ist und den darin enthaltenen Datensatzindex (auch wenn der Datensatz als nachgeliefert markiert ist).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_cache

private final HashMap<BaseSubscriptionInfo,CacheManager.CacheEntry> _cache
Map in der je Datenidentifikation ein Eintrag mit den Telegrammen des zuletzt versendeten aktuellen Datensatzes und dem zuletzt verwendeten Datensatzindex von aktuellen oder nachgelieferten Datensätzen enthalten ist.

Constructor Detail

CacheManager

CacheManager()
Erzeugt ein neues Objekt ohne Parameter.

Method Detail

getCurrentDataForApplication

final ApplicationDataTelegram[] getCurrentDataForApplication(BaseSubscriptionInfo dataIdentification)
Liefert ein Array mit den Applikations-Telegrammen des zuletzt versendeten aktuellen Datensatzes der angegebenen Datenidentifikation zurück.

Parameters:
dataIdentification - Datenidentifikation des gewünschten Datensatzes
Returns:
Array mit den ApplikationsTelegrammen oder null wenn keine gespeicherten Telegramme für die angegebene Datenidentifikation vorliegen.

getCurrentDataForTransmitter

final TransmitterDataTelegram[] getCurrentDataForTransmitter(BaseSubscriptionInfo dataIdentification)
Liefert ein Array mit den Datenverteiler-Telegrammen des zuletzt versendeten aktuellen Datensatzes der angegebenen Datenidentifikation zurück.

Parameters:
dataIdentification - Datenidentifikation des gewünschten Datensatzes
Returns:
Array mit den Datenverteiler-Telegrammen oder null wenn keine gespeicherten Telegramme für die angegebene Datenidentifikation vorliegen.

getCurrentDataIndex

final long getCurrentDataIndex(BaseSubscriptionInfo dataIdentification)
Bestimmt den zuletzt verwendeten Datensatzindex von aktuellen oder nachgelieferten Datensätzen der angegebenen Datenidentifikation.

Parameters:
dataIdentification - Datenidentifikation des gewünschten Datensatzindex
Returns:
Zuletzt verwendeter Datensatzindex oder 0 falls noch kein Datensatz mit der angegebenen Datenidentifikation versendet wurde.

update

final boolean update(TransmitterDataTelegram[] transmitterTelegrams,
                     boolean delayedData)
Speichert den übergebenen Datensatz wenn er nicht als nachgeliefert markiert ist und den darin enthaltenen Datensatzindex (auch wenn der Datensatz als nachgeliefert markiert ist).

Parameters:
transmitterTelegrams - Array mit den Telegrammen des zu speichernden Datensatzes
delayedData - Flag das angibt, ob der Datensatz nachgeliefert ist.
Returns:
true im Normalfall und false, wenn der Datensatz einen nicht monoton steigenden Datensatzindex enthält und deshalb nicht versendet werden sollte.

getCacheEntry

CacheManager.CacheEntry getCacheEntry(BaseSubscriptionInfo baseSubscriptionInfo)

putNewCacheEntry

void putNewCacheEntry(BaseSubscriptionInfo baseSubscriptionInfo,
                      long newDataIndex,
                      TransmitterDataTelegram[] transmitterTelegrams)

clean

final void clean(BaseSubscriptionInfo dataIdentification)
Löscht den zur angegebenen Datenidentifikation gespeicherten Datensatz.

Parameters:
dataIdentification - Datenidentifikation des zu löschenden Datensatzes