Class CollectingReceiverManager


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

      • CollectingReceiverManager

        public CollectingReceiverManager​(int capacity)
    • Method Detail

      • 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 java.lang.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:
        java.lang.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 java.lang.InterruptedException
        Startet die Auslieferung von Datensätzen des nächsten in der Auslieferungsliste eingetragenen CollectingReceivers.
        Throws:
        java.lang.InterruptedException