簡介相關(guān)對象reactor框架教程_第1頁
簡介相關(guān)對象reactor框架教程_第2頁
簡介相關(guān)對象reactor框架教程_第3頁
簡介相關(guān)對象reactor框架教程_第4頁
簡介相關(guān)對象reactor框架教程_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

C++ACEProactorC++ACEProactorACE簡I/O相關(guān)對Reactor框ServiceConfiguration框Acceptor-Connector框?雜C++ACEC++ACEProactorI/OAcceptor-ConnectorProactorProactor●●Proactor●Proactor●●●●●ProactorACEProactorACE 說 定義用于接受異步I/O 在I/O流上發(fā)起異步讀和異步寫操作,并使每個操作與一個用 于接收操作結(jié)果的ACE_Result對象關(guān)聯(lián)起來 Acceptor-Connector TCP/IP定義ACE_Asynch_Acceptor ACE_Asynch_Connector來初始化通過TCP/IP 管理定時器和異步I/OACE_Reactor框架中ACE_ReactorProactorProactorProactorProactorProactorProactorProactorProactorProactorProactor異步I/OAcceptor-ConnectorProactorProactor異步I/O●●Proactor異步Proactor異步I/O●●●●ProactorProactor異步I/OProactor方 說Proactor方 說 獲取異步I/O操作所使用的I/O 獲取指向在操作中所使用的ACE_Message_Block 指示請求read 指示請求writeProactorProactor異步I/OProactorProactor異步I/O●●●ProactorProactorI/OAcceptor-ProactorProactor●●ProactorProactor#proactor_:ACE_Proactor+handle():+handle_read_stream(resultconstACE_Asynch_Read_Stream::Result+handle_write_stream(resultconstACE_Asynch_Write_Stream::Result+handle_time_out(tv:constACE_Time_Valueact:constvoid+handle_accept(resultconstACE_Asynch_Accept::Result+handle_connect(resultconstACE_Asynch_Connect::ResultProactor方Proactor方 說 掛鉤方法,在ACE_Asynch_Read_Stream發(fā)起的 掛鉤方法,在ACE_Asynch_Write_Streamwrite 掛鉤方法,在通過ACE_ProactorProactor框架Proactor框架前攝式Accepter-I/OProactor框架前攝Proactor框架前攝式Accepter-●●●●●Proactor框架前攝Proactor框架前攝式Accepter-●●●●●Proactor框架Proactor框架前攝式Accepter-●●●Proactor框Proactor框架前攝式Accepter-Proactor框架前攝式Proactor框架前攝式Accepter-方 說 初始化和發(fā)出一個或多個異步accept 取消所有由該接受器發(fā)起的異步accept ProactorProactor框架前攝式Accepter-Proactor框架前攝式Accepter-方 Proactor框架前攝式Accepter-方 說 方 說 發(fā)起一個異步的connect 取消所有由該接受器發(fā)起的異步accept Proactor框架Proactor框架前攝式Accepter-#include"ace/Asynch_IO.h"#include"ace/INET_Addr.h"#include"ace/Proactor.h"classEchoService:publicACE_Service_Handler~EchoService()if(this->handle()!=ACE_INVALID_HANDLE)}Proactor框架Proactor框架前攝式Accepter-virtualvoidopen(ACE_HANDLEh,ACE_Message_Block&)if(this->reader_.open(*this)!=0this->writer_.open(*this)!={ACE_ERROR((LM_ERROR,"%p\n",}ACE_Message_Block*ACE_NEW_NORETURN(mb,ACE_Message_Blockif(this->reader_.read(*mb,mb->space())!={ACE_ERROR((LM_ERROR,"%p\n",deletethis;}}Proactor框架前攝式Accepter-virtualvoidconstProactor框架前攝式Accepter-virtualvoidconstACE_Asynch_Read_Stream::Result&{ACE_Message_Block&mb=if(!result.success()||result.bytes_transferred(){deletethis;else{if(this->writer_.write(mb,mb.length())!=ACE_ERROR((LM_ERROR,"%p\n",}else}{ACE_NEW_NORETURN(mblk,}}}Proactor框架Proactor框架前攝式Accepter-virtualvoidconstACE_Asynch_Write_Stream::Result&result){}ACE_Asynch_Read_Streamreader_;ACE_Asynch_Write_Streamwriter_;Proactor框架Proactor框架前攝式Accepter-intmain()ACE_INET_Addrlisten_addr(8868);ACE_Asynch_Acceptor<EchoService>aio_acceptor;if(0!=aio_acceptor.open(listen_addr,0,//0,//pass_addressesACE_DEFAULT_BACKLOG,1,//reuse_addr0,//proactor0))//validate_new_connectionACE_ERROR_RETURN((LM_ERROR,"%p\n","write()"),1);}ProactorProactorI/OAcceptor-Proactor●Proactor●●●●●ProactorProactorProactor方Proactor方 說 靜態(tài)方法,返回執(zhí)行一個單例 的指Proactor方Proactor方 說 反復(fù)調(diào)用handle_events 敗、proactor_event_loop_done返回 proactor_end_event_loop),則返回Pr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論