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

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

SetDriverMode - Treiber für externe Meldungen

[C++] CxiError CxiMessageHandler :: SetDriverMode (int mode)

[S3:SPEZIAL] Treiber für externe Meldungen

mode:
Treibermodus (siehe Text)

return:
0 ok, sonst Fehler

Das erweiterte Meldungssystem (CxiMessageHandler und CxiMessageHandlerWithQueue) kann Meldungen zwischen Maschinen austauschen. Dazu muss auf jedem Rechner ein Treiber installiert werden, der die physikalische Übertragung vornimmt. Enthält der Name des Empfängers einer Meldung mehrere durch \ getrennte Komponenten, so wird die erste dieser Komponenten abgetrennt und die Meldung an einen registrierten Empfänger dieses Namens weitergeleitet. Dieser Empfänger, der Treiber, muss die Daten auf die andere Maschine übertragen.

Jeder Meldungsempfänger kann als Treiber verwendet werden, wenn beim Versenden einer Meldung mehr als eine Namenskomponente angegeben ist. Nimmt der Empfänger keine Einstellung mit SetDriverMode vor, so erscheint die Meldung als normale Meldung im Handler2, wobei lediglich die Variable MsgA.Name im Informationsblock belegt ist. Dies entspricht dem Treibermodus 0 und ist die Voreinstellung, wenn ein Objekt kreiert wird.

Mit Hilfe der Funktion SetDriverMode kann der Treibermodus 1 eingestellt werden. Dadurch wird dem Treiber die Arbeit abgenommen, die Baumstruktur der Meldung zu zerlegen und auf Empfängerseite wieder aufzubauen. Das CXI-System nimmt die Aufteilung der Meldung in einzelne Blöcke von maximal 16 KB vor und übergibt diese in Form einer speziellen Meldung an den Handler2:

Action (Str) = "@DRIVER"
Data (Bin) = <Datenblock>

Nur der Datenblock muss übertragen werden. Die Empfängerseite leitet diesen Datenblock mit Hilfe der Funktion cxiDispatchExternalMessage weiter.

Eine Aufteilung durch das CXI-System erfolgt grundsätzlich nur, wenn eine weiterzuleitende Meldung vorliegt, d.h. beim Versenden ein Name mit mehreren Komponenten angegeben wurde.

Der Aufruf der Funktion SetDriverMode sollte nur im Konstruktor eines Objekts oder unmittelbar danach geschehen, bevor Meldungen an den Treiber geschickt werden. Ansonsten kann es zum Verlust von Meldungen und deren Speicherbereich kommen.

Portabilität:
Diese Funktionalität ist in allen unterstützten Systemen verfügbar.

Weitere Memberfunktionen:
CxiMessageHandler(...) - Konstruktor
Handler2 - Bearbeitungsfunktion
WaitState - Wartezustand
Post - Verschicken einer erweiterten Meldung
Pass - Weiterleiten einer empfangenen Meldung
DispatchExternalMessage - Externe Meldung lokal weiterleiten
IsInHandler - Ist der Handler aktiv?
QueryReceiverState - Aktivierungsstatus
RequestShutDown - Herunterfahren eines Empfängers

Siehe auch:
Klassenhierarchie Meldungssystem
class CxiMessageHandlerBase - Basisempfänger
class CxiMessageHandler - Erweiterter Meldungsempfänger
class CxiMessageHandlerWithQueue - Erweiterter Meldungsempfänger mit Queue


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

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