青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
Error
C++博客
首頁
新隨筆
聯系
聚合
管理
217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(5)
給我留言
查看公開留言
查看私人留言
隨筆分類
《并發的藝術》(1)
agg(2)
android(2)
boost(3)
boost::asio(8)
boost::iostream(3)
C/C++技巧(9)
CEGUI
chromium(1)
cmake 莫糾結(2)
cocos2d-x(10)
cpp 1x and boost(1)
Duilib(3)
emacs學的不容易(1)
facebook: thrift(1)
gtest(1)
iocp(2)
java(2)
jsp(1)
linux(3)
lock free(1)
lua(3)
mysql(1)
OpenSsl(1)
oracle
python其實是shell(1)
QT(7)
SOUI源碼分析
SQL(2)
websocket(1)
why programs fail - 系統優化調試指南(2)
win32 gui(2)
從零開始寫棋牌游戲平臺(60)
代碼片段分享(2)
調試技術(1)
理解stl(2)
論壇大戰(1)
沒事瞎測測(1)
面試小算法(2)
面向模式的軟件體系結構(1)
如何提煉代碼
網狐棋牌源碼分析(5)
為什么用boost(2)
學習、工作日志(1)
隨筆檔案
2017年10月 (1)
2017年7月 (1)
2017年6月 (2)
2017年5月 (1)
2017年4月 (5)
2017年3月 (6)
2017年1月 (1)
2016年12月 (9)
2016年10月 (1)
2016年7月 (2)
2016年3月 (3)
2016年2月 (1)
2015年11月 (1)
2015年9月 (3)
2015年8月 (5)
2015年7月 (2)
2015年6月 (4)
2015年5月 (6)
2015年4月 (7)
2015年3月 (5)
2015年2月 (1)
2015年1月 (8)
2014年12月 (4)
2014年11月 (4)
2014年10月 (6)
2014年9月 (3)
2014年8月 (3)
2014年7月 (1)
2014年6月 (4)
2014年5月 (2)
2014年4月 (3)
2014年3月 (2)
2014年2月 (9)
2014年1月 (17)
2013年12月 (7)
2013年10月 (6)
2013年8月 (3)
2013年7月 (4)
2013年5月 (1)
2013年4月 (10)
2013年3月 (12)
2013年2月 (4)
2012年12月 (4)
2012年11月 (8)
2012年10月 (7)
2012年9月 (3)
2012年8月 (2)
2012年7月 (5)
2012年6月 (5)
2011年9月 (1)
2011年7月 (1)
2011年5月 (1)
文章分類
about boost(3)
cmake 亂談(2)
cygwin(3)
DirectUI - UIlib分析
FFMPEG的坑(1)
git(1)
google(1)
HGE 也來玩玩(1)
linux(3)
linux學習筆記
MySql(1)
oracle(1)
P2P(1)
socket(1)
stl陷阱與技巧(5)
SVN(1)
VC路上的坑(11)
windows 使用技巧(1)
WTL 征程(1)
XML(1)
高性能話題(1)
網狐棋牌源碼分析(13)
無鎖算法(1)
一步一個腳印學QT(6)
文章檔案
2014年3月 (1)
2013年3月 (1)
2013年2月 (8)
2013年1月 (5)
2012年12月 (4)
2012年11月 (5)
2012年6月 (1)
2012年3月 (2)
2012年2月 (1)
2012年1月 (2)
2011年12月 (6)
2011年11月 (2)
2011年10月 (1)
2011年9月 (2)
2011年8月 (1)
2011年7月 (7)
2011年6月 (10)
2011年5月 (2)
相冊
網狐棋牌源碼分析
搜索
最新評論
1.?re: Qt5 CMAKE編譯簡記
樓主樓主 這里有只菜鳥有問題
去哪里設置CMAKE_PREFIX_PATH到qtbase目錄啊??
--amber
2.?re: minidump吐出來的dump文件為空,文件大小為0[未登錄]
@網友
duilib的Dump對象里邊有一個臨界區對象,有幾個函數是被保護起來的。注釋掉就好了。
--enic
3.?re: minidump吐出來的dump文件為空,文件大小為0
去掉多線程保護是什么意思?怎么去掉?
--網友
4.?re: cocos2dx-quick 01
評論內容較長,點擊標題查看
--Enic
5.?re: 星座物語客戶端分析---01物品編輯器
評論內容較長,點擊標題查看
--Enic
閱讀排行榜
1.?Qt5 CMAKE編譯簡記(22250)
2.?centos編譯安裝git最新版本(12414)
3.?轉 C++11與Unicode及使用標準庫進行UTF-8、UTF-16、UCS2、UCS4/UTF-32編碼轉換 utf8轉utf16 utf16轉utf8(10976)
4.?cmake 導入鏈接庫(8375)
5.?Duilib在MFC中使用(8314)
評論排行榜
1.?gtest編譯出錯: 編譯時,error C2977 "std::tuple" too many template arguments問題的解決辦法(3)
2.?C++多重繼承時,用基類指針delete有坑(2)
3.?C++ 11 新語法:只讀遍歷(2)
4.?(轉)C宏技巧匯總(2)
5.?擼UI庫:01(2)
CQueueServiceEvent初步分析
相關UML:
代碼分析:
首先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版本錯誤也不會被漏掉,,,
關于事件的封裝,在這里其實已經分層了,,,
這里是第一層:
1
struct
tagDataHead
2
{
3
WORD wDataSize;
//
數據大小
4
WORD wIdentifier;
//
類型標識
5
DWORD dwInsertTime;
//
插入時間
6
}
;
這一層實際上是由CDataStorage負責打包管理,在CQueueServiceEvent執行PostTimerEvent操作的時候會在內部調用CQueueService的add最終調用到CDataStrorage的Add來打包數據,這里的結構也是非常像網絡數據包|- len -|- type -|- data -|。
在來看Post這一層做的數據打包:
1
//
定時器事件
2
struct
NTY_TimerEvent
3
{
4
WORD wTimerID;
//
定時器 ID
5
WPARAM wBindParam;
//
綁定參數
6
}
;
|- len -|- type -|- sub protocl -|。
其他事件的打包過程都是類似的:
1
//
數據庫請求事件
2
struct
NTY_DataBaseEvent
3
{
4
WORD wIndex;
//
對象索引
5
WORD wRoundID;
//
對象標識
6
WORD wRequestID;
//
請求標識
7
}
;
8
9
//
網絡應答事件
10
struct
NTY_SocketAcceptEvent
11
{
12
WORD wIndex;
//
連接索引
13
WORD wRoundID;
//
連接標識
14
DWORD dwClientIP;
//
連接地址
15
}
;
16
17
//
網絡讀取事件
18
struct
NTY_SocketReadEvent
19
{
20
WORD wIndex;
//
連接索引
21
WORD wRoundID;
//
連接標識
22
WORD wDataSize;
//
數據大小
23
CMD_Command Command;
//
命令信息
24
}
;
25
26
//
網絡關閉事件
27
struct
NTY_SocketCloseEvent
28
{
29
WORD wIndex;
//
連接索引
30
WORD wRoundID;
//
連接標識
31
DWORD dwClientIP;
//
連接地址
32
DWORD dwConnectSecond;
//
連接時間
33
}
;
還是一樣,一句話總結CQueueServiceEvent:
線程安全的接受各種異步事件,并打包封裝好以后插入到關聯的制定IQueueService中.
posted on 2011-06-02 14:36
Enic
閱讀(1683)
評論(0)
編輯
收藏
引用
所屬分類:
網狐棋牌源碼分析
只有注冊用戶
登錄
后才能發表評論。
相關文章:
協議分析-服務器接收
協議分析:GamePlaza的網絡協議(收)
工具類:收發包輔助類 CSendPacketHelpr CRecvPacketHelpr
成也蕭何敗也肖何? IUnknowEx
服務引擎概覽
異步引擎
CEventService
DataBaseEngine
TCPSocketEnging分析
TimerEngine
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © Enic
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
欧美国产日韩免费
|
亚洲一区免费看
|
国产精品av一区二区
|
欧美激情视频一区二区三区免费
|
久久久精品动漫
|
免费观看成人网
|
欧美第一黄网免费网站
|
欧美激情中文字幕乱码免费
|
欧美日韩在线视频观看
|
国产精品区一区二区三区
|
国产偷国产偷精品高清尤物
|
在线日韩日本国产亚洲
|
亚洲精品中文字幕女同
|
亚洲欧美日韩国产一区二区
|
欧美夜福利tv在线
|
蜜臀va亚洲va欧美va天堂
|
亚洲黄色高清
|
亚洲手机在线
|
久久手机精品视频
|
欧美三级小说
|
好看的亚洲午夜视频在线
|
99国产精品久久久久久久
|
亚洲免费一在线
|
蜜月aⅴ免费一区二区三区
|
亚洲三级色网
|
欧美亚洲视频在线看网址
|
久久亚洲欧美国产精品乐播
|
欧美午夜在线视频
|
亚洲日本aⅴ片在线观看香蕉
|
亚洲专区在线
|
亚洲电影专区
|
久久精品国产久精国产一老狼
|
亚洲欧美亚洲
|
男人插女人欧美
|
国产日韩专区
|
亚洲欧美大片
|
亚洲人成小说网站色在线
|
久久国内精品自在自线400部
|
欧美日韩免费精品
|
亚洲黄一区二区
|
卡通动漫国产精品
|
亚洲欧美日韩视频二区
|
欧美日韩精品一本二本三本
|
在线免费观看欧美
|
久久精品亚洲
|
亚洲欧美怡红院
|
国产精品成人一区二区
|
亚洲精品一区二区三区婷婷月
|
久久狠狠一本精品综合网
|
亚洲人成网站在线观看播放
|
久久综合国产精品台湾中文娱乐网
|
国产精品视频精品视频
|
亚洲一区二区欧美
|
亚洲日本一区二区
|
欧美激情一区二区三区在线
|
午夜精品一区二区三区在线视
|
欧美精品在线观看
|
亚洲精品国产精品国自产观看
|
美女亚洲精品
|
久久综合九色综合欧美狠狠
|
尤物精品国产第一福利三区
|
久久精品人人做人人综合
|
性久久久久久
|
一区在线播放
|
欧美激情亚洲一区
|
欧美激情一区二区三区四区
|
最新中文字幕一区二区三区
|
亚洲福利国产
|
欧美日韩国产123
|
一区二区免费在线播放
|
一本一道久久综合狠狠老精东影业
|
毛片av中文字幕一区二区
|
亚洲人成高清
|
在线一区亚洲
|
国内精品久久久久影院 日本资源
|
欧美在线三区
|
久久亚洲国产精品一区二区
|
亚洲黄网站在线观看
|
麻豆精品视频在线观看视频
|
美日韩丰满少妇在线观看
|
亚洲乱码精品一二三四区日韩在线
|
亚洲国产成人porn
|
欧美亚州在线观看
|
久久国产精彩视频
|
久久久久久综合
|
亚洲精品中文在线
|
亚洲欧美国产三级
|
尤物在线精品
|
一区二区欧美国产
|
国产一区在线播放
|
亚洲精品中文字幕有码专区
|
国产精品一区二区久久
|
欧美成人久久
|
国产精品毛片在线
|
亚洲第一精品电影
|
国产视频欧美
|
亚洲日本乱码在线观看
|
国产日韩视频
|
亚洲精品久久久久久久久久久
|
国产精品视频免费观看www
|
免费久久99精品国产
|
欧美色精品天天在线观看视频
|
久久亚洲二区
|
国产精品久久久久高潮
|
欧美国产日本
|
国产午夜精品理论片a级探花
|
亚洲国产老妈
|
一区二区三区在线不卡
|
一本色道久久综合亚洲91
|
亚洲福利国产精品
|
香蕉成人久久
|
亚洲综合国产
|
欧美久久一级
|
欧美福利影院
|
韩国一区二区三区美女美女秀
|
一级日韩一区在线观看
|
亚洲精品国产精品国自产观看浪潮
|
中文国产成人精品久久一
|
欧美日韩1区2区
|
美女在线一区二区
|
国产一区二区三区四区
|
亚洲一区美女视频在线观看免费
|
日韩视频一区二区在线观看
|
久久精品国产一区二区电影
|
久久久久成人网
|
国产精品ⅴa在线观看h
|
亚洲日本va在线观看
|
亚洲电影av
|
久久精品视频在线免费观看
|
欧美一区二区黄色
|
国产精品一区在线播放
|
亚洲视频在线看
|
夜夜嗨av一区二区三区免费区
|
久久本道综合色狠狠五月
|
欧美在线啊v一区
|
国产美女一区二区
|
亚洲综合精品
|
欧美一区二区日韩一区二区
|
国产精品福利片
|
亚洲一区二区三区免费在线观看
|
亚洲视频一区二区在线观看
|
欧美久色视频
|
一区二区高清视频
|
在线中文字幕一区
|
欧美性做爰毛片
|
亚洲男人第一网站
|
欧美一级播放
|
好吊色欧美一区二区三区视频
|
香蕉视频成人在线观看
|
久久一区二区三区超碰国产精品
|
国产一区二区三区久久
|
久久国产精品一区二区三区四区
|
久久黄色影院
|
亚洲国产成人在线
|
欧美福利精品
|
亚洲伦理一区
|
亚洲欧美色婷婷
|
国产麻豆91精品
|
久久久久久久久蜜桃
|
欧美大片专区
|
一区二区免费看
|
国产精品一区三区
|
久久字幕精品一区
|
9久草视频在线视频精品
|
亚洲砖区区免费
|
国产午夜亚洲精品羞羞网站
|
久久精品国产久精国产思思
|
亚洲国产成人在线视频
|
亚洲视频一区在线
|
国产亚洲综合在线
|
欧美fxxxxxx另类
|
99天天综合性
|
久久综合网络一区二区
|
亚洲欧洲综合另类在线
|
欧美日韩美女在线观看
|
校园春色综合网
|
亚洲国产精品高清久久久
|
欧美一区二区精品久久911
|
在线成人www免费观看视频
|
欧美精品日韩
|
欧美一区二区日韩
|
亚洲黄色毛片
|
老司机亚洲精品
|
亚洲自拍偷拍福利
|
亚洲激情视频在线播放
|
国产精品网站一区
|
欧美大片在线影院
|
久久久99久久精品女同性
|
久久精品国语
|
亚洲日本aⅴ片在线观看香蕉
|
国产精品久久网站
|
久久中文字幕导航
|
亚洲婷婷在线
|
激情欧美一区二区三区在线观看
|
欧美日本高清
|
免费看av成人
|
久久久久在线
|
亚洲女与黑人做爰
|
亚洲免费成人av电影
|
欧美大片在线看
|