La función cciNodeCompletionCallback se puede registrar como una devolución de llamada y se invoca cuando un nodo ha finalizado el proceso de un mensaje y devuelve el control al nodo situado en sentido ascendente.
La función cciNodeCompletionCallback invoca para cada mensaje que se ha propagado en el grupo de ejecución en el que se ha registrado la llamada de devolución, si la salida de usuario está en estado activo. La llamada de devolución se registra proporcionando un puntero a la función como el campo iFpNodeCompletionCallback de la estructura CCI_UE_VFT que se ha pasado a cciRegisterUserExit.
Si l nodo finaliza debido a una excepción no manejada, devuelve un reasonCode de CCI_EXCEPTION y los detalles de dicha excepción se pueden obtener invocando cciGetLastExceptionData.
Si el nodo finaliza normalmente (incluido el manejo de una excepción en el terminal de captación o de anomalía) devuelve un reasonCode de CCI_SUCCESS. En este caso, si se invocacciGetLastExceptionData se obtienen resultados imprevistos.
typedef void (*cciNodeCompletionCallback) (
CciDataContext* userContext,
CciMessage* message,
CciMessage* localEnvironment,
CciMessage* exceptionList,
CciMessage* environment,
CciConnection* connection,
int reasonCode);
El código de la salida de usuario no debe actualizar cabeceras de transporte o elementos de Propiedades en el árbol de mensajes. Si se actualiza el mensaje, el rendimiento resulta afectado. Los cambios realizados durante esta devolución de llamada se pueden ver únicamente si el nodo en sentido ascendente no provoca la creación del mensaje nuevo.
Ninguno.
void myNodeCompletionCallback(
CciDataContext* userContext,
CciMessage* message,
CciMessage* localEnvironment,
CciMessage* exceptionList,
CciMessage* environment,
CciConnection* connection
int reasonCode){
…
…
}