cciInputMessageCallback

Questa è una funzione che può essere registrata come callback e viene richiamata ogni qualvolta un messaggio viene letto da un nodo di input e prima che tale messaggio venga propagato al flusso del messaggio. Viene richiamata per ogni messaggio di input letto 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 iFpInputMessageCallback della struttura CCI_UE_VFT passata a cciRegisterUserExit.

Sintassi

typedef void (*cciInputMessageCallback)     ( 
                                 CciDataContext* userContext,
                                 CciMessage*  message,
                                 CciMessage*    localEnvironment,
                                 CciMessage*  exceptionList,
                                 CciMessage*    environment,
                                 CciMessageOrigin messageOrigin,
                                 CciNode*         inputNode);

Parametri

userContext (input)
Questo è il valore passato alla funzione cciRegisterUserExit.
message
Questo è un handle all'oggetto del messaggio. Il codice dell'uscita utente non deve aggiornare questa struttura ad albero.
localEnvironment
Questo è un handle all'oggetto dell'ambiente locale.
exceptionList
Questo è un handle all'oggetto dell'elenco di eccezioni.
environment
Questo è un handle all'oggetto di ambiente per il flusso di messaggio corrente.
messageOrigin
A seconda del tipo di nodo di input, è possibile che il messaggio abbia avuto origine da un flusso di bit (CCI_MESSAGE_ORIGIN_BITSTREAM) o da un albero (CCI_MESSAGE_ORIGIN_TREE). L'uscita utente può quindi accedere a uno di tali elementi senza provocare l'elaborazione da parte del programma di analisi. Ad esempio, nel caso di MQInputNode, è possibile accedere in modo sicuro al flusso di bit mentre, nel caso del nodo di input JMS, è possibile accedere in modo sicuro alla struttura ad albero. È possibile accedere al flusso di bit chiamando cniBufferPointer, cniBufferSize o cniBufferByte. È possibile accedere alla struttura ad albero chiamando cniRootElement e utilizzando le consuete funzioni di navigazione degli elementi di sintassi (ad esempio cniFirstChild).
Nota: Sebbene questo parametro consigli l'uscita utente come un elemento a cui è possibile accedere senza provocare l'elaborazione da parte del programma di analisi, è possibile che il codice dell'uscita utente ignori questo consiglio e modifichi in modo efficace il tempo di analisi.
inputNode
Questo è un handle che legge questo messaggio di input. Può essere utilizzato per richiamare funzioni tra cui cciGetNodeName, cciGetNodeType e cniGetBrokerInfo.

Valori di restituzione

Nessuno.

Esempio

void myInputMessageCallback(
                      CciDataContext* userContext,
                      CciMessage*  message,
                      CciMessage*    localEnvironment,
                      CciMessage*  exceptionList,
                      CciMessage*    environment,
                      CciMessageOrigin messageOrigin,
                      CciNode*         inputNode){
…
…
}
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
as35950_