|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.dav.dav.main.SubscriptionsManager
public class SubscriptionsManager
Diese Komponente ist für die Verwaltung der Anmeldungen zuständig. Für jede Anmeldung wird ein Repräsentant erzeugt, der in einer Tabelle gehalten wird.
Field Summary | |
---|---|
private ConnectionsManager |
_connectionsManager
Die verbindungsverwaltung |
private Hashtable |
_dataIndexTable
Die Tabelle in der der Index der Datensätze verwaltet werden |
private static Debug |
_debug
|
private Hashtable |
_inOutSubscriptionsTable
Die Tabelle der Anmeldungsanträge, wo drin steht was empfangen wurde und was raus geschickt wurde. |
private SplittedTransmitterTelegramsTable |
_splittedTelegramsTable
Der Zwichenspeicher der zerstückelten Telegramme |
private Hashtable |
_subscriptionsTable
Die Tabelle, wo die registrierten Applikationen oder Datenverteiler gehalten werden |
private Hashtable |
_usedDataIndexTable
Die Tabelle in der der Index der TeilDatensätze verwaltet werden |
Constructor Summary | |
---|---|
SubscriptionsManager()
Dieser Konstruktor wird für Testzwecke benötigt. |
|
SubscriptionsManager(ConnectionsManager connectionsManager)
Erzeugt ein neues Objekt mit den gegebenen Parametern. |
Method Summary | |
---|---|
(package private) InAndOutSubscription |
addSubscriptionRequest(InAndOutSubscription subscription,
long transmitterId)
Addiert einen Anmeldeantrag in der Tabelle. |
(package private) InAndOutSubscription[] |
getAffectedOutgoingSubscriptions(long targetId)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn eine Verbindung zu einem Datenverteiler aufgehoben wurde. |
(package private) InAndOutSubscription |
getAlternativeSubscriptionRequest(InAndOutSubscription subscription)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um zu überprüfen, ob ein positiv quittierter Anmeldungsvermerk für die gleiche Basisanmeldeinformation und den gleichen Anmeldstatus vorliegt, wie in subscription übergeben. |
private long |
getDataIndex(BaseSubscriptionInfo info,
boolean source,
long originIndex)
Gibt die fortlaufende Nummer der Daten zurück |
private ApplicationDataTelegram[] |
getDeltaSubDataObject(ApplicationDataTelegram[] telegrams,
byte[] indicators,
byte[] changes)
Deprecated. |
(package private) SubscriptionComponent[] |
getInterrestedReceivingComponent(BaseSubscriptionInfo info)
Diese Methode wird von der Verbindungsverwaltung und von sich selbst aufgerufen, um festzustellen, welche Verbindungen am Empfang der Datensätze für die spezifizierte Basisanmeldeinformation interessiert sind. |
(package private) SubscriptionComponent[] |
getInterrestedSendingComponent(BaseSubscriptionInfo info)
Diese Methode wird von der Verbindungsverwaltung und von sich selbst aufgerufen, um festzustellen, welche Verbindungen sich für das Senden von Datensätzen für die spezifizierte Basisanmeldeinformation angemeldet haben. |
(package private) InAndOutSubscription[] |
getInvolvedPositiveSubscriptionRequests(InAndOutSubscription subscription)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um zu überprüfen, welche Anmeldungsvermerke von subscription abhängen. |
(package private) InAndOutSubscription[] |
getInvolvedPositiveSubscriptionRequests(long[] ids,
AttributeGroupAspectCombination[] combinations)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn neue Zuliefererinformationen eingetroffen sind. |
(package private) InAndOutSubscription[] |
getInvolvedSubscriptionRequests(BaseSubscriptionInfo key)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um zu überprüfen, welche Anmeldungsvermerke von key abhängen. |
(package private) InAndOutSubscription[] |
getInvolvedSubscriptionRequests(InAndOutSubscription subscription)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um zu überprüfen, welche Anmeldungsvermerke von subscription abhängen. |
(package private) InAndOutSubscription[] |
getInvolvedSubscriptionRequests(InAndOutSubscription subscription,
boolean checkIds)
Gibt die Anmeldeantrage zurück, die vom übergebenen Anmeldeantrag abhängig sein könnten, zurück. |
(package private) InAndOutSubscription[] |
getInvolvedSubscriptionRequests(long[] ids,
AttributeGroupAspectCombination[] combinations)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn neue Zuliefererinformationen eingetroffen sind. |
(package private) T_A_SubscriptionComponent |
getReceivingComponent(BaseSubscriptionInfo info)
Gibt die Senke für die übergene Anmeldeinformationen zurück. |
(package private) InAndOutSubscription[] |
getSameSubscriptionPostedTo(BaseSubscriptionInfo key,
byte subscriptionState,
long sourceTransmitter,
long[] ids)
|
(package private) T_A_SubscriptionComponent |
getSendingComponent(BaseSubscriptionInfo info)
Gibt die Quelle der Applikationsverbindung zurück. |
(package private) InAndOutSubscription |
getSubscription(long sourceId,
BaseSubscriptionInfo info)
|
(package private) InAndOutSubscription[] |
getSubscriptionRequestsToRedirect(long transmitter,
long overTransmitterId)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn neue Weginformationen eingetroffen sind. |
(package private) InAndOutSubscription[] |
getSubscriptionRequestToUpdate(long targetId,
TransmitterDataSubscriptionReceipt receipt)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um einen Anmeldungsvermerk zu quittieren. |
(package private) InAndOutSubscription[] |
getSubscriptionsFromSource(long sourceId)
|
private boolean |
isDeltaAllowed(BaseSubscriptionInfo info)
Delta ist zulässig wenn nicht mehr als ein Sender oder Quelle eines Datums vorhanden ist. |
private boolean |
isInvalidSubscription(BaseSubscriptionInfo key,
byte subscriptionState)
Überprüft ob mehr als eine Quelle für ein Datum im System vorhanden ist. |
(package private) boolean |
isSubscriptionRequestAvaillable(BaseSubscriptionInfo key)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um zu überprüfen, ob für die übergebene Basisanmeldeinformation ein Anmeldungsvermerk vorliegt. |
(package private) boolean |
isSubscriptionRequestAvaillable(InAndOutSubscription subscription)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um zu überprüfen, ob ein positiv quittierter Anmeldungsvermerk für die gleiche Basisanmeldeinformation und den gleichen Anmeldstatus vorliegt, wie in subscription übergeben. |
(package private) InAndOutSubscription |
isSuccessfullySubscribed(BaseSubscriptionInfo key,
byte subscriptionState)
Überprüft ob eine ähnliche Anmeldung schon positiv abgeschlossen und vorhanden ist. |
(package private) InAndOutSubscription |
isSuccessfullySubscribed(BaseSubscriptionInfo key,
byte subscriptionState,
long transmitterId,
long[] ids)
Überprüft ob eine ähnliche Anmeldung schon positive abgeschlossen und vorhanden ist. |
(package private) boolean |
isUnsuccessfullySubscribed(BaseSubscriptionInfo key,
byte subscriptionState)
Überprüft ob eine ähnliche Anmeldung gerade bearbeitet wird. |
(package private) boolean |
isUnsuccessfullySubscribed(BaseSubscriptionInfo key,
byte subscriptionState,
long transmitterId,
long[] ids)
Überprüft ob eine ähnliche Anmeldung gerade bearbeitet wird. |
(package private) boolean |
needToSendSubscription(long transmitterId,
InAndOutSubscription subscription)
Überprüft ob eine ähnliche Anmeldung gerade bearbeitet wird |
void |
printSubscriptions()
Gibt alle Anmeldungen zu Debug-Zwecken aus |
private void |
processApplicationDataTelegramAsCentralDistributor(ApplicationDataTelegram applicationDataTelegram,
boolean save,
T_A_SubscriptionComponent subscriptionComponent,
T_A_HighLevelCommunication connection,
BaseSubscriptionInfo info)
|
(package private) InAndOutSubscription |
removeSubscriptionRequest(InAndOutSubscription subscription)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um einen Anmeldungsvermerk aus der Verwaltung zu löschen. |
(package private) InAndOutSubscription |
removeSubscriptionRequest(long applicationId,
BaseSubscriptionInfo key,
byte subscriptionState)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um einen Anmeldungsvermerk einer Applikation zu löschen. |
(package private) InAndOutSubscription |
removeSubscriptionRequest(long sourceTransmitterId,
BaseSubscriptionInfo key,
byte subscriptionState,
long[] transmitterIds,
long transmitterId)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um einen Anmeldungsvermerk eines Datenverteilers zu löschen. |
(package private) InAndOutSubscription[] |
removeSubscriptionRequests(long sourceId)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, wenn eine Verbindung nicht mehr vorhanden ist. |
private void |
saveAndSendToInterestedReceivingComponents(boolean save,
TransmitterDataTelegram[] transmitterTelegrams,
TransmitterDataTelegram transmitterTelegram,
BaseSubscriptionInfo info,
ApplicationDataTelegram[] applicationTelegrams,
ApplicationDataTelegram applicationTelegram)
Speichert Telegramme eines Datensatzes im Cache und leitet die Telegramme an Applikationen oder andere Datenverteiler weiter, wenn sie sich dafür interessieren. |
void |
sendData(T_A_HighLevelCommunication inputApplicationConnection,
ApplicationDataTelegram applicationDataTelegram)
Diese Methode wird von der Protokollsteuerung DaV-DAF aufgerufen, wenn von einer Applikation ein neuer Datensatz empfangen wurde. |
void |
sendData(T_T_HighLevelCommunication inputTransmitterConnection,
TransmitterDataTelegram transmitterDataTelegram)
Diese Methode wird von der Protokollsteuerung DaV-DaV aufgerufen, wenn von einem Datenverteiler ein neuer Datensatz empfangen wurde. |
private void |
sendDataToT_A_Component(T_A_SubscriptionComponent subscriptionComponent,
ApplicationDataTelegram[] allAppTelegrams,
ApplicationDataTelegram lastAppTelegram,
TransmitterDataTelegram[] transmitterTelegrams,
TransmitterDataTelegram[] previousTransmitterTelegrams)
Leitet ein Telegramm an eine Applikation weiter. |
(package private) void |
sendDataToT_A_Component(T_A_SubscriptionComponent subscriptionComponent,
BaseSubscriptionInfo info)
Leitet ein Telegramm an eine Applikation weiter. |
private void |
sendDataToT_T_Component(T_T_SubscriptionComponent subscriptionComponent,
TransmitterDataTelegram transmitterDataTelegram)
Leitet ein Telegramm an einen anderen Datenverteiler weiter. |
void |
subscribe(SubscriptionComponent subscriptionComponent)
Anmelden einer Anmeldekomponente |
void |
unsubscribe(SubscriptionComponent subscriptionComponent)
Abmelden einer Anmeldekomponente |
(package private) boolean |
updateExchangeSubscriptionRequest(InAndOutSubscription subscription,
long targetId,
BaseSubscriptionInfo key,
long[] transmitterIds,
long mainTransmitterId,
byte subscriptionState,
byte receip)
Diese Methode wird von der Verbindungsverwaltung aufgerufen, um einen Anmeldungsvermerk eines Umleitungsantrags zu quittieren. |
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 final Hashtable _subscriptionsTable
private final Hashtable _inOutSubscriptionsTable
private final Hashtable _dataIndexTable
private final Hashtable _usedDataIndexTable
private final ConnectionsManager _connectionsManager
private final SplittedTransmitterTelegramsTable _splittedTelegramsTable
Constructor Detail |
---|
SubscriptionsManager(ConnectionsManager connectionsManager)
connectionsManager
- Verbindungsverwaltungpublic SubscriptionsManager()
Method Detail |
---|
public void subscribe(SubscriptionComponent subscriptionComponent)
subscriptionComponent
- Die Anmeldekomponentepublic final void unsubscribe(SubscriptionComponent subscriptionComponent)
subscriptionComponent
- Die Anmeldekomponentefinal T_A_SubscriptionComponent getSendingComponent(BaseSubscriptionInfo info)
info
- Anmeldeinformationen
final T_A_SubscriptionComponent getReceivingComponent(BaseSubscriptionInfo info)
info
- Anmeldeinformationen
null
, falls nicht vorhandenfinal InAndOutSubscription isSuccessfullySubscribed(BaseSubscriptionInfo key, byte subscriptionState)
key
- BasisanmeldeinformationensubscriptionState
- Status der Anmeldung
final InAndOutSubscription isSuccessfullySubscribed(BaseSubscriptionInfo key, byte subscriptionState, long transmitterId, long[] ids)
key
- BasisanmeldeinformationensubscriptionState
- Status der AnmeldungtransmitterId
- Id des DAVids
- die erreichbaren DAV, ausgehend vom lokalen DAV.
final boolean isUnsuccessfullySubscribed(BaseSubscriptionInfo key, byte subscriptionState)
key
- BasisanmeldeinformationensubscriptionState
- Status der Anmeldung
final boolean isUnsuccessfullySubscribed(BaseSubscriptionInfo key, byte subscriptionState, long transmitterId, long[] ids)
key
- BasisanmeldeinformationensubscriptionState
- Status der AnmeldungtransmitterId
- Id des DAVids
- die erreichbaren DAV, ausgehend vom lokalen DAV
final boolean needToSendSubscription(long transmitterId, InAndOutSubscription subscription)
transmitterId
- Id des DAVsubscription
- ein Vermerk in der Verwaltungstabelle für Anmeldungsinformationen
final InAndOutSubscription addSubscriptionRequest(InAndOutSubscription subscription, long transmitterId)
subscription
- ein Vermerk in der Verwaltungstabelle für AnmeldungsinformationentransmitterId
- Id des DAV
final InAndOutSubscription[] getSameSubscriptionPostedTo(BaseSubscriptionInfo key, byte subscriptionState, long sourceTransmitter, long[] ids)
key
- BasisanmeldeinformationensubscriptionState
- Status der AnmeldungsourceTransmitter
- Ausgangs - DAVids
- die erreichbaren DAV, ausgehend vom lokalen DAV.
final InAndOutSubscription[] getSubscriptionRequestToUpdate(long targetId, TransmitterDataSubscriptionReceipt receipt)
targetId
- Ziel - DAVreceipt
- Quittung der Anmeldung
final boolean updateExchangeSubscriptionRequest(InAndOutSubscription subscription, long targetId, BaseSubscriptionInfo key, long[] transmitterIds, long mainTransmitterId, byte subscriptionState, byte receip)
subscription
- Eintrag mit der AnmeldungsinformationentargetId
- Ziel - DAVkey
- BasisanmeldeinformationentransmitterIds
- die erreichbaren DAV, ausgehend vom lokalen DAVmainTransmitterId
- Haupt - DAVsubscriptionState
- Status der Anmeldungreceip
- Quittunngszustand
final InAndOutSubscription removeSubscriptionRequest(long applicationId, BaseSubscriptionInfo key, byte subscriptionState)
applicationId
- Applikationkey
- BasisanmeldeinformationsubscriptionState
- Anmeldestatus
final InAndOutSubscription removeSubscriptionRequest(long sourceTransmitterId, BaseSubscriptionInfo key, byte subscriptionState, long[] transmitterIds, long transmitterId)
sourceTransmitterId
- Ausgangs - DAVkey
- BasisanmeldeinformationsubscriptionState
- AnmeldestatustransmitterIds
- die erreichbaren DAV, ausgehend vom lokalen DAVtransmitterId
- Id des DAV
final InAndOutSubscription removeSubscriptionRequest(InAndOutSubscription subscription)
subscription
- Eintrag mit der Anmeldungsinformation
final InAndOutSubscription[] removeSubscriptionRequests(long sourceId)
sourceId
- Ausgangs - DAV
final boolean isSubscriptionRequestAvaillable(BaseSubscriptionInfo key)
key
- Basisanmeldeinformationen
final boolean isSubscriptionRequestAvaillable(InAndOutSubscription subscription)
subscription
- Eintrag mit der Anmeldungsinformation
final InAndOutSubscription getAlternativeSubscriptionRequest(InAndOutSubscription subscription)
subscription
- Anmeldung
final InAndOutSubscription[] getInvolvedPositiveSubscriptionRequests(InAndOutSubscription subscription)
subscription
- Anmeldung
final InAndOutSubscription[] getInvolvedSubscriptionRequests(InAndOutSubscription subscription)
subscription
- Anmeldung
final InAndOutSubscription[] getInvolvedSubscriptionRequests(InAndOutSubscription subscription, boolean checkIds)
final InAndOutSubscription[] getInvolvedSubscriptionRequests(BaseSubscriptionInfo key)
key
- Basisanmeldeinformationen
final InAndOutSubscription[] getInvolvedSubscriptionRequests(long[] ids, AttributeGroupAspectCombination[] combinations)
ids
- Die Objekt-Idscombinations
- Die Attributgruppen-Aspekt-Kombinationen
final InAndOutSubscription[] getInvolvedPositiveSubscriptionRequests(long[] ids, AttributeGroupAspectCombination[] combinations)
ids
- Die Objekt-Idscombinations
- Die Attributgruppen-Aspekt-Kombinationenfinal InAndOutSubscription[] getSubscriptionRequestsToRedirect(long transmitter, long overTransmitterId)
transmitter
- DAVoverTransmitterId
-
final InAndOutSubscription[] getAffectedOutgoingSubscriptions(long targetId)
targetId
- DAV mit Folgeanmeldungen
final InAndOutSubscription[] getSubscriptionsFromSource(long sourceId)
final InAndOutSubscription getSubscription(long sourceId, BaseSubscriptionInfo info)
public void sendData(T_A_HighLevelCommunication inputApplicationConnection, ApplicationDataTelegram applicationDataTelegram)
inputApplicationConnection
- VerbindungapplicationDataTelegram
- Applikations-Daten-Telegrammprivate void processApplicationDataTelegramAsCentralDistributor(ApplicationDataTelegram applicationDataTelegram, boolean save, T_A_SubscriptionComponent subscriptionComponent, T_A_HighLevelCommunication connection, BaseSubscriptionInfo info)
private void saveAndSendToInterestedReceivingComponents(boolean save, TransmitterDataTelegram[] transmitterTelegrams, TransmitterDataTelegram transmitterTelegram, BaseSubscriptionInfo info, ApplicationDataTelegram[] applicationTelegrams, ApplicationDataTelegram applicationTelegram)
save
- true
falls der Datensatz gespeichert werden soll.transmitterTelegrams
- Alle Datenverteilertelegramme eines in mehrere Teiltelegramme zerlegten Datensatzes wenn alle Telegramme vorliegen, sonst null
.info
- Datenidentifikation des TelegrammsapplicationTelegrams
- Alle Applikationstelegramme eines in mehrere Teiltelegramme zerlegten Datensatzes wenn alle Telegramme vorliegen, sonst null
.applicationTelegram
- Telegramm für ApplikationentransmitterTelegram
- Telegramm für andere Datenverteilerpublic final void sendData(T_T_HighLevelCommunication inputTransmitterConnection, TransmitterDataTelegram transmitterDataTelegram)
inputTransmitterConnection
- VerbindungtransmitterDataTelegram
- Transmitter-Daten-Telegrammprivate void sendDataToT_T_Component(T_T_SubscriptionComponent subscriptionComponent, TransmitterDataTelegram transmitterDataTelegram)
subscriptionComponent
- transmitterDataTelegram
- private void sendDataToT_A_Component(T_A_SubscriptionComponent subscriptionComponent, ApplicationDataTelegram[] allAppTelegrams, ApplicationDataTelegram lastAppTelegram, TransmitterDataTelegram[] transmitterTelegrams, TransmitterDataTelegram[] previousTransmitterTelegrams)
subscriptionComponent
- allAppTelegrams
- lastAppTelegram
- transmitterTelegrams
- previousTransmitterTelegrams
- final void sendDataToT_A_Component(T_A_SubscriptionComponent subscriptionComponent, BaseSubscriptionInfo info)
subscriptionComponent
- info
- @Deprecated private ApplicationDataTelegram[] getDeltaSubDataObject(ApplicationDataTelegram[] telegrams, byte[] indicators, byte[] changes)
telegrams
- indicators
- changes
-
private long getDataIndex(BaseSubscriptionInfo info, boolean source, long originIndex)
info
- source
- originIndex
-
final SubscriptionComponent[] getInterrestedReceivingComponent(BaseSubscriptionInfo info)
info
- Basisanmeldeinformationen
final SubscriptionComponent[] getInterrestedSendingComponent(BaseSubscriptionInfo info)
info
- Basisanmeldeinformationen
private boolean isDeltaAllowed(BaseSubscriptionInfo info)
info
-
private boolean isInvalidSubscription(BaseSubscriptionInfo key, byte subscriptionState)
key
- subscriptionState
-
public void printSubscriptions()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |