您的位置:首页 > 其它

协议消息与应用程序事件的统一分发框架

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: