[发明专利]一种消息泵方法和系统无效
申请号: | 200710125737.6 | 申请日: | 2007-12-25 |
公开(公告)号: | CN101211275A | 公开(公告)日: | 2008-07-02 |
发明(设计)人: | 罗永新 | 申请(专利权)人: | 康佳集团股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 深圳市君胜知识产权代理事务所 | 代理人: | 王永文 |
地址: | 5180*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 方法 系统 | ||
技术领域
本发明涉及讯息的流程处理,尤其涉及的是,一种灵活高效的消息泵方法和系统。
背景技术
现在的机顶盒有着强大的界面交互能力,其用户交互界面(UI)结构也越来越复杂。现在主流的UI设计在本质上都是以讯息为基础,以事件驱动运行,即事件触发型。讯息的流程处理过程是最为核心的,这个过程常被称为消息泵。
消息泵设计的好坏,直接关系到UI交互能力的强弱,消息处理流程的繁简。只有了灵活高效的消息泵,才能实现强大的用户界面交互能力,提高软件的代码复用率。
现在UI消息泵的一次消息循环流程一般如下:
1,从系统消息队列或用户消息队列取出一条消息;
2,如果取到消息,先进行消息转换,再把消息发送到当前窗体或者指定窗体;
3,窗体接收到消息后,在窗体处理函数中用switch-case等选择语句对各消息进行特定处理,对缺省消息则调用默认的处理函数来处理。
代码结构形式示意如下:
MSG msg;
while(GetMessage(&msg,NULL,NULL,NULL))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
但是,现有技术存在以下缺陷:
1,每个消息的都必须走完一个完整循环流程,不管这是否需要;而且也无法短路消息流程(即缩短、删减消息流程),使其快速进入下一个循环流程。
2,每次都是从系统或用户消息队列中取出消息处理,一旦取出,系统或用户消息队列就没有了该消息,如果立刻需要该消息来驱动另一个窗体运行,就必须先重生成该消息,并把它发送到系统或用户队列,而这个消息往往是放在消息队列的最后位置,要处理该消息必须先处理完它前面的所有消息,这就在时序上可能存在延迟,即它不具备紧急消息处理的实时快速性。并且,当在消息A处理过程中,如果需要产生一个紧急消息B,使得某窗体在下一个消息循环中就能得到紧急消息B进行处理,也由于这个原因而难以实现。
3,对于不少消息来说,可能不同窗体做的大部分动作都是一样的,而只有很少一部分动作是有差异的,已有技术由于把消息处理全部放置到各窗体流程中进行,而没有公用的消息处理模块,会导致很多相同的代码重复出现,增加代码量;即各窗体处理消息的共性和个性灵活性不够。
因此,现有技术需要改进。
发明内容
本发明所要解决的技术问题是每个消息都必须走完一个完整循环流程;取出消息之后,系统或用户消息队列就没有了该消息;各窗体处理消息的共性和个性不够灵活。
本发明的技术方案如下:
一种消息泵方法,其包括以下步骤:A1、预设置各消息的第一共性;所述共性是各种不同类型的消息均需执行的操作、或同一类型的各消息均需执行的操作;A2、获取消息队列的头消息指针,复制其所指向的头消息,作为当前处理的消息;A3、对所述消息进行过滤处理,判断是否为该过滤处理步骤和后续步骤设置返回标识和/或释放标识,并执行相应设置,然后执行返回判断步骤;所述后续步骤包括预处理步骤和特性处理步骤;所述返回判断步骤为:判断是否存在所述返回标识,是则执行释放判断步骤,否则进入下一步骤;A4、对所述消息进行预处理,处理所述消息的第一共性,执行所述返回判断步骤;A5、对所述消息进行特性处理,执行释放判断步骤;所述释放判断步骤为:判断是否存在释放标识,是则从所述消息队列中移除所述头消息。
所述的消息泵方法,其中,步骤A4之前,还执行步骤:根据所述第一共性,判断是否需要对所述消息进行预处理,否则直接执行步骤A5。
所述的消息泵方法,其中,步骤A1还包括:预设置各消息的特性;所述特性是各种消息需执行的特有操作;并且,步骤A5之前,还执行步骤:根据所述特性,判断是否需要对所述消息进行特性处理,否则直接执行释放判断步骤。
所述的消息泵方法,其中,步骤A1还包括:预设置各消息的第二共性;步骤A3中,所述后续步骤还包括后处理步骤;步骤A5具体包括步骤:对所述消息进行特性处理,执行返回判断步骤;并且,步骤A5之后还执行以下步骤:A6、对所述消息进行后处理,处理所述消息的第二共性,执行释放判断步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于康佳集团股份有限公司,未经康佳集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710125737.6/2.html,转载请声明来源钻瓜专利网。