Package de.bsvrz.dav.dav.main
Class DavTransactionManager
- java.lang.Object
-
- de.bsvrz.dav.dav.main.DavTransactionManager
-
public class DavTransactionManager extends java.lang.Object
Klasse, die Transaktionen auf Dav-Seite verwaltet (Anmeldungen und Abmeldungen der inneren Datenidentifikationen, Einfügen von DataIndizes in innere Datensätze)
-
-
Constructor Summary
Constructors Constructor Description DavTransactionManager(de.bsvrz.dav.daf.main.ClientDavConnection connection, TelegramManagerTransactionInterface telegramManager)
Erstellt einen neuen DavTransactionManager
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
handleIncomingDrainData(de.bsvrz.dav.daf.main.ResultData result, de.bsvrz.dav.dav.main.DavTransactionManager.Subscription transactionSubscription)
Wird von der Senke aufgerufen, die sich im Datenverteiler auf die inneren Datensätze von einer Transaktions-Senken-Anmeldung angemeldet hat.void
handleSubscribeTransactionDrain(byte[] bytes)
Wird vom DavRequester aufgerufen um eine Transaktionssenke anzumeldenvoid
handleSubscribeTransactionDrain(de.bsvrz.dav.dav.main.DavTransactionManager.ClientSubscriptionInformation subscriptions)
Wird vom DavRequester aufgerufen um eine Transaktionssenke anzumeldenvoid
handleSubscribeTransactionSource(byte[] bytes)
Wird vom DavRequester aufgerufen um eine Transaktionsquelle anzumeldenvoid
handleSubscribeTransactionSource(de.bsvrz.dav.dav.main.DavTransactionManager.ClientSubscriptionInformation subscriptions)
Wird vom DavRequester aufgerufen um eine Transaktionsquelle anzumeldenjava.util.List<de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram>
handleTelegrams(java.util.List<de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram> telegrams, long applicationId, boolean isSource)
Wird vom Subscriptionsmanager aufgerufen, wenn ein Telegram im Zentraldatenverteiler verarbeitet wird.void
notifyUnsubscribe(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo, boolean isSender)
Wird vom Subscriptionsmanager aufgerufen, um zu signalisieren, dass eine Datenanmeldung ungültig geworden ist.
-
-
-
Constructor Detail
-
DavTransactionManager
public DavTransactionManager(de.bsvrz.dav.daf.main.ClientDavConnection connection, TelegramManagerTransactionInterface telegramManager)
Erstellt einen neuen DavTransactionManager- Parameters:
connection
- Verbindung zum DatenverteilertelegramManager
- SubscriptionsManager
-
-
Method Detail
-
handleTelegrams
public java.util.List<de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram> handleTelegrams(java.util.List<de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram> telegrams, long applicationId, boolean isSource)
Wird vom Subscriptionsmanager aufgerufen, wenn ein Telegram im Zentraldatenverteiler verarbeitet wird. Hier wird geprüft, ob es sich um ein Transaktionstelegramm handelt und es werden entsprechende Aktionen durchgeführt (Datenindex eintragen, innere Telegramme an herkömmliche Empfänger verschicken)- Parameters:
telegrams
- Liste mit zusammengehörigen Telegrammen, die einen Datensatz darstellenapplicationId
- ID der sendenden ApplikationisSource
- Kommt der Datensatz von der lokalen Quelle? (Sonst lokale Senke)- Returns:
- eine neue Liste mit Telegrammen wenn diese verändert wurden, sonst der telegrams-parameter.
-
handleIncomingDrainData
public void handleIncomingDrainData(de.bsvrz.dav.daf.main.ResultData result, de.bsvrz.dav.dav.main.DavTransactionManager.Subscription transactionSubscription)
Wird von der Senke aufgerufen, die sich im Datenverteiler auf die inneren Datensätze von einer Transaktions-Senken-Anmeldung angemeldet hat. Die Funktion sorgt dafür, dass der innere Datensatz in einem Transaktionsdatensatz verpackt wird und an die Transaktionssenke übermittelt wird.- Parameters:
result
- ResultData aus dem inneren DatensatztransactionSubscription
- Anmeldung der Transaktionssenke
-
handleSubscribeTransactionSource
public void handleSubscribeTransactionSource(byte[] bytes) throws java.io.IOException, de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
Wird vom DavRequester aufgerufen um eine Transaktionsquelle anzumelden- Parameters:
bytes
- Serialisierte Info über Datenanmeldung- Throws:
java.io.IOException
de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
-
handleSubscribeTransactionSource
public void handleSubscribeTransactionSource(de.bsvrz.dav.dav.main.DavTransactionManager.ClientSubscriptionInformation subscriptions) throws de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
Wird vom DavRequester aufgerufen um eine Transaktionsquelle anzumelden- Parameters:
subscriptions
- Anmeldeinformation- Throws:
de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
- Fehler bei der Anmeldung (Z.B. es ist schon eine Senke vorhanden)
-
handleSubscribeTransactionDrain
public void handleSubscribeTransactionDrain(byte[] bytes) throws java.io.IOException, de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
Wird vom DavRequester aufgerufen um eine Transaktionssenke anzumelden- Parameters:
bytes
- Serialisierte Info über Datenanmeldung- Throws:
java.io.IOException
de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
-
handleSubscribeTransactionDrain
public void handleSubscribeTransactionDrain(de.bsvrz.dav.dav.main.DavTransactionManager.ClientSubscriptionInformation subscriptions) throws de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
Wird vom DavRequester aufgerufen um eine Transaktionssenke anzumelden- Parameters:
subscriptions
- Anmeldeinformation- Throws:
de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
- Fehler bei der Anmeldung (Z.B. es ist schon eine Senke vorhanden)
-
notifyUnsubscribe
public void notifyUnsubscribe(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo, boolean isSender)
Wird vom Subscriptionsmanager aufgerufen, um zu signalisieren, dass eine Datenanmeldung ungültig geworden ist. Daraufhin werden hier alle Transaktionsanmeldungen und Anmeldungen der inneren Daten zu dieser Transaktion entfernt.- Parameters:
baseSubscriptionInfo
- Datenanmelde-InformationisSender
- handelt es sich um eine sendende Anmeldung?
-
-