Lade...
 

CX_CORBA_MANAGER::SendMsg

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"):

RECEIVE_REMOTE_MSG:

    Var(CM)

    GetManager(CORBA) -> CM

    NULL "RECEIVE_REMOTE_MSG" "OK" CM Call(SendMsg)

Stack
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.
Funktionsaufruf: Call(SendMsg)