查看: 311|回复: 1

网狐棋牌(三) 调度引擎初步分析(3)

[复制链接]

7

主题

34

帖子

199

积分

vip会员

Rank: 1

积分
199
发表于 2020-3-27 16:11:08 | 显示全部楼层 |阅读模式
这个函数中一个很重要的参数:wIdentifier;
可以来追溯一下他的源头:

1 网狐棋牌(三) 调度引擎初步分析(3) // 数据消息
2 网狐棋牌(三) 调度引擎初步分析(3) void CQueueService::OnQueueServiceThread( const tagDataHead & DataHead,  void * pBuffer, WORD wDataSize)
3 网狐棋牌(三) 调度引擎初步分析(3) {
4网狐棋牌(三) 调度引擎初步分析(3)    ASSERT(m_pIQueueServiceSink!=NULL);
5网狐棋牌(三) 调度引擎初步分析(3)    try   
6网狐棋牌(三) 调度引擎初步分析(3)    {
7网狐棋牌(三) 调度引擎初步分析(3)        m_pIQueueServiceSink->OnQueueServiceSink(DataHead.wIdentifier,pBuffer,DataHead.wDataSize,DataHead.dwInsertTime);
8网狐棋牌(三) 调度引擎初步分析(3)    }
9网狐棋牌(三) 调度引擎初步分析(3)    catch (网狐棋牌(三) 调度引擎初步分析(3)) {}
10网狐棋牌(三) 调度引擎初步分析(3)    return;
11网狐棋牌(三) 调度引擎初步分析(3)}

可以看见他是直接保存在最底层的那个DataStroage里边的,这个在上一章分析中可以看到。(个引擎利用CQueueServiceEvent  Post数据的时候就携带了类型信息)

另外一个要注意的点是对socket事件的处理,我之前认为调度引擎组合了一个socket引擎是一个设计缺陷,应为这里的在处理socket read事件的时候如果异常了直接直接使用引擎来关闭socket而不是调用socket sink的指定接口。猜想也许是不希望客户端直接处理socket句柄吧,,,




还是用一句话描述下调度引擎:

调度引擎的工作可以这样描述消息汇总、派发。其他引擎通过CQueueServiceEvent将消息post到调度引擎上来(通过共享同一个CQueueService),然后由调度引擎集中派发出去,,,

回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部