de.bsvrz.dav.dav.communication.appProtocol
Class T_A_HighLevelCommunication

java.lang.Object
  extended by de.bsvrz.dav.dav.communication.appProtocol.T_A_HighLevelCommunication
All Implemented Interfaces:
HighLevelCommunicationCallbackInterface, T_A_HighLevelCommunicationInterface, ServerHighLevelCommunication

public class T_A_HighLevelCommunication
extends Object
implements T_A_HighLevelCommunicationInterface, HighLevelCommunicationCallbackInterface

Diese Klasse stellt eine Verbindung vom Datenverteiler zur Applikation dar. Über diese Verbindung können Telegramme an eine Applikation verschickt werden.

Author:
Kappich Systemberatung

Constructor Summary
T_A_HighLevelCommunication(ServerConnectionProperties properties, SubscriptionsManager subscriptionsManager, ConnectionsManager connectionsManager, boolean waitForConfiguration)
          Erzeugt ein neues Objekt mit den gegebenen Parametern.
 
Method Summary
 void continueAuthentification()
          Diese Methode wird von der Verbindungsverwaltung aufgerufen, sobald die Konfiguration vorhanden ist, um zu signalisieren, dass eine blockierte Authentifizierung weiter bearbeitet werden kann: Steht eine Authentifizierungsschlüsselanfrage an, während die Konfiguration noch nicht vorhanden ist, wird die Antwort blockiert bis die Konfiguration bereit ist.
 List<ApplicationDataTelegram> createStalledTelegramList(BaseSubscriptionInfo info, int maxCount)
          Erzeugt eine Liste für verzögerte Telegramme für eine Datenidentifikation und speichert sie in einer Map.
 List<ApplicationDataTelegram> deleteStalledTelegramList(BaseSubscriptionInfo info)
          Liefert eine vorher erzeugte Liste für verzögerte Telegramme für eine Datenidentifikation und entfernt sie aus der Map.
 void disconnected(boolean error, String message)
           
 String getApplicationName()
          Gibt den Namen der Applikation zurück.
 String getApplicationTypePid()
          Gibt den Typ der Applikation zurück.
 long getConfigurationId()
          Gibt die Id der Konfiguration zurück.
 long getConnectionCreatedTime()
          Zeitpunkt, an dem das Objekt erstellt wurde und somit eine Verbindung zum DaV bestand.
 long getDataTransmitterId()
          Gibt die Id des Datenverteilers zurück.
 long getId()
          Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die ID der verbundenen Applikation zu erhalten.
 long getRemoteUserId()
          Gibt die ID des verbundenen Benutzers zurück.
 String getSendBufferState()
          Liefert einen beschreibenden Text mit dem Zustand des Sendepuffers aus der LowLevelCommunication.
 List<ApplicationDataTelegram> getStalledTelegramList(BaseSubscriptionInfo info)
          Liefert eine vorher erzeugte Liste für verzögerte Telegramme für eine Datenidentifikation.
 SubscriptionComponent getSubscriptionComponent()
          Gibt die Komponente zurück, die die Anmeldungen der Verbindung verwaltet.
 long getTelegrammTime(long maxWaitingTime)
          Diese Methode wird von der Verbindungsverwaltung aufgerufen.
 boolean isConfiguration()
          Gibt zurück, ob es sich um die Konfiguration handelt.
 void sendData(ApplicationDataTelegram telegram)
          Sendet ein Telegramm über die Telegrammverwaltung zur Applikation.
 void sendData(ApplicationDataTelegram[] telegrams)
          Sendet mehrere Telegramme über die Telegrammverwaltung zur Applikation.
 void setApplicationStatusUpdater(ConnectionsManager.ApplicationStatusUpdater applicationStatusUpdater)
          Dieses Objekt wird benachrichtigt, sobald die Verbindung zur Applikation aufgebaut wurde.
 void terminate(boolean error, String message)
          Terminiert die Kommunikationsverbindung.
 void terminate(boolean error, String message, DataTelegram terminationTelegram)
           
 void triggerSender(BaseSubscriptionInfo data, byte state)
          Diese Methode wird von der Verbindungsverwaltung aufgerufen, um eine Sendesteuerung an die Applikation weiterzuleiten.
 void update(DataTelegram telegram)
           
 void updateConfigData(SendDataObject receivedData)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

T_A_HighLevelCommunication

public T_A_HighLevelCommunication(ServerConnectionProperties properties,
                                  SubscriptionsManager subscriptionsManager,
                                  ConnectionsManager connectionsManager,
                                  boolean waitForConfiguration)
Erzeugt ein neues Objekt mit den gegebenen Parametern.

Parameters:
properties - stellt die Parameter einer Verbindung zwischen zwei Servern
subscriptionsManager - Verwaltung der Anmeldungen
connectionsManager - Verbindungsverwaltung
waitForConfiguration - true: ,false:
Method Detail

setApplicationStatusUpdater

public void setApplicationStatusUpdater(ConnectionsManager.ApplicationStatusUpdater applicationStatusUpdater)
Dieses Objekt wird benachrichtigt, sobald die Verbindung zur Applikation aufgebaut wurde.

Parameters:
applicationStatusUpdater - Objekt, das benachrichtigt wird.

getTelegrammTime

public final long getTelegrammTime(long maxWaitingTime)
                            throws CommunicationError
Description copied from interface: ServerHighLevelCommunication
Diese Methode wird von der Verbindungsverwaltung aufgerufen. Ein Telegramm TelegramTimeRequest wird erzeugt und zur Applikation gesendet. Danach wird auf die Antwort TelegramTimeAnswer gewartet. Wenn die Antwort nicht innerhalb der angegebenen maximalen Wartezeit angekommen ist, wird eine Ausnahme erzeugt.

Specified by:
getTelegrammTime in interface ServerHighLevelCommunication
Parameters:
maxWaitingTime - Maximale Zeit, die auf eine Antwort gewartet wird.
Returns:
die Telegrammlaufzeit oder -1, wenn nicht innnerhalb der maximalen Wartezeit eine Antwort empfangen wurde.
Throws:
CommunicationError - Wenn bei der initialen Kommunikation mit dem Datenverteiler Fehler aufgetreten sind.

sendData

public final void sendData(ApplicationDataTelegram telegram)
Description copied from interface: T_A_HighLevelCommunicationInterface
Sendet ein Telegramm über die Telegrammverwaltung zur Applikation.

Specified by:
sendData in interface T_A_HighLevelCommunicationInterface
Parameters:
telegram - Telegramm, das verschickt werden soll.

sendData

public final void sendData(ApplicationDataTelegram[] telegrams)
Description copied from interface: T_A_HighLevelCommunicationInterface
Sendet mehrere Telegramme über die Telegrammverwaltung zur Applikation.

Specified by:
sendData in interface T_A_HighLevelCommunicationInterface
Parameters:
telegrams - Telegramme, die verschickt werden sollen.

terminate

public final void terminate(boolean error,
                            String message)
Description copied from interface: ServerHighLevelCommunication
Terminiert die Kommunikationsverbindung.

Specified by:
terminate in interface ServerHighLevelCommunication
Parameters:
error - Ist true, wenn die Verbindung im Fehlerfall abgebrochen werden soll, ohne die noch gepufferten Telegramme zu versenden; false, wenn versucht werden soll alle gepufferten Telegramme zu versenden.
message - Fehlermeldung, die die Fehlersituation näher beschreibt.

getConnectionCreatedTime

public long getConnectionCreatedTime()
Zeitpunkt, an dem das Objekt erstellt wurde und somit eine Verbindung zum DaV bestand.

Returns:
Zeit in ms seit dem 1.1.1970

getSendBufferState

public String getSendBufferState()
Liefert einen beschreibenden Text mit dem Zustand des Sendepuffers aus der LowLevelCommunication.

Returns:
Sendepufferzustand als Text
See Also:
LowLevelCommunicationInterface.getSendBufferState()

terminate

public final void terminate(boolean error,
                            String message,
                            DataTelegram terminationTelegram)

disconnected

public void disconnected(boolean error,
                         String message)
Specified by:
disconnected in interface HighLevelCommunicationCallbackInterface

updateConfigData

public void updateConfigData(SendDataObject receivedData)
Specified by:
updateConfigData in interface HighLevelCommunicationCallbackInterface

triggerSender

public final void triggerSender(BaseSubscriptionInfo data,
                                byte state)
Description copied from interface: T_A_HighLevelCommunicationInterface
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um eine Sendesteuerung an die Applikation weiterzuleiten. Aus den übergebenen Parametern wird ein RequestSenderDataTelegram-Array gebildet und über die Telegrammverwaltung an die Applikation gesendet.

Specified by:
triggerSender in interface T_A_HighLevelCommunicationInterface
Parameters:
data - Anmeldeinformationen
state - Benachrichtigungscode
See Also:
RequestSenderDataTelegram

getSubscriptionComponent

public final SubscriptionComponent getSubscriptionComponent()
Description copied from interface: ServerHighLevelCommunication
Gibt die Komponente zurück, die die Anmeldungen der Verbindung verwaltet.

Specified by:
getSubscriptionComponent in interface ServerHighLevelCommunication
Returns:
Komponente die die Anmeldungen der Verbindung

getId

public final long getId()
Description copied from interface: ServerHighLevelCommunication
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die ID der verbundenen Applikation zu erhalten.

Specified by:
getId in interface ServerHighLevelCommunication
Returns:
ID des Kommunikationpartners

getRemoteUserId

public final long getRemoteUserId()
Description copied from interface: ServerHighLevelCommunication
Gibt die ID des verbundenen Benutzers zurück.

Specified by:
getRemoteUserId in interface ServerHighLevelCommunication
Returns:
die Benutzer ID

getConfigurationId

public final long getConfigurationId()
Description copied from interface: T_A_HighLevelCommunicationInterface
Gibt die Id der Konfiguration zurück.

Specified by:
getConfigurationId in interface T_A_HighLevelCommunicationInterface
Returns:
Id der Konfiguration

getDataTransmitterId

public final long getDataTransmitterId()
Description copied from interface: T_A_HighLevelCommunicationInterface
Gibt die Id des Datenverteilers zurück.

Specified by:
getDataTransmitterId in interface T_A_HighLevelCommunicationInterface
Returns:
Id des Datenverteilers

getApplicationTypePid

public final String getApplicationTypePid()
Description copied from interface: T_A_HighLevelCommunicationInterface
Gibt den Typ der Applikation zurück.

Specified by:
getApplicationTypePid in interface T_A_HighLevelCommunicationInterface
Returns:
Pid des Typs der Applikation

getApplicationName

public final String getApplicationName()
Description copied from interface: T_A_HighLevelCommunicationInterface
Gibt den Namen der Applikation zurück.

Specified by:
getApplicationName in interface T_A_HighLevelCommunicationInterface
Returns:
Name der Applikation

isConfiguration

public final boolean isConfiguration()
Description copied from interface: T_A_HighLevelCommunicationInterface
Gibt zurück, ob es sich um die Konfiguration handelt.

Specified by:
isConfiguration in interface T_A_HighLevelCommunicationInterface
Returns:
true, wenn es sich um die Konfiguration handelt, sonst false

continueAuthentification

public final void continueAuthentification()
Description copied from interface: ServerHighLevelCommunication
Diese Methode wird von der Verbindungsverwaltung aufgerufen, sobald die Konfiguration vorhanden ist, um zu signalisieren, dass eine blockierte Authentifizierung weiter bearbeitet werden kann: Steht eine Authentifizierungsschlüsselanfrage an, während die Konfiguration noch nicht vorhanden ist, wird die Antwort blockiert bis die Konfiguration bereit ist. Dies ist notwendig, da nur die Konfiguration bestimmen kann, ob die Authentifizierungsdaten korrekt sind. Auch für die Interpretation der Daten ist die Konfiguration notwendig.

Specified by:
continueAuthentification in interface ServerHighLevelCommunication

update

public final void update(DataTelegram telegram)
Specified by:
update in interface HighLevelCommunicationCallbackInterface

createStalledTelegramList

public List<ApplicationDataTelegram> createStalledTelegramList(BaseSubscriptionInfo info,
                                                               int maxCount)
Erzeugt eine Liste für verzögerte Telegramme für eine Datenidentifikation und speichert sie in einer Map.

Parameters:
info - Datenidentifikation der verzögerten Telegramme
maxCount - Maximale Anzahl der verzögerten Telegramme
Returns:
Neue Liste für verzögerte Telegramme
See Also:
getStalledTelegramList(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo), deleteStalledTelegramList(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo)

getStalledTelegramList

public List<ApplicationDataTelegram> getStalledTelegramList(BaseSubscriptionInfo info)
Liefert eine vorher erzeugte Liste für verzögerte Telegramme für eine Datenidentifikation.

Parameters:
info - Datenidentifikation der verzögerten Telegramme
Returns:
Vorher erzeugte Liste für verzögerte Telegramme
See Also:
createStalledTelegramList(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo,int), deleteStalledTelegramList(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo)

deleteStalledTelegramList

public List<ApplicationDataTelegram> deleteStalledTelegramList(BaseSubscriptionInfo info)
Liefert eine vorher erzeugte Liste für verzögerte Telegramme für eine Datenidentifikation und entfernt sie aus der Map.

Parameters:
info - Datenidentifikation der verzögerten Telegramme
Returns:
Vorher erzeugte Liste für verzögerte Telegramme
See Also:
createStalledTelegramList(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo,int), getStalledTelegramList(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo)