CXI-Basis-Programmierreferenz / Version 2 / Datenaustausch / Ebene 2 / CxiMessageHandler /
CxiMessageHandler :: CxiMessageHandler (const char *id, const CxiMessageHandlerBase *parent = 0, CxiLong options = 0)
Konstruktor für erweiterten Meldungssender und -empfänger
id:
Symbolischer Name
parent:
Zeiger auf hierarchisch übergeordneten Empfänger oder NULL
options:
Optionen, bei benutzerdefinierten Empfängern muss 0 angegeben werden
Während das Objekt vom Typ CxiMessageHandler existiert, können beliebige Prozesse mit der Funktion Post Meldungen an diesen Empfänger schicken. Sie müssen dazu lediglich den symbolischen Namen kennen.
ACHTUNG: Bevor ein CxiMessageHandler...-Objekt gelöscht werden kann, muss der Handler verlassen werden. Programme können abstürzen, wenn sich beim Löschen des Objekts gerade eine Meldung in Bearbeitung befindet. Daher wurde mit RequestShutDown und QueryReceiverState eine Möglichkeit geschaffen, das Beenden eines Empfängers asynchron anzustoßen. Innerhalb von Destruktoren sollte WaitShutDown() aufgerufen werden. Diese Funktion wartet, bis sich keine Meldungen mehr in Verarbeitung befinden, dann deaktiviert sie den Empfänger. Erst jetzt kann das Receiver-Objekt gefahrlos gelöscht werden. Die von CXI selbst zur Verfügung gestellten Destruktoren rufen WaitShutDown() automatisch auf.
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. Die Bedeutung des Parameters parent ist versionsabhängig!
Weitere Memberfunktionen:
Handler2 - Bearbeitungsfunktion
WaitState - Wartezustand
Post - Verschicken einer erweiterten Meldung
Pass - Weiterleiten einer empfangenen Meldung
SetDriverMode - Treiber für externe Meldungen
DispatchExternalMessage - Externe Meldung lokal weiterleiten
IsInHandler - Ist der Handler aktiv?
QueryReceiverState - Aktivierungsstatus
RequestShutDown - Herunterfahren eines Empfängers