我正在基于 Epoll 用 C++ 实现异步模式 Reactor。首先,我们将通过调用函数向 Reactor 注册文件描述符
template<typename Handle>
void Reactor::register(int descriptor, Handle handle){
//add this descriptor to epoll for monitoring
//store this handle with the key is the descriptor
}
然后,调用永远运行的方法 hand_events
void Reactor::handle_events(){
epoll_wait(..)
for(event in events){
//call the handle corresponding to the file descriptor return from epoll
//event.data.fd ==> handle
handle(...)
}
}
我的问题是如何在这种情况下组织存储模型:存储句柄,以及文件描述符和句柄之间的映射(是否有适合它的模式)
希望看到你的回答!