快捷导航
网站首页
疑难问答
Foreign
手游源码
端游源码
页游源码
手游单机
开启辅助访问
登录
or
注册
永久会员提供整站资源下载
游戏源码
»
源码论坛 BBS
›
疑难问答
›
用户交流
›
网狐棋牌(二) CQueueServiceEvent初步分析(1)
返回列表
查看:
259
|
回复:
1
网狐棋牌(二) CQueueServiceEvent初步分析(1)
[复制链接]
bcsx
bcsx
当前离线
积分
199
7
主题
34
帖子
199
积分
vip会员
vip会员, 积分 199, 距离下一级还需 9801 积分
vip会员, 积分 199, 距离下一级还需 9801 积分
积分
199
发消息
发表于 2020-3-27 16:05:47
|
显示全部楼层
|
阅读模式
代码分析:
首先CQueueServiceEvent这个名字很有诱惑,,,你感觉他是一个事件,其实不是。它实际的功能应该是一个带打包功能的事件队列,,,或者说是一个像指定的类似EventQueue的东东中投递事件。从接口上看,这个东东能投递TimerEvent DataBaseEvent SocketAcceptEvent SocketReadEvent SocketCloseEvent
应为它本身持有一个CQueueService指针,所以本身并不负责数据管理,只负责打包并添加到CQueueService实例中去。
先看定时器事件:
1
//定时器事件
2
bool PostTimerEvent(WORD wTimerID, WPARAM wBindParam)
3
{
4
//效验参数
5
ASSERT(m_pIQueueService!=NULL);
6
if (m_pIQueueService==NULL) return false;
7
8
//缓冲锁定
9
CThreadLockHandle BufferLockHandle(&m_BufferLock);
10
11
//投递消息
12
NTY_TimerEvent * pTimerEvent=(NTY_TimerEvent *)m_cbBuffer;
13
pTimerEvent->wTimerID=wTimerID;
14
pTimerEvent->wBindParam=wBindParam;
15
m_pIQueueService->AddToQueue(EVENT_TIMER,m_cbBuffer,sizeof(NTY_TimerEvent));
16
17
return true;
18
}
嗯哼,代码质量很高哈,,,
入口都有断言在debug阶段帮助暴露错误,断言之后还有if语句再次判断,这样即使release版本错误也不会被漏掉,,,
关于事件的封装,在这里其实已经分层了,,,
回复
使用道具
举报
返回列表
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
enginedx注册
本版积分规则
发表回复
回帖后跳转到最后一页
邮件留言:
游戏源码
返回顶部