public abstract class AbstractSubscriptionsManager extends Object implements SubscriptionsManager
Modifier and Type | Field and Description |
---|---|
protected DataIndexCounter<BaseSubscriptionInfo> |
_dataIndexCounter |
private static Debug |
_debug |
protected 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,
Set<Long> distributorsToUse)
Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Senke durch
|
void |
connectToRemoteSources(SubscriptionInfo subscriptionInfo,
Set<Long> distributorsToUse)
Führt Anmeldungen bei potentiellen Zentraldatenverteilern auf eine Quelle durch
|
static String |
dataIndexToString(long c) |
Collection<? extends Subscription> |
getAllSubscriptions(CommunicationInterface communicationInterface) |
private HashBagMap<TransmitterCommunicationInterface,Long> |
getCentralDistributorConnections(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt eine HashBagMap zurück, die angibt, über welche lokalen Datenverteilerverbindungen welche Zentraldatenverteiler am besten erreicht werden.
|
private HashBagMap<TransmitterCommunicationInterface,Long> |
getCentralDistributorConnections(Collection<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) |
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.
|
void |
removeAllSubscriptions(TransmitterCommunicationInterface communication)
Entfernt von einer Verbindung alle Anmeldungen (sinnvoll z.B.
|
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 ConcurrentHashMap<BaseSubscriptionInfo,SubscriptionInfo> _subscriptions
protected final DataIndexCounter<BaseSubscriptionInfo> _dataIndexCounter
public static String dataIndexToString(long c)
public SubscriptionInfo openSubscriptionInfo(BaseSubscriptionInfo baseSubscriptionInfo)
SubscriptionInfo.close()
aufgerufen werden, damit eventuelle Aufräumarbeiten erledigt werden können.openSubscriptionInfo
in interface SubscriptionsManager
baseSubscriptionInfo
- baseSubscriptionInfopublic SubscriptionInfo openExistingSubscriptionInfo(BaseSubscriptionInfo baseSubscriptionInfo)
SubscriptionInfo.close()
aufgerufen werden, damit eventuelle Aufräumarbeiten erledigt werden können.openExistingSubscriptionInfo
in interface SubscriptionsManager
baseSubscriptionInfo
- baseSubscriptionInfopublic SubscriptionInfo getSubscriptionInfo(BaseSubscriptionInfo baseSubscriptionInfo)
getSubscriptionInfo
in interface SubscriptionsManager
baseSubscriptionInfo
- baseSubscriptionInfopublic void addLocalSendSubscription(ApplicationCommunicationInterface application, SendSubscriptionInfo sendSubscriptionInfo)
application
- VerbindungsendSubscriptionInfo
- Anmeldeparameterpublic void removeLocalSendSubscription(ApplicationCommunicationInterface application, BaseSubscriptionInfo baseSubscriptionInfo)
application
- VerbindungbaseSubscriptionInfo
- Objekt und Attributgruppenverwendungpublic void addLocalReceiveSubscription(ApplicationCommunicationInterface application, ReceiveSubscriptionInfo receiveSubscriptionInfo)
application
- VerbindungreceiveSubscriptionInfo
- Anmeldeparameterpublic void removeLocalReceiveSubscriptions(ApplicationCommunicationInterface application, BaseSubscriptionInfo baseSubscriptionInfo)
application
- VerbindungbaseSubscriptionInfo
- Objekt und Attributgruppenverwendungpublic void handleUserRightsChanged(long userId)
handleUserRightsChanged
in interface SubscriptionsManager
handleUserRightsChanged
in interface UserRightsChangeHandler
userId
- Id des Benutzerspublic void removeLocalSendSubscriptions(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo)
application
- AnwendungsubscriptionInfo
- subscriptionInfopublic void removeLocalReceiveSubscriptions(ApplicationCommunicationInterface application, SubscriptionInfo subscriptionInfo)
application
- AnwendungsubscriptionInfo
- subscriptionInfopublic void removeAllSubscriptions(ApplicationCommunicationInterface communication)
communication
- Verbindungpublic void removeAllSubscriptions(TransmitterCommunicationInterface communication)
communication
- Verbindungpublic void handleTransmitterSubscriptionReceipt(TransmitterCommunicationInterface communication, TransmitterSubscriptionType transmitterSubscriptionType, BaseSubscriptionInfo baseSubscriptionInfo, ConnectionState connectionState, long mainTransmitterId)
SubscriptionsManager
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
updateDestinationRoute
in interface SubscriptionsManager
transmitterId
- Dav-IdoldConnection
- Alte VerbindungnewConnection
- Neue bessere Verbindungpublic long getNextDataIndex(BaseSubscriptionInfo baseSubscriptionInfo)
SubscriptionsManager
getNextDataIndex
in interface SubscriptionsManager
baseSubscriptionInfo
- Anmeldungpublic long getCurrentDataIndex(BaseSubscriptionInfo baseSubscriptionInfo)
SubscriptionsManager
getCurrentDataIndex
in interface SubscriptionsManager
baseSubscriptionInfo
- Anmeldungpublic long getNextDataIndex(SubscriptionInfo subscriptionInfo)
subscriptionInfo
- Anmeldungpublic void removeSubscriptionInfo(SubscriptionInfo subscriptionInfo)
SubscriptionsManager
removeSubscriptionInfo
in interface SubscriptionsManager
subscriptionInfo
- Anmeldeinformationpublic void connectToRemoteDrains(SubscriptionInfo subscriptionInfo, Set<Long> distributorsToUse)
SubscriptionsManager
connectToRemoteDrains
in interface SubscriptionsManager
subscriptionInfo
- AnmeldeinformationdistributorsToUse
- Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilernpublic void connectToRemoteSources(SubscriptionInfo subscriptionInfo, Set<Long> distributorsToUse)
SubscriptionsManager
connectToRemoteSources
in interface SubscriptionsManager
subscriptionInfo
- AnmeldeinformationdistributorsToUse
- Liste mit zu berücksichtigenden potentiellen Zentraldatenverteilernprivate HashBagMap<TransmitterCommunicationInterface,Long> getCentralDistributorConnections(BaseSubscriptionInfo baseSubscriptionInfo)
BestWayManager
).baseSubscriptionInfo
- Anmeldeinformationprivate HashBagMap<TransmitterCommunicationInterface,Long> getCentralDistributorConnections(Collection<Long> potentialCentralDistributors)
BestWayManager
).potentialCentralDistributors
- IDs der Zentraldatenverteiler, welche erreicht werden sollenpublic Collection<? extends Subscription> getAllSubscriptions(CommunicationInterface communicationInterface)
public void initializeUser(long userId)