de.bsvrz.dav.dav.main
Class OutSubscriptionsHelper

java.lang.Object
  extended by de.bsvrz.dav.dav.main.OutSubscriptionsHelper

public class OutSubscriptionsHelper
extends Object


Nested Class Summary
private  class OutSubscriptionsHelper.OutGoingSubscription
           
 
Field Summary
private  Hashtable _outSubscriptionsTable
          Key: Id(Long) des Datenverteilers, zu dem eine Verbindung aufgebaut werden soll.
 
Constructor Summary
OutSubscriptionsHelper()
           
 
Method Summary
(package private)  void flushOutUnSubscription(ConnectionsManagerInterface connectionsManager)
          Verschickt alle An/Abmeldungen, die mit handleOutSubscription(de.bsvrz.dav.dav.main.InAndOutSubscription, de.bsvrz.dav.dav.main.InAndOutSubscription.OutSubscription) und handleOutUnsubscription(de.bsvrz.dav.dav.main.InAndOutSubscription, de.bsvrz.dav.dav.main.InAndOutSubscription.OutSubscription) gemacht wurden.
(package private)  void handleOutSubscription(InAndOutSubscription involvedSubscription, InAndOutSubscription.OutSubscription outSubscription)
          Diese Methode führt die austehenden Anmeldungen durch.
(package private)  void handleOutUnsubscription(InAndOutSubscription involvedSubscription, InAndOutSubscription.OutSubscription outSubscription)
          Diese Methode wird aufgerufen, wenn Daten abgemeldet werden sollen.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_outSubscriptionsTable

private final Hashtable _outSubscriptionsTable
Key: Id(Long) des Datenverteilers, zu dem eine Verbindung aufgebaut werden soll. Value: Hashtable (im folgenden Hash2 genannt).

Die Hashtable Hash2 besitzt folgenden Aufbau: Key: BaseSubscriptionInfo. Value: Eine Liste. Die Liste speicherte Objekte vom Typ OutGoingSubscription.

Constructor Detail

OutSubscriptionsHelper

public OutSubscriptionsHelper()
Method Detail

handleOutSubscription

final void handleOutSubscription(InAndOutSubscription involvedSubscription,
                                 InAndOutSubscription.OutSubscription outSubscription)
Diese Methode führt die austehenden Anmeldungen durch.

Parameters:
involvedSubscription - betroffene Anmeldungen
outSubscription - Anmeldung an dem DAV

handleOutUnsubscription

final void handleOutUnsubscription(InAndOutSubscription involvedSubscription,
                                   InAndOutSubscription.OutSubscription outSubscription)
Diese Methode wird aufgerufen, wenn Daten abgemeldet werden sollen. Die Abmeldung wird nicht sofort ausgeführt sondern erst, wenn #flushOutUnSubscription(ConnectionsManager) aufgerufen wird.

Wird für eine Anmeldung diese Methode n-Fach aufgerufen (ohne den Aufruf von flush) und dazu die Methode handleOutSubscription(InAndOutSubscription,InAndOutSubscription.OutSubscription) m-Fach, so werden nur (m-n) viele Telegramme verschickt.

m > n = Es werden m-n viele Anmeldungen verschickt.
m < n = Es werden n-m viele Abmeldungen verschickt.
m == n = Es wird kein Telegramm verschickt.

Parameters:
involvedSubscription - betroffene Anmeldungen
outSubscription - Anmeldung an dem DAV

flushOutUnSubscription

final void flushOutUnSubscription(ConnectionsManagerInterface connectionsManager)
Verschickt alle An/Abmeldungen, die mit handleOutSubscription(de.bsvrz.dav.dav.main.InAndOutSubscription, de.bsvrz.dav.dav.main.InAndOutSubscription.OutSubscription) und handleOutUnsubscription(de.bsvrz.dav.dav.main.InAndOutSubscription, de.bsvrz.dav.dav.main.InAndOutSubscription.OutSubscription) gemacht wurden.

Parameters:
connectionsManager - Objekt, über das die An/Abmeldungen verschickt werden.