|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.dav.dav.communication.davProtocol.T_T_HighLevelCommunication
public class T_T_HighLevelCommunication
Diese Klasse stellt die Funktionalitäten für die Kommunikation zwischen zwei Datenverteilern zur Verfügung. Hier wird die Verbindung zwischen zwei DAV aufgebaut, sowie die Authentifizierung durchgeführt.
Field Summary | |
---|---|
private AuthentificationComponent |
_authentificationComponent
Die Authentifizierungskomponente |
private Object |
_authentificationSync
Objekt zur internen Synchronization |
private String |
_authentifyAsUser
Benutzername mit dem sich dieser Datenverteiler beim anderen Datenverteiler authentifizieren soll |
private String |
_authentifyWithPassword
Passwort des Benutzers mit dem sich dieser Datenverteiler beim anderen Datenverteiler authentifizieren soll |
private BestWayManager |
_bestWayManager
Verwaltung der günstigsten Wege zu anderen Datenverteilern |
private boolean |
_closed
Signalisiert dass diese Verbindung terminiert ist |
private long |
_connectedTransmitterId
Die Id des über diesen Kanal verbundenen Datenverteiler |
private ConnectionsManager |
_connectionsManager
Die Verwaltung der Datenverteiler Verbindungen |
private static Debug |
_debug
|
private LinkedList |
_fastTelegramsList
Temporäre Liste der Telegramme, die vor die Initialisierung eingetroffen sind. |
private boolean |
_initComplete
Signalisiert ob die Initialisierungsphase abgeschlossen ist |
private boolean |
_isAcceptedConnection
Legt fest ob eine gegen Authentifizierung notwendig ist. |
private LowLevelCommunicationInterface |
_lowLevelCommunication
Die erste Ebene der Kommunikation |
private ServerConnectionProperties |
_properties
Die Eigenschaften dieser Verbindung |
private long |
_remoteUserId
Die Id des Remotebenutzers |
private T_T_SubscriptionComponent |
_subscriptionComponent
Die Anmeldekomponente diese Verbindung |
private SubscriptionsManager |
_subscriptionsManager
Die Verwaltung der Anmelde Komponenten |
private Object |
_sync
Objekt zur internen Synchronization |
private LinkedList |
_syncSystemTelegramList
Temporäre Liste der Systemtelegramme für interne Synchronisationszwecke. |
private int |
_version
Die Version, mit der die Kommunikation erfolgt |
private int[] |
_versions
Die unterstützten Versionen des Datenverteilers |
private boolean |
_waitForConfiguration
Die Information ob auf die Konfiguration gewartet werden muss. |
private short |
_weight
Gewichtung dieser Verbindung |
Constructor Summary | |
---|---|
T_T_HighLevelCommunication(ServerConnectionProperties properties,
SubscriptionsManager subscriptionsManager,
ConnectionsManager connectionsManager,
BestWayManager bestWayManager,
short weight,
boolean waitForConfiguration,
String authentifyAsUser,
String authentifyWithPassword)
Erzeugt ein neues Objekt mit den gegebenen Parametern. |
Method Summary | |
---|---|
private void |
authentify()
Erledigt den Authentifizierungsprozess. |
boolean |
completeInitialisation()
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die Initialisierung einer Verbindung abzuschließen. |
void |
connect()
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um eine logische Verbindung zwischen zwei Datenverteilern herzustellen. |
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. |
void |
disconnected(boolean error,
String message)
|
long |
getId()
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die ID der verbundenen Applikation zu erhalten. |
private int |
getPrefferedVersion(int[] versions)
Gibt die höchhste unterstützte Version aus den gegebenen Versionen oder -1, wenn keine von den gegebenen Versionen unterstützt wird, zurück. |
String |
getRemoteAdress()
|
long |
getRemoteNodeId()
Diese Methode gibt die ID des Zielknotens zurück. |
int |
getRemoteSubadress()
Diese Methode gibt die Subadresse des Kommunikationspartners zurück. |
long |
getRemoteUserId()
Gibt die ID des verbundenen Benutzers zurück. |
SubscriptionComponent |
getSubscriptionComponent()
Gibt die Komponente zurück, die die Anmeldungen der Verbindung verwaltet. |
long |
getTelegrammTime(long maxWaitingTime)
Diese Methode wird von der Verbindungsverwaltung aufgerufen. |
int |
getThroughputResistance()
Diese Methode gibt die Gewichtung der Verbindung zurück. |
boolean |
isAcceptedConnection()
Gibt die Information zurück, ob diese Verbindung von dem anderen Datenverteiler akzeptiert wurde. |
(package private) boolean |
isClosed()
|
void |
sendRoutingUpdate(RoutingUpdate[] routingUpdates)
Diese Methode findet die besten Wege. |
void |
sendTelegram(DataTelegram telegram)
Diese Methode wird von der Verbindungsverwaltung, der Zuliefererverwaltung und der Anmeldungsverwaltung aufgerufen. |
void |
sendTelegrams(DataTelegram[] telegrams)
Mehrere Telegramme können en bloc versandt werden. |
void |
terminate(boolean error,
String message)
Terminiert die Kommunikationsverbindung. |
void |
terminate(boolean error,
String message,
DataTelegram terminationTelegram)
|
void |
update(DataTelegram telegram)
|
void |
updateConfigData(SendDataObject receivedData)
|
private DataTelegram |
waitForAnswerTelegram(byte telegramType,
String descriptionOfExpectedTelegram)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final Debug _debug
private long _connectedTransmitterId
private long _remoteUserId
private LowLevelCommunicationInterface _lowLevelCommunication
private ServerConnectionProperties _properties
private int[] _versions
private int _version
private SubscriptionsManager _subscriptionsManager
private ConnectionsManager _connectionsManager
private T_T_SubscriptionComponent _subscriptionComponent
private AuthentificationComponent _authentificationComponent
private LinkedList _syncSystemTelegramList
private LinkedList _fastTelegramsList
private short _weight
private boolean _initComplete
private boolean _waitForConfiguration
private Object _sync
private Object _authentificationSync
private boolean _isAcceptedConnection
private volatile boolean _closed
private BestWayManager _bestWayManager
private String _authentifyAsUser
private String _authentifyWithPassword
Constructor Detail |
---|
public T_T_HighLevelCommunication(ServerConnectionProperties properties, SubscriptionsManager subscriptionsManager, ConnectionsManager connectionsManager, BestWayManager bestWayManager, short weight, boolean waitForConfiguration, String authentifyAsUser, String authentifyWithPassword)
properties
- Eigenschaften dieser VerbindungsubscriptionsManager
- AnmeldungsverwaltungconnectionsManager
- VerbindungsverwaltungbestWayManager
- Verwaltung der günstigsten Wege zu anderen Datenverteilernweight
- Gewichtung dieser VerbindungwaitForConfiguration
- true: auf die KOnfiguration muss gewartet werden, false: Konfiguration ist vorhandenauthentifyAsUser
- Benutzername mit dem sich dieser Datenverteiler beim anderen Datenverteiler authentifizieren sollauthentifyWithPassword
- Passwort des Benutzers mit dem sich dieser Datenverteiler beim anderen Datenverteiler authentifizieren sollMethod Detail |
---|
public final void connect() throws CommunicationError
CommunicationError
- , wenn bei der initialen Kommunikation mit dem Datenverteiler Fehler aufgetreten sindboolean isClosed()
true
zurück, falls die Verbindung geschlossen wurde, sonst false
.private DataTelegram waitForAnswerTelegram(byte telegramType, String descriptionOfExpectedTelegram) throws CommunicationError
CommunicationError
public final long getTelegrammTime(long maxWaitingTime) throws CommunicationError
ServerHighLevelCommunication
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.
getTelegrammTime
in interface ServerHighLevelCommunication
maxWaitingTime
- Maximale Zeit, die auf eine Antwort gewartet wird.
-1
, wenn nicht innnerhalb der maximalen Wartezeit eine Antwort empfangen wurde.
CommunicationError
- Wenn bei der initialen Kommunikation mit dem Datenverteiler Fehler aufgetreten sind.public final long getRemoteNodeId()
RoutingConnectionInterface
getRemoteNodeId
in interface RoutingConnectionInterface
public final int getThroughputResistance()
RoutingConnectionInterface
getThroughputResistance
in interface RoutingConnectionInterface
public final void sendRoutingUpdate(RoutingUpdate[] routingUpdates)
RoutingConnectionInterface
sendRoutingUpdate
in interface RoutingConnectionInterface
routingUpdates
- Aktualisierung der Verbindungpublic final long getRemoteUserId()
ServerHighLevelCommunication
getRemoteUserId
in interface ServerHighLevelCommunication
public final long getId()
ServerHighLevelCommunication
getId
in interface ServerHighLevelCommunication
public final boolean isAcceptedConnection()
public final String getRemoteAdress()
public final int getRemoteSubadress()
public void continueAuthentification()
ServerHighLevelCommunication
continueAuthentification
in interface ServerHighLevelCommunication
public void terminate(boolean error, String message)
ServerHighLevelCommunication
terminate
in interface ServerHighLevelCommunication
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.public final void terminate(boolean error, String message, DataTelegram terminationTelegram)
public void disconnected(boolean error, String message)
disconnected
in interface HighLevelCommunicationCallbackInterface
public void updateConfigData(SendDataObject receivedData)
updateConfigData
in interface HighLevelCommunicationCallbackInterface
public void sendTelegram(DataTelegram telegram)
T_T_HighLevelCommunicationInterface
sendTelegram
in interface T_T_HighLevelCommunicationInterface
telegram
- Grundtyp eines Telegrammspublic void sendTelegrams(DataTelegram[] telegrams)
T_T_HighLevelCommunicationInterface
sendTelegrams
in interface T_T_HighLevelCommunicationInterface
telegrams
- Feld von zu sendenden TelegrammenT_T_HighLevelCommunicationInterface.sendTelegram(de.bsvrz.dav.daf.communication.lowLevel.telegrams.DataTelegram)
public final SubscriptionComponent getSubscriptionComponent()
ServerHighLevelCommunication
getSubscriptionComponent
in interface ServerHighLevelCommunication
public void update(DataTelegram telegram)
update
in interface HighLevelCommunicationCallbackInterface
public final boolean completeInitialisation()
private int getPrefferedVersion(int[] versions)
versions
- Feld der Versionen
private void authentify() throws CommunicationError
de.bsvrz.dav.daf.main.CommunicationError,
- wenn bei der initialen Kommunikation mit dem Datenverteiler Fehler aufgetreten sind
CommunicationError
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |