您的位置:首页 > Web前端 > React

Reactor

2016-03-13 13:19 555 查看

1.类图

不管设计模式,reactor中的Add/Del/Process就是SelectDemultiplexer(此次只关注此多路分发器)中的

+ AddHandler_:FD_SET 把EventHandler::GetHandle()放入select监听集。(还有poll/epoll等)

+ DelHandler_:FD_CLR

+ ProcessHandler:api select

检测到rd/wr/err就调用

EventHandler::HandleRd

EventHandler::HandleWr

EventHandler::HandleErr
  


2.Srv demo

 


3.简结

Ø obj:EventHandler

回调函数集

Ø Reactor::AddHandler

先把obj::m_handle对应的EventHandler::HandleCBxx放入map[obj::m_handle] = obj:EventHandler::HandleCBxx,再把obj::m_handle放入监听集中(select/poll/epoll)。

Ø Reactor::ProcessHandler

监听到了,找到对应的obj:EventHandler并执行。

Ø 扩展

在我们自己的app中,一个event对应一个fd。

fd0 = open()

fdn = open()

这样set/get event就可以用reactor了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: