40.muduo学习笔记之net_PollPoller.{h&cc}

1. 说明

  1. 一个PollPoller类,在muduo中主要用于调试,在DefaultPoller.cc指定是使用PollPoller还是EPollPoller

2. 变量

  1. 类型定义

    • PollFdList,pollfd结构的列表
  2. pollfds_

    • PollFdList类型,如果不懂这个的话要先学一下poll
  3. channels_

    • 继承过来的,map<int,Channel*>类型

3. 函数

1. 私有

  1. void fillActiveChannels(int numEvents,
    ChannelList* activeChannels) const;
    • 遍历pollfds_列表,如果有响应事件,设置这个Channel的revents_并加入到参数中的activeChannels列表中

2. 公有(除了构造都是重载)

  1. 构造

    • 赋值EventLoop对象loop_
  2. 析构

    • 默认析构
  3. Timestamp poll(int timeoutMs, ChannelList* activeChannels)

    • 通过poll()调用,调用私有函数fillActiveChannels()把活跃的通道加入到参数activeChannels中
  4. void updateChannel(Channel* channel) override;

    • 如果这个channel不在poll队列中就加入,并把下标设置一下.在的话就更新一下
  5. void removeChannel(Channel* channel) override;

    • 总之就是通过一系列操作把这个channel删除了,从关注的channel中删除,从poll中删除这个关注事件
    • 这里要注意从poll中删除,不能简单的pollfds_.erase(),因为每个都有对应的下标,erase的话就都变了,要把它移动到队尾,然后pop_back(),具体看代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值