private final class SubscriptionArchiveOnlineDataManager.Receiver extends java.lang.Object implements ClientReceiverInterface
Objekt, das Onlinedaten puffert oder durchreicht, es stellt ebenfalls den ersten Online verfügbaren Datensatz zur Verfügung. Es enthält alle Informationen, die nötig sind, um ein anderes Objekt Archivanfragen stellen zu lassen. Es stellt ein Synchronisationsobjekt zur Verfügung, auf dem sich ein anderes Objekt synchronisieren kann.
Modifier and Type | Field and Description |
---|---|
private ArchiveRequestManager |
_archive
Objekt, über das Archivanfragen gestellt werden können.
|
private SubscriptionArchiveOnlineDataManager.ArchiveDataRequester |
_archiveThread
Thread, der die Archivdaten anfordert und vor die Onlinedaten mischt
|
private ClientDavInterface |
_connection
TBD wird benötigt, wenn es nur begrentzt viele Thread geben soll Wird zum an/abmelden der Datenidentifikationen benötigt
|
private DataDescription |
_dataDescription
Wird für die Archivanfrage gebraucht
|
private java.lang.Object |
_dataReceived
Objekt, auf das synchronisiert wird sobald Daten empfangen werden.
|
private ResultData |
_firstOnlineDataSet
Speichert den ersten online Datensatz, dieser wird gebraucht, um den Endzeitpunkt der Archivanfrage zu bestimmen
|
private boolean |
_handOverOnline
Können die online empfangenen Daten direkt durchgereicht werden?
|
private long |
_history
Zeitbereich oder Index, der aus dem aus Archivsystem angefordert werden soll.
|
private HistoryTypeParameter |
_historyType
bezieht sich der Wert in der Variablen _history auf einen Zeitbereich oder einen Datenindex
|
private java.util.List<ResultData[]> |
_onlineBuffer
Puffert online Daten während Archivdaten angefordert werden.
|
private boolean |
_receivedFirstOnlineDataSet
Wurde der erste online Datensatz empfangen
|
private ReceiveOptions |
_receiveOptions
Wird benötigt um zu entscheiden ob die Archidaten delta oder normal sein sollen
|
private DatasetReceiverInterface |
_receiverArchiveOnlineStream
Empfänger, der die gemischten Archin/Onlinedaten haben möchte.
|
private SystemObject |
_systemObject
Wird für die Archivanfrage gebraucht
|
private boolean |
_unsubcribeReceiver
Diese Variable wird true, wenn der Sender abgemeldet wurde.
|
Constructor and Description |
---|
Receiver(ArchiveRequestManager archive,
ClientDavInterface connection,
DatasetReceiverInterface receiverArchiveOnlineStream,
SystemObject systemObject,
DataDescription dataDescription,
ReceiveOptions receiveOptions,
HistoryTypeParameter historyType,
long history) |
Modifier and Type | Method and Description |
---|---|
private java.lang.Object |
getDataReceived() |
private ResultData |
getFirstOnlineDataSet() |
private boolean |
isReceivedFirstOnlineDataSet() |
void |
sendData(Dataset[] datasetResult)
Verschickt Datensätze an den Vorgegebenen Empfänger, falls dieser die Verbindung noch nicht abgemeldet hat.
|
private void |
sendOnlineBuffer()
Diese Methode wird aufgerufen, sobald alle Archivdaten vor den Onlinestrom gemischt wurden.
|
void |
unsubscribeReceiver()
Diese Methode wird aufgerufen, wenn der Empfänger abgemeldet wird.
|
void |
update(ResultData[] results)
Aktualisierungsmethode, die nach Empfang eines angemeldeten Datensatzes von den Datenverteiler-Applikationsfunktionen aufgerufen wird.
|
private final ArchiveRequestManager _archive
Objekt, über das Archivanfragen gestellt werden können. Wird benötigt um Archivdaten vor den Onlinestrom zu mischen
private final ClientDavInterface _connection
TBD wird benötigt, wenn es nur begrentzt viele Thread geben soll Wird zum an/abmelden der Datenidentifikationen benötigt
private final java.util.List<ResultData[]> _onlineBuffer
Puffert online Daten während Archivdaten angefordert werden. Der Puffer enthält auch den ersten Datensatz, der zum rausfinden des Endzeitpunkts der Archivanfrage benötigt wird.
private final DatasetReceiverInterface _receiverArchiveOnlineStream
Empfänger, der die gemischten Archin/Onlinedaten haben möchte.
private final ReceiveOptions _receiveOptions
Wird benötigt um zu entscheiden ob die Archidaten delta oder normal sein sollen
private final HistoryTypeParameter _historyType
bezieht sich der Wert in der Variablen _history auf einen Zeitbereich oder einen Datenindex
private long _history
Zeitbereich oder Index, der aus dem aus Archivsystem angefordert werden soll. Diese Variable wird im laufe der Archivanfrage angepaßt. Wenn 10 Archivdaten benötigt werden, aber es werden nur 5 empfangen, müssen in der nächsten Archivanfrage nur noch 5 Archivdaten angefordert werden. Das selbe passiert mit einer Anfrage, die sich auf Zeit bezieht, wenn 4 Stunden benötigt werden, es werden aber nur 3 geliefert, wird die nächste Archivanfrage auf 1 Stunde relativ gestellt. Kommentar Konstruktor beachten.
private final java.lang.Object _dataReceived
Objekt, auf das synchronisiert wird sobald Daten empfangen werden. Synchronisiert sich jemand anderes auf das Objekt, können solange keine Daten mehr empfangen werden (Zeit um den Puffer zu leeren).
private boolean _receivedFirstOnlineDataSet
Wurde der erste online Datensatz empfangen
private boolean _handOverOnline
Können die online empfangenen Daten direkt durchgereicht werden? Das ist möglich, wenn die Archivdaten alle übertragen wurden und der Puffer, der die online Daten speichert, leer ist.
private ResultData _firstOnlineDataSet
Speichert den ersten online Datensatz, dieser wird gebraucht, um den Endzeitpunkt der Archivanfrage zu bestimmen
private final SystemObject _systemObject
Wird für die Archivanfrage gebraucht
private final DataDescription _dataDescription
Wird für die Archivanfrage gebraucht
private boolean _unsubcribeReceiver
Diese Variable wird true, wenn der Sender abgemeldet wurde. Die Variable verhindert dann, das weitere Daten an den Empfänger verschickt werden.
private final SubscriptionArchiveOnlineDataManager.ArchiveDataRequester _archiveThread
Thread, der die Archivdaten anfordert und vor die Onlinedaten mischt
public Receiver(ArchiveRequestManager archive, ClientDavInterface connection, DatasetReceiverInterface receiverArchiveOnlineStream, SystemObject systemObject, DataDescription dataDescription, ReceiveOptions receiveOptions, HistoryTypeParameter historyType, long history)
public void update(ResultData[] results)
ClientReceiverInterface
Aktualisierungsmethode, die nach Empfang eines angemeldeten Datensatzes von den Datenverteiler-Applikationsfunktionen aufgerufen wird. Diese Methode muss von der Applikation zur Verarbeitung der empfangenen Datensätze implementiert werden.
update
in interface ClientReceiverInterface
results
- Feld mit den empfangenen Ergebnisdatensätzen.public void unsubscribeReceiver()
Diese Methode wird aufgerufen, wenn der Empfänger abgemeldet wird. Weitere Datensätze, die zu dem Empfänger geschickt werden sollen, werden nicht weitergereicht. Falls der Thread, der Archivdaten anfordert, noch Archivdaten verschicken will, werden diese ebenfalls nicht durchgereicht.
private java.lang.Object getDataReceived()
private boolean isReceivedFirstOnlineDataSet()
private ResultData getFirstOnlineDataSet()
public void sendData(Dataset[] datasetResult)
Verschickt Datensätze an den Vorgegebenen Empfänger, falls dieser die Verbindung noch nicht abgemeldet hat. Wurde die Verbindung abgemeldet, dann werden die Daten verworfen.
datasetResult
- Archivdaten oder ResultData, die verschickt werden sollenprivate void sendOnlineBuffer()
Diese Methode wird aufgerufen, sobald alle Archivdaten vor den Onlinestrom gemischt wurden. Der Puffer, der die Onlinedaten zwischengespeichert hat, wird dann übertragen. Die Methode sperrt die update-Methode und setzt danach eine Variable, so dass alle folgenden Onlinedaten direkt durchgereicht werden, ohne gepuffert zu werden.