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

Focus on ACE

訂閱 ace-china
電子郵件:
瀏覽存于 groups.google.com 上的所有帖子

C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
  64 Posts :: 3 Stories :: 22 Comments :: 0 Trackbacks

ACE小技巧:在ACE_Acceptor框架中,自定義服務(wù)處理器的創(chuàng)建

Stone Jiang

ACE_Acceptor框架使對(duì)新連接的偵聽(tīng)變得容易,也使創(chuàng)建和激活新連接的ACE_Svc_Handler的派生類(lèi)變得容易。之前我們已經(jīng)了解了ACE_Svc_Handle::open()掛勾函數(shù)和服務(wù)處理器

初始化時(shí)它所扮演的角色。本文我們回退幾步,來(lái)了解服務(wù)處理器是如何實(shí)例化的以及我們?nèi)绾巫远x它的行為。

再看看ACE_Acceptor類(lèi),它是一個(gè)模板類(lèi),第一個(gè)模板參數(shù)ACE_Accetpor是代表與服務(wù)建立連接的處理器。當(dāng)新的連接建立時(shí),ACE_Acceptor調(diào)用make_svc_handler()掛勾函數(shù)來(lái)

實(shí)際創(chuàng)建的新建服務(wù)處理器對(duì)象。ACE_Acceptor::make_svc_handler()的實(shí)現(xiàn)如下:

template? < class ?SVC_HANDLE,ACE_PEER_ACCEPTOR_1 >
int
ACE_Acceptor
< SVC_HANDLE,?ACE_PEER_ACCEPTOR_2 > ::make_svc_handler(SVC_HANDLE *& ?sh)
{
??ACE_TRACE?(
" ACE_Acceptor<SVC_HANDLER,?ACE_PEER_ACCEPTOR_2>::make_svc_handler " );?? if ?(sh? == ? 0 )
????ACE_NEW_RETURN?(sh,
????????????????????SVC_HANDLER,
????????????????????
- 1 );?? // ?Set?the?reactor?of?the?newly?created?<SVC_HANDLER>?to?the?same
??
// ?reactor?that?this?<ACE_Acceptor>?is?using.
??sh -> reactor?( this -> reactor?());
??
return ? 0 ;

}

?

默認(rèn)的實(shí)現(xiàn)包括了兩步基本操作:
1.? 獲得一個(gè)新的SVC_HANLDER對(duì)象, 這里是使用的new運(yùn)算符分配的。
2.? 設(shè)置新的服務(wù)處理器的reactor指針為ACE_Accetpor使用的reactor的。

然而,如果應(yīng)用程序需要通過(guò)其它方式獲得SVC_HANDLER對(duì)象,而不是通過(guò)默認(rèn)的構(gòu)造函數(shù)那種動(dòng)態(tài)分配,這又該怎么辦呢?舉例來(lái)說(shuō),我們可能需要:
?. 從一個(gè)預(yù)分配的池中獲得SVC_HANDLER對(duì)象;
?. 為新創(chuàng)建的SVC_HANDLER傳入一些額外的信息
?. 使用單體的SVC_HANDLER

上面這些情形,我們都可以自定義make_svc_handler()掛勾函數(shù)來(lái)實(shí)現(xiàn)必要的行為。例如,假定我們新的處理器需要擁有一個(gè)處理所有對(duì)所有接收到的消息進(jìn)行集中處理的中心處理

器。這個(gè)中心處理器我們用類(lèi)Processor表示。我們需要每個(gè)服務(wù)處理器都擁有一個(gè)指向中心處理器的指針,而不是使Processor成為一個(gè)全局訪(fǎng)問(wèn)的指針(使用全局變量的種種弊端

本文不作詳述)。我們的解決辦法是: 從ACE_Accetor派生一個(gè)新類(lèi),這個(gè)新類(lèi)擁有Processor的指針作成員,并且,在創(chuàng)建新和服務(wù)處理器(Service)的時(shí)候,把這個(gè) Processor的

指針作參數(shù)傳進(jìn)去。

新的acceptor類(lèi)可以這樣定義:

class ?My_Acceptor?:? public ?ACE_Acceptor < Service,?ACE_SOCK_ACCEPTOR >
{
public :
??My_Acceptor?(Processor?
* processor)?:?processor_?(processor)? {?} ;
??
??
int ?make_svc_handler?(Service? *& sh)
????
{
??????
if ?(sh? == ? 0 )
????????ACE_NEW_RETURN?(sh,
????????????????????????Service?(
this -> processor_),
????????????????????????
- 1 );?????? // ?Set?the?reactor?of?the?newly?created?<SVC_HANDLER>?to?the?same
??????
// ??reactor?that?this?<ACE_Acceptor>?is?using.
??????sh -> reactor?( this -> reactor?());
??????
return ? 0 ;
????}


private :
??Processor?
* processor_;
}

?

就這樣,現(xiàn)在,當(dāng)My_Acceptor接受新連接的時(shí)候,make_svc_handler()掛勾函數(shù)分配一個(gè)新的處理器(Service),并把Processor*作為參數(shù)傳進(jìn)去。需要注意的事,盡管這里使用

的是這一個(gè)構(gòu)造函數(shù)Service(Processor*)。我們?nèi)孕枨鬄镾ervice類(lèi)定義默認(rèn)的構(gòu)造函數(shù),以滿(mǎn)足模板類(lèi)ACE_Acceptor的需要。

?

posted on 2006-08-30 14:11 Stone Jiang 閱讀(3818) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): ACE
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            99国产精品久久久久久久成人热| 亚洲国产另类精品专区| 最新国产成人在线观看| 欧美色区777第一页| 久久激五月天综合精品| 开心色5月久久精品| 亚洲午夜极品| 久久久久久黄| 亚洲午夜免费福利视频| 久久经典综合| 亚洲一区免费网站| 久久久欧美一区二区| 亚洲视频一区在线观看| 久久久99精品免费观看不卡| 在线午夜精品自拍| 久久亚洲午夜电影| 久久国产精品亚洲77777| 欧美激情va永久在线播放| 久久黄色小说| 欧美日韩一区二区三区四区五区| 久久免费的精品国产v∧| 欧美视频一区二区三区…| 久久亚洲视频| 国产精品入口麻豆原神| 亚洲理伦在线| 91久久中文字幕| 欧美中文字幕久久| 午夜国产欧美理论在线播放| 欧美美女福利视频| 欧美国产综合视频| 黑人极品videos精品欧美裸| 亚洲在线免费观看| 亚洲午夜精品一区二区| 欧美激情亚洲激情| 欧美大片专区| 影音先锋亚洲一区| 欧美一级专区| 久久精品国产亚洲一区二区| 国产精品久久久久久亚洲毛片| 亚洲激情在线视频| 亚洲高清不卡av| 久久久久久**毛片大全| 久久久久久夜| 国内精品一区二区| 校园激情久久| 久久久噜噜噜久噜久久| 国产在线日韩| 久久激情视频| 免费成人在线观看视频| 极品av少妇一区二区| 久久精品视频免费播放| 能在线观看的日韩av| 亚洲高清久久| 免费观看在线综合色| 欧美激情1区2区| 亚洲精品少妇30p| 欧美激情成人在线视频| 亚洲欧洲日产国码二区| 一区二区三区高清在线| 欧美性开放视频| 亚洲综合精品| 久久久亚洲成人| 亚洲国产成人av在线| 欧美国产综合视频| 日韩一级精品| 欧美在线免费观看视频| 亚洲一区二区三区四区五区午夜| 亚洲高清视频一区| 亚洲国产精品久久久久秋霞蜜臀| 久久精品盗摄| 久久综合色影院| 伊人成人在线视频| 久久综合九色九九| 亚洲黄色免费电影| 日韩午夜电影在线观看| 欧美日韩亚洲精品内裤| 亚洲一区二区三区中文字幕在线| 欧美一区二区免费观在线| 国产婷婷色一区二区三区四区| 久久久久久亚洲综合影院红桃 | 亚洲品质自拍| 亚洲伊人网站| 激情五月***国产精品| 欧美成人午夜激情视频| 亚洲一区在线观看免费观看电影高清| 久久精品麻豆| 日韩视频一区二区三区在线播放免费观看 | 欧美日韩视频在线观看一区二区三区 | 欧美日韩一区二区三区在线观看免| 一区二区三区回区在观看免费视频| 欧美一区综合| 亚洲毛片播放| 国产欧美日韩视频一区二区| 久久乐国产精品| 亚洲少妇中出一区| 免费成人性网站| 亚洲一线二线三线久久久| 在线成人www免费观看视频| 国产精品v亚洲精品v日韩精品| 久久精品99无色码中文字幕| 99在线精品免费视频九九视| 蜜臀av国产精品久久久久| 亚洲综合第一页| 亚洲精品国产拍免费91在线| 国产欧美日韩精品在线| 欧美日韩免费观看一区| 久久久久久夜精品精品免费| 亚洲一级黄色片| 亚洲精品一区二区三区四区高清 | 欧美性大战xxxxx久久久| 久久一区二区视频| 欧美亚洲一区二区三区| 一本一本久久a久久精品综合妖精| 快播亚洲色图| 欧美在线亚洲综合一区| 亚洲小说欧美另类社区| 91久久黄色| 在线观看日韩av电影| 国产日韩精品一区二区三区在线| 欧美日韩免费一区二区三区视频| 美女国内精品自产拍在线播放| 欧美在线啊v| 亚洲自啪免费| 在线一区亚洲| 亚洲精品网址在线观看| 黄色成人精品网站| 国产亚洲观看| 国产视频一区欧美| 国产精品入口| 国产精品一区久久久| 欧美日韩一区二区三区免费看 | 久久久亚洲午夜电影| 久久99在线观看| 久久aⅴ国产紧身牛仔裤| 欧美在线|欧美| 国内偷自视频区视频综合| 国产午夜精品全部视频播放| 国产情人节一区| 国产日产亚洲精品| 国产三级欧美三级日产三级99| 国产精品欧美激情| 国产模特精品视频久久久久| 国产精自产拍久久久久久| 国产精品一区视频| 国产欧美va欧美不卡在线| 国产亚洲一区二区在线观看 | 在线一区欧美| 亚洲欧美日韩中文播放| 羞羞答答国产精品www一本| 欧美在线影院在线视频| 久久最新视频| 欧美精品在线免费观看| 欧美色视频日本高清在线观看| 国产精品久久久久77777| 国产欧美视频一区二区| 精品动漫一区二区| 亚洲人成绝费网站色www| 这里只有精品在线播放| 香蕉成人久久| 老色鬼久久亚洲一区二区| 欧美激情亚洲精品| 一区二区日韩精品| 小嫩嫩精品导航| 免费一区视频| 欧美日韩你懂的| 国产在线日韩| 日韩天堂在线观看| 午夜国产欧美理论在线播放 | 国产精品女同互慰在线看| 国内揄拍国内精品久久| 亚洲精品一区二区三区在线观看| 亚洲视频免费在线观看| 久久久精品动漫| 亚洲黄网站在线观看| 亚洲视频免费看| 久久久久久久久综合| 欧美女人交a| 国产一区日韩一区| 一区二区三区四区国产精品| 欧美在线网址| 亚洲精品乱码久久久久久按摩观| 亚洲女性喷水在线观看一区| 美女在线一区二区| 国产精品视频不卡| 亚洲精品视频免费观看| 久久国产精品第一页| 亚洲欧洲免费视频| 久久激情网站| 国产精品mv在线观看| 亚洲国产成人91精品| 欧美一区二区免费观在线| 亚洲三级免费观看| 久久久久九九九九| 国产精品日本一区二区| 99精品欧美一区二区三区综合在线 | 亚洲在线视频网站| 欧美v亚洲v综合ⅴ国产v| 国产亚洲亚洲| 亚洲主播在线| 亚洲日产国产精品|