Klasse QueryTask

Alle implementierten Schnittstellen:
de.bsvrz.dav.daf.main.ClientSenderInterface
Bekannte direkte Unterklassen:
ArchiveInfoQueryTask, ArchiveQueryTask

public abstract class QueryTask extends MultiTask implements de.bsvrz.dav.daf.main.ClientSenderInterface
Oberklasse für Tasks, die Archivanfragen oder Archiv-Informationsanfragen bearbeiten.
  • Verschachtelte Klassen - Übersicht

    Verschachtelte Klassen
    Modifizierer und Typ
    Klasse
    Beschreibung
    protected static enum 
    Zustand der Sendesteuerung (Senden / Anhalten / Abbrechen).
  • Feldübersicht

    Felder
    Modifizierer und Typ
    Feld
    Beschreibung
    protected de.bsvrz.dav.daf.main.config.AttributeGroup
    Attributgruppe für Archiv-Anfragen.
    protected final ByteArrayOutputStream
    Wiederverwendbarer ByteArrayOutputStream.
    protected de.bsvrz.dav.daf.main.DataDescription
    Datenidentifikation der Archiv-Antwort.
    protected de.bsvrz.sys.funclib.dataSerializer.Deserializer
    Der Deserialisierer aus DAF.
    protected de.bsvrz.dav.daf.main.Data
    Dieses Datenobjekt wird zum Senden des Ergebnisses verwendet
    protected de.bsvrz.dav.daf.main.ResultData
    Wird zum Senden verwendet (muss nur einmal angelegt werden)
    protected de.bsvrz.dav.daf.main.config.SystemObject
    Applikations-Objekt des Absenders der Archiv-Anfrage.
    protected int
    Anfrage-Index der anfragenden Applikation zur Archiv-Anfrage.
    Aktueller Zustand der Sendesteuerung.
    protected de.bsvrz.sys.funclib.dataSerializer.Serializer
    Der Serialisierer aus DAF.
    protected int
    Serialisiererversion der anfragenden Applikation, mit der auch die Antwort erstellt wird.
    protected final Object
    Spezielles Objekt zur Synchronisiserung.

    Von Klasse geerbte Felder de.bsvrz.ars.ars.mgmt.tasks.MultiTask

    resultData

    Von Klasse geerbte Felder de.bsvrz.ars.ars.mgmt.tasks.Task

    _debug, _shouldTerminate

    Von Schnittstelle geerbte Felder de.bsvrz.dav.daf.main.ClientSenderInterface

    START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
  • Konstruktorübersicht

    Konstruktoren
    Konstruktor
    Beschreibung
    Konstruktor für den QueryTask.
  • Methodenübersicht

    Modifizierer und Typ
    Methode
    Beschreibung
    protected void
    Legt alle Datenstrukturen an, die zu Beginn der Anfrage ermittelt werden können.
    void
    dataRequest(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state)
     
    void
     
    protected void
    Initialisiert den Task für eine neue Anfrage.
    boolean
    isRequestSupported(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription)
     
    protected static de.bsvrz.dav.daf.main.archive.ArchiveDataSpecification[]
    parseArchiveDataSpec(de.bsvrz.sys.funclib.dataSerializer.Deserializer ds, de.bsvrz.dav.daf.main.config.DataModel dataModel)
    Interpretiert die empfangene Archivanfrage oder Archiv-Informationsanfrage und zerlegt sie in einzelne Unterabfragen vom Typ ArchiveDataSpecification.
    protected void
    sendResultData(byte[] resultBytes, int msgType)
    Sendet das übergebene Byte-Array in einem Ergebnis-Datensatz (ResultData) an das Empfaenger-Applikations-Objekt.
    protected void
    Meldet den Task als Sender für Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt an.
    protected void
    Meldet den Task als Sender für Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt ab.
    Wartet darauf, dass es eine positive Sendesteuerung für das Verschicken der Antworten gibt.

    Von Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.MultiTask

    setTaskIndex, work, work

    Von Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.QueueTask

    step, submit, terminateTask

    Von Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask

    execute, getArchMgr

    Von Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.Task

    getDidTree, getPersistenceManager, shouldTerminate, suspendTaskIfNecessary

    Von Klasse geerbte Methoden java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Felddetails

    • sendingState

      protected QueryTask.SendingState sendingState
      Aktueller Zustand der Sendesteuerung.
    • syncObj

      protected final Object syncObj
      Spezielles Objekt zur Synchronisiserung. Immer dieses anstatt this verwenden!
    • queryAppObj

      protected de.bsvrz.dav.daf.main.config.SystemObject queryAppObj
      Applikations-Objekt des Absenders der Archiv-Anfrage.
    • atgQuery

      protected de.bsvrz.dav.daf.main.config.AttributeGroup atgQuery
      Attributgruppe für Archiv-Anfragen.
    • ddResponse

      protected de.bsvrz.dav.daf.main.DataDescription ddResponse
      Datenidentifikation der Archiv-Antwort.
    • queryIdx

      protected int queryIdx
      Anfrage-Index der anfragenden Applikation zur Archiv-Anfrage.
    • serializerVersion

      protected int serializerVersion
      Serialisiererversion der anfragenden Applikation, mit der auch die Antwort erstellt wird.
    • gData

      protected de.bsvrz.dav.daf.main.Data gData
      Dieses Datenobjekt wird zum Senden des Ergebnisses verwendet
    • gResultData

      protected de.bsvrz.dav.daf.main.ResultData gResultData
      Wird zum Senden verwendet (muss nur einmal angelegt werden)
    • bosResult

      protected final ByteArrayOutputStream bosResult
      Wiederverwendbarer ByteArrayOutputStream.
    • serializer

      protected de.bsvrz.sys.funclib.dataSerializer.Serializer serializer
      Der Serialisierer aus DAF.
    • deserializer

      protected de.bsvrz.sys.funclib.dataSerializer.Deserializer deserializer
      Der Deserialisierer aus DAF.
  • Konstruktordetails

    • QueryTask

      public QueryTask(ArchiveManager archiveMgr, MultiTaskManager tMgr)
      Konstruktor für den QueryTask.
      Parameter:
      archiveMgr - Der Archiv-Manager.
      tMgr - Der MultiTaskManager.
  • Methodendetails

    • waitForSendControl

      protected QueryTask.SendingState waitForSendControl() throws InterruptedException
      Wartet darauf, dass es eine positive Sendesteuerung für das Verschicken der Antworten gibt. Diese Methode wartet so lange, wie eine negative Sendesteuerung besteht.
      Gibt zurück:
      In der Regel QueryTask.SendingState.SEND, außer es tritt ein Fehler oder Timeout auf. Der Aufrufer muss den Rückgabewert auswerten und entsprechend reagieren.
      Löst aus:
      InterruptedException - Unterbrochen
    • getObjectsFromDav

      public void getObjectsFromDav()
      Setzt außer Kraft:
      getObjectsFromDav in Klasse MultiTask
    • init

      protected void init()
      Initialisiert den Task für eine neue Anfrage.
    • isRequestSupported

      public boolean isRequestSupported(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription)
      Angegeben von:
      isRequestSupported in Schnittstelle de.bsvrz.dav.daf.main.ClientSenderInterface
    • dataRequest

      public void dataRequest(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state)
      Angegeben von:
      dataRequest in Schnittstelle de.bsvrz.dav.daf.main.ClientSenderInterface
    • subscribeSender

      protected void subscribeSender() throws de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
      Meldet den Task als Sender für Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt an. Registriert den StreamMultiplexer für den Empfang von Flusskontroll-Steuerungspaketen.
      Löst aus:
      de.bsvrz.dav.daf.main.OneSubscriptionPerSendData - Anmeldung besteht bereits
    • unsubscribeSender

      protected void unsubscribeSender()
      Meldet den Task als Sender für Archiv-Antworten an das angegebene Empfaenger-Applikations-Objekt ab.
    • createQueryData

      protected void createQueryData() throws de.bsvrz.sys.funclib.dataSerializer.NoSuchVersionException
      Legt alle Datenstrukturen an, die zu Beginn der Anfrage ermittelt werden können.
      Löst aus:
      de.bsvrz.sys.funclib.dataSerializer.NoSuchVersionException - Angefragte Serialisierer-Version ist nicht vorhanden
    • sendResultData

      protected void sendResultData(byte[] resultBytes, int msgType)
      Sendet das übergebene Byte-Array in einem Ergebnis-Datensatz (ResultData) an das Empfaenger-Applikations-Objekt.
      Parameter:
      resultBytes - Zu versendendes Byte-Array
      msgType - ArchivNachrichtenTyp wie definiert in MessageType
    • parseArchiveDataSpec

      protected static de.bsvrz.dav.daf.main.archive.ArchiveDataSpecification[] parseArchiveDataSpec(de.bsvrz.sys.funclib.dataSerializer.Deserializer ds, de.bsvrz.dav.daf.main.config.DataModel dataModel) throws IOException
      Interpretiert die empfangene Archivanfrage oder Archiv-Informationsanfrage und zerlegt sie in einzelne Unterabfragen vom Typ ArchiveDataSpecification.
      Parameter:
      ds - Deserialisierer mit der Anfrage.
      dataModel - Datenmodell
      Gibt zurück:
      Feld von Unterabfragen vom Typ ArchiveDataSpecification.
      Löst aus:
      IOException - Allgemeiner IO-Fehler