UMX消息和待办事宜类型之间的转换方式

    技术2022-05-19  23

     

    UMX消息是供应宝系统通信单元,每种消息由(消息域,消息类型,消息ID)识别。

    功能通过UMX消息交互序列实现。

    一种UMX消息可用来实现不同的功能。UMX消息和功能没有一一对应关系。

     

    待办事宜是一种应用功能,支持分类。

    待办事宜可以是:

    .一个转发的消息

    .一个关联记录(如一张待处理单据,一份待阅读公告).

     

    使用说明:

    .一种消息只会生成一种待办事宜

    .应用插件可以根据消息的内容决定生成的待办事宜类型和提示信息

    ///< 待办事宜转换器接口 class ITodoCvt{ public:     virtual int Add(CQQ_MSGTYPE msgtype,CQQ_MSGID msgid,TodoCvtFunc fp,CQQ_DOMAIN domain=0) = 0; ///< 增加一种消息映射     virtual int Remove(CQQ_MSGTYPE msgtype,CQQ_MSGID msgid,CQQ_DOMAIN domain=0) = 0; ///< 删除一种消息映射 };

     

     

    应用示例


    int TodoCvt(CMsg *msg,CSEMQTodoItem *tdi) {     ::MSGTYPE msgtype = msg->GetMsgType();     ::MSGID msgid = msg->GetMsgID();     CQQ_DOMAIN domain = msg->GetDomain();     if (msgtype==MT_INDICATION&&msgid==1103&&domain==0) { ///< 离线消息         tdi->todo_rootclass_ = WP_TODOTYPE_OFFMSG;     }     else if (msgtype==MT_INDICATION&&msgid==1231&&domain==0) { ///< 公告         const char *szTitle = msg->GetParam("Notice_title"); ///< 公告只能以机构名义发布         const char *szOrgID = msg->GetParam("Pub_orgid");         const char *szOrgName = msg->GetParam("Pub_OrgName");         tdi->todo_title_ = LogMsg("您接收到了一条来自%s(%s)的公告,%s",szOrgName,szOrgID,szTitle);         tdi->todo_rootclass_ = WP_TODOTYPE_NOTICE;     }     return 0; } int CBBoxPlugin::Prepare() {     parent::Prepare();   ...

        ///< 为需要生成待办事宜的消息指定转换函数     TODO_CVT::instance()->Add(MT_INDICATION,1103,TodoCvt); ///< 离线消息转待办事宜     TODO_CVT::instance()->Add(MT_INDICATION,1231,TodoCvt); ///< 公告通知转待办事宜     ...     return 0; }


    最新回复(0)