|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.dav.dav.main.ListsManager
public class ListsManager
Diese Klasse dient zur Verwaltung von Anmeldelistentelegrammen, die zwischen Datenverteilern zum Austausch von Informationen über angemeldete Objekte, Attributgruppen und Aspekte verwendet werden. Jeder Datenverteiler hält grobe Informationen über die vorliegenden Quell- und Senkenanmeldungen der Applikationen, die bei ihm angemeldet sind, vor. Diese Informationen werden zwischen den einzelnen Datenverteilern ausgetauscht, damit bei Anmeldungen von Daten direkt geprüft werden kann, ob diese Daten potentiell im System vorhanden sind und welche Datenverteiler als Zentraldatenverteiler in Frage kommen. Um das Datenaufkommen und die Anzahl der Aktualisierungen hier gering zu halten, werden die Anmeldungen nicht detailliert vorgehalten und weitergegeben, sondern es werden nur Änderungen zweier Listen gepflegt und verteilt: Die erste enthält die Objekte zu denen Quell- oder Senkenanmeldungen bestehen (Objektliste); die zweite Liste enthält die Attributgruppen/Aspekt-Kombinationen zu denen Quell- oder Senkenanmeldungen bestehen (Attributgruppenliste). Jeder Datenverteiler verwaltet für jeden von ihm erreichbaren Datenverteiler eine Anmeldungsliste.
Nested Class Summary | |
---|---|
private class |
ListsManager.DelayedSubscriptionHandle
|
private class |
ListsManager.DelayedSubscriptionThread
TBD Beschreibung |
private class |
ListsManager.LocalSubscriptionInfos
|
private static class |
ListsManager.ReferenceCount
|
private class |
ListsManager.TransmitterSubscriptionInfos
Enthält die Anmeldungsliste eines erreichbaren Datenverteilers. |
Field Summary | |
---|---|
private BestWayManagerInterface |
_bestWayManager
|
private ConnectionsManagerInterface |
_connectionsManager
|
private static Debug |
_debug
|
private ArrayList |
_delayedSubscriptionList
|
private Object |
_delayedSubscriptionSync
|
private ListsManager.DelayedSubscriptionThread |
_delayedSubscriptionThread
|
private ListsManager.LocalSubscriptionInfos |
_localSubscriptionInfos
|
private Object |
_localSubscriptionInfosSendLock
|
private long |
_localTransmitterId
Eigene Datenverteiler-Id |
private ListsManager.TransmitterSubscriptionInfos |
_localTransmitterSubscriptionInfos
|
private Map<Long,ListsManager.TransmitterSubscriptionInfos> |
_subscriptionInfos
Map mit den Anmeldelisten der bekannten Datenverteiler. |
private static long |
DELAYED_SUBSCRIPTION_TIME_LIMIT
|
Constructor Summary | |
---|---|
ListsManager(ConnectionsManagerInterface connectionsManager)
Erzeugt ein neues Objekt mit den übergebenen Parametern. |
Method Summary | |
---|---|
void |
addEntry(long delivererId,
long transmitterId)
Diese Methode wird von der Wegverwaltung aufgerufen, wenn ein Datenverteiler als erreichbar festgestellt wird. |
(package private) void |
addInfo(BaseSubscriptionInfo info)
Neue Anmeldung beim lokalen Datenverteiler in die Anmeldelistenverwaltung aufnehmen. |
private void |
cleanPendingDelayedSubscriptions(long[] ids)
Diese Methode entfernt die wartenden verzögerten Anmeldungen. |
(package private) void |
close()
Diese Methode gibt die vom ListsManager beanspruchten Resourcen wieder frei. |
BestWayManagerInterface |
getBestWayManager()
Getter für das Verwaltungsobjekt zur Bestimmung der günstigsten Wege. |
(package private) Thread |
getDelayedSubscriptionThread()
Bestimmt den Thread, der für die verzögerte Durchführung von Anmeldungen zuständig ist. |
(package private) long[] |
getPotentialTransmitters(BaseSubscriptionInfo info)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um die potentiellen Zentraldatenverteiler des spezifizierten Datums zu bestimmen. |
void |
handleDisconnection(long transmitterId)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn eine Datenverteilerverbindung nicht mehr existiert. |
void |
handleWaysChanges(long[] changedTransmitterIds)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn sich neue günstigste Wege für bestimmte Datenverteiler ergeben haben. |
(package private) void |
removeInfo(BaseSubscriptionInfo info)
Anmeldung beim lokalen Datenverteiler aus der Anmeldelistenverwaltung entfernen. |
private void |
sendTransmitterUpdates(T_T_HighLevelCommunicationInterface connection,
long transmitterId,
boolean update,
List objToAdd,
List objToRemove,
List combiToAdd,
List combiToRemove)
* Diese Methode sendet die Aktualisierungstelegramme, welche die Ergänzungen und Löschungen der Listen beinhalten. |
private void |
sendTransmitterUpdates(T_T_HighLevelCommunicationInterface connection,
long transmitterId,
List<Long> objToAdd,
List<Long> combiToAdd)
Diese Methode sendet die Aktualisierungstelegramme, welche die Ergänzungen der Listen beinhalten. |
void |
setBestWayManager(BestWayManagerInterface bestWayManager)
Setter für das Verwaltungsobjekt zur Bestimmung der günstigsten Wege. |
(package private) void |
subscribe(long transmitterId,
long[] ids)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn eine Anmeldung auf die Zuliefererinformationen eines bestimmten Datenverteilers eingetroffen ist. |
(package private) void |
unsubscribe(long transmitterId,
long[] ids)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn eine Abmeldung auf die Zuliefererinformationen eines bestimmten Datenverteilers eingetroffen ist. |
(package private) void |
unsubscribeDeliverer(long transmitterId,
long[] ids)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn eine Kündigung eines Zulieferers auf die Zuliefererinformationen eines bestimmten Datenverteilers eingetroffen ist. |
(package private) void |
updateEntry(TransmitterListsUpdate transmitterListsUpdate)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn eine Zuliefereraktualisierung eintrifft. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final Debug _debug
private long _localTransmitterId
private final Map<Long,ListsManager.TransmitterSubscriptionInfos> _subscriptionInfos
private final ListsManager.LocalSubscriptionInfos _localSubscriptionInfos
private final ListsManager.TransmitterSubscriptionInfos _localTransmitterSubscriptionInfos
private static final long DELAYED_SUBSCRIPTION_TIME_LIMIT
private ConnectionsManagerInterface _connectionsManager
private ArrayList _delayedSubscriptionList
private Object _delayedSubscriptionSync
private ListsManager.DelayedSubscriptionThread _delayedSubscriptionThread
private BestWayManagerInterface _bestWayManager
private final Object _localSubscriptionInfosSendLock
Constructor Detail |
---|
ListsManager(ConnectionsManagerInterface connectionsManager)
connectionsManager
- VerbindungsverwaltungMethod Detail |
---|
Thread getDelayedSubscriptionThread()
public BestWayManagerInterface getBestWayManager()
public void setBestWayManager(BestWayManagerInterface bestWayManager)
bestWayManager
- Verwaltungsobjekt zur Bestimmung der günstigsten Wege.public final void addEntry(long delivererId, long transmitterId)
ListsManagerInterface
addEntry
in interface ListsManagerInterface
delivererId
- ID des Zulieferers oder -1, wenn der kein Zulieferer mehr existiert.transmitterId
- ID des Datenverteilerspublic final void handleWaysChanges(long[] changedTransmitterIds)
ListsManagerInterface
handleWaysChanges
in interface ListsManagerInterface
changedTransmitterIds
- Array mit den IDs der betroffenen Datenverteiler.final void subscribe(long transmitterId, long[] ids)
transmitterId
- ID des DAVids
- long Array mit den IDs enthält die Liste der DAVsfinal void unsubscribe(long transmitterId, long[] ids)
transmitterId
- ID des DAVids
- long Array mit den IDs, enthält die Liste der DAVsfinal void unsubscribeDeliverer(long transmitterId, long[] ids)
transmitterId
- ID des DAVids
- long Array mit den IDs, enthält die Liste der DAVspublic final void handleDisconnection(long transmitterId)
ListsManagerInterface
handleDisconnection
in interface ListsManagerInterface
transmitterId
- ID des Datenverteilersfinal void updateEntry(TransmitterListsUpdate transmitterListsUpdate)
final void addInfo(BaseSubscriptionInfo info)
info
- Anmeldeinformationenfinal void removeInfo(BaseSubscriptionInfo info)
info
- Anmeldeinformationenfinal long[] getPotentialTransmitters(BaseSubscriptionInfo info)
info
- Anmeldeinformationen
final void close()
private void sendTransmitterUpdates(T_T_HighLevelCommunicationInterface connection, long transmitterId, List<Long> objToAdd, List<Long> combiToAdd)
connection
- Verbindung zwischen zwei DAVtransmitterId
- ID des DAVobjToAdd
- Liste der zu addierenden ObjektecombiToAdd
- Liste der zu addierenden Attributgruppen-Aspekt-Kombinationenprivate void sendTransmitterUpdates(T_T_HighLevelCommunicationInterface connection, long transmitterId, boolean update, List objToAdd, List objToRemove, List combiToAdd, List combiToRemove)
connection
- Verbindung zwischen zwei DAVtransmitterId
- ID des DAVupdate
- true,falseobjToAdd
- Liste der zu addierenden ObjekteobjToRemove
- Liste der zu entfernenden ObjektecombiToAdd
- Liste der zu addierenden Attributgruppen-Aspekt-KombinationencombiToRemove
- Liste der zu entfernenden Attributgruppen-Aspekt-Kombinationenprivate void cleanPendingDelayedSubscriptions(long[] ids)
ids
- long Array mit den IDs der zu löschenden Datenverteiler
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |