cciNodeCompletionCallback

Questa è una funzione che può essere registrata come callback e viene richiamata ogni qualvolta un nodo ha completato l'elaborazione di un messaggio e restituisce il controllo al relativo nodo upstream. Viene richiamata per ogni messaggio propagato nel gruppo di esecuzione in cui è stata registrata la callback, se lo stato dell'uscita utente è attivo. La callback viene registrata fornendo un puntatore alla funzione come il campo iFpNodeCompletionCallback della struttura CCI_UE_VFT passata a cciRegisterUserExit.

Se il nodo è stato completato a causa di un'eccezione non gestita, viene restituito con il reasonCode CCI_EXCEPTION e i dettagli di tale eccezione possono essere ottenuti chiamando cciGetLastExceptionData.

Se il nodo viene completato correttamente (inclusa la gestione di un'eccezione sul terminale catch o failure), viene restituito con il reasonCode CCI_SUCCESS.
Nota: in questo caso, la chiamata di cciGetLastExceptionData restituisce risultati imprevedibili.

Sintassi

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

Parametri

userContext (input)
Questo è il valore passato alla funzione cciRegisterUserExit.
message
Questo è un handle all'oggetto del messaggio che si sta propagando. Il codice dell'uscita utente non deve aggiornare questa struttura ad albero.
localEnvironment
Questo è un handle all'oggetto dell'ambiente locale che si sta propagando.
exceptionList
Questo è un handle all'oggetto dell'elenco di eccezioni che si sta propagando.
environment
Questo è un handle all'oggetto di ambiente per il flusso di messaggio corrente.
connection
Questo è un handle all'oggetto di connessione tra due nodi. Può essere utilizzato, ad esempio, in chiamate a cciGetSourceNode, cciGetTargetNode, cciGetSourceTerminalName e cciGetTargetTerminalName. Tale handle è valido solo per la durata di questo richiamo della funzione di uscita utente.
reasonCode
Indica se il nodo è stato completato normalmente (CCI_SUCCESS) o a causa di un eccezione non gestita (CCI_EXCEPTION). Se il nodo è stato completato a causa di un'eccezione non gestita, i dettagli di tale eccezione possono essere ottenuti chiamando cciGetLastExceptionData. Se il nodo viene completato correttamente (inclusa la gestione di un'eccezione sul terminale catch o failure), l'effetto della chiamata di cciGetLastExceptionData non è determinato.

Valori di restituzione

Nessuno.

Esempio

void myNodeCompletionCallback(
                                 CciDataContext* userContext,
                                 CciMessage*  message,
                                 CciMessage*    localEnvironment,
                                 CciMessage*  exceptionList,
                                 CciMessage*    environment,
                                 CciConnection*  connection
                                 int             reasonCode){
…
…
}
Concetti correlati
Sviluppo di uscite utente
Attività correlate
Sviluppo di un'uscita utente
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
as35940_