Package de.bsvrz.pua.prot.client
Class AnswerReceiver
- java.lang.Object
-
- de.bsvrz.pua.prot.client.AnswerReceiver
-
- All Implemented Interfaces:
de.bsvrz.dav.daf.main.ClientReceiverInterface
- Direct Known Subclasses:
ProtocolAnswerReceiver
,ScriptAnswerReceiver
public abstract class AnswerReceiver extends java.lang.Object implements de.bsvrz.dav.daf.main.ClientReceiverInterface
Klasse die den Empfang von Daten über den Datenverteiler übernimmt. Eingehende Daten werden nur gespeichert, wenn diese einen Datenteil haben. Außerdem müssen Anfrage-Id und Sender mit den im Konstruktor übergebenen Objekten übereinstimmen.
-
-
Field Summary
Fields Modifier and Type Field Description protected de.bsvrz.dav.daf.main.DataDescription
dataDescription
Angemeldete Atg und Aspekt.protected de.bsvrz.dav.daf.main.ClientDavInterface
dav
Verbindung zum Datenverteiler.protected de.bsvrz.sys.funclib.losb.ringbuffer.RingBuffer<de.bsvrz.dav.daf.main.ResultData>
incoming
Eingegangene Datenprotected de.bsvrz.dav.daf.main.config.SystemObject
object
Skriptobjekt, auf das sich die Antwort bezieht.protected de.bsvrz.dav.daf.main.config.SystemObject
receiver
Objekt das die Anfrage, auf die sich diese Antwort bezieht, gesendet hat.protected long
requestId
Anfrage-Id.
-
Constructor Summary
Constructors Constructor Description AnswerReceiver(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.config.SystemObject object, java.lang.String atg, java.lang.String asp, de.bsvrz.dav.daf.main.config.SystemObject receiver, long requestId, long timeout)
Erzeugt den Empfänger.
-
Method Summary
Modifier and Type Method Description boolean
hasData()
Zeigt an, ob Antwortdaten vorliegen.protected void
subscribe(de.bsvrz.dav.daf.main.ReceiverRole role)
de.bsvrz.dav.daf.main.ResultData
take()
Liefert einen Antwortdatensatz.de.bsvrz.dav.daf.main.ResultData
take(long timeout)
Liefert einen Antwortdatensatz.boolean
unsubscribe()
Meldet den Empfang von Daten ab.protected abstract void
update(de.bsvrz.dav.daf.main.ResultData result)
Wird für jeden empfangenen Datensatz vonupdate(ResultData[])
aufgerufen.void
update(de.bsvrz.dav.daf.main.ResultData[] results)
-
-
-
Field Detail
-
dav
protected de.bsvrz.dav.daf.main.ClientDavInterface dav
Verbindung zum Datenverteiler.
-
object
protected de.bsvrz.dav.daf.main.config.SystemObject object
Skriptobjekt, auf das sich die Antwort bezieht.
-
incoming
protected de.bsvrz.sys.funclib.losb.ringbuffer.RingBuffer<de.bsvrz.dav.daf.main.ResultData> incoming
Eingegangene Daten
-
dataDescription
protected de.bsvrz.dav.daf.main.DataDescription dataDescription
Angemeldete Atg und Aspekt.
-
requestId
protected long requestId
Anfrage-Id.
-
receiver
protected de.bsvrz.dav.daf.main.config.SystemObject receiver
Objekt das die Anfrage, auf die sich diese Antwort bezieht, gesendet hat.
-
-
Constructor Detail
-
AnswerReceiver
public AnswerReceiver(de.bsvrz.dav.daf.main.ClientDavInterface dav, de.bsvrz.dav.daf.main.config.SystemObject object, java.lang.String atg, java.lang.String asp, de.bsvrz.dav.daf.main.config.SystemObject receiver, long requestId, long timeout)
Erzeugt den Empfänger. Empfänger meldet sich sofort als Empfänger auf Daten an.- Parameters:
dav
- Verbindung zum Datenverteilerobject
- Systemobjekt, dessen Daten empfangen werden sollenatg
- Pid der Attributgruppe auf die sich der Empfänger anmeldet.asp
- Pid des Aspekts auf den sich der Empfänger anmeldet.receiver
- Objekt das als Absender im Datensatz eingetragen wist.requestId
- Anfrage-Id.timeout
- Maximale Wartezeit, in der eine Antwort eingehen muss.0
ist die unbegrenzte Wartezeit.
-
-
Method Detail
-
subscribe
protected void subscribe(de.bsvrz.dav.daf.main.ReceiverRole role)
-
hasData
public boolean hasData()
Zeigt an, ob Antwortdaten vorliegen.- Returns:
- True, Falls antwortdaten vorliegen.
-
unsubscribe
public boolean unsubscribe()
Meldet den Empfang von Daten ab.- Returns:
- Immer
true
-
update
public void update(de.bsvrz.dav.daf.main.ResultData[] results)
- Specified by:
update
in interfacede.bsvrz.dav.daf.main.ClientReceiverInterface
- See Also:
ClientReceiverInterface.update(ResultData[])
-
update
protected abstract void update(de.bsvrz.dav.daf.main.ResultData result)
Wird für jeden empfangenen Datensatz vonupdate(ResultData[])
aufgerufen.- Parameters:
result
- Eingehender Datensatz. Enthält Daten, d.h.rd.getData()
ist nichtnull
.
-
take
public de.bsvrz.dav.daf.main.ResultData take(long timeout) throws java.lang.InterruptedException
Liefert einen Antwortdatensatz. Blockiert, bis Antwortdaten vorliegen oder bis zum übergebenen gesetzten Timeout.- Parameters:
timeout
- Wartezeit.0
bedeutet unbegrenzte Wartezeit.- Returns:
- Antwortdatensatz oder null bei Fehler.
- Throws:
java.lang.InterruptedException
- Warten auf Antwortdatensatz wurde unterbrochen.
-
take
public de.bsvrz.dav.daf.main.ResultData take() throws java.lang.InterruptedException
Liefert einen Antwortdatensatz. Blockiert, bis Antwortdaten vorliegen oder bis zum im Konstruktor gesetzten Timeout.- Returns:
- Antwortdatensatz oder null bei Fehler.
- Throws:
java.lang.InterruptedException
- Warten auf Antwortdatensatz wurde unterbrochen.
-
-