CN101211275B - 一种消息泵方法和*** - Google Patents
一种消息泵方法和*** Download PDFInfo
- Publication number
- CN101211275B CN101211275B CN 200710125737 CN200710125737A CN101211275B CN 101211275 B CN101211275 B CN 101211275B CN 200710125737 CN200710125737 CN 200710125737 CN 200710125737 A CN200710125737 A CN 200710125737A CN 101211275 B CN101211275 B CN 101211275B
- Authority
- CN
- China
- Prior art keywords
- message
- module
- carry out
- characteristic
- steps
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000005086 pumping Methods 0.000 title claims description 26
- 238000012545 processing Methods 0.000 claims abstract description 71
- 238000001914 filtration Methods 0.000 claims description 46
- 238000012805 post-processing Methods 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 19
- 238000002203 pretreatment Methods 0.000 claims description 17
- 238000005111 flow chemistry technique Methods 0.000 claims description 6
- 230000009471 action Effects 0.000 description 14
- 238000012216 screening Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001568 sexual effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种消息泵方法和***,该方法包括以下步骤:预设置消息的第一共性;获取消息队列的头消息指针,复制头消息,作为当前处理的消息;对消息进行过滤处理,判断是否为各步骤设置返回标识和/或释放标识,并执行相应设置,然后执行返回判断步骤;返回判断步骤为:判断是否存在返回标识,是则执行释放判断步骤,否则进入下一步骤;对消息进行预处理,处理消息的第一共性,执行返回判断步骤;对消息进行特性处理,执行释放判断步骤;释放判断步骤为:判断是否存在释放标识,是则从消息队列中移除头消息。从而实现了消息的处理分类化、有序化和简单化;缩短了消息处理流程;必要时在***或用户消息队列还保留该消息;大大提高了处理效率。
Description
技术领域
本发明涉及讯息的流程处理,尤其涉及的是,一种灵活高效的消息泵方法和***。
背景技术
现在的机顶盒有着强大的界面交互能力,其用户交互界面(UI)结构也越来越复杂。现在主流的UI设计在本质上都是以讯息为基础,以事件驱动运行,即事件触发型。讯息的流程处理过程是最为核心的,这个过程常被称为消息泵。
消息泵设计的好坏,直接关系到UI交互能力的强弱,消息处理流程的繁简。只有了灵活高效的消息泵,才能实现强大的用户界面交互能力,提高软件的代码复用率。
现在UI消息泵的一次消息循环流程一般如下:
1,从***消息队列或用户消息队列取出一条消息;
2,如果取到消息,先进行消息转换,再把消息发送到当前窗体或者指定窗体;
3,窗体接收到消息后,在窗体处理函数中用switch-case等选择语句对各消息进行特定处理,对缺省消息则调用默认的处理函数来处理。
代码结构形式示意如下:
但是,现有技术存在以下缺陷:
1,每个消息的都必须走完一个完整循环流程,不管这是否需要;而且也无法短路消息流程(即缩短、删减消息流程),使其快速进入下一个循环流程。
2,每次都是从***或用户消息队列中取出消息处理,一旦取出,***或用户消息队列就没有了该消息,如果立刻需要该消息来驱动另一个窗体运行,就必须先重生成该消息,并把它发送到***或用户队列,而这个消息往往是放在消息队列的最后位置,要处理该消息必须先处理完它前面的所有消息,这就在时序上可能存在延迟,即它不具备紧急消息处理的实时快速性。并且,当在消息A处理过程中,如果需要产生一个紧急消息B,使得某窗体在下一个消息循环中就能得到紧急消息B进行处理,也由于这个原因而难以实现。
3,对于不少消息来说,可能不同窗体做的大部分动作都是一样的,而只有很少一部分动作是有差异的,已有技术由于把消息处理全部放置到各窗体流程中进行,而没有公用的消息处理模块,会导致很多相同的代码重复出现,增加代码量;即各窗体处理消息的共性和个性灵活性不够。
因此,现有技术需要改进。
发明内容
本发明所要解决的技术问题是每个消息都必须走完一个完整循环流程;取出消息之后,***或用户消息队列就没有了该消息;各窗体处理消息的共性和个性不够灵活。
本发明的技术方案如下:
一种消息泵方法,其包括以下步骤:A1、预设置各消息的第一共性;所述共性是各种不同类型的消息均需执行的操作、或同一类型的各消息均需执行的操作;A2、获取消息队列的头消息指针,复制其所指向的头消息,作为当前处理的消息;A3、对所述消息进行过滤处理,判断是否为该过滤处理步骤和后续步骤设置返回标识和/或释放标识,并执行相应设置,然后执行返回判断步骤;所述后续步骤包括预处理步骤和特性处理步骤;所述返回判断步骤为:判断是否存在所述返回标识,是则执行释放判断步骤,否则进入下一步骤;A4、对所述消息进行预处理,处理所述消息的第一共性,执行所述返回判断步骤;A5、对所述消息进行特性处理,执行释放判断步骤;所述释放判断步骤为:判断是否存在释放标识,是则从所述消息队列中移除所述头消息;其中,所述消息泵为讯息的流程处理过程。
所述的消息泵方法,其中,步骤A4之前,还执行步骤:根据所述第一共性,判断是否需要对所述消息进行预处理,否则直接执行步骤A5。
所述的消息泵方法,其中,步骤A1还包括:预设置各消息的特性;所述特性是各种消息需执行的特有操作;并且,步骤A5之前,还执行步骤:根据所述特性,判断是否需要对所述消息进行特性处理,否则直接执行释放判断步骤。
所述的消息泵方法,其中,步骤A1还包括:预设置各消息的第二共性;步骤A3中,所述后续步骤还包括后处理步骤;步骤A5具体包括步骤:对所述消息进行特性处理,执行返回判断步骤;并且,步骤A5之后还执行以下步骤:A6、对所述消息进行后处理,处理所述消息的第二共性,执行释放判断步骤。
所述的消息泵方法,其中,该方法还包括以下步骤:A0、为某一紧急事件在消息队列生成一个头消息,或修改消息队列头消息的内容为所述紧急事件;并且,步骤A2和步骤A3之间,还包括以下步骤:判断是否发生所述紧急事件,是则直接执行步骤A2,或在步骤A3中,对当前处理的消息进行过滤处理时,为该过滤处理步骤和/或后续步骤设置返回标识;否则继续执行步骤A3。
所述的消息泵方法,其中,步骤A3中,仅为该过滤处理步骤或任一后续步骤设置所述返回标识和/或所述释放标识。
一种消息泵***,其中,包括设置模块、获取模块、过滤模块、预处理模块、特性处理模块;所述设置模块与所述预处理模块相连接,用于设置各消息的第一共性;所述共性是各种不同类型的消息均执行的操作、或同一类型的各消息均执行的操作;所述获取模块分别与所述过滤模块、所述预处理模块、所述特性处理模块相连接,用于获取消息队列的头消息指针,复制其所指向的头消息,作为当前处理的消息;所述过滤模块与所述预处理模块相连接,用于对所述消息进行过滤处理,判断是否为该过滤处理步骤和后续步骤设置返回标识和/或释放标识,并执行相应设置,然后执行返回判断步骤,控制过滤处理步骤和后续步骤的执行;所述预处理模块与所述特性处理模块相连接,用于对所述消息进行第一共性处理;所述特性处理模块用于对所述消息进行特性处理;其中,所述消息泵为讯息的流程处理过程。
所述的消息泵***,其中,该***还包括后处理模块,其分别与所述设置模块、所述获取模块、所述特性处理模块相连接,用于对所述消息进行第二共性处理;并且,所述设置模块还用于设置各消息的特性和第二共性;所述特性是各种消息需执行的特有操作。
所述的消息泵***,其中,该***还至少包括下列各判断模块其中之一:第一判断模块,设置在所述过滤模块与所述预处理模块之间,并与所述特性处理模块相连接,用于在所述消息不需要进行预处理时,直接传输给所述特性处理模块;第二判断模块,设置在所述预处理模块与所述特性处理模块之间,并与所述后处理模块相连接,用于在所述消息不需要进行特性处理时,直接传输给所述后处理模块;第三判断模块,设置在所述过滤模块与所述预处理模块之间,并与所述后处理模块相连接,用于在所述消息不需要进行预处理和特性处理时,直接传输给所述后处理模块;第四判断模块,设置在所述过滤模块与所述预处理模块之间,并与所述获取模块相连接,用于在所述消息不需要进行后续处理时,直接给所述获取模块提供反馈。
所述的消息泵***,其中,所述过滤模块还设置判断单元,用于在***生成紧急事件的消息时,控制过滤处理步骤和后续步骤的终止执行。
采用上述方案,本发明实现了消息的处理分类化、有序化和简单化;缩短或删减了消息处理流程;取出消息之后,必要时在***或用户消息队列还保留该消息备用;对消息的共性和个性分别进行处理,有效减少了重复代码,大大提高了处理效率。
附图说明
图1为本发明方法的一种实施方式的流程图;
图2为本发明***的结构示意图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
对于消息处理,基本可以归结为:根据命令种类,决定进行什么处理(即“做什么动作”);以及根据命令参数,决定如何处理(即“怎么做”);对于很多消息,其要引发的“做什么动作”是一样的,只是可能“怎么做”不一样,因此,本发明通过把消息进行按命令种类分类,使得对消息的处理能分类进行,而且同一类命令的执行一般又很相似;或者,抽取不同命令种类的消息所共同执行的操作,采取同样的处理方式。这样就把消息的处理分类化,有序化,简单化了。有利于软件的模块化,也大大提高了软件的可读性,可扩展性。
比如机顶盒中一般有5至10个快捷键,即希望能在任何窗体下按下此键都能快速跳到指定的模块,比如播放电视、广播、节目指南、NVOD、或数据广播等等,这些操作的特点是“都需要跳转,但要跳转到不同的地方”,本发明可以把这类消息分为一类来处理;而如接收到软件更新、节目更新等等消息时,这些操作的特点是“需要给出提示信息,但给出的提示信息不同”,本发明可以把这类消息又分为一类来处理。
因此,本发明提供了一种消息泵方法,其包括以下步骤。
A1、预设置各消息的第一共性;所述共性是各种不同类型的消息均需执行的操作、或同一类型的各消息均需执行的操作。
A2、获取消息队列的头消息指针,复制其所指向的头消息,作为当前处理的消息。
A3、对所述消息进行过滤处理,判断是否为该过滤处理步骤和后续步骤设置返回标识和/或释放标识,并执行相应设置,然后执行返回判断步骤;所述后续步骤包括预处理步骤和特性处理步骤;这一步,可以只设置返回标识,可以只设置释放标识,也可以设置返回标识和释放标识。所述返回判断步骤为:判断是否存在所述返回标识,是则执行释放判断步骤,否则进入下一步骤。
其中,步骤A3中,可以仅为该过滤处理步骤或任一后续步骤设置所述返回标识和/或所述释放标识。
这样,对消息一次循环流程长短,增设了控制:增加了消息处理的层次,并分别在进行过滤处理的消息过滤层,预处理层,进行特性处理的窗体处理层,后处理层之后分别判断是否需要返回,在这里就可以按照实际需要控制消息流程的长短。比如,待机情况下,消息过滤层后的各层都会被短路,即在满足待机条件的情况下,屏蔽其他消息的执行;再比如一些消息可能在预处理层处理完后,就不需要后续处理等等。
A4、对所述消息进行预处理,处理所述消息的第一共性,执行所述返回判断步骤。
更好的是,在步骤A4之前,还可以执行步骤:根据所述第一共性,判断是否需要对所述消息进行预处理,否则直接执行步骤A5。
A5、对所述消息进行特性处理,执行释放判断步骤;所述释放判断步骤为:判断是否存在释放标识,是则从所述消息队列中移除所述头消息。例如,在步骤A5中,各具体的窗体分别对与其业务相关的、或有其特性业务(即个性动作)的消息进行处理,这些进行特性处理的窗体分别处理各种不同类型消息的特性,或者同类消息中各个不同消息的特性。当然,实际应用中,这些窗体也可以分别处理一些可能的共性。
更好的是,步骤A1还包括:预设置各消息的特性;所述特性是各种消息需执行的特有操作;并且,在步骤A5之前,还可以执行步骤:根据所述特性,判断是否需要对所述消息进行特性处理,否则直接执行释放判断步骤。
一个优选的例子是,步骤A1还包括:预设置各消息的第二共性;并且,步骤A3中,所述后续步骤还包括后处理步骤;并且,步骤A5具体包括步骤:对所述消息进行特性处理,执行返回判断步骤;然后,在步骤A5之后还执行以下步骤:A6、对所述消息进行后处理,处理所述消息的第二共性,执行释放判断步骤。
另一个优选的例子是,该方法还可以包括以下步骤:A0、为某一紧急事件在消息队列生成一个头消息,或修改消息队列头消息的内容为所述紧急事件;并且,步骤A2和步骤A3之间,还包括以下步骤:判断是否发生所述紧急事件,即是不是在步骤A2和步骤A3之间发生了步骤A0,是则直接执行步骤A2,也可以在步骤A3中,对当前处理的消息进行过滤处理时,为该过滤处理步骤和/或后续步骤设置返回标识;如果没有发生所述紧急事件,则继续执行步骤A3。
这样,就可以实现紧急消息的实时快速性:当消息处理到流程中的某层,发生了一个紧急事件需要某窗体进行紧急处理时,可以先设置消息处理完后需要返回,然后通过接口函数在消息队列头生成一个所需的紧急消息或者修改消息队列头消息内容为所需的紧急消息,这样这个紧急消息就可以在最短流程内得到处理,提高了***的实时快速响应能力。
一个完整的例子如图1所示,其包括以下步骤:
首先获得消息队列头消息的消息指针,复制其所指向的头消息,作为当前处理的消息;然后对所述消息进行过滤处理,判断消息过滤后是否返回,是则执行释放判断步骤,即继续判断是否需要从所述消息队列中移除所述头消息,是则移去消息队列的头消息,否则继续获取消息队列头消息的消息指针,复制其所指向的头消息,作为当前处理的消息处理。不返回的话,则执行下一步骤,例如,本例是进行预处理。需要说明的是,预处理是可选步骤。当判断得到无需执行预处理步骤时,可以直接执行后续的特性处理步骤、后处理步骤,或直接返回并执行释放判断步骤。
之后对所述消息进行预处理,然后判断消息预处理后是否返回,是则继续判断是否需要从所述消息队列中移除所述头消息,是则移去消息队列的头消息,否则继续获取消息队列头消息的消息指针,复制其所指向的头消息,作为当前处理的消息处理。不返回的话,则执行下一步骤,例如,本例是进行特性处理。需要说明的是,特性处理是可选步骤。当判断得到无需执行特性处理步骤时,可以直接执行后续的后处理步骤,或直接返回并执行释放判断步骤。
再对所述消息进行特性处理,然后判断消息特性处理后是否返回,是则继续判断是否需要从所述消息队列中移除所述头消息,是则移去消息队列的头消息,否则继续获取消息队列头消息的消息指针,复制其所指向的头消息,作为当前处理的消息处理。执行释放判断步骤;所述释放判断步骤为:判断是否存在释放标识,是则从所述消息队列中移除所述头消息。不返回的话,则执行下一步骤,例如,本例是进行后处理。需要说明的是,后处理也是可选步骤。当判断得到无需执行后处理步骤时,可以直接返回,并执行释放判断步骤。
之后再进行后处理步骤:对所述消息进行后处理,处理所述消息的第二共性,执行释放判断步骤。至此完成本例。
这样,通过预处理和后处理步骤,实现了各窗体处理消息的共性和差异性:当某消息到达预处理层时,可以来处理一些共性消息;在各窗体内处理一些个性消息;同样,在后处理层也可以处理一些共性消息;存在两个层可以处理共性消息,使得在消息共性和个性处理的时序上有更大的可选择性和灵活性。
下面再举几个实施例,对本发明方法进行详细说明。
一个例子是,使预处理层能单独来做共性的动作,这种方法适用于触发该共性动作的消息种类不多情况。可以先对消息的可执行性进行检查,并做相应的处理,比如:在各窗体中看电视时,如果前端播发了一条紧急的邮件消息,那么在预处理层可以把该邮件显示出来。再比如,如果收到了前端节目更新或软件更新的消息,那么预处理层就可以弹出相应的提示或进行相应的动作。这时各窗体层和后处理层都不需做动作。
另一个例子是,使预处理层和后处理层能共同来完成一些共性的工作,这种方法适用于触发该共性动作的消息种类比较多的情况。对于一些消息,可能要做的动作大致相似,但参数有少许差别。比如机顶盒一般会有5至10个快捷键,即希望能在任何窗体下按下此键都能快速跳到指定的模块,比如播放电视,或播放广播,或节目指南,或NVOD,或数据广播等等,这种情况特点是“都需要跳转,但要跳转到不同的地方”;如接收到了NVOD按键,或EPG按键;那么是分别要跳到NVOD摸块或节目指南模块。这样采用本发明方法,可以在预处理层把消息转换为“需要跳转,跳转到NVOD”或“需要跳转,跳转到节目指南”,这时在各个窗体中并不需要处理该消息,而只要在后处理层对消息信息的“需要跳转,跳转到哪里”进行统一处理就可以了。这种方式为:预处理层对消息先做预处理,由后处理层统一处理消息,各窗体一般不需要单独处理。这样带来的好处是代码量少,代码的可理解性和可修改性都更强。
又一个例子是,使预处理层,某些窗体和后处理层能共同来完成一些共性的工作,但某些窗体又可能要多做一些有特色的额外动作。比如在第二点的基础上,接收到了NVOD按键,那么是要跳到NVOD摸块。如果此时是在节目编辑窗体中,那么它可能要先保存下编辑结果,再跳到NVOD模块中。那么在预处理层对消息先做预处理后,例如转换消息为:“需要跳转,跳转到NVOD”;在节目编辑窗体如果接收到该“需要跳转,跳转到NVOD”消息,就做保存编辑结果动作;当消息到后处理层时,就统一做跳到NVOD的动作。而如果此时是在其它的窗体,它没有自己额加的动作要做,那么就可以不理会“需要跳转,跳转到NVOD”消息,当消息到后处理层时,仍然是统一做跳到NVOD的动作。这就是上一个例子的情况了。
综上所述,本发明的具体实施一般是由预处理层和后处理层来实现共性的操作,而各具体的窗体只处理本窗体需要单独或额外处理的操作。消息过滤层,预处理层和后处理层并不属于某个窗体之内,和窗体层的消息处理的层次也是不一样的。窗体层中的各窗体的主要工作是显示出各不同窗体界面来,并由此提供不同的交互能力来。消息经过预处理层对消息进行分类合并后,简化了窗体层中要处理的消息的种类;而后处理层的存在,又使得窗体层中不需要做共性的动作,效果也是简化了窗体层中要做的动作,这样使得窗体层中能专注于显示出不同窗体界面来,并提供相应的交互能力。消息过滤层,预处理层和后处理层对用户而言是不可见的,这是处于后台的操作。本发明设计出过滤层,预处理层,后处理层的主要目的就是为了简化各窗体的处理流程,使其能适应快速的修改。因为在软件中,界面的修改是最频繁而又繁琐的。
并且,如图2所示,本发明还提供了一种消息泵***,其包括设置模块、获取模块、过滤模块、预处理模块、特性处理模块。
所述设置模块与所述预处理模块相连接,用于设置各消息的第一共性;所述共性是各种不同类型的消息均执行的操作、或同一类型的各消息均执行的操作。
所述获取模块分别与所述过滤模块、所述预处理模块、所述特性处理模块相连接,用于获取消息队列的头消息指针,复制其所指向的头消息,作为当前处理的消息。
所述过滤模块与所述预处理模块相连接,用于对所述消息进行过滤处理,判断是否为该过滤处理步骤和后续步骤设置返回标识和/或释放标识,并执行相应设置,然后执行返回判断步骤,控制过滤处理步骤和后续步骤的执行;例如,同上所述,控制过滤处理步骤完成后直接回到获取模块,继续获取消息,或者执行后续步骤,包括后面的预处理模块、特性处理模块、后处理模块所执行的处理。
所述预处理模块与所述特性处理模块相连接,用于对所述消息进行第一共性处理;例如,按不同类型的消息的相同处理部分,进行共同的处理;对同一类型的消息,就可能存在更多的相同处理部分,可以进行共同的处理。
所述特性处理模块用于分别对所述消息进行特性处理,根据消息的不同,特性可能是独立的,也可能与上述的相同处理部分结合起来作为特性,进行处理。具体应用中,可以包括多个特性处理模块。
更好的是,该***还可以包括后处理模块,其分别与所述设置模块、所述获取模块、所述特性处理模块相连接,用于对所述消息进行第二共性处理;并且,所述设置模块还用于设置各消息的特性和第二共性;所述特性是各种消息需执行的特有操作。第一共性和第二共性可以相同也可以不相同,视实际需要而定。还可以在所述预处理模块与所述特性处理之间设置另一判断模块,用于在所述消息不需要进行特性处理时,直接传输给所述后处理模块;并且,还可以在所述过滤模块与所述预处理模块之间设置又一判断模块,用于在所述消息不需要进行预处理和特性处理时,直接传输给所述后处理模块。
例如,该***还至少包括下列各判断模块其中一个或多个:第一判断模块,设置在所述过滤模块与所述预处理模块之间,并与所述特性处理模块相连接,用于在所述消息不需要进行预处理时,直接传输给所述特性处理模块;第二判断模块,设置在所述预处理模块与所述特性处理模块之间,并与所述后处理模块相连接,用于在所述消息不需要进行特性处理时,直接传输给所述后处理模块;第三判断模块,设置在所述过滤模块与所述预处理模块之间,并与所述后处理模块相连接,用于在所述消息不需要进行预处理和特性处理时,直接传输给所述后处理模块;第四判断模块,设置在所述过滤模块与所述预处理模块之间,并与所述获取模块相连接,用于在所述消息不需要进行后续处理时,直接给所述获取模块提供反馈。
又如,所述过滤模块还可以设置判断单元,用于在***生成紧急事件的消息时,控制过滤处理步骤和后续步骤的终止执行。
综上,本发明的消息泵***和方法在处理流程上增加消息处理的层次感来使开发人员能按需地控制消息处理循环流程的长短;通过设计有特色的消息队列,使得开发人员可以在需要的位置***或修改对列中的消息内容;并充分考虑各窗体处理消息的共性和个性需求。这样就克服了已有技术的不足,实现灵活高效的消息泵。同时本发明中的消息队列是由标准C程序编写,与操作***相关的只有同步操作的两个函数,大大增强了代码的可移植性。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种消息泵方法,其包括以下步骤:
A1、预设置各消息的第一共性;所述共性是各种不同类型的消息均需执行的操作、或同一类型的各消息均需执行的操作;
A2、获取消息队列的头消息指针,复制其所指向的头消息,作为当前处理的消息;
A3、对所述消息进行过滤处理,判断是否为该过滤处理步骤和后续步骤设置返回标识和/或释放标识,并执行相应设置,然后执行返回判断步骤;所述后续步骤包括预处理步骤和特性处理步骤;所述返回判断步骤为:判断是否存在所述返回标识,是则执行释放判断步骤,否则进入下一步骤;
A4、对所述消息进行预处理,处理所述消息的第一共性,执行所述返回判断步骤;
A5、对所述消息进行特性处理,执行释放判断步骤;所述释放判断步骤为:判断是否存在释放标识,是则从所述消息队列中移除所述头消息;
其中,所述消息泵为讯息的流程处理过程。
2.根据权利要求1所述的消息泵方法,其特征在于,步骤A4之前,还执行步骤:根据所述第一共性,判断是否需要对所述消息进行预处理,否则直接执行步骤A5。
3.根据权利要求1所述的消息泵方法,其特征在于,步骤A1还包括:预设置各消息的特性;所述特性是各种消息需执行的特有操作;
并且,步骤A5之前,还执行步骤:根据所述特性,判断是否需要对所述消息进行特性处理,否则直接执行释放判断步骤。
4.根据权利要求1所述的消息泵方法,其特征在于,步骤A1还包括:预设置各消息的第二共性;
步骤A3中,所述后续步骤还包括后处理步骤;
步骤A5具体包括步骤:对所述消息进行特性处理,执行返回判断步骤;
并且,步骤A5之后还执行以下步骤:A6、对所述消息进行后处理,处理所述消息的第二共性,执行释放判断步骤。
5.根据权利要求1所述的消息泵方法,其特征在于,该方法还包括以下步骤:A0、为某一紧急事件在消息队列生成一个头消息,或修改消息队列头消息的内容为所述紧急事件;
并且,步骤A2和步骤A3之间,还包括以下步骤:判断是否发生所述紧急事件,是则直接执行步骤A2,或在步骤A3中,对当前处理的消息进行过滤处理时,为该过滤处理步骤和/或后续步骤设置返回标识;否则继续执行步骤A3。
6.根据权利要求1至5任一所述的消息泵方法,其特征在于,步骤A3中,仅为该过滤处理步骤或任一后续步骤设置所述返回标识和/或所述释放标识。
7.一种消息泵***,其特征在于,包括设置模块、获取模块、过滤模块、预处理模块、特性处理模块;
所述设置模块与所述预处理模块相连接,用于设置各消息的第一共性;所述共性是各种不同类型的消息均执行的操作、或同一类型的各消息均执行的操作;
所述获取模块分别与所述过滤模块、所述预处理模块、所述特性处理模块相连接,用于获取消息队列的头消息指针,复制其所指向的头消息,作为当前处理的消息;
所述过滤模块与所述预处理模块相连接,用于对所述消息进行过滤处理,判断是否为该过滤处理步骤和后续步骤设置返回标识和/或释放标识,并执行相应设置,然后执行返回判断步骤,控制过滤处理步骤和后续步骤的执行;
所述预处理模块与所述特性处理模块相连接,用于对所述消息进行第一共性处理;
所述特性处理模块用于对所述消息进行特性处理;
其中,所述消息泵为讯息的流程处理过程。
8.根据权利要求7所述的消息泵***,其特征在于,该***还包括后处理模块,其分别与所述设置模块、所述获取模块、所述特性处理模块相连接,用于对所述消息进行第二共性处理;并且,所述设置模块还用于设置各消息的特性和第二共性;所述特性是各种消息需执行的特有操作。
9.根据权利要求8所述的消息泵***,其特征在于,该***还至少包括下列各判断模块其中之一:
第一判断模块,设置在所述过滤模块与所述预处理模块之间,并与所述特性处理模块相连接,用于在所述消息不需要进行预处理时,直接传输给所述特性处理模块;
第二判断模块,设置在所述预处理模块与所述特性处理模块之间,并与所述后处理模块相连接,用于在所述消息不需要进行特性处理时,直接传输给所述后处理模块;
第三判断模块,设置在所述过滤模块与所述预处理模块之间,并与所述后处理模块相连接,用于在所述消息不需要进行预处理和特性处理时,直接传输给所述后处理模块;
第四判断模块,设置在所述过滤模块与所述预处理模块之间,并与所述获取模块相连接,用于在所述消息不需要进行后续处理时,直接给所述获取模块提供反馈。
10.根据权利要求7所述的消息泵***,其特征在于,所述过滤模块还设置判断单元,用于在***生成紧急事件的消息时,控制过滤处理步骤和后续步骤的终止执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710125737 CN101211275B (zh) | 2007-12-25 | 2007-12-25 | 一种消息泵方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710125737 CN101211275B (zh) | 2007-12-25 | 2007-12-25 | 一种消息泵方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101211275A CN101211275A (zh) | 2008-07-02 |
CN101211275B true CN101211275B (zh) | 2013-09-18 |
Family
ID=39611328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710125737 Expired - Fee Related CN101211275B (zh) | 2007-12-25 | 2007-12-25 | 一种消息泵方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101211275B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535428B (zh) * | 2021-07-09 | 2023-05-23 | 中星电子股份有限公司 | 请求消息和响应消息的处理方法、装置、设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635781A (zh) * | 2003-12-29 | 2005-07-06 | 北京中视联数字***有限公司 | 一种数字电视接收机中间件消息统一处理方法 |
CN1700336A (zh) * | 2004-02-27 | 2005-11-23 | 索尼株式会社 | 信息处理设备、方法及程序 |
-
2007
- 2007-12-25 CN CN 200710125737 patent/CN101211275B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1635781A (zh) * | 2003-12-29 | 2005-07-06 | 北京中视联数字***有限公司 | 一种数字电视接收机中间件消息统一处理方法 |
CN1700336A (zh) * | 2004-02-27 | 2005-11-23 | 索尼株式会社 | 信息处理设备、方法及程序 |
Also Published As
Publication number | Publication date |
---|---|
CN101211275A (zh) | 2008-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684057B (zh) | 任务处理方法、装置和存储介质 | |
CN106250100B (zh) | ***逻辑控制方法及装置 | |
CN111708520B (zh) | 应用构建方法、装置、电子设备及存储介质 | |
CN109445886A (zh) | 一种界面显示方法、***及终端设备 | |
CN101415258A (zh) | 手机下载器的下载实现方法 | |
CN104350453A (zh) | 用于支持图标操作的终端和图标操作方法 | |
CN103208046A (zh) | 基于交互式动态流程图的工作流引擎架构方法和*** | |
EP2879046A1 (en) | Voice-assisted editing method and device for terminal | |
CN101777004A (zh) | 面向服务环境中基于模板实现bpel子流程复用的方法及*** | |
CN101097619A (zh) | 用于监控业务流程的***和方法 | |
US9632684B2 (en) | Method, device and terminal for generating logic service for embedded terminal | |
CN102609198A (zh) | 终端解锁并运行的方法及设备 | |
CN104199691A (zh) | 一种基于安卓平台的开机自启动apk的方法及终端 | |
CN101211275B (zh) | 一种消息泵方法和*** | |
CN101295243A (zh) | 嵌入式***的一窗口实现多页面的方法 | |
CN102455932B (zh) | 一种任务实例串行执行方法、装置及*** | |
CN101295246A (zh) | 一种从UML模型转换至SmartC模型的转换方法 | |
CN110516220A (zh) | 一种报表数据录入方法、***及相关设备 | |
US6658634B1 (en) | Logic power optimization algorithm | |
CN102375668B (zh) | 一种移动终端的窗口管理方法和装置 | |
CN106055404A (zh) | 一种清理后台应用程序的方法和装置 | |
CN113485853A (zh) | 信息交互方法、装置和电子设备 | |
CN110264035A (zh) | 工作流程的配置方法、装置、终端和存储介质 | |
CN102117277A (zh) | 一种文件编号编码的管理***和方法 | |
CN1588411A (zh) | 一种流程定制管理平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130918 Termination date: 20131225 |