public class SubscriptionManager extends Object
Modifier and Type | Class and Description |
---|---|
private class |
SubscriptionManager.ConfigurationRequestStatus
Status der Verbindung mit einer Konfiguration
|
(package private) class |
SubscriptionManager.DataDeliveryThread |
Modifier and Type | Field and Description |
---|---|
private long |
_applicationId
Die Id der Applikation
|
private CacheManager |
_cacheManager
Der Cachemanager
|
private ConfigurationManager |
_configurationManager
Der Konfigurationsmanager
|
private Map<Long,SubscriptionManager.ConfigurationRequestStatus> |
_configurationRequestStatus
Signalisiert den Status der Datenanmeldungen auf die Konfigurationsanfgragen
|
private ClientDavParameters |
_dafParameters
Die Parameter der Datenverteiler-Applikationsfunktionen
|
private SubscriptionManager.DataDeliveryThread |
_dataDeliveryThread
Der Thread, der empfangene Datensätze an die angemeldeten Empfänger weiterleitet.
|
private static Debug |
_debug
Debuglogger
|
private ClientHighLevelCommunication |
_highLevelCommunication
Die höhere Ebene der Kommunikation
|
private boolean |
_initialisationComplete
Signalisiert, dass die Initialisierung fertig ist
|
private long |
_localConfigurationId
Der ID des lokalen Konfigurationsverantwortlichen
|
private CollectingReceiverManager |
_receiverManager
Verwaltung der angemeldeten Receiver
|
private Hashtable<BaseSubscriptionInfo,ReceiveSubscriptionObject> |
_receiverObjectTable
Eine Tabelle wo die Empfangsanmeldungen und deren Informationen gehalten werden
|
private List<ConfigurationManager> |
_secondaryConfigurationManagers
Liste mit weiteren Konfigurationsmanagern für entfernte/remote Konfigurationen
|
private Hashtable<BaseSubscriptionInfo,SendSubscriptionObject> |
_senderObjectTable
Eine Tabelle wo die Sendeanmeldungen und deren Informationen gehalten werden
|
Constructor and Description |
---|
SubscriptionManager(ClientDavParameters dafParameters) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
actualDataUpdate(CachedObject cachedObject)
Diese Methode wird von Cache-Manager aufgerufen, wenn aktuelle Daten empfangen wurden.
|
void |
addConfiguration(ConfigurationManager configurationManager,
String name)
Fügt einen ConfigurationManager für eine entfernte Konfiguration hinzu
|
private boolean |
checkATGUsage(DataDescription dataDescription,
ReceiverRole receiverRole)
Prüft, ob eine Anmeldung als Senke/Empfänger laut der benutzten ATG-Verwendung erlaubt ist.
|
private boolean |
checkATGUsage(DataDescription dataDescription,
SenderRole senderRole) |
void |
close()
Schließt diese Subkomponente und terminiert den Aktualisierungsthread.
|
void |
completeInitialisation(boolean skipConfiguration)
Initialisierung der Anmeldungsverwaltung.
|
ClientHighLevelCommunication |
getHighLevelCommunication()
Bestimmt die Kommunikationsschicht von der der SubscriptionManager abhängig ist
|
List<ConfigurationManager> |
getSecondaryConfigurationManagers()
Gibt eine Liste mit ConfigurationManagern zurück, die entfernte Konfigurationen verwalten
|
(package private) long |
getSendDataIndex(BaseSubscriptionInfo info)
Gibt der Index der Sendung der gegebene Anmeldungsinformation zurück.
|
(package private) long |
getTimeInCache(BaseSubscriptionInfo info)
Gibt die Verweilzeit eines Datums im Cache zurück
|
int |
getTimeStampFromSenderSubscription(BaseSubscriptionInfo info)
Gibt den Zeitpunkt einer Sender-Anmeldung zurück
|
boolean |
isInitialisationComplete()
Überprüft, ob die notwendigen Anmeldungen einer gerichtete Kommunikation durch die Konfiguration erfolgt sind oder nicht.
|
private boolean |
isOnlineUsage(AttributeGroupUsage.Usage usage)
Prüft ob es sich um eine Anmeldung auf Onlinedaten handelt.
|
void |
notifySenderApplication(BaseSubscriptionInfo info,
byte state)
Wenn eine Sendeanmeldung mit aktivierter Benachrichtigungsoption vorliegt, dann wird ihr über diese Methode mitgeteilt, welche Aktion von ihr durchzuführen
ist.
|
void |
sendData(ResultData result)
Sendet einen Ergebnisdatensatz zum Datenverteiler.
|
(package private) void |
sendData(SendDataObject sendData)
Sendet eine Konfigurationsanfrage zum Datenverteiler.
|
(package private) void |
setCacheManager(CacheManager cacheManager)
Setzt den CacheManager dieser Subkomponente.
|
void |
setConfigurationManager(ConfigurationManager configurationManager)
Setzt den ConfigurationManager dieser Subkomponente und benachrichtigt die Protokollsteuerung DaV-DAF über die Bereitschaft, Konfigurationsdaten zu
empfangen.
|
void |
setHighLevelCommunication(ClientHighLevelCommunication highLevelCommunication)
Setzt die ClientHighLevelCommunication-Subkomponente um Anmeldungen, Abmeldungen und Datensätze an den Datenverteiler weiterzuleiten.
|
void |
subscribeReceiver(ClientReceiverInterface receiver,
SystemObject[] objects,
DataDescription dataDescription,
ReceiveOptions options,
ReceiverRole role,
long cacheTime)
Anmeldung zum Empfangen von Daten.
|
private void |
subscribeReceiver(ReceiverSubscription receiverSubscription)
Anmeldung zum Empfangen von Daten für eine Datenidentifikation.
|
void |
subscribeSender(ClientSenderInterface sender,
SystemObject[] objects,
DataDescription dataDescription,
SenderRole role)
Anmeldung zum Senden von Daten.
|
private Aspect |
substituteToAspect(AttributeGroup attributeGroup,
Aspect aspect)
Realisiert eine Aspektumleitung, sofern dies über entsprechende Aufrufargumente der Applikation vorgegeben wurde.
|
void |
unsubscribeReceiver(ClientReceiverInterface receiver,
SystemObject[] objects,
DataDescription dataDescription)
Abmeldung von angemeldeten Daten.
|
void |
unsubscribeSender(ClientSenderInterface sender,
SystemObject[] objects,
DataDescription dataDescription)
Abmeldung von angemeldeten Daten.
|
void |
waitForInitialization(long configAuthorityId)
Wartet auf den Verbindungsaufbau zu einer Konfiguration
|
private static final Debug _debug
private Hashtable<BaseSubscriptionInfo,SendSubscriptionObject> _senderObjectTable
private Hashtable<BaseSubscriptionInfo,ReceiveSubscriptionObject> _receiverObjectTable
private CacheManager _cacheManager
private ConfigurationManager _configurationManager
private final List<ConfigurationManager> _secondaryConfigurationManagers
private ClientHighLevelCommunication _highLevelCommunication
private ClientDavParameters _dafParameters
private long _applicationId
private long _localConfigurationId
private boolean _initialisationComplete
private final Map<Long,SubscriptionManager.ConfigurationRequestStatus> _configurationRequestStatus
private SubscriptionManager.DataDeliveryThread _dataDeliveryThread
private CollectingReceiverManager _receiverManager
public SubscriptionManager(ClientDavParameters dafParameters)
dafParameters
- Startparameter der Verbindungpublic final void setHighLevelCommunication(ClientHighLevelCommunication highLevelCommunication)
highLevelCommunication
- Referenz auf die zu setzende Kommunikationsschichtpublic final ClientHighLevelCommunication getHighLevelCommunication()
public final void completeInitialisation(boolean skipConfiguration)
skipConfiguration
- Anmeldung von Konfigurationsanfragen unterdrückenpublic final boolean isInitialisationComplete()
final void setCacheManager(CacheManager cacheManager)
cacheManager
- Referenz auf den zu setzenden Cachemanagerpublic final void setConfigurationManager(ConfigurationManager configurationManager)
configurationManager
- Referenz auf den zu setzenden Konfigurationsmanagerprivate final Aspect substituteToAspect(AttributeGroup attributeGroup, Aspect aspect)
attributeGroup
- Umzuleitende Attributgruppe.aspect
- Ersetzer Aspekt.private final void subscribeReceiver(ReceiverSubscription receiverSubscription) throws DataNotSubscribedException
receiverSubscription
- AnmeldeinformationenDataNotSubscribedException
public final void subscribeReceiver(ClientReceiverInterface receiver, SystemObject[] objects, DataDescription dataDescription, ReceiveOptions options, ReceiverRole role, long cacheTime)
receiver
- Ein von der Applikation bereitzustellendes Objekt, das bei Aktualisierungen entsprechende Methodenaufrufe erhält.objects
- Liste mit System-Objekten für die die spezifizierten Daten anzumelden sind.dataDescription
- Beschreibende Informationen zu den anzumeldenden Daten.options
- Für die Anmeldung zu verwendende Optionen.role
- Für die Anmeldung zu verwendende Rolle (Empfänger oder Senke).cacheTime
- Vorhaltezeitraum in Millisekunden. Der Vorhaltezeitraum spezifiziert, wie lange empfangene Daten zwischengespeichert werden sollen.IllegalArgumentException
- Die angegebene ReceiverRole verstößt gegen die Attributgruppenverwendung.public int getTimeStampFromSenderSubscription(BaseSubscriptionInfo info)
info
- Anmeldungprivate boolean checkATGUsage(DataDescription dataDescription, ReceiverRole receiverRole)
dataDescription
- Datenidentifikation, mit der angemeldet werden soll.receiverRole
- Rolle, mit der angemeldet werden soll.IllegalArgumentException
- Es sollen Konfigurationsdaten angemeldet werden. Dies ist immer verboten.private boolean checkATGUsage(DataDescription dataDescription, SenderRole senderRole)
private boolean isOnlineUsage(AttributeGroupUsage.Usage usage)
usage
- Verwendete ATG-UsageAttributeGroupUsage.Usage#OnlineDataAsSenderDrain
,
AttributeGroupUsage.Usage#OnlineDataAsSourceReceiver
,
AttributeGroupUsage.Usage#OnlineDataAsSourceReceiverOrSenderDrain
public final void unsubscribeReceiver(ClientReceiverInterface receiver, SystemObject[] objects, DataDescription dataDescription)
subscribeReceiver(de.bsvrz.dav.daf.main.impl.subscription.ReceiverSubscription)
durchgeführte Empfangsanmeldung wieder rückgängig.receiver
- Das Anwendungsobjekt, das bei der Anmeldung benutzt wurde.objects
- Feld mit System-Objekten für die die spezifizierten Daten abzumelden sind.dataDescription
- Beschreibende Informationen zu den abzumeldenden Daten.public final void subscribeSender(ClientSenderInterface sender, SystemObject[] objects, DataDescription dataDescription, SenderRole role) throws OneSubscriptionPerSendData
sender
- Applikationsobjekt zur Verarbeitung von Sendesteuerungenobjects
- Feld mit System-Objekten für die spezifizierten Daten anzumelden sind.dataDescription
- Beschreibende Informationen zu den anzumeldenden Daten.role
- Für die Anmeldung zu verwendende Rolle (Quelle oder Sender).IllegalArgumentException
- Die SenderRole verstößt gegen die AttributgruppenverwendungOneSubscriptionPerSendData
- Wenn bereits eine lokale Sendeanmeldung für diese Datenidentifikation vorhanden istpublic final void unsubscribeSender(ClientSenderInterface sender, SystemObject[] objects, DataDescription dataDescription)
subscribeSender(de.bsvrz.dav.daf.main.ClientSenderInterface, de.bsvrz.dav.daf.main.config.SystemObject[], de.bsvrz.dav.daf.main.DataDescription, de.bsvrz.dav.daf.main.SenderRole)
durchgeführte Sendeanmeldung wieder rückgängig.sender
- Das Anwendungsobjekt, das bei der Anmeldung benutzt wurde.objects
- Feld mit System-Objekten für die die spezifizierten Daten abzumelden sind.dataDescription
- Beschreibende Informationen zu den abzumeldenden Daten.final void sendData(SendDataObject sendData) throws DataNotSubscribedException
sendData
- Zu sendender Datensatz.DataNotSubscribedException
- Wenn die Daten nicht zum Senden angemeldet waren.public final void sendData(ResultData result) throws DataNotSubscribedException, SendSubscriptionNotConfirmed
result
- Ergebnis mit dem zu sendenden Datensatz.DataNotSubscribedException
- Wenn die Daten nicht zum Senden angemeldet waren.SendSubscriptionNotConfirmed
- Wenn die Sendesteuerung abgewartet werden muss, bevor gesendet werden kann.public void notifySenderApplication(BaseSubscriptionInfo info, byte state)
info
- Anmeldeinfo, auf die sich die Sendesteuerung beziehtstate
- Zustand der Sendesteuerunglong getTimeInCache(BaseSubscriptionInfo info)
info
- Anmeldeinfo, zu der die Verweilzeit bestimmt werden soll.void actualDataUpdate(CachedObject cachedObject) throws InterruptedException
cachedObject
- Empfangener Datensatz.InterruptedException
- Wenn der Thread während eines blockierenden Aufrufs unterbrochen wurdefinal long getSendDataIndex(BaseSubscriptionInfo info)
info
- Anmeldeinformationen der Sendungpublic final void close()
public void addConfiguration(ConfigurationManager configurationManager, String name)
configurationManager
- ConfigurationManagername
- Name der Konfigurationpublic List<ConfigurationManager> getSecondaryConfigurationManagers()
public void waitForInitialization(long configAuthorityId) throws ConfigurationTaskException
configAuthorityId
- Konfigurationsverantwortlichen-IdConfigurationTaskException