public class TelegramManager extends Object implements TelegramManagerTransactionInterface
AccessControlPlugins auf die Telegramme an und gibt sie dann an das passende SubscriptionInfo-Objekt
weiter, welches die Telegramme an interessierte Empfänger weiterleitet.| Modifier and Type | Field and Description |
|---|---|
private Collection<AccessControlPlugin> |
_accessControlPlugins
Liste mit Plugins, die den Datenverkehr abfangen und filtern um die Zugriffsrechte zu prüfen
|
private boolean |
_accessControlPluginsInitialized |
private HighLevelConnectionsManagerInterface |
_connectionsManager |
private DavDavRequester |
_davDavRequester |
private DavTransactionManager |
_davTransactionManager |
private static Debug |
_debug |
private TelegramAggregator<ApplicationDataTelegram> |
_localTelegramAggregator |
private Map<Long,List<AccessControlPlugin>> |
_pluginFilterMap |
private boolean |
_pluginFilterMapInitialized |
private SelfClientDavConnection |
_selfClientDavConnection |
private HighLevelSubscriptionsManager |
_subscriptionsManager |
private ServerDavParameters.UserRightsChecking |
_userRightsChecking |
| Constructor and Description |
|---|
TelegramManager(HighLevelConnectionsManagerInterface connectionsManager,
ServerDavParameters.UserRightsChecking userRightsChecking)
Erstellt einen neuen TelegramManager
|
| Modifier and Type | Method and Description |
|---|---|
static byte[] |
convertTelegramsToBytes(List<ApplicationDataTelegram> telegrams) |
static void |
dumpTelegrams(List<ApplicationDataTelegram> telegrams,
DafDataModel dataModel) |
HighLevelConnectionsManagerInterface |
getConnectionsManager() |
long |
getNextDataIndex(BaseSubscriptionInfo info)
Berechnet für eine Anmeldung den nächsten Datenindex und gibt diesen zurück
|
Map<Long,List<AccessControlPlugin>> |
getPluginFilterMap()
Gibt eine Map zurück, die als Key die AttributeGroupUsage-ID speichert und als Value alle zuständigen Plugins in einer Liste enthält
|
HighLevelSubscriptionsManager |
getSubscriptionsManager() |
void |
handleDataTelegram(CommunicationInterface communication,
ApplicationDataTelegram applicationDataTelegram,
boolean toCentralDistributor)
Verarbeitet ein eingehendes Datentelegram
|
void |
handleDataTelegram(CommunicationInterface communication,
TransmitterDataTelegram transmitterDataTelegram)
Verarbeitet ein eingehendes Datentelegram von einem anderen Datenverteiler
|
private void |
handleTelegramsAsCentralDistributor(List<ApplicationDataTelegram> telegrams,
SubscriptionInfo subscriptionInfo,
CommunicationInterface communication)
Verarbeitet Datentelegramem als Zentraldatenverteiler
|
private void |
initializeAccessControlPlugins(Iterable<String> accessControlPlugins)
Initialisiert die angegebenen Zugriffssteuerungs-Plugins, die den Datenverkehr filtern und so zusätzliche Rechteprüfungen vornehmen können
|
private boolean |
isValidRemoteUser(long remoteUserId)
Prüft, ob eine userId zu einem "normalen" Benutzer gehört.
|
void |
notifyIsNewCentralDistributor(BaseSubscriptionInfo baseSubscriptionInfo) |
void |
notifySubscriptionRemoved(LocalReceivingSubscription receivingSubscription)
Benachrichtigt den _davTransactionManager dass eine lokale Anmeldung nicht mehr vorhanden ist.
|
void |
notifySubscriptionRemoved(LocalSendingSubscription sendingSubscription)
Benachrichtigt den _davTransactionManager dass eine lokale Anmeldung nicht mehr vorhanden ist.
|
void |
notifyWasCentralDistributor(BaseSubscriptionInfo baseSubscriptionInfo) |
void |
sendTelegramsFromTransaction(boolean isSource,
ApplicationDataTelegram[] dataTelegrams)
Sendet ein Telegram.
|
void |
setConfigurationAvailable(SelfClientDavConnection selfClientDavConnection,
ApplicationStatusUpdater applicationStatusUpdater)
Initialisiert Funktionen, die von der Konfiguration anhängen (z.B.
|
private static final Debug _debug
private final HighLevelSubscriptionsManager _subscriptionsManager
private final HighLevelConnectionsManagerInterface _connectionsManager
private final TelegramAggregator<ApplicationDataTelegram> _localTelegramAggregator
private SelfClientDavConnection _selfClientDavConnection
private DavTransactionManager _davTransactionManager
private DavDavRequester _davDavRequester
private final ServerDavParameters.UserRightsChecking _userRightsChecking
private final Collection<AccessControlPlugin> _accessControlPlugins
private Map<Long,List<AccessControlPlugin>> _pluginFilterMap
private volatile boolean _accessControlPluginsInitialized
private volatile boolean _pluginFilterMapInitialized
public TelegramManager(HighLevelConnectionsManagerInterface connectionsManager, ServerDavParameters.UserRightsChecking userRightsChecking)
connectionsManager - VerbindungsverwaltunguserRightsChecking - Welche Art von Rechteprüfung durchgeführt werden sollpublic void setConfigurationAvailable(SelfClientDavConnection selfClientDavConnection, ApplicationStatusUpdater applicationStatusUpdater)
selfClientDavConnection - eigene Datenverteiler-VerbindungapplicationStatusUpdater - Klasse, die angemeldete Datensätze verschicktprivate void initializeAccessControlPlugins(Iterable<String> accessControlPlugins)
accessControlPlugins - Liste mit Plugin-Klassen-Namenpublic Map<Long,List<AccessControlPlugin>> getPluginFilterMap()
Map> (leer falls die Rechteprüfung deaktivert ist).public HighLevelSubscriptionsManager getSubscriptionsManager()
public HighLevelConnectionsManagerInterface getConnectionsManager()
public void handleDataTelegram(CommunicationInterface communication, TransmitterDataTelegram transmitterDataTelegram)
communication - Verbindung über die das Telegramm eingehttransmitterDataTelegram - Telegrampublic void handleDataTelegram(CommunicationInterface communication, ApplicationDataTelegram applicationDataTelegram, boolean toCentralDistributor)
communication - Verbindung über die das Telegramm eingehtapplicationDataTelegram - TelegramtoCentralDistributor - wenn das Telegramm noch nicht beim Zentraldatenverteiler behandelt wurde, also der Datenindex noch nicht vernünftig gesetzt wurdeprivate boolean isValidRemoteUser(long remoteUserId)
remoteUserId - Benutzer-Idprivate void handleTelegramsAsCentralDistributor(List<ApplicationDataTelegram> telegrams, SubscriptionInfo subscriptionInfo, CommunicationInterface communication)
telegrams - Aggregierte Liste mit zusammengehörigen DatentelegrammensubscriptionInfo - Objekt, das die dazugehörigen Anmeldungen verwaltet und an das die Daten gesendet werden.communication - Verbindung über die der Emfang erfolgt (zur Rechteprüfung)public static void dumpTelegrams(List<ApplicationDataTelegram> telegrams, DafDataModel dataModel)
public void sendTelegramsFromTransaction(boolean isSource,
ApplicationDataTelegram[] dataTelegrams)
TelegramManagerTransactionInterfacesendTelegramsFromTransaction in interface TelegramManagerTransactionInterfaceisSource - true wenn QuelledataTelegrams - Telegramm (oder mehrere falls gesplittet)public long getNextDataIndex(BaseSubscriptionInfo info)
getNextDataIndex in interface TelegramManagerTransactionInterfaceinfo - Anmeldungs-Infopublic void notifySubscriptionRemoved(LocalSendingSubscription sendingSubscription)
sendingSubscription - Sender-Anmeldungpublic void notifySubscriptionRemoved(LocalReceivingSubscription receivingSubscription)
receivingSubscription - Empfänger-Anmeldungpublic static byte[] convertTelegramsToBytes(List<ApplicationDataTelegram> telegrams)
public void notifyIsNewCentralDistributor(BaseSubscriptionInfo baseSubscriptionInfo)
public void notifyWasCentralDistributor(BaseSubscriptionInfo baseSubscriptionInfo)