cniCreateNodeContext

Diese Funktion erstellt den Kontext für eine Instanz eines Knotenobjekts. Sie wird vom Nachrichtenbroker aufgerufen, wenn eine Instanz eines Knotenobjekts erstellt wird. Knoten werden erstellt, wenn ein Nachrichtenfluss vom Broker implementiert wird oder wenn die Ausführungsgruppe gestartet wird.

Der Knoten ist an diesem Punkt für Folgendes zuständig:
  1. (Optional) Überprüfung, ob der Name des im Parameter nodeName angegebenen Knotens von der Factory unterstützt wird.
  2. Zuordnung von für Knoteninstanzen spezifische Datenbereiche, die möglicherweise erforderlich sind z. B. Kontext, attributive Daten und Terminals).
  3. Ausführung einer zusätzlichen Ressourcenübernahme oder Initialisierung, die für die Verarbeitung des Knotens möglicherweise erforderlich ist.
  4. Rückgabe der Adresse des Kontextes an die aufrufende Funktion. Wenn eine Implementierungsfunktion für diese Knoteninstanz aufgerufen wird, wird der entsprechende Kontext als Argument an diese Funktion übergeben. Dies bedeutet, dass ein in C entwickelter benutzerdefinierter Knoten nicht seine eigenen statischen Zeiger auf instanzspezifische Datenbereiche verwalten muss.
Definiert in Typ Mitglied
CNI_VFT Obligatorisch iFpCreateNodeContext

Syntax

CciContext* cniCreateNodeContext(
CciFactory*  factoryObject,
CciChar*     nodeName,
CciNode*     nodeObject);

Parameter

factoryObject
Die Adresse des Factory-Objekts, zu dem der Knoten gehört, der erstellt wird (Eingabe).
nodeName
Der Name des Knotens, der erstellt wird (Eingabe).
nodeObject
Die Adresse des Knotenobjekts, das gerade erstellt wurde (Eingabe).

Rückgabewerte

Bei erfolgreicher Ausführung wird die Adresse des Knotenkontextes zurückgegeben. Andernfalls wird der Wert null (CCI_NULL_ADDR) zurückgegeben.

Beispiel

static char* functionName = (char *)"_Switch_createNodeContext()";
NODE_CONTEXT_ST* p;
/* Allocate a pointer to the local context */
p = (NODE_CONTEXT_ST *)malloc(sizeof(NODE_CONTEXT_ST));
if (p) {
/* Clear the context area */
memset(p, 0, sizeof(NODE_CONTEXT_ST));
/* Save our node object pointer in our context */
p->nodeObject = nodeObject;
/* Save our node name */
CciCharNCpy((CciChar*) &p->nodeName, nodeName, MAX_NODE_NAME_LEN);
}
else
/* Handle errors */
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 18.05.2006
as07430_