Class CollectingReceiverManager

java.lang.Object
de.bsvrz.dav.daf.main.impl.subscription.CollectingReceiverManager

public final class CollectingReceiverManager extends Object
Verwaltet alle CollectingReceiver Objekte für noch angemeldete Receiver der Applikation.
  • Constructor Details

    • CollectingReceiverManager

      public CollectingReceiverManager(int capacity)
  • Method Details

    • addReceiverReference

      public CollectingReceiver addReceiverReference(ClientReceiverInterface receiver)
      Nimmt eine neue Referenz zu einem Receiver in die Verwaltung auf. Wenn es zum angegebenen Receiver bereits einen zugehörigen CollectingReceiver gab, dann wird dessen Referenzzähler um eins erhöht. Wenn es zum angegebenen Receiver noch keinen CollectingReceiver gab, dann wird ein entsprechender CollectingReceiver erzeugt und dessen Referenzzähler auf eins gesetzt.
      Parameters:
      receiver - Receiver der Applikation zur Verarbeitung von empfangenen Datensätzen.
      Returns:
      Dem angegebenen Receiver zugeordneter CollectingReceiver.
    • removeReceiverReference

      public CollectingReceiver removeReceiverReference(ClientReceiverInterface receiver)
      Freigabe einer Referenz auf einen Receiver. Beim zugeordneten CollectingReceiver wird der Referenzzähler um eins erniedrigt. Wenn der Referenzzähler den Wert 0 erreicht, dann wird der entsprechende Eintrag für den Receiver entfernt und der zugeordnete CollectingReceiver freigegeben.
      Parameters:
      receiver -
      Returns:
    • storeForDelivery

      public void storeForDelivery(CollectingReceiver collectingReceiver, ResultData result) throws InterruptedException
      Gibt einen an die Applikation auszuliefernden Datensatz an den angegebenen CollectingReceiver weiter und trägt den CollectingReceiver in die Auslieferungsliste ein, falls dies noch nicht geschehen ist. Wenn die maximale Größe des Auslieferungspuffers erreicht wurde, dann blockiert diese Methode, bis die Größe des Auslieferungspuffers wieder unter die Maximalgröße gesunken ist.
      Parameters:
      collectingReceiver - CollectingReceiver bei dem der Datensatz zur Auslieferung zwischengespeichert werden soll.
      result - Auszuliefernder Datensatz.
      Throws:
      InterruptedException - Wenn der Thread unterbrochen wurde, während er blockiert war.
    • storeForDeliveryWithoutBlocking

      public void storeForDeliveryWithoutBlocking(CollectingReceiver collectingReceiver, ResultData result)
      Gibt einen an die Applikation auszuliefernden Datensatz an den angegebenen CollectingReceiver weiter und trägt den CollectingReceiver in die Auslieferungsliste ein, falls dies noch nicht geschehen ist. Diese Methode blockiert nicht, wenn die maximale Größe des Auslieferungspuffers erreicht wurde.
      Parameters:
      collectingReceiver - CollectingReceiver bei dem der Datensatz zur Auslieferung zwischengespeichert werden soll.
      result - Auszuliefernder Datensatz.
    • deliverOnce

      public void deliverOnce() throws InterruptedException
      Startet die Auslieferung von Datensätzen des nächsten in der Auslieferungsliste eingetragenen CollectingReceivers.
      Throws:
      InterruptedException