de.bsvrz.pua.prot.client
Class AnswerReceiver

java.lang.Object
  extended by de.bsvrz.pua.prot.client.AnswerReceiver
Direct Known Subclasses:
ProtocolAnswerReceiver, ScriptAnswerReceiver

public abstract class AnswerReceiver
extends java.lang.Object

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.

Version:
$Revision: 1.2 $ / $Date: 2008/01/22 16:55:50 $ / ($Author: yvonnes $)
Author:
beck et al. projects GmbH, Martin Hilgers

Field Summary
protected  DataDescription dataDescription
          Angemeldete Atg und Aspekt.
protected  ClientDavInterface dav
          Verbindung zum Datenverteiler.
protected static Debug debug
          Debug Ausgabe
protected  RingBuffer<ResultData> incoming
          Eingegangene Daten
protected  SystemObject object
          Skriptobjekt, auf das sich die Antwort bezieht.
protected  SystemObject receiver
          Objekt das die Anfrage, auf die sich diese Antwort bezieht, gesendet hat.
protected  long requestId
          Anfrage-Id.
 
Constructor Summary
AnswerReceiver(ClientDavInterface dav, SystemObject object, java.lang.String atg, java.lang.String asp, SystemObject receiver, long requestId, ReceiverRole role, long timeout)
          Erzeugt den Empfänger.
 
Method Summary
 boolean hasData()
          Zeigt an, ob Antwortdaten vorliegen.
 ResultData take()
          Liefert einen Antwortdatensatz.
 ResultData take(long timeout)
          Liefert einen Antwortdatensatz.
 boolean unsubscribe()
          Meldet den Empfang von Daten ab.
 void update(ResultData[] results)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

debug

protected static final Debug debug
Debug Ausgabe


dav

protected ClientDavInterface dav
Verbindung zum Datenverteiler.


object

protected SystemObject object
Skriptobjekt, auf das sich die Antwort bezieht.


incoming

protected RingBuffer<ResultData> incoming
Eingegangene Daten


dataDescription

protected DataDescription dataDescription
Angemeldete Atg und Aspekt.


requestId

protected long requestId
Anfrage-Id.


receiver

protected SystemObject receiver
Objekt das die Anfrage, auf die sich diese Antwort bezieht, gesendet hat.

Constructor Detail

AnswerReceiver

public AnswerReceiver(ClientDavInterface dav,
                      SystemObject object,
                      java.lang.String atg,
                      java.lang.String asp,
                      SystemObject receiver,
                      long requestId,
                      ReceiverRole role,
                      long timeout)
               throws ConfigurationException
Erzeugt den Empfänger. Empfänger meldet sich sofort als Empfänger auf Daten an.

Parameters:
dav - Verbindung zum Datenverteiler
object - Systemobjekt, dessen Daten empfangen werden sollen
atg - 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.
role - Empfänger oder Senke.
timeout - Maximale Wartezeit, in der eine Antwort eingehen muss. 0 ist die unbegrenzte Wartezeit.
Throws:
ConfigurationException - Fehler bei der Kommunikation mit der Konfiguration
Method Detail

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:
False falls es beim Abmelden zu einem Fehler kam.

update

public void update(ResultData[] results)
See Also:
ClientReceiverInterface#update(ResultData[])

take

public 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 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.


Copyright © 2005-2008 beck et al. projects GmbH All Rights Reserved.