Inicio del cambio

cciNodeCompletionCallback

Ésta es una función que se puede registrar como una devolución de llamada y se invoca cuando un nodo ha terminado de procesar un mensaje y devuelve el control al nodo superior. Se invoca para todos los mensajes propagados dentro del grupo de ejecución en el que se registró la devolución de llamada, si el estado de la rutina de salida de usuario es activo. La devolución de llamada se registra proporcionando un puntero a la función al pasar el campo iFpNodeCompletionCallback de la estructura CCI_UE_VFT a cciRegisterUserExit.

Si el nodo ha terminado debido a una excepción no manejada, entonces vuelve con un reasonCode (código de razón) de CCI_EXCEPTION y los detalles de dicha excepción pueden obtenerse invocando cciGetLastExceptionData.

Si el nodo ha terminado normalmente (incluido el manejo de una excepción en el terminal catch o failure) entonces vuelve con un reasonCode (código de razón) de CCI_SUCCESS.
Nota: En este caso, invocar cciGetLastExceptionData devuelve resultados imprevisibles.

Sintaxis

typedef void (*cciNodeCompletionCallback) (
CciDataContext* userContext,
CciMessage*        message,
CciMessage* localEnvironment,
CciMessage*        exceptionList,
CciMessage* environment,
CciConnection* connection,
int reasonCode);

Parámetros

userContext (entrada)
Éste es el valor pasado a la función cciRegisterUserExit.
message
Éste es un manejador para el objeto de mensaje que se está propagando. El código de rutina de salida de usuario no debe actualizar este árbol.
localEnvironment
Éste es un manejador para el objeto de entorno local que se está propagando.
exceptionList
Éste es un manejador para el objeto de lista de excepción que se está propagando.
environment
Éste es un manejador para el objeto de entorno para el flujo de mensajes actual.
connection
Éste es un manejador para el objeto de conexión entre los dos nodos. Se puede utilizar, por ejemplo, en llamadas a cciGetSourceNode, cciGetTargetNode, cciGetSourceTerminalName y cciGetTargetTerminalName. Este manejador sólo es válido para la duración de esta invocación de la función de salida de usuario.
reasonCode
Indica si el nodo terminó normalmente (CCI_SUCCESS) o si el nodo terminó debido a una excepción no manejada (CCI_EXCEPTION). Si el nodo ha terminado debido a una excepción no manejada, los detalles de dicha excepción pueden obtenerse invocando cciGetLastExceptionData. Si el nodo ha terminado normalmente (incluido el manejo de una excepción en el terminal catch o failure), el efecto que produce invocar cciGetLastExceptionData es indeterminado.

Valores de retorno

Ninguno.

Ejemplo

void myNodeCompletionCallback(
CciDataContext* userContext,
CciMessage*        message,
CciMessage* localEnvironment,
CciMessage*        exceptionList,
CciMessage* environment,
CciConnection* connection
int reasonCode){
…
…
}
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 04/05/2006
as35940_


Fin del cambio