public class HighLevelTransmitterManager extends java.lang.Object implements DistributionInterface, HighLevelTransmitterManagerInterface
Klasse, die Dav-Dav-Verbindungen verwaltet und Telegramme von T_T-Verbindungen entgegen nimmt und entsprechende Updates bei den verantwortlichen Klassen auslöst.
Constructor and Description |
---|
HighLevelTransmitterManager(HighLevelConnectionsManagerInterface connectionsManager,
ListsManager listsManager) |
Modifier and Type | Method and Description |
---|---|
void |
addWay(T_T_HighLevelCommunication communication)
Es gibt einen neuen Weg, diese Nachricht wird im BestWayManager behandelt, siehe Dokumentation dort.
|
void |
connectionTerminated(T_T_HighLevelCommunication communication)
Wird bei einem Verbindungsabbruch aufgerufen
|
SrpVerifierAndUser |
fetchSrpVerifierAndAuthentication(java.lang.String userName)
Fragt von der Konfiguration bei einer eingehenden Authentifizierungsanfrage den SRP-Verifier für den angegebenen Benutzer ab
|
T_T_HighLevelCommunicationInterface |
getBestConnectionToRemoteDav(long remoteDav) |
ClientCredentials |
getClientCredentialsForAuthentication(long transmitterId)
Bestimmt das Benutzerpasswort das zur Authentifizierung beim angegebenen Datenverteiler benutzt werden soll.
|
ClientCredentials |
getClientCredentialsForAuthentication(java.lang.String userName,
long transmitterId)
Bestimmt das Benutzerpasswort das zur Authentifizierung beim angegebenen Datenverteiler mit dem angegebenen Benutzernamen benutzt werden soll.
|
long |
getMyTransmitterId() |
long[] |
getPotentialCentralDistributors(BaseSubscriptionInfo baseSubscriptionInfo) |
java.lang.String |
getUserNameForAuthentication(long connectedTransmitterId)
Bestimmt den Benutzername der zur Authentifizierung beim angegebenen Datenverteiler benutzt werden soll.
|
short |
getWeight(long transmitterId)
Gibt das Gewicht einer Verbindung zurück
|
void |
handleDataTelegram(T_T_HighLevelCommunication communication,
TransmitterDataTelegram transmitterDataTelegram)
Wird aufgerufen, wenn ein Datentelegramm eintrifft
|
void |
handleListsDeliveryUnsubscription(T_T_HighLevelCommunicationInterface communication,
TransmitterListsDeliveryUnsubscription transmitterListsDeliveryUnsubscription)
Dieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
|
void |
handleListsSubscription(ServerHighLevelCommunication communication,
TransmitterListsSubscription transmitterListsSubscription)
Dieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
|
void |
handleListsUnsubscription(ServerHighLevelCommunication communication,
TransmitterListsUnsubscription transmitterListsUnsubscription)
Dieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
|
void |
handleListsUpdate(TransmitterListsUpdate transmitterListsUpdate)
Dieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
|
void |
handleTransmitterSubscription(T_T_HighLevelCommunicationInterface communication,
TransmitterDataSubscription subscription)
Eingehende Datenanmeldung
|
void |
handleTransmitterSubscriptionReceipt(T_T_HighLevelCommunicationInterface communication,
TransmitterDataSubscriptionReceipt receipt)
Bestätigung einer ausgehenden Datenanmeldung auf einem entfernten datenverteiler
|
void |
handleTransmitterUnsubscription(T_T_HighLevelCommunicationInterface communication,
TransmitterDataUnsubscription unsubscription)
Eingehende Datenabmeldung
|
void |
throttleLoginAttempt(boolean passwordWasCorrect)
Wird bei jedem Login-Versuch aufgerufen und sorgt dafür, dass bei wiederholten Brute-Force-Angriffen der Login verzögert wird.
|
void |
updateBestWay(T_T_HighLevelCommunication communication,
TransmitterBestWayUpdate transmitterBestWayUpdate)
Wird bei einem BestWayUpdate-Telegramm aufgerufen
|
void |
updateDestinationRoute(long transmitterId,
RoutingConnectionInterface oldConnection,
RoutingConnectionInterface newConnection)
Wird aufgerufen, wenn die Kommunikation zu einem anderen Datenverteiler über eine andere Verbindung erfolgen sollte.
|
public HighLevelTransmitterManager(HighLevelConnectionsManagerInterface connectionsManager, ListsManager listsManager)
public long getMyTransmitterId()
public void connectionTerminated(T_T_HighLevelCommunication communication)
HighLevelTransmitterManagerInterface
Wird bei einem Verbindungsabbruch aufgerufen
connectionTerminated
in interface HighLevelTransmitterManagerInterface
public java.lang.String getUserNameForAuthentication(long connectedTransmitterId)
HighLevelTransmitterManagerInterface
Bestimmt den Benutzername der zur Authentifizierung beim angegebenen Datenverteiler benutzt werden soll. Wenn der Benutzername in der Topologie nicht vorgegeben ist, dann wird der Standardbenutzername des Datenverteilers benutzt.
getUserNameForAuthentication
in interface HighLevelTransmitterManagerInterface
connectedTransmitterId
- Objekt-ID des anderen Datenverteilers.public ClientCredentials getClientCredentialsForAuthentication(long transmitterId)
HighLevelTransmitterManagerInterface
Bestimmt das Benutzerpasswort das zur Authentifizierung beim angegebenen Datenverteiler benutzt werden soll. Wenn der Benutzername in der Topologie nicht vorgegeben ist, dann wird das Passwort des Standardbenutzers des Datenverteilers zurückgegeben.
getClientCredentialsForAuthentication
in interface HighLevelTransmitterManagerInterface
transmitterId
- Objekt-ID des anderen Datenverteilers.public ClientCredentials getClientCredentialsForAuthentication(java.lang.String userName, long transmitterId)
HighLevelTransmitterManagerInterface
Bestimmt das Benutzerpasswort das zur Authentifizierung beim angegebenen Datenverteiler mit dem angegebenen Benutzernamen benutzt werden soll.
getClientCredentialsForAuthentication
in interface HighLevelTransmitterManagerInterface
userName
- BenutzernametransmitterId
- Objekt-ID des anderen Datenverteilers.public short getWeight(long transmitterId)
HighLevelTransmitterManagerInterface
Gibt das Gewicht einer Verbindung zurück
getWeight
in interface HighLevelTransmitterManagerInterface
transmitterId
- Datenverteiler, zu dem das Gewischt ermittelt werden sollpublic void handleDataTelegram(T_T_HighLevelCommunication communication, TransmitterDataTelegram transmitterDataTelegram)
HighLevelTransmitterManagerInterface
Wird aufgerufen, wenn ein Datentelegramm eintrifft
handleDataTelegram
in interface HighLevelTransmitterManagerInterface
communication
- Verbindung über die das Telegram eintriffttransmitterDataTelegram
- Telegrampublic void handleListsUpdate(TransmitterListsUpdate transmitterListsUpdate)
HighLevelTransmitterManagerInterface
Dieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
handleListsUpdate
in interface HighLevelTransmitterManagerInterface
transmitterListsUpdate
- telegrampublic void handleListsDeliveryUnsubscription(T_T_HighLevelCommunicationInterface communication, TransmitterListsDeliveryUnsubscription transmitterListsDeliveryUnsubscription)
HighLevelTransmitterManagerInterface
Dieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
handleListsDeliveryUnsubscription
in interface HighLevelTransmitterManagerInterface
communication
- Verbindung über die das Telegram gesendet wurdetransmitterListsDeliveryUnsubscription
- telegrampublic void handleListsUnsubscription(ServerHighLevelCommunication communication, TransmitterListsUnsubscription transmitterListsUnsubscription)
HighLevelTransmitterManagerInterface
Dieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
handleListsUnsubscription
in interface HighLevelTransmitterManagerInterface
communication
- Verbindung über die das Telegram gesendet wurdetransmitterListsUnsubscription
- telegrampublic void handleListsSubscription(ServerHighLevelCommunication communication, TransmitterListsSubscription transmitterListsSubscription)
HighLevelTransmitterManagerInterface
Dieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
handleListsSubscription
in interface HighLevelTransmitterManagerInterface
communication
- Verbindung über die das Telegram gesendet wurdetransmitterListsSubscription
- telegrampublic void handleTransmitterSubscription(T_T_HighLevelCommunicationInterface communication, TransmitterDataSubscription subscription)
HighLevelTransmitterManagerInterface
Eingehende Datenanmeldung
handleTransmitterSubscription
in interface HighLevelTransmitterManagerInterface
communication
- Verbindungsubscription
- Telegrampublic void handleTransmitterUnsubscription(T_T_HighLevelCommunicationInterface communication, TransmitterDataUnsubscription unsubscription)
HighLevelTransmitterManagerInterface
Eingehende Datenabmeldung
handleTransmitterUnsubscription
in interface HighLevelTransmitterManagerInterface
communication
- Verbindungunsubscription
- Telegrampublic void handleTransmitterSubscriptionReceipt(T_T_HighLevelCommunicationInterface communication, TransmitterDataSubscriptionReceipt receipt)
HighLevelTransmitterManagerInterface
Bestätigung einer ausgehenden Datenanmeldung auf einem entfernten datenverteiler
handleTransmitterSubscriptionReceipt
in interface HighLevelTransmitterManagerInterface
communication
- Verbindungreceipt
- Telegrampublic void addWay(T_T_HighLevelCommunication communication)
HighLevelTransmitterManagerInterface
Es gibt einen neuen Weg, diese Nachricht wird im BestWayManager behandelt, siehe Dokumentation dort.
addWay
in interface HighLevelTransmitterManagerInterface
communication
- Verbindung über die das Telegram gesendet wurdepublic void updateBestWay(T_T_HighLevelCommunication communication, TransmitterBestWayUpdate transmitterBestWayUpdate)
HighLevelTransmitterManagerInterface
Wird bei einem BestWayUpdate-Telegramm aufgerufen
updateBestWay
in interface HighLevelTransmitterManagerInterface
communication
- Verbindung über die das Telegram gesendet wurdetransmitterBestWayUpdate
- Telegrammpublic void throttleLoginAttempt(boolean passwordWasCorrect)
HighLevelTransmitterManagerInterface
Wird bei jedem Login-Versuch aufgerufen und sorgt dafür, dass bei wiederholten Brute-Force-Angriffen der Login verzögert wird.
throttleLoginAttempt
in interface HighLevelTransmitterManagerInterface
passwordWasCorrect
- War das Passwort korrekt? Ausgebremst wird zwar immer, aber nur wenn das passwort falsch war, hat das eine Auswirkung auf folgende Login-Vesuchepublic SrpVerifierAndUser fetchSrpVerifierAndAuthentication(java.lang.String userName) throws SrpNotSupportedException
HighLevelTransmitterManagerInterface
Fragt von der Konfiguration bei einer eingehenden Authentifizierungsanfrage den SRP-Verifier für den angegebenen Benutzer ab
fetchSrpVerifierAndAuthentication
in interface HighLevelTransmitterManagerInterface
userName
- BenutzernameSrpNotSupportedException
public void updateDestinationRoute(long transmitterId, RoutingConnectionInterface oldConnection, RoutingConnectionInterface newConnection)
DistributionInterface
Wird aufgerufen, wenn die Kommunikation zu einem anderen Datenverteiler über eine andere Verbindung erfolgen sollte.
updateDestinationRoute
in interface DistributionInterface
transmitterId
- ID des betroffenen Datenverteilers.oldConnection
- Verbindung über die bisher mit dem betroffenen Datenverteiler kommuniziert wurde.newConnection
- Verbindung über die in Zukunft mit dem betroffenen Datenverteiler kommuniziert werden soll.public long[] getPotentialCentralDistributors(BaseSubscriptionInfo baseSubscriptionInfo)
public T_T_HighLevelCommunicationInterface getBestConnectionToRemoteDav(long remoteDav)