public class DataSender extends Object
Klasse zum Versenden von Daten.
Die Methode sendData(ResultData)
dient dem
Versenden von Datensätzen. Die Klasse verwaltet eine Liste von
DataIdentifications für die Sendeanmeldungen (SenderSubscribtion
) bestehen. Sendeanmeldungen, die lange nicht benutzt wurden, werden
zurückgenommen (unsubscribed) und die entsprechene DataIdentification
aus der Liste gelöscht.
Ist ein Datensatz zu versenden (sendData(ResultData)
), wird
SenderSubscribtion
existiert und falls dies nicht der Fall ist, wird
eine SenderSubscribtion
erzeugt.
SenderSubscribtion.sendData(ResultData rs)
versendet.SenderSubscribtion
Modifier and Type | Field and Description |
---|---|
protected de.bsvrz.dav.daf.main.ClientDavInterface |
_DavConn
zu verwendenes ClientDavInterface.
|
protected long |
_HoldSubscriptionTime
Zeit seit der Nutzung in msec nach der, die Subscription gelöscht
werden soll.
|
protected boolean |
_IgnoreStopSending
Ist _IgnoreStopSending==true, dann wird auch die TimeoutZeit auf eine
positive Sendesteuerung gewartet, wenn ein STOP_SENDING ausgelöst
wurde.
|
protected HashMap<de.bsvrz.sys.funclib.dataIdentificationSettings.DataIdentification,SenderSubscribtion> |
_MapSubscribtions
Map zum Speichern DataIdentification => SenderSubscribtion.
|
protected int |
_TimeOut
Zeit in msec, die auf eine positive Sendesteuerung gewartet wird, bevor
davon ausgegangen wird, dass es weder Senke noch Empfänger gibt.
|
protected Timer |
_Timer
Timer, der regelmäßig Anmeldungen zurücknimmt, wenn die
HoldSubscriptionTime überschritten wurde.
|
Constructor and Description |
---|
DataSender(de.bsvrz.dav.daf.main.ClientDavInterface davConn,
long holdSubscriptionTime)
erzeugt einen DataSender
|
DataSender(de.bsvrz.dav.daf.main.ClientDavInterface davConn,
long holdSubscriptionTime,
int timeout,
boolean ignoreStopSending)
erzeugt einen DataSender
|
Modifier and Type | Method and Description |
---|---|
void |
close()
löscht alle Anmeldungen und stoppt wenn nötig den Timer.
|
boolean |
deleteSubscription(de.bsvrz.sys.funclib.dataIdentificationSettings.DataIdentification dataIdentification)
löscht eine Sendeanmeldung und gibt true zurück, wenn dies
erfolgreich war.
|
void |
sendData(de.bsvrz.dav.daf.main.ResultData rs)
versendet den Datensatz.
|
protected de.bsvrz.dav.daf.main.ClientDavInterface _DavConn
protected HashMap<de.bsvrz.sys.funclib.dataIdentificationSettings.DataIdentification,SenderSubscribtion> _MapSubscribtions
protected long _HoldSubscriptionTime
protected int _TimeOut
protected boolean _IgnoreStopSending
protected Timer _Timer
public DataSender(de.bsvrz.dav.daf.main.ClientDavInterface davConn, long holdSubscriptionTime)
davConn
- zu verwendenes ClientDavInterfaceholdSubscriptionTime
- Zeit in msec bei deren Überschreitung die Anmeldung
gelöscht wird (0 Anmeldungen werden nie gelöscht)public DataSender(de.bsvrz.dav.daf.main.ClientDavInterface davConn, long holdSubscriptionTime, int timeout, boolean ignoreStopSending)
davConn
- zu verwendenes ClientDavInterfaceholdSubscriptionTime
- Zeit in msec bei deren Überschreitung die Anmeldung
gelöscht wird (0 Anmeldungen werden nie gelöscht)timeout
- Zeit in msec, die auf eine positive Sendesteuerung gewartet
wird, bevor davon ausgegangen wird, dass es weder Senke noch
Empfänger gibt.public void sendData(de.bsvrz.dav.daf.main.ResultData rs) throws de.bsvrz.dav.daf.main.SendSubscriptionNotConfirmed, de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
rs
- zu versendender Datensatzde.bsvrz.dav.daf.main.SendSubscriptionNotConfirmed
- wird geworfen, wenn innerhalb der TimeoutZeit keine positive
Sendesteuerung vom Datenverteiler für die zu versendenden
Daten vorliegt oder kein Empfänger vorhanden ist.de.bsvrz.dav.daf.main.OneSubscriptionPerSendData
- wird geworfen, wenn bereits eine lokale Sendeanmeldung für
die gleichen Daten von einem anderen Anwendungsobjekt
vorliegt.public boolean deleteSubscription(de.bsvrz.sys.funclib.dataIdentificationSettings.DataIdentification dataIdentification)
dataIdentification
- DataDescriptionpublic void close()
Copyright © 2017 BitCtrl Systems GmbH. All rights reserved.