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.ClientReceiverInterfaceKlasse 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.DataDescriptiondataDescriptionAngemeldete Atg und Aspekt.protected de.bsvrz.dav.daf.main.ClientDavInterfacedavVerbindung zum Datenverteiler.protected de.bsvrz.sys.funclib.losb.ringbuffer.RingBuffer<de.bsvrz.dav.daf.main.ResultData>incomingEingegangene Datenprotected de.bsvrz.dav.daf.main.config.SystemObjectobjectSkriptobjekt, auf das sich die Antwort bezieht.protected de.bsvrz.dav.daf.main.config.SystemObjectreceiverObjekt das die Anfrage, auf die sich diese Antwort bezieht, gesendet hat.protected longrequestIdAnfrage-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 booleanhasData()Zeigt an, ob Antwortdaten vorliegen.protected voidsubscribe(de.bsvrz.dav.daf.main.ReceiverRole role)de.bsvrz.dav.daf.main.ResultDatatake()Liefert einen Antwortdatensatz.de.bsvrz.dav.daf.main.ResultDatatake(long timeout)Liefert einen Antwortdatensatz.booleanunsubscribe()Meldet den Empfang von Daten ab.protected abstract voidupdate(de.bsvrz.dav.daf.main.ResultData result)Wird für jeden empfangenen Datensatz vonupdate(ResultData[])aufgerufen.voidupdate(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.0ist 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:
updatein 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.InterruptedExceptionLiefert einen Antwortdatensatz. Blockiert, bis Antwortdaten vorliegen oder bis zum übergebenen gesetzten Timeout.- Parameters:
timeout- Wartezeit.0bedeutet 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.InterruptedExceptionLiefert 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.
-
-