cciInputMessageCallback

这是一个可以注册为回调的函数,每次读取消息时,以及该消息沿消息流传播之前,输入节点都会调用该函数。如果用户出口状态是活动的,则会为在注册回调的执行组中读取的每个输入消息调用该函数。通过将指向该函数的指针提供为传递到 cciRegisterUserExit 的 CCI_UE_VFT 结构的 iFpInputMessageCallback 字段,可以注册回调。

语法

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

参数

userContext(输入)
这是传递到 cciRegisterUserExit 函数的值。
message
这是消息对象的句柄。用户出口代码不得更新该树。
localEnvironment
这是本地环境对象的句柄。
exceptionList
这是异常列表对象的句柄。
environment
这是当前消息流的环境对象的句柄。
messageOrigin
根据输入节点的类型,消息可能来自位流(CCI_MESSAGE_ORIGIN_BITSTREAM)或树(CCI_MESSAGE_ORIGIN_TREE)。因此用户出口可以访问位流或树,而不会引起解析器的处理过程。例如,如果是 MQInputNode,则您可以安全地访问位流,而如果是 JMS 输入节点,则您可以安全地访问树。调用 cniBufferPointercniBufferSizecniBufferByte 可以访问位流。调用 cniRootElement 及使用常用的语法元素导航函数(例如,cniFirstChild)可以访问树。
注: 虽然此参数会通知用户出口关于它可以对哪些对象安全地进行访问而不会引起解析器进行处理,但是用户出口代码可能会忽略此信息,并有效地更改解析计时。
inputNode
这是输入节点的句柄,它读取此输入消息。它可用来调用诸如 cciGetNodeNamecciGetNodeTypecniGetBrokerInfo 的函数。

返回值

无。

示例

void myInputMessageCallback(
                      CciDataContext* userContext,
                      CciMessage* message,
                      CciMessage* localEnvironment,
                      CciMessage* exceptionList,
                      CciMessage* environment,
                      CciMessageOrigin messageOrigin,
                      CciNode* inputNode){
…
…
}
相关概念
建立用户出口
相关任务
建立用户出口
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
as35950_