事件系统无非就是,当这个事件发生时调用一个(些)函数来处理这个事件。
处理函数可能是多种类型的函数:
静态函数/全局函数
类的成员函数
ISlot 是函数对象,接受参数CParam.是处理函数的基类.
CSlotFreeFunction 用来描述静态函数
CSlotMemberFunction 用来描述类的成员函数
CSlotSubscriber 用来提供统一的接口供上层逻辑调用.
CEvent 表示事件
啥也不说了,先上图。
- 事件系统
接着上代码
创建事件,绑定函数
[cpp]
CEvent* m_pEvent = new kzlib::CEvent("test");
m_pEvent->Subscribe(kzlib::CSlotSubscriber(&CPageProject::Ontest,this));
[/cpp]
事件调用
[cpp]
kzlib::CParam args;
(*m_pEvent)(args);
[/cpp]