Class BasicFlowControl

  • All Implemented Interfaces:
    ProcessingInterface
    Direct Known Subclasses:
    Processing, ProtocolReader

    public abstract class BasicFlowControl
    extends java.lang.Object
    implements ProcessingInterface
    Basisklasse für Protokolldaten-sendende Klassen, die eine Flusskontrolle unterstützen. Bei jedem erfolgreich versendeten Datensatz muss datasetSend() aufgerufen werden um den Zähler der gesendeten Daten hochzuzählen. flowControl() kann immer aufgerufen werden bevor ein Datensätze versendet werden würde um den Versand ggf. auszubremsen.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected long _maxDelay
      Maximale Zeitdauer in ms für die die Protokollerstellung angehalten werden kann.
      protected java.util.concurrent.atomic.AtomicBoolean _pause
      Flußkontrolle.
    • Constructor Summary

      Constructors 
      Constructor Description
      BasicFlowControl​(long maxDelay, int timeout, long initialFlowControl)
      Erzeut eine neue Instanz
    • Field Detail

      • _pause

        protected final java.util.concurrent.atomic.AtomicBoolean _pause
        Flußkontrolle. Objekt wird zum synchronisieren verwendet.
      • _maxDelay

        protected final long _maxDelay
        Maximale Zeitdauer in ms für die die Protokollerstellung angehalten werden kann.
    • Constructor Detail

      • BasicFlowControl

        public BasicFlowControl​(long maxDelay,
                                int timeout,
                                long initialFlowControl)
        Erzeut eine neue Instanz
        Parameters:
        maxDelay - Maximale wartezeit bei manueller Flusskontrolle in ms
        timeout - Anzahl Minuten ohne Antwort vom Client, nach der die Übertragung getrennt wird
        initialFlowControl - Anzahl initial zu sendende Datensätze bis zu automatische Flusskontrolle den Versand bremst
    • Method Detail

      • flowControl

        protected void flowControl()
                            throws java.lang.InterruptedException
        Flußkontrolle. Ggf. wird wird gewartet bis das Senden fortgesetzt werden kann.
        Throws:
        java.lang.InterruptedException - Warten wurde unterbrochen.
      • getClient

        protected abstract java.lang.Object getClient()
      • flowControl

        public void flowControl​(long numData)
        Description copied from interface: ProcessingInterface
        Clientseitige automatische flusskontrolle. Der Client gibt vor, bis zu welchem Datensatz PuA Datensätze mit voller Geschwindigkeit senden soll. danach wird der Versand stark ausgebremst (nicht völlig gestoppt, da PuA sonst evtl. nicht merkt, ob der Client noch erreichbar ist)
        Specified by:
        flowControl in interface ProcessingInterface
        Parameters:
        numData - Bis zu welcher Datensatznummer (einfach durchnummeriert) Daten gesendet werden sollen.
      • datasetSend

        public void datasetSend()
      • getTimeout

        public int getTimeout()