CXI-Basis-Programmierreferenz / Version 2 / Datenaustausch / Ebene 1 /
static CxiError CXIB :: PostMessageBlock (CxiNode& cxi, const char *mi)
static CxiError CXIB :: PostMessageNode (CxiNode& cxi, const char *mi)
CxiError cxiPostMessageBlock (CxiHandle cxi, const char *mi)
Verschickt eine Meldung, ohne auf Antwort zu warten
cxi:
Daten/Inhalt der Meldung, darf nicht read-only sein
mi:
Empfänger der Meldung
return:
0 ok, sonst Fehler
PostMessageBlock kehrt sofort zum Aufrufer zurück, die Funktion wartet nicht, bis die Meldung vom Empfänger angenommen wird. Dies entspricht dem Einwerfen eines Briefes in den Briefkasten.
Ein Returncode von 0 zeigt lediglich an, dass der Empfänger existiert und die Meldung erfolgreich verschickt wurde. Das bedeutet nicht, dass die Meldung empfangen oder verarbeitet wurde.
Die Daten des übergebenen CXI-Knotens cxi werden in das Meldungssystem übernommen (kopiert). Der Block cxi kann nach dem Aufruf dieser Funktion beliebig weiterverarbeitet werden.
Ist der Empfänger ein CxiTree-Empfänger, so wird dies von PostMessageBlock erkannt und die Meldung automatisch konvertiert.
Um eine Meldung zu verschicken und bestätigen zu lassen, ist die Funktion SendMessageBlock zu verwenden.
Ist eine Antwort auf die Meldung nicht unbedingt erforderlich, so sollte auf jeden Fall PostMessageBlock statt SendMessageBlock verwendet werden, da dies unnötige Verzögerungen im Programmlauf und im Systemdurchsatz vermeidet.
Portabilität:
Diese Funktion ist in allen unterstützten Systemen verfügbar. PostMessageNode ist lediglich ein anderer Name für PostMessageBlock.
WICHTIG: Unterstützt das verwendete Betriebssystem keine asynchronen Meldungen, so verhält sich PostMessageBlock wie SendMessageBlock; der Block cxi kann in diesem Fall vom Empfänger verändert werden! Dies trifft auf alle Meldungen unter DOS zu.
Siehe auch:
SendMessageBlock
class CxiMessageHandlerBase - Basisempfänger