Class ProtocolResultStream

  • All Implemented Interfaces:
    java.lang.AutoCloseable

    public class ProtocolResultStream
    extends java.lang.Object
    implements java.lang.AutoCloseable
    Klasse zum Abfragen der Ergebnisdatensätze.
    • Constructor Detail

      • ProtocolResultStream

        public ProtocolResultStream​(ProtocolAnswerReceiver receiver,
                                    ProtocolRequestResult result,
                                    PuaClient puaClient)
                             throws de.bsvrz.sys.funclib.losb.exceptions.FailureException
        Parameters:
        receiver - Empfänger der Ergebnisdaten.
        result - Zeigt ob das Absetzen des Auftrags zur Protokollerstellung erfolgreich war.
        puaClient - PuaClient
        Throws:
        de.bsvrz.sys.funclib.losb.exceptions.FailureException - Fehler bei der Initialisierung.
    • Method Detail

      • isRequestSuccessful

        public boolean isRequestSuccessful()
        Zeigt den Status der Aktion ab. Der Status kann sich nach jedem Aufruf von take() verändern. Wird beispielsweise ein Protokoll erstellt, so ist wird die Methode true zurückliefern, wenn die Anfrage an den Server gesendet werden konnte. D.h. true bedeutet in diesem Fall nicht, dass das Protokoll erfolgreich erstellt wurde, sondern nur, dass die Anfrage an den Server gesendet wurde. Ruft man nun take() auf, und anschließend wieder isRequestSuccessful(), dann wird z.B. false geliefert, wenn es zu einem fehler bei der Protokollerstellung kam - etwa durch einen Syntaxfehler im Skript.
        Returns:
        True, falls die Aktion momentan keine Fehler meldet.
      • isComplete

        public boolean isComplete()
        Zeigt an ob das Protokoll vollständig und erfolgreich übertragen wurde.
        Returns:
        true falls das Protokoll vollständig übertragen wurde.false falls noch nicht alle Ergebnisdatensätze eingetroffen sind oder das Protokoll abgebrochen wurde.
      • getErrorMsg

        public java.lang.String getErrorMsg()
        Returns:
        Liefert eine Fehlermeldung zurück, falls es zu einem Fehler kam.
      • take

        public ProtocolResult take()
                            throws java.lang.InterruptedException
        Liefert jeweils einen Antwortdatensatz. Blockiert so lange, bis ein Antwortdatensatz vorliegt. Sobald der letzte Datensatz oder ein Fehler empfangen wurde, meldet sich das Objekt beim Datenverteiler als Empfänger ab.
        Returns:
        Antwortdatensatz. null falls bereits alle Antwortdatensätze ausgeliefert wurden oder ein Fehler aufgetreten ist.
        Throws:
        java.lang.InterruptedException - Warten auf Antwortdatensatz wurde unterbrochen.
      • hasNext

        public boolean hasNext()
        Zeigt an dass keine weiteren Ergebnisdatensätze mehr eintreffen werden. take() wird genau 1x null zurückliefern, bevor isDone true zurückliefert.
        Returns:
        true falls alle Ergebnisdatensätze abgeholt wurden.
      • abort

        @Deprecated
        public void abort()
        Deprecated.
        Unklarer Name, da die Protokollerstellung nciht abgebrochen wird, sodnern nur der Abruf der Daten. Durch close() ersetzt.
        Meldet das Objekt beim Datenverteiler als Empfänger ab.
      • wasAborted

        public boolean wasAborted()
        Zeigt ob die Protokollerstellung abgebrochen wurde.
        Returns:
        true falls die Protokollerstellung abgebrochen wurde.
      • getJobId

        public java.lang.Long getJobId()
        Liefert die Auftrags-Id.
        Returns:
        Auftrags-Id oder null falls die Auftrags-Id unbekannt ist. Bei Protokoll-Erstellen-Aufträgen ist die Auftrags-ID identisch zur Protokoll-Id.
      • getProtocolId

        @Deprecated
        public final java.lang.Long getProtocolId()
        Deprecated.
        Diese Methode liefert nicht mehr die Protokoll-Id, sondern die eindeutige ID des protokollbezogenen Auftrags
        Liefert die Auftrags-Id. Wichtig: Wird diese Methode direkt nach dem Absetzen des Auftrages zur Protokollerstellung abgesetzt, ist die Auftrags-Id noch unbekannt, und es wird null zurückgegeben!
        Returns:
        Auftrags-Id oder null falls die Auftrags-Id noch unbekannt ist. Bei Protokoll-Erstellen-Aufträgen ist die Auftrags-ID identisch zur Protokoll-Id.
      • bufferedDataSize

        public int bufferedDataSize()
        Liefert die Anzahl der im Client-Puffer liegenden Datensätze.
        Returns:
        Anzahl der im Client-Puffer liegenden Datensätze.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        See Also:
        Object.toString()
      • close

        public void close()
        Beendet die Übertragung der Protokolldaten. Der PuA-Server wird darüber informiert, dass weitere Datensätze nicht übertragen werden müssen. Sollte das Protokoll gespeichert werden, wird nach diesem Aufruf das Protokoll nur noch gespeichert, aber nicht online übertragen.
        Specified by:
        close in interface java.lang.AutoCloseable