协议消息与应用程序事件的统一分发框架
2011-04-23 14:33
260 查看
Herm实现了一个Dispatcher来分发协议消息和程序中的自动事件。Dispatcher管理一个泛型的处理器Handler,不同的需求可以实现不通的Handler。Herm从通用性的角度,实现了支持IMsgHandler&IEvtHandler,分别支持协议消息和应用事件的分发处理器。
struct IMsgHandler
{
virtual void Handle(const char* buf, int len, const void* param) = 0;
};
MsgDispatcher根据消息ID(Herm里将ID设成Type&Code),定位到Handler,将消息通过buf&len,传给Handler。
struct IEvtHandler
{
virtual void Handle(int cond, int subCond, const void* param) = 0;
};
EvtDispatcher根据事件ID(Herm里也将ID设成Type&Code),定位到Handler,将事件的条件通过cond&subCond传给Handler。
一个EvtDispatcher实现方法如下,
class EvtDispatcher : public Dispatcher<IEvtHandler>
{
public:
void Dispatch(int type, int code, int cond, int subCode, const void* param)
{
const IEvtHandler* handler = GetHandler();
handler->Handle(cond, subCode, param);
}
};
MsgDispatcher也类似。 应用程序也可以很简单地定制出自己的Handler.
struct IMsgHandler
{
virtual void Handle(const char* buf, int len, const void* param) = 0;
};
MsgDispatcher根据消息ID(Herm里将ID设成Type&Code),定位到Handler,将消息通过buf&len,传给Handler。
struct IEvtHandler
{
virtual void Handle(int cond, int subCond, const void* param) = 0;
};
EvtDispatcher根据事件ID(Herm里也将ID设成Type&Code),定位到Handler,将事件的条件通过cond&subCond传给Handler。
一个EvtDispatcher实现方法如下,
class EvtDispatcher : public Dispatcher<IEvtHandler>
{
public:
void Dispatch(int type, int code, int cond, int subCode, const void* param)
{
const IEvtHandler* handler = GetHandler();
handler->Handle(cond, subCode, param);
}
};
MsgDispatcher也类似。 应用程序也可以很简单地定制出自己的Handler.
相关文章推荐
- 协议消息与应用程序事件的统一分发框架
- 动脑学院学习笔记-EventBus 3.0核心原理,打造事件分发框架
- Android View框架总结(九)KeyEvent事件分发机制
- Gaea是支持跨平台具有高并发、高性能、高可靠性,并提供异步、多协议、事件驱动的中间层服务框架
- (十)(3) Z-Stack协议中事件和消息分析
- VCL框架学习之:如何将Windows消息与控件事件挂接起来
- 事件分发框架
- 饿了么开源的Android跨进程事件分发框架HermesEventBus
- 安卓事件分发框架
- 事件触发、分发、observer机制----消息总线架构模式(中介者(调停者)设计模式)
- Netty 异步的、事件驱动的网络应用程序框架和工具
- Symbian上往UI框架应用程序发送消息
- Android View框架总结(九)KeyEvent事件分发机制
- Android JB 4.2 中InputManager 分发键盘消息给应用程序的过程分析--2 未完待续。。。。
- 消息服务框架(MSF)应用实例之分布式事务三阶段提交协议的实现
- Android WebKit消息处理(二)Touch事件的分发处理
- Herm统一分发框架的分发各种对象的流程
- 异步通信与事件分发框架
- 基于id的游戏客户端事件分发(消息队列)
- android 消息分发框架 otto