de.bsvrz.sys.funclib.asyncReceiver
Class AsyncReceiver

java.lang.Object
  extended by de.bsvrz.sys.funclib.asyncReceiver.AsyncReceiver
All Implemented Interfaces:
ClientReceiverInterface

public class AsyncReceiver
extends Object
implements ClientReceiverInterface

Klasse, die beim Empfang von Datensätzen zur Entkopplung von Datenverteiler-Applikationsfunktionen und Verarbeitungsfunktionen eingesetzt werden kann. Empfangene Datensätze werden in eine Queue eingetragen und asynchron von einem eigenen Thread an die eigentlichen Empfänger weitergeleitet.
Wenn zum Beispiel statt

    ClientReceiverInterface receiver= new ....;
    connection.subscribeReceiver(receiver, ... );
 
der folgende Code bei der Anmeldung auf bestimmte Daten benutzt wird:
    ClientReceiverInterface receiver= new ....;
    ClientReceiverInterface asyncReceiver= new AsyncReceiver(receiver);
    connection.subscribeReceiver(asyncReceiver, ... );
 
dann wird jeder empfangene Datensatz im Hintergrund verarbeitet.
Es ist zu beachten, dass die Klasse ein einzigen Thread verwendet, der asynchron zu den anderen Aktivitäten der Applikation und insbesondere asynchron zum update-Thread der Datenverteiler-Applikationsfunktionen arbeitet. Die in einer Queue zwischengespeicherten Datensätze werden sequentiell an die update-Methode des eigentlichen Empfängers weiterleitet.

Author:
Kappich Systemberatung

Nested Class Summary
private static class AsyncReceiver.QueueEntry
           
private static class AsyncReceiver.QueueWorker
           
 
Field Summary
private static Debug _debug
           
private static UnboundedQueue _queueSingleton
           
private  ClientReceiverInterface _syncReceiver
           
 
Constructor Summary
AsyncReceiver(ClientReceiverInterface syncReceiver)
          Erzeugt ein neues Empfängerobjekt mit asynchroner Weiterleitung empfangener Daten an das übergebene Empfängerobjekt.
 
Method Summary
 void update(ResultData[] results)
          Aktualisierungsmethode, die nach Empfang eines angemeldeten Datensatzes von den Datenverteiler-Applikationsfunktionen aufgerufen wird.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_debug

private static final Debug _debug

_queueSingleton

private static final UnboundedQueue _queueSingleton

_syncReceiver

private final ClientReceiverInterface _syncReceiver
Constructor Detail

AsyncReceiver

public AsyncReceiver(ClientReceiverInterface syncReceiver)
Erzeugt ein neues Empfängerobjekt mit asynchroner Weiterleitung empfangener Daten an das übergebene Empfängerobjekt.

Parameters:
syncReceiver - Empfängerobjekt, an das empfangene Daten asynchron zur Verarbeitung weitergeleitet werden sollen.
Method Detail

update

public void update(ResultData[] results)
Aktualisierungsmethode, die nach Empfang eines angemeldeten Datensatzes von den Datenverteiler-Applikationsfunktionen aufgerufen wird.

Empfangene Datensätze werden in eine Queue eingetragen und asynchron an das eigentliche Empfängerobjekt zur Verarbeitung weitergeleitet.

Specified by:
update in interface ClientReceiverInterface
Parameters:
results - Feld mit den empfangenen Ergebnisdatensätzen.