cniCreateNodeContext

Crea cualquier contexto para una instancia de un objeto de nodo. La invoca el intermediario de mensajes siempre que se crea una instancia de un objeto de nodo. Se crean nodos cuando el intermediario despliega un flujo de mensajes o cuando se inicia el grupo de ejecución.

Las responsabilidades del nodo en este punto consisten en:
  1. Verificar (opcionalmente) que la fábrica soporte el nombre del nodo especificado en el parámetro nodeName.
  2. Asignar las áreas de datos específicas de la instancia de nodo que puedan ser necesarias (por ejemplo: contexto, datos de atributo y terminales).
  3. Realizar cualquier adquisición de recursos o inicialización adicional que pueda ser necesaria para el proceso del nodo.
  4. Devolver la dirección del contexto a la función de invocación. Siempre que se invoca una función de implementación para esta instancia de nodo, el contexto apropiado se pasa como argumento a dicha función. Esto significa que un nodo definido por el usuario desarrollado en C no necesita mantener sus propios punteros estáticos a áreas de datos por instancia.
Definida en Tipo Miembro
CNI_VFT Obligatorio iFpCreateNodeContext

Sintaxis

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

Parámetros

factoryObject
Dirección del objeto de fábrica que es propietario del nodo que se está creando (entrada).
nodeName
Nombre del nodo que se está creando (entrada).
nodeObject
Dirección del objeto de nodo que se acaba de crear (entrada).

Valores de retorno

Si la ejecución se realiza satisfactoriamente, se devuelve la dirección del contexto de nodo. De lo contrario, se devuelve un valor de cero (CCI_NULL_ADDR).

Ejemplo

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

  /* Asignar un puntero al contexto local */
  p = (NODE_CONTEXT_ST *)malloc(sizeof(NODE_CONTEXT_ST));

  if (p) {

    /* Borrar el área de contexto */
    memset(p, 0, sizeof(NODE_CONTEXT_ST));

    /* Guardar nuestro puntero de objeto de nodo en nuestro contexto */
    p->nodeObject = nodeObject;

    /* Guardar nuestro nombre de nodo */
    CciCharNCpy((CciChar*) &p->nodeName, nodeName, MAX_NODE_NAME_LEN);
}
  else
/* Manejar errores */
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
as07430_