青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Error

C++博客 首頁 新隨筆 聯系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks
相關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版本錯誤也不會被漏掉,,,
關于事件的封裝,在這里其實已經分層了,,,

這里是第一層:
1struct tagDataHead
2{
3    WORD                            wDataSize;                            //數據大小
4    WORD                            wIdentifier;                        //類型標識
5    DWORD                            dwInsertTime;                        //插入時間
6}
;
這一層實際上是由CDataStorage負責打包管理,在CQueueServiceEvent執行PostTimerEvent操作的時候會在內部調用CQueueService的add最終調用到CDataStrorage的Add來打包數據,這里的結構也是非常像網絡數據包|- len -|- type -|- data -|。
在來看Post這一層做的數據打包:
1//定時器事件
2struct NTY_TimerEvent
3{
4    WORD                            wTimerID;                            //定時器 ID
5    WPARAM                            wBindParam;                            //綁定參數
6}
;
|- len -|- type -|- sub protocl -|。
其他事件的打包過程都是類似的:
 1//數據庫請求事件
 2struct NTY_DataBaseEvent
 3{
 4    WORD                            wIndex;                                //對象索引
 5    WORD                            wRoundID;                            //對象標識
 6    WORD                            wRequestID;                            //請求標識
 7}
;
 8
 9//網絡應答事件
10struct NTY_SocketAcceptEvent
11{
12    WORD                            wIndex;                                //連接索引
13    WORD                            wRoundID;                            //連接標識
14    DWORD                            dwClientIP;                            //連接地址
15}
;
16
17//網絡讀取事件
18struct NTY_SocketReadEvent
19{
20    WORD                            wIndex;                                //連接索引
21    WORD                            wRoundID;                            //連接標識
22    WORD                            wDataSize;                            //數據大小
23    CMD_Command                        Command;                            //命令信息
24}
;
25
26//網絡關閉事件
27struct 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 閱讀(1677) 評論(0)  編輯 收藏 引用 所屬分類: 網狐棋牌源碼分析
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区三区久久精品| 欧美精品一区在线播放| 国产精品国产亚洲精品看不卡15| 最新中文字幕一区二区三区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产欧美日韩视频| 午夜精品久久久久久99热| 亚洲在线观看免费视频| 国产欧美一区二区三区在线老狼| 久久精品最新地址| 久久九九精品99国产精品| 亚洲国产精品一区二区www| 最近中文字幕日韩精品 | 欧美黄色视屏| 亚洲免费网址| 欧美一区二区在线视频| 亚洲福利视频免费观看| 91久久黄色| 国产日韩欧美高清| 欧美69视频| 欧美三级黄美女| 久久久久成人精品| 欧美二区在线播放| 亚洲男人第一av网站| 久久蜜桃香蕉精品一区二区三区| 亚洲人成在线影院| 午夜精品久久久久久久99水蜜桃 | 一区二区三区 在线观看视频| 亚洲香蕉成视频在线观看| 在线看成人片| 一个人看的www久久| 韩日精品视频一区| 日韩一级免费观看| 亚洲国产人成综合网站| 宅男66日本亚洲欧美视频 | 欧美激情一区二区三区在线视频| 亚洲一区视频在线观看视频| 久久综合色影院| 亚洲欧美日韩另类| 欧美aⅴ99久久黑人专区| 久久国产一区二区| 午夜久久黄色| 亚洲精品午夜精品| 韩国欧美国产1区| 亚洲视频在线观看一区| 亚洲肉体裸体xxxx137| 亚洲欧美视频在线| 亚洲午夜精品久久| 嫩草国产精品入口| 久久天天狠狠| 国产日韩成人精品| 中文一区二区在线观看| 一区二区三区福利| 欧美久久九九| 亚洲国产精品成人| 91久久极品少妇xxxxⅹ软件| 午夜欧美大片免费观看| 午夜精品久久久久影视| 欧美激情欧美狂野欧美精品| 免费视频一区二区三区在线观看| 国产欧美日本| 欧美一级二级三级蜜桃| 欧美亚洲综合久久| 国产美女精品视频| 亚洲视频在线观看免费| 亚洲欧美视频在线观看视频| 欧美视频在线免费看| 日韩亚洲不卡在线| 亚洲综合首页| 国产精品一区一区| 午夜精品福利电影| 久久精品国产免费观看| 国产一区日韩二区欧美三区| 性欧美激情精品| 久久最新视频| 亚洲激情网站免费观看| 欧美高清视频一区| 日韩小视频在线观看| 亚洲欧美99| 国产视频精品免费播放| 欧美在线视频一区二区| 欧美国产免费| av不卡在线| 国产欧美欧美| 美女啪啪无遮挡免费久久网站| 欧美激情va永久在线播放| 亚洲人成网站影音先锋播放| 欧美巨乳波霸| 亚洲欧美日韩一区二区在线 | 亚洲一本大道在线| 久久精品最新地址| 亚洲激情一区二区| 国产精品久久久久久久久久久久| 午夜亚洲福利在线老司机| 免费视频一区二区三区在线观看| 日韩视频国产视频| 国产日本欧美一区二区| 男女精品网站| 亚洲欧美电影在线观看| 欧美激情四色| 翔田千里一区二区| 亚洲韩国青草视频| 国产精品乱码久久久久久| 久久久久久久国产| 一区二区三区黄色| 男人的天堂成人在线| 亚洲视频一区二区| 欧美高清影院| 国产视频在线观看一区二区| 久久久国产亚洲精品| 亚洲国产综合91精品麻豆| 亚洲专区一区| 亚洲国产清纯| 国产一区二区三区成人欧美日韩在线观看 | 欧美大片在线观看一区| 亚洲综合首页| 欧美激情一区二区三区在线| 欧美在线亚洲在线| av不卡在线看| 亚洲激情欧美激情| 国产亚洲精品久久久久久| 欧美日韩一区二区三区在线| 免费成人av在线看| 久久国产精品毛片| 亚洲一区二区高清视频| 91久久久精品| 亚洲第一区中文99精品| 久色婷婷小香蕉久久| 欧美在线中文字幕| 亚洲欧美视频在线观看视频| 9i看片成人免费高清| 亚洲国产91精品在线观看| 国产自产女人91一区在线观看| 国产精品劲爆视频| 欧美特黄一级大片| 欧美日韩免费在线| 欧美精品一区二区三区一线天视频| 久久久久在线观看| 欧美一区二区在线| 欧美一区二区高清在线观看| 午夜欧美不卡精品aaaaa| 亚洲欧美高清| 午夜精品视频在线| 欧美在线观看www| 欧美呦呦网站| 久久久亚洲欧洲日产国码αv | 亚洲国产日韩欧美| 亚洲国产经典视频| 亚洲国产成人精品久久| 欧美成人影音| 亚洲第一精品夜夜躁人人躁| 欧美激情区在线播放| 亚洲二区免费| 亚洲精品日韩在线观看| 亚洲美女免费精品视频在线观看| 日韩天天综合| 亚洲综合色在线| 欧美在线一二三| 久久久水蜜桃| 欧美激情按摩| 欧美午夜一区| 国产专区欧美精品| 黑人极品videos精品欧美裸| 在线成人免费观看| 亚洲精品美女在线| 亚洲一区久久久| 久久亚洲欧美国产精品乐播| 欧美大片在线观看| 日韩视频免费观看| 欧美一级片一区| 欧美freesex8一10精品| 国产精品h在线观看| 国产一区二区三区久久久久久久久 | 一区二区三区在线免费视频 | 欧美精品免费视频| 国产精品主播| 在线观看视频一区二区欧美日韩 | 国产精品二区在线观看| 国产一区视频在线观看免费| 亚洲国产一区二区三区青草影视| 亚洲私人影吧| 欧美成人黑人xx视频免费观看| 91久久线看在观草草青青| 香蕉久久国产| 欧美激情精品久久久久久变态| 国产精品男人爽免费视频1| 亚洲第一久久影院| 亚洲欧美日韩在线不卡| 免费日本视频一区| 亚洲在线第一页| 欧美国产一区二区| 国内精品久久久久影院薰衣草| 亚洲精品1区2区| 久久久久久69| 一本综合久久| 欧美日本国产| 亚洲国产精品悠悠久久琪琪| 久久aⅴ国产欧美74aaa| 一区二区三区成人| 欧美电影免费观看大全|