public abstract class AbstractSubscriptionsManager extends java.lang.Object implements SubscriptionsManager
Modifier and Type | Field and Description |
---|---|
protected DataIndexCounter<BaseSubscriptionInfo> |
_dataIndexCounter |
private static Debug |
_debug |
protected java.util.concurrent.ConcurrentHashMap<BaseSubscriptionInfo,SubscriptionInfo> |
_subscriptions
HashMap mit der Zuordnung einer Anmeldeklasse zu einer BaseSubscriptionInfo.
|
Constructor and Description |
---|
AbstractSubscriptionsManager() |
Modifier and Type | Method and Description |
---|---|
void |
addLocalReceiveSubscription(ApplicationCommunicationInterface application,
ReceiveSubscriptionInfo receiveSubscriptionInfo)
Meldet einen lokalen Empfänger oder eine lokale Senke an
|
void |
addLocalSendSubscription(ApplicationCommunicationInterface application,
SendSubscriptionInfo sendSubscriptionInfo)
Meldet einen lokalen Sender oder eine lokale Quelle an
|
void |
connectToRemoteDrains(SubscriptionInfo subscriptionInfo,
java.util.Set<java.lang.Long> distributorsToUse)
Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Senke durch
|
void |
connectToRemoteSources(SubscriptionInfo subscriptionInfo,
java.util.Set<java.lang.Long> distributorsToUse)
Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Quelle durch
|
static java.lang.String |
dataIndexToString(long c) |
java.util.Collection<? extends Subscription> |
getAllSubscriptions(CommunicationInterface communicationInterface) |
private HashBagMap<TransmitterCommunicationInterface,java.lang.Long> |
getCentralDistributorConnections(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt eine HashBagMap zurück, die angibt, über welche lokalen Datenverteilerverbindungen welche Zentraldatenverteiler am besten erreicht werden.
|
private HashBagMap<TransmitterCommunicationInterface,java.lang.Long> |
getCentralDistributorConnections(java.util.Collection<java.lang.Long> potentialCentralDistributors)
Gibt eine HashBagMap zurück, die angibt, über welche lokalen Datenverteilerverbindungen welche Zentraldatenverteiler am besten erreicht werden.
|
long |
getCurrentDataIndex(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt den aktuellen (zuletzt generierten) Datenindex für die angegebene Anmeldung zurück
|
long |
getNextDataIndex(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt den nächsten Datenindex für die angegebene Anmeldung zurück und zählt den Index entsprechend hoch
|
long |
getNextDataIndex(SubscriptionInfo subscriptionInfo)
Gibt den nächsten Datenindex für die angegebene Anmeldung zurück und zählt den Index entsprechend hoch
|
SubscriptionInfo |
getSubscriptionInfo(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück.
|
void |
handleTransmitterSubscriptionReceipt(TransmitterCommunicationInterface communication,
TransmitterSubscriptionType transmitterSubscriptionType,
BaseSubscriptionInfo baseSubscriptionInfo,
ConnectionState connectionState,
long mainTransmitterId)
behandelt eien Anmeldungsquittung von einem anderen Datenverteiler
|
void |
handleUserRightsChanged(long userId)
Prüft von allen Anmeldungen die den Benutzer betreffen die Rechte erneut
|
void |
initializeUser(long userId)
Initialisiert die Zugriffsrechte für den angegebenen Benutzer
|
SubscriptionInfo |
openExistingSubscriptionInfo(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück.
|
SubscriptionInfo |
openSubscriptionInfo(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück oder erstellt diese falls sie nicht existiert.
|
void |
removeAllSubscriptions(ApplicationCommunicationInterface communication)
Entfernt von einer Verbindung alle Anmeldungen (sinnvoll z.B. bei Terminierung der Verbindung)
|
void |
removeAllSubscriptions(TransmitterCommunicationInterface communication)
Entfernt von einer Verbindung alle Anmeldungen (sinnvoll z.B. bei Terminierung der Verbindung)
|
void |
removeLocalReceiveSubscriptions(ApplicationCommunicationInterface application,
BaseSubscriptionInfo baseSubscriptionInfo)
Meldet einen lokalen Empfänger oder eine lokale Senke ab.
|
void |
removeLocalReceiveSubscriptions(ApplicationCommunicationInterface application,
SubscriptionInfo subscriptionInfo)
Meldet einen lokalen Empfänger oder eine lokale Senke ab.
|
void |
removeLocalSendSubscription(ApplicationCommunicationInterface application,
BaseSubscriptionInfo baseSubscriptionInfo)
Meldet einen lokalen Sender oder eine lokale Quelle ab.
|
void |
removeLocalSendSubscriptions(ApplicationCommunicationInterface application,
SubscriptionInfo subscriptionInfo)
Meldet einen lokalen Senker oder eine lokale Quelle ab.
|
void |
removeSubscriptionInfo(SubscriptionInfo subscriptionInfo)
Entfernt eine Anmeldeinformation.
|
void |
updateDestinationRoute(long transmitterId,
TransmitterCommunicationInterface oldConnection,
TransmitterCommunicationInterface newConnection)
Wird aufgerufen, wenn es zu einer Dav-id eine bessere Route gibt, sorgt für entsprechende Anmeldeumleitungen
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getBestConnectionToRemoteDav, getPotentialCentralDistributors, getThisTransmitterId, isActionAllowed, notifyIsNewCentralDistributor, notifyWasCentralDistributor, objectToString, subscriptionToString
private static final Debug _debug
protected final java.util.concurrent.ConcurrentHashMap<BaseSubscriptionInfo,SubscriptionInfo> _subscriptions
HashMap mit der Zuordnung einer Anmeldeklasse zu einer BaseSubscriptionInfo.
protected final DataIndexCounter<BaseSubscriptionInfo> _dataIndexCounter
public static java.lang.String dataIndexToString(long c)
public SubscriptionInfo openSubscriptionInfo(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück oder erstellt diese falls sie nicht existiert. Nachdem die Benutzung des Objekts beendet ist, muss SubscriptionInfo.close()
aufgerufen werden, damit eventuelle Aufräumarbeiten erledigt werden können.
openSubscriptionInfo
in interface SubscriptionsManager
baseSubscriptionInfo
- baseSubscriptionInfopublic SubscriptionInfo openExistingSubscriptionInfo(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück. Nachdem die Benutzung des Objekts beendet ist, muss (sofern Rückgabewert != null) SubscriptionInfo.close()
aufgerufen werden, damit eventuelle Aufräumarbeiten erledigt werden können.
openExistingSubscriptionInfo
in interface SubscriptionsManager
baseSubscriptionInfo
- baseSubscriptionInfopublic SubscriptionInfo getSubscriptionInfo(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt zu einer baseSubscriptionInfo die zugehörige Anmeldungsinfo zurück.
getSubscriptionInfo
in interface SubscriptionsManager
baseSubscriptionInfo
- baseSubscriptionInfopublic void addLocalSendSubscription(ApplicationCommunicationInterface application, SendSubscriptionInfo sendSubscriptionInfo)
Meldet einen lokalen Sender oder eine lokale Quelle an
application
- VerbindungsendSubscriptionInfo
- Anmeldeparameterpublic void removeLocalSendSubscription(ApplicationCommunicationInterface application, BaseSubscriptionInfo baseSubscriptionInfo)
Meldet einen lokalen Sender oder eine lokale Quelle ab. Gibt eine Warnung aus, falls die angegebene Anmeldung nicht besteht
application
- VerbindungbaseSubscriptionInfo
- Objekt und Attributgruppenverwendungpublic void addLocalReceiveSubscription(ApplicationCommunicationInterface application, ReceiveSubscriptionInfo receiveSubscriptionInfo)
Meldet einen lokalen Empfänger oder eine lokale Senke an
application
- VerbindungreceiveSubscriptionInfo
- Anmeldeparameterpublic void removeLocalReceiveSubscriptions(ApplicationCommunicationInterface application, BaseSubscriptionInfo baseSubscriptionInfo)
Meldet einen lokalen Empfänger oder eine lokale Senke ab. Gibt eine Warnung aus, falls die angegebene Anmeldung nicht besteht
application
- VerbindungbaseSubscriptionInfo
- Objekt und Attributgruppenverwendungpublic void handleUserRightsChanged(long userId)
Prüft von allen Anmeldungen die den Benutzer betreffen die Rechte erneut
handleUserRightsChanged
in interface SubscriptionsManager
handleUserRightsChanged
in interface UserRightsChangeHandler
userId
- Id des Benutzerspublic void removeLocalSendSubscriptions(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo)
Meldet einen lokalen Senker oder eine lokale Quelle ab.
application
- AnwendungsubscriptionInfo
- subscriptionInfopublic void removeLocalReceiveSubscriptions(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo)
Meldet einen lokalen Empfänger oder eine lokale Senke ab.
application
- AnwendungsubscriptionInfo
- subscriptionInfopublic void removeAllSubscriptions(ApplicationCommunicationInterface communication)
Entfernt von einer Verbindung alle Anmeldungen (sinnvoll z.B. bei Terminierung der Verbindung)
communication
- Verbindungpublic void removeAllSubscriptions(TransmitterCommunicationInterface communication)
Entfernt von einer Verbindung alle Anmeldungen (sinnvoll z.B. bei Terminierung der Verbindung)
communication
- Verbindungpublic void handleTransmitterSubscriptionReceipt(TransmitterCommunicationInterface communication, TransmitterSubscriptionType transmitterSubscriptionType, BaseSubscriptionInfo baseSubscriptionInfo, ConnectionState connectionState, long mainTransmitterId)
SubscriptionsManager
behandelt eien Anmeldungsquittung von einem anderen Datenverteiler
handleTransmitterSubscriptionReceipt
in interface SubscriptionsManager
communication
- Verbindung zum anderen DavtransmitterSubscriptionType
- Art der Anmeldung (Sender/Empfänger)baseSubscriptionInfo
- AnmeldeinformationconnectionState
- Rückmeldung des anderen Datenverteilers (Zuständig, nicht zuständig, etc.)mainTransmitterId
- Zentraldatenverteiler-ID sofern verfügbarpublic void updateDestinationRoute(long transmitterId, TransmitterCommunicationInterface oldConnection, TransmitterCommunicationInterface newConnection)
SubscriptionsManager
Wird aufgerufen, wenn es zu einer Dav-id eine bessere Route gibt, sorgt für entsprechende Anmeldeumleitungen
updateDestinationRoute
in interface SubscriptionsManager
transmitterId
- Dav-IdoldConnection
- Alte VerbindungnewConnection
- Neue bessere Verbindungpublic long getNextDataIndex(BaseSubscriptionInfo baseSubscriptionInfo)
SubscriptionsManager
Gibt den nächsten Datenindex für die angegebene Anmeldung zurück und zählt den Index entsprechend hoch
getNextDataIndex
in interface SubscriptionsManager
baseSubscriptionInfo
- Anmeldungpublic long getCurrentDataIndex(BaseSubscriptionInfo baseSubscriptionInfo)
SubscriptionsManager
Gibt den aktuellen (zuletzt generierten) Datenindex für die angegebene Anmeldung zurück
getCurrentDataIndex
in interface SubscriptionsManager
baseSubscriptionInfo
- Anmeldungpublic long getNextDataIndex(SubscriptionInfo subscriptionInfo)
Gibt den nächsten Datenindex für die angegebene Anmeldung zurück und zählt den Index entsprechend hoch
subscriptionInfo
- Anmeldungpublic void removeSubscriptionInfo(SubscriptionInfo subscriptionInfo)
SubscriptionsManager
Entfernt eine Anmeldeinformation. Es dürfen beim Aufruf dieser Methode keine Anmeldungen mehr bestehen.
removeSubscriptionInfo
in interface SubscriptionsManager
subscriptionInfo
- Anmeldeinformationpublic void connectToRemoteDrains(SubscriptionInfo subscriptionInfo, java.util.Set<java.lang.Long> distributorsToUse)
SubscriptionsManager
Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Senke durch
connectToRemoteDrains
in interface SubscriptionsManager
subscriptionInfo
- AnmeldeinformationdistributorsToUse
- Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilernpublic void connectToRemoteSources(SubscriptionInfo subscriptionInfo, java.util.Set<java.lang.Long> distributorsToUse)
SubscriptionsManager
Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Quelle durch
connectToRemoteSources
in interface SubscriptionsManager
subscriptionInfo
- AnmeldeinformationdistributorsToUse
- Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilernprivate HashBagMap<TransmitterCommunicationInterface,java.lang.Long> getCentralDistributorConnections(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt eine HashBagMap zurück, die angibt, über welche lokalen Datenverteilerverbindungen welche Zentraldatenverteiler am besten erreicht werden. Die Keys der Rückgabe sind die lokalen Verbindungen, die Values sind die über diesen Key erreichbaren Zentraldatenverteiler zum angegebenen BaseSubscriptionInfo. Ein Zentraldatenverteiler kommt immer nur in einem Key-Value-paar vor, selbst wenn er über mehrere lokale Verbindungen zu erreichen ist. Es wird hierbei die optimale lokale Verbindung ausgewählt (Siehe BestWayManager
).
baseSubscriptionInfo
- Anmeldeinformationprivate HashBagMap<TransmitterCommunicationInterface,java.lang.Long> getCentralDistributorConnections(java.util.Collection<java.lang.Long> potentialCentralDistributors)
Gibt eine HashBagMap zurück, die angibt, über welche lokalen Datenverteilerverbindungen welche Zentraldatenverteiler am besten erreicht werden. Die Keys der Rückgabe sind die lokalen Verbindungen, die Values sind die über diesen Key erreichbaren Zentraldatenverteiler. Ein Zentraldatenverteiler kommt immer nur in einem Key-Value-paar vor, selbst wenn er über mehrere lokale Verbindungen zu erreichen ist. Es wird hierbei die optimale lokale Verbindung ausgewählt (Siehe BestWayManager
).
potentialCentralDistributors
- IDs der Zentraldatenverteiler, welche erreicht werden sollenpublic java.util.Collection<? extends Subscription> getAllSubscriptions(CommunicationInterface communicationInterface)
public void initializeUser(long userId)
Initialisiert die Zugriffsrechte für den angegebenen Benutzer
userId
- Benutzer-ID (muss in der lokalen Konfiguration existieren)