CX_CORBA_MANAGER::SendMsg
Beschreibung:
Sendet eine Nachricht über die Corbaschnittstelle. Als Name des Empfängers
ist dabei nur der letzte Teil des Schemas "ClassiX"/<aktuelles Project>/"RemoteMsg"/<Name> anzugeben, der Parent Naming Context ("ClassiX") und der Name des Interfaces ("RemoteMsg") werden intern
ergänzt. das Projekt kann vorher mittels SetProject gesetzt werden.Wird kein Empfänger angegeben (NULL oder "") wird angenommen, dass diese
Nachricht das Ergebnis eines synchronen Aufrufes sein soll. Der Message-Name wird in diesem Fall ignoriert. Wartet gerade kein
Client auf eine Antwort wird eine Exception geworfen.Der Rückgabewert zeigt an, ob ein Fehler erkannt wurde. Der Wert 0 bedeutet
dabei kein erkannter Fehler. Werte ungleich 0 zeigen einen Fehler an. Nicht alle Fehler können lokal erkannt werden, insbesondere kann 0 zurückgegeben werden, obwohl der Empfänger die Nachricht nicht rechtzeitig
engegenehmen konnte.Mit diesem Befehl kann lediglich ein String an den Empfänger geschickt
werden. Um mehrere Daten zu schicken müssen diese entweder in den String kodiert werden (und vom Empfänger dekodiert) oder der InstantView-Befehl SendMsg(, REMOTE) ist zu
verwenden.Code-Beispiel:
In diesem Beispiel wird zunächst ein Corbamanager erzeugt. Dann wird über
diesen die Nachricht "CLOSE" zusammen mit einem leeren String an den Empfänger "cxsendmsg1" gesendet. Der Rückgabewert dieser Operation
wird in einer Variablen gesichert.Var(CM)
Var(Status)
GetManager(CORBA) -> CM
"cxsendmsg1" "CLOSE" "" CM Call(SendMsg) -> Status
Das folgende Beispiel demonstriert das Empfangen und Senden einer Antwort (String "OK"):
Var(CM)
GetManager(CORBA) -> CM
NULL "RECEIVE_REMOTE_MSG" "OK" CM Call(SendMsg)
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | STRING | String, der mit der Nachricht gesendet werden sollen. |
Top-1 | STRING | Der Name einer InstantView-Nachricht. | |
Top-2 | STRING | Der Corbaname des Empfängers (z. B. "cxsendmsg1"). NULL oder "" bedeuten, dass dies die Antwort auf einen synchronen CORBA-Aufruf ist. | |
Stack(Out) | Top | INTEGER | Ein Statuscode der anzeigt, ob ein Fehler erkannt wurde. |