C++ socket library中的事件管理者handler

2013年6月24日 由 Creater 留言 »

存在两个纯虚基类,也就是类似两个接口类。IEventHandler与ISocketHandler。

ISocketHandler管理的是文件描述符事件(当然更多的是套接字描述符,以类表示为Socket)。
IEventHandler管理的是Timer事件。

实现ISocketHandler接口类的基类为SocketHandler。SocketHandler通过select来获取描述符的可读,可写,出错事件,并以事件驱动形式来驱动Socket类,调用其中的回调函数,比如OnAccept,OnRead,OnLine等。

还有个基类SocketHandlerEp也是继承自SocketHandler来实现了接口,SocketHandlerEp与SocketHandler不同,SocketHandlerEp是通过epoll来分发事件的。

实现IEventHandler接口类的基类为EventHandler,EventHandler类不仅仅实现了IEventHandler的接口,而且继承了SocketHandler

class EventHandler : public SocketHandler,public IEventHandler

可以看出,要想同时管理Socket与timer则需要继承EventHandler 基类。

所以最主要的3个管理类为:SocketHandler,EventHandler,SocketHandlerEp。

广告位

发表评论

你必须 登陆 方可发表评论.