|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.dav.daf.main.impl.config.request.telegramManager.AbstractSenderReceiverCommunication
public abstract class AbstractSenderReceiverCommunication
Bietet eine Kommunikation mit einem Sender und einer Senke. Der Sender verschickt Aufträge, die Antworten auf diese Aufträge werden dann durch die Quelle empfangen.
Nested Class Summary | |
---|---|
static interface |
AbstractSenderReceiverCommunication.DataListener
Dieses Interface ermöglich es Daten, die durch eine Instanz der Klasse AbstractSenderReceiverCommunication empfangen wurde, zu verarbeiten, bevor
diese durch den normalen Mechanismus bearbeitet werden. |
Nested classes/interfaces inherited from interface de.bsvrz.dav.daf.main.impl.config.request.telegramManager.SenderReceiverCommunication |
---|
SenderReceiverCommunication.ConnectionState |
Constructor Summary | |
---|---|
protected |
AbstractSenderReceiverCommunication(ClientDavInterface connection,
SystemObject senderObject,
SystemObject ordererObject)
|
Method Summary | |
---|---|
void |
close()
Schließt alle geöffneten Verbindungen und beendet mögliche Threads |
SenderReceiverCommunication.ConnectionState |
getConnectionState()
Diese Methode gibt den derzeitigen Zustand einer Anmeldung als Sender/Quelle wieder. |
void |
handleReply(Data data)
|
void |
init(AttributeGroup requestAtg,
Aspect requestAspect,
AttributeGroup responseAtg,
Aspect responseAspect,
AbstractSenderReceiverCommunication.DataListener dataListener)
Meldet einen Sender und eine Senke auf die übergebenen Parameter an, wenn alle vier Parameter gesetzt sind. |
void |
init(AttributeGroup requestAtg,
Aspect requestAspect,
AttributeGroup responseAtg,
Aspect responseAspect,
short simulationVariant,
AbstractSenderReceiverCommunication.DataListener dataListener)
Meldet einen Sender und eine Senke auf die übergebenen Parameter an, wenn alle vier Parameter gesetzt sind. |
int |
sendData(String messageType,
byte[] data)
Verschickt eine Anfrage vom angegeben Typ und mit dem in einem Byte Array angegebenen serialisierten Inhalt, die Methode gibt ohne zu blockieren eine neue Anfragenummer zurück. |
void |
sendData(String messageType,
byte[] data,
int queryIndex)
Verschickt eine Antwort vom angegeben Typ zu einer Anfrage. |
void |
setMutableCollectionChangeListener(MutableCollectionChangeListener notifyingMutableCollectionChangeListener)
Setzt den Listener zur Verarbeitung und Verteilung von Aktualisierungsnachrichten bzgl. Defaultimplementierung erzeugt eine Exception. |
Data |
waitForReply(int reqestIndex)
Stellt die Antwort auf eine Anfrage zur Verfügung |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected AbstractSenderReceiverCommunication(ClientDavInterface connection, SystemObject senderObject, SystemObject ordererObject)
connection
- Verbindung zum DaVsenderObject
- Objekt, zum anmelden für SendeaufträgeordererObject
- Objekt, zum anmelden als Senke (siehe init(de.bsvrz.dav.daf.main.config.AttributeGroup, de.bsvrz.dav.daf.main.config.Aspect, de.bsvrz.dav.daf.main.config.AttributeGroup, de.bsvrz.dav.daf.main.config.Aspect, de.bsvrz.dav.daf.main.impl.config.request.telegramManager.AbstractSenderReceiverCommunication.DataListener)
). Dieses Objekt wird beim versenden auch als "Absender" eingetragen. Dadurch weiss
die Empfangende Applikation (senderObjekt), wohin die Antwort muss(wenn eine Senke angemeldet wurde) bzw. wer die Antwort verschickt
hat.Method Detail |
---|
public void init(AttributeGroup requestAtg, Aspect requestAspect, AttributeGroup responseAtg, Aspect responseAspect, AbstractSenderReceiverCommunication.DataListener dataListener) throws OneSubscriptionPerSendData
null
, wird keine Senke angemeldet sondern nur der Sender.
requestAtg
- ATG für Anfrage (Anmeldung als Sender)requestAspect
- Aspekt für Anfragen (Anmeldung für Sender)responseAtg
- ATG für Antworten auf Anfragen (Anmeldung als Senke) oder null
, wenn kein Senke angemeldet werden soll.responseAspect
- Aspekt für Antworten auf Anfragen (Anmeldung als Senke) oder null
, wenn kein Senke angemeldet werden soll.dataListener
- Objekt, das Telegramme verarbeiten und diese dann aus dem Strom der Telegramme entfernen kann. Ist das Objekt null
,
werden die Telegramme nicht gefiltert und normal durch diese Klasse bearbeitet.
OneSubscriptionPerSendData
- Wenn bereits eine Senke für die gleichen Daten angemeldet wurde.public void init(AttributeGroup requestAtg, Aspect requestAspect, AttributeGroup responseAtg, Aspect responseAspect, short simulationVariant, AbstractSenderReceiverCommunication.DataListener dataListener) throws OneSubscriptionPerSendData
null
, wird keine Senke angemeldet sondern nur der Sender.
requestAtg
- ATG für Anfrage (Anmeldung als Sender)requestAspect
- Aspekt für Anfragen (Anmeldung für Sender)responseAtg
- ATG für Antworten auf Anfragen (Anmeldung als Senke) oder null
, wenn kein Senke angemeldet werden soll.responseAspect
- Aspekt für Antworten auf Anfragen (Anmeldung als Senke) oder null
, wenn kein Senke angemeldet werden soll.simulationVariant
- Simulationsvariante, die zur Anmeldung benutzt werden solldataListener
- Objekt, das Telegramme verarbeiten und diese dann aus dem Strom der Telegramme entfernen kann. Ist das Objekt null
,
werden die Telegramme nicht gefiltert und normal durch diese Klasse bearbeitet.
OneSubscriptionPerSendData
- Wenn bereits eine Senke für die gleichen Daten angemeldet wurde.public int sendData(String messageType, byte[] data) throws SendSubscriptionNotConfirmed, IllegalStateException
SenderReceiverCommunication
SenderReceiverCommunication.waitForReply(int)
abgerufen werden.
sendData
in interface SenderReceiverCommunication
messageType
- Anfragetypdata
- Daten Serialiserte Anfragedaten.
SendSubscriptionNotConfirmed
- Wenn noch keine positive Sendesteuerung vom Datenverteiler für die zu versendenden Daten vorliegt
IllegalStateException
- Die Daten können versendet werden, aber die Antwort kann nicht empfangen werden, da für den empfang der Daten nicht die
benötigten Rechte vorhanden sind. Aus diesem Grund werden die Daten nicht verschickt.public void sendData(String messageType, byte[] data, int queryIndex) throws SendSubscriptionNotConfirmed, IllegalStateException
SenderReceiverCommunication
sendData
in interface SenderReceiverCommunication
messageType
- Antworttypdata
- Daten Serialiserte Anfragedaten.queryIndex
- Index der zugehörigen Anfrage
SendSubscriptionNotConfirmed
- Wenn noch keine positive Sendesteuerung vom Datenverteiler für die zu versendenden Daten vorliegt
IllegalStateException
- Die Daten können versendet werden, aber die Antwort kann nicht empfangen werden, da für den empfang der Daten nicht die
benötigten Rechte vorhanden sind. Aus diesem Grund werden die Daten nicht verschickt.public void handleReply(Data data)
public Data waitForReply(int reqestIndex) throws RequestException
SenderReceiverCommunication
waitForReply
in interface SenderReceiverCommunication
reqestIndex
- Index, der bei der Methode SenderReceiverCommunication.sendData(java.lang.String, byte[])
als Rückgabeparameter zurückgegeben wurde
RequestException
- Wenn die Kommunikation zum Datenverteiler unterbrochen wurde.public SenderReceiverCommunication.ConnectionState getConnectionState()
SenderReceiverCommunication
getConnectionState
in interface SenderReceiverCommunication
public void close()
SenderReceiverCommunication
close
in interface SenderReceiverCommunication
public void setMutableCollectionChangeListener(MutableCollectionChangeListener notifyingMutableCollectionChangeListener)
setMutableCollectionChangeListener
in interface SenderReceiverCommunication
notifyingMutableCollectionChangeListener
-
UnsupportedOperationException
- Wenn die Methode nicht überschrieben wurde.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |