cniCreateNodeContext

Crea il contesto per un'istanza di un oggetto nodo. Viene richiamata dal broker di messaggi ogni volta che viene creata un'istanza di un oggetto nodo. I nodi vengono creati quando il broker distribuisce un flusso di messaggi oppure quando viene avviato il gruppo di esecuzione.

Il nodo a questo punto deve eseguire quando riportato di seguito:
  1. Facoltativo - verificare che il nome del nodo specificato nel parametro nodeName sia supportato dal produttore.
  2. Assegnare aree di dati specifiche dell'istanza del nodo che potrebbero essere richieste (ad esempio: contesto, dati di attributo e terminali).
  3. Eseguire ulteriori inizializzazioni o acquisizioni di risorse che potrebbero essere richieste per l'elaborazione del nodo.
  4. Restituire l'indirizzo del contesto alla funzione che esegue il richiamo. Ogni volta che viene richiamata una funzione di implementazione per questa istanza di nodo, tale funzione riceve il contesto appropriato come un argomento. Ciò significa che un nodo definito dall'utente sviluppato in C deve mantenere i relativi puntatori statici su aree di dati per istanza.
Definito in Tipo Membro
CNI_VFT Obbligatorio iFpCreateNodeContext

Sintassi

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

Parametri

factoryObject
L'indirizzo dell'oggetto produttore a cui appartiene il nodo creato (input).
nodeName
Il nome del nodo creato (input).
nodeObject
L'indirizzo dell'oggetto nodo che è stato creato (input).

Valori di restituzione

Se ha esito positivo, viene restituito l'indirizzo del contesto del nodo. Altrimenti, viene restituito un valore zero (CCI_NULL_ADDR).

Esempio

  static char* functionName = (char *)"_Switch_createNodeContext()";
  NODE_CONTEXT_ST* p;

  /* Assegna un puntatore al contesto locale */
  p = (NODE_CONTEXT_ST *)malloc(sizeof(NODE_CONTEXT_ST));

  if (p) {

    /* Elimina i dati nell'area di contesto */
    memset(p, 0, sizeof(NODE_CONTEXT_ST));

    /* Salva il puntatore dell'oggetto nodo nel contesto */
    p->nodeObject = nodeObject;

    /* Salva il nome del nodo */
    CciCharNCpy((CciChar*) &p->nodeName, nodeName, MAX_NODE_NAME_LEN);
}
  else
	 /* Gestisce gli errori */
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
as07430_