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.
| Modifier and Type | Field and Description |
|---|---|
private BestWayManager |
_bestWayManager |
private HighLevelConnectionsManagerInterface |
_connectionsManager |
private static Debug |
_debug |
private ListsManager |
_listsManager |
private long |
_myTransmitterId |
private HighLevelSubscriptionsManager |
_subscriptionsManager |
private TelegramManager |
_telegramManager |
private Throttler |
_throttle
Instanz zur Begrenzung der Login-Versuche
|
| 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.
|
private static final Debug _debug
private final long _myTransmitterId
private final HighLevelConnectionsManagerInterface _connectionsManager
private final TelegramManager _telegramManager
private final HighLevelSubscriptionsManager _subscriptionsManager
private final ListsManager _listsManager
private final BestWayManager _bestWayManager
private final Throttler _throttle
Instanz zur Begrenzung der Login-Versuche
public HighLevelTransmitterManager(HighLevelConnectionsManagerInterface connectionsManager, ListsManager listsManager)
public long getMyTransmitterId()
public void connectionTerminated(T_T_HighLevelCommunication communication)
HighLevelTransmitterManagerInterfaceWird bei einem Verbindungsabbruch aufgerufen
connectionTerminated in interface HighLevelTransmitterManagerInterfacepublic java.lang.String getUserNameForAuthentication(long connectedTransmitterId)
HighLevelTransmitterManagerInterfaceBestimmt 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 HighLevelTransmitterManagerInterfaceconnectedTransmitterId - Objekt-ID des anderen Datenverteilers.public ClientCredentials getClientCredentialsForAuthentication(long transmitterId)
HighLevelTransmitterManagerInterfaceBestimmt 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 HighLevelTransmitterManagerInterfacetransmitterId - Objekt-ID des anderen Datenverteilers.public ClientCredentials getClientCredentialsForAuthentication(java.lang.String userName, long transmitterId)
HighLevelTransmitterManagerInterfaceBestimmt das Benutzerpasswort das zur Authentifizierung beim angegebenen Datenverteiler mit dem angegebenen Benutzernamen benutzt werden soll.
getClientCredentialsForAuthentication in interface HighLevelTransmitterManagerInterfaceuserName - BenutzernametransmitterId - Objekt-ID des anderen Datenverteilers.public short getWeight(long transmitterId)
HighLevelTransmitterManagerInterfaceGibt das Gewicht einer Verbindung zurück
getWeight in interface HighLevelTransmitterManagerInterfacetransmitterId - Datenverteiler, zu dem das Gewischt ermittelt werden sollpublic void handleDataTelegram(T_T_HighLevelCommunication communication, TransmitterDataTelegram transmitterDataTelegram)
HighLevelTransmitterManagerInterfaceWird aufgerufen, wenn ein Datentelegramm eintrifft
handleDataTelegram in interface HighLevelTransmitterManagerInterfacecommunication - Verbindung über die das Telegram eintriffttransmitterDataTelegram - Telegrampublic void handleListsUpdate(TransmitterListsUpdate transmitterListsUpdate)
HighLevelTransmitterManagerInterfaceDieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
handleListsUpdate in interface HighLevelTransmitterManagerInterfacetransmitterListsUpdate - telegrampublic void handleListsDeliveryUnsubscription(T_T_HighLevelCommunicationInterface communication, TransmitterListsDeliveryUnsubscription transmitterListsDeliveryUnsubscription)
HighLevelTransmitterManagerInterfaceDieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
handleListsDeliveryUnsubscription in interface HighLevelTransmitterManagerInterfacecommunication - Verbindung über die das Telegram gesendet wurdetransmitterListsDeliveryUnsubscription - telegrampublic void handleListsUnsubscription(ServerHighLevelCommunication communication, TransmitterListsUnsubscription transmitterListsUnsubscription)
HighLevelTransmitterManagerInterfaceDieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
handleListsUnsubscription in interface HighLevelTransmitterManagerInterfacecommunication - Verbindung über die das Telegram gesendet wurdetransmitterListsUnsubscription - telegrampublic void handleListsSubscription(ServerHighLevelCommunication communication, TransmitterListsSubscription transmitterListsSubscription)
HighLevelTransmitterManagerInterfaceDieses Telegramm wird an den ListsManager weitergegeben, siehe Dokumentation dort
handleListsSubscription in interface HighLevelTransmitterManagerInterfacecommunication - Verbindung über die das Telegram gesendet wurdetransmitterListsSubscription - telegrampublic void handleTransmitterSubscription(T_T_HighLevelCommunicationInterface communication, TransmitterDataSubscription subscription)
HighLevelTransmitterManagerInterfaceEingehende Datenanmeldung
handleTransmitterSubscription in interface HighLevelTransmitterManagerInterfacecommunication - Verbindungsubscription - Telegrampublic void handleTransmitterUnsubscription(T_T_HighLevelCommunicationInterface communication, TransmitterDataUnsubscription unsubscription)
HighLevelTransmitterManagerInterfaceEingehende Datenabmeldung
handleTransmitterUnsubscription in interface HighLevelTransmitterManagerInterfacecommunication - Verbindungunsubscription - Telegrampublic void handleTransmitterSubscriptionReceipt(T_T_HighLevelCommunicationInterface communication, TransmitterDataSubscriptionReceipt receipt)
HighLevelTransmitterManagerInterfaceBestätigung einer ausgehenden Datenanmeldung auf einem entfernten datenverteiler
handleTransmitterSubscriptionReceipt in interface HighLevelTransmitterManagerInterfacecommunication - Verbindungreceipt - Telegrampublic void addWay(T_T_HighLevelCommunication communication)
HighLevelTransmitterManagerInterfaceEs gibt einen neuen Weg, diese Nachricht wird im BestWayManager behandelt, siehe Dokumentation dort.
addWay in interface HighLevelTransmitterManagerInterfacecommunication - Verbindung über die das Telegram gesendet wurdepublic void updateBestWay(T_T_HighLevelCommunication communication, TransmitterBestWayUpdate transmitterBestWayUpdate)
HighLevelTransmitterManagerInterfaceWird bei einem BestWayUpdate-Telegramm aufgerufen
updateBestWay in interface HighLevelTransmitterManagerInterfacecommunication - Verbindung über die das Telegram gesendet wurdetransmitterBestWayUpdate - Telegrammpublic void throttleLoginAttempt(boolean passwordWasCorrect)
HighLevelTransmitterManagerInterfaceWird bei jedem Login-Versuch aufgerufen und sorgt dafür, dass bei wiederholten Brute-Force-Angriffen der Login verzögert wird.
throttleLoginAttempt in interface HighLevelTransmitterManagerInterfacepasswordWasCorrect - 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
HighLevelTransmitterManagerInterfaceFragt von der Konfiguration bei einer eingehenden Authentifizierungsanfrage den SRP-Verifier für den angegebenen Benutzer ab
fetchSrpVerifierAndAuthentication in interface HighLevelTransmitterManagerInterfaceuserName - BenutzernameSrpNotSupportedExceptionpublic void updateDestinationRoute(long transmitterId,
RoutingConnectionInterface oldConnection,
RoutingConnectionInterface newConnection)
DistributionInterfaceWird aufgerufen, wenn die Kommunikation zu einem anderen Datenverteiler über eine andere Verbindung erfolgen sollte.
updateDestinationRoute in interface DistributionInterfacetransmitterId - 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)