Sprung zum Seitenende Struktur Themen A...Z Titel << >>

CXI-Basis-Programmierreferenz / Version 2 / Datenaustausch / Ebene 2 / CxiMessageHandler /

Pass - Weiterleiten einer empfangenen Meldung

[C++] CxiError CxiMessageHandler :: Pass (const CxiTree& a, const char *mi, CxiLong options = 0)

[S1:BASIS] [Portabilitätswarnung] Leitet eine empfangene Meldung weiter, ohne auf Antwort zu warten

a:
Daten/Inhalt der Meldung

mi:
Empfänger der Meldung

options:
Optionen, einer der folgenden Werte:
- cxiOptPostMsgNoForceQueue: Die Meldung wird nicht über die globale Message Queue geleitet;
- cxiOptPostMsgForceQueue: Die Meldung wird auf jeden Fall über die globale Message Queue geleitet;
- 0 (Vorgabe): Standardeinstellung für eine normale Meldung.
Die folgende Konstante kann mit ODER (|) verknüpft angegeben werden:
- cxiOptPostMsgNoDefault: Die Meldung wird nur direkt an den angegebenen Empfänger geschickt, es erfolgt keine automatische Umleitung an @DEFAULT, wenn der Empfänger nicht existiert.

return:
0 ok, sonst Fehler

Die Funktion Pass kann nur innerhalb der Handlerfunktion aufgerufen werden. Sie leitet die in Bearbeitung befindliche Meldung an einen anderen Empfänger weiter. Der erste Parameter von Pass ist die Meldung, die an den Handler übergeben wurde. Es muss genau dieses Objekt an Pass übergeben werden, andere Angaben für den ersten Parameter sind nicht zulässig.

Pass unterscheidet sich von Post dadurch, dass die Absenderangabe der Originalmeldung erhalten bleibt. Aus Sicht des Empfängers (mi) ist die Meldung also direkt vom ursprünglichen Absender gekommen. Der Name des Aufrufers von Pass, also des Zwischen-Handlers, wird als MsgA.Via an den endgültigen Empfänger übermittelt. Dies ist insbesondere interessant, wenn die Ablaufverfolgung aktiviert ist.

Pass ist ein Spezialfall von PostMessageTree mit der Option cxiOptPostMsgViaPass, weitere Hinweise und Einschränkungen können dort nachgelesen werden.

Portabilität:
Diese Funktion ist in allen unterstützten Systemen verfügbar, unter DOS müssen sich Sender und Empfänger im gleichen Programm befinden. Diese Funktion besitzt ab Version 2.05 nur noch drei Parameter, die alte Form mit vier Parametern wird demnächst gestrichen:

static CxiError CxiMessageHandler :: Pass (const CxiTree& a, const CxiNode& e, const char *mi, CxiLong options = 0)

Weitere Memberfunktionen (CxiMessageHandler):
Post - Verschicken einer erweiterten Meldung
CxiMessageHandler(...) - Konstruktor
Handler2 - Bearbeitungsfunktion
WaitState - Wartezustand
SetDriverMode - Treiber für externe Meldungen
DispatchExternalMessage - Externe Meldung lokal weiterleiten
IsInHandler - Ist der Handler aktiv?
QueryReceiverState - Aktivierungsstatus
RequestShutDown - Herunterfahren eines Empfängers

Weitere Memberfunktionen (CxiMessageHandlerWithQueue):
CxiMessageHandlerWithQueue(...) - Konstruktor
PreHandler - Abfangen von Meldungen
CountQueue - Anzahl Meldungen in der Queue
PollQueue - Eine Meldung abarbeiten
ExecuteQueueUntilEmpty - Alle Meldungen abarbeiten
ExecuteQueueUntilError - Meldungen abarbeiten bis Fehler
ZapQueue - Queue löschen
LockQueue - Automatisches Abarbeiten verhindern
UnLockQueue - Automatisches Abarbeiten ermöglichen


[i] CXI-Basis-Programmierreferenz
Version 2.10 72 (1014-001), erstellt am 15. April 2000
Textseite 317 von 855, Thema 8523 (Pass)
[c] Copyright (c) 1996-2000 by TeraConnect GmbH

Sprung zum Seitenanfang Struktur Themen A...Z Titel << >>