de.bsvrz.ste.rdstmcvew
Class RDSVewSender

java.lang.Object
  extended by de.bsvrz.ste.rdstmcvew.RDSVewSender
All Implemented Interfaces:
de.bsvrz.dav.daf.main.ClientSenderInterface

public class RDSVewSender
extends java.lang.Object
implements de.bsvrz.dav.daf.main.ClientSenderInterface

Die Klasse zum Versenden von Daten unter dem Aspekt "Senden" der Attributgruppe "RDSMeldung". Sie implementiert das ClientSenderInterface welches die Methoden zum Versenden der Daten bereitstellt.

Version:
$Revision: 1.2 $ / $Date: 2008/09/30 15:20:19 $ / ($Author: Hilpp $) Geprüft Hilpp 30.9.2008
Author:
Dambach Werke GmbH, Stefan Sans

Nested Class Summary
(package private)  class RDSVewSender.SendeThread
          Senden eines Datensatzes mit optionaler Verzögerung in einem eigenen Thread
 
Field Summary
private  boolean _angemeldet
          Ist diese Instanz zum DAV-Senden angemeldet?
protected  de.bsvrz.dav.daf.main.DataDescription _datenBeschreibung
          Datenbeschreibung "gesendet"
private  de.bsvrz.dav.daf.main.ResultData _datenSenden
          Aktuell unter dem Aspekt senden gesendete Daten
private static de.bsvrz.sys.funclib.debug.Debug _debug
          Debug-Logger für Logging-Ausgaben
private  RDSVewSender.SendeThread _sendeThread
          Aktuell aktiver SendeThread
private  boolean _warten
          Ist auf true gesetzt, solange auf Sendesteuerung gewartet wird
protected  RDSVewMeldung meldung
          Übergeordnet Instanz vom Typ RDSVewMeldung
static de.bsvrz.dav.daf.main.SenderRole ROLLE
          Rolle, mit der als Sender angemeldet wird
static long SENDE_TIMEOUT
          Zeitin ms, die max. auf Sendesteuerung gewartet wird
 
Fields inherited from interface de.bsvrz.dav.daf.main.ClientSenderInterface
START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
 
Constructor Summary
RDSVewSender(RDSVewMeldung meldung)
          Konstruktor der Klasse
 
Method Summary
 void dataRequest(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state)
           
 void dispose()
          Gibt die mit dieser Instanz verbundenen Ressourcen wieder frei
 de.bsvrz.dav.daf.main.ClientDavInterface getConnection()
           
 de.bsvrz.dav.daf.main.ResultData getDatenSenden()
           
 de.bsvrz.dav.daf.main.config.SystemObject getDavObjekt()
           
(package private)  RDSVewSender.SendeThread getSendeThread()
           
 boolean isAngemeldet()
           
 boolean isRequestSupported(de.bsvrz.dav.daf.main.config.SystemObject so, de.bsvrz.dav.daf.main.DataDescription dd)
           
protected  boolean send(de.bsvrz.dav.daf.main.ResultData resultData)
          Unmittelbares Senden von Daten.
(package private)  void setDatenSenden(de.bsvrz.dav.daf.main.ResultData datenSenden)
          setzt die unter dem Aspekt senden aktuell gesendeten Daten
(package private)  void setSendeThread(RDSVewSender.SendeThread sendeThread)
          Setzt den aktuell aktiven SendeThread
 void starteSenden(de.bsvrz.dav.daf.main.Data data, long zeitStempel, long verzoegerung, boolean bedingterAbbruch, de.bsvrz.dav.daf.main.config.Aspect empfangsAspekt)
          Starte neuen SendeTread - ein evtl. laufender Sendethread wird durch den übergebenen ersetzt und ggf. abgebrochen
 void stopSenden()
          Abbrechen eines evtl. gestarteten und laufenden SendeThreads
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_debug

private static final de.bsvrz.sys.funclib.debug.Debug _debug
Debug-Logger für Logging-Ausgaben


_warten

private boolean _warten
Ist auf true gesetzt, solange auf Sendesteuerung gewartet wird


ROLLE

public static final de.bsvrz.dav.daf.main.SenderRole ROLLE
Rolle, mit der als Sender angemeldet wird


SENDE_TIMEOUT

public static final long SENDE_TIMEOUT
Zeitin ms, die max. auf Sendesteuerung gewartet wird

See Also:
Constant Field Values

_angemeldet

private boolean _angemeldet
Ist diese Instanz zum DAV-Senden angemeldet?


_datenBeschreibung

protected final de.bsvrz.dav.daf.main.DataDescription _datenBeschreibung
Datenbeschreibung "gesendet"


meldung

protected final RDSVewMeldung meldung
Übergeordnet Instanz vom Typ RDSVewMeldung


_datenSenden

private de.bsvrz.dav.daf.main.ResultData _datenSenden
Aktuell unter dem Aspekt senden gesendete Daten


_sendeThread

private RDSVewSender.SendeThread _sendeThread
Aktuell aktiver SendeThread

Constructor Detail

RDSVewSender

public RDSVewSender(RDSVewMeldung meldung)
Konstruktor der Klasse

Parameters:
meldung - Objekt vom Typ RDSVewMeldung, für das das Senden von Daten erfolgt
Method Detail

isAngemeldet

public boolean isAngemeldet()
Returns:
ist diese Instanz zum DAV-Senden angemeldet?

getConnection

public de.bsvrz.dav.daf.main.ClientDavInterface getConnection()
Returns:
die Datenverteiler-Verbindung

getDavObjekt

public de.bsvrz.dav.daf.main.config.SystemObject getDavObjekt()
Returns:
das Dav-Systemobject, für das das Senden von Daten erfolgt

dispose

public void dispose()
Gibt die mit dieser Instanz verbundenen Ressourcen wieder frei


send

protected boolean send(de.bsvrz.dav.daf.main.ResultData resultData)
Unmittelbares Senden von Daten.

Parameters:
resultData - die zu sendenden Daten
Returns:
true, wenn das Senden erfolgreich war, false sonst

dataRequest

public void dataRequest(de.bsvrz.dav.daf.main.config.SystemObject object,
                        de.bsvrz.dav.daf.main.DataDescription dataDescription,
                        byte state)
Specified by:
dataRequest in interface de.bsvrz.dav.daf.main.ClientSenderInterface

isRequestSupported

public boolean isRequestSupported(de.bsvrz.dav.daf.main.config.SystemObject so,
                                  de.bsvrz.dav.daf.main.DataDescription dd)
Specified by:
isRequestSupported in interface de.bsvrz.dav.daf.main.ClientSenderInterface

getDatenSenden

public de.bsvrz.dav.daf.main.ResultData getDatenSenden()
Returns:
die unter dem Aspekt senden aktuell gesendeten Daten

setDatenSenden

void setDatenSenden(de.bsvrz.dav.daf.main.ResultData datenSenden)
setzt die unter dem Aspekt senden aktuell gesendeten Daten

Parameters:
datenSenden - die aktuell gesendeten Daten

getSendeThread

RDSVewSender.SendeThread getSendeThread()
Returns:
den aktuell aktiven SendeThread

setSendeThread

void setSendeThread(RDSVewSender.SendeThread sendeThread)
Setzt den aktuell aktiven SendeThread

Parameters:
sendeThread - der zu setztende SendeThread

starteSenden

public void starteSenden(de.bsvrz.dav.daf.main.Data data,
                         long zeitStempel,
                         long verzoegerung,
                         boolean bedingterAbbruch,
                         de.bsvrz.dav.daf.main.config.Aspect empfangsAspekt)
Starte neuen SendeTread - ein evtl. laufender Sendethread wird durch den übergebenen ersetzt und ggf. abgebrochen

Parameters:
data - die zu sendenden Daten - der Sendeauftrag verwaltet eine Kopie dieser Daten
verzoegerung - die Sendeverzögerung in s
bedingterAbbruch - wenn true wird ein laufender SendeThread abgebrochen, wenn er mit Verzögerung gestartet wurde

stopSenden

public void stopSenden()
Abbrechen eines evtl. gestarteten und laufenden SendeThreads