freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

編寫(xiě)客戶(hù)端程序ppt課件-閱讀頁(yè)

2025-05-18 04:45本頁(yè)面
  

【正文】 另一部分由靜態(tài)框架實(shí)現(xiàn) – 不必繼承由 IDL編譯器生成的框架( POA類(lèi)),也不必使用紐帶機(jī)制間接使用 POA類(lèi) 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 原理 POA Impl ServerRequest ServerRequest IR 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 開(kāi)發(fā)步驟 ? 利用回調(diào)方法 invoke()接收從 ORB轉(zhuǎn)發(fā)來(lái)的一個(gè)ServerRequest類(lèi)型的請(qǐng)求對(duì)象 ? 從請(qǐng)求對(duì)象中提取實(shí)際參數(shù)向上調(diào)用真正執(zhí)行服務(wù)的伺服對(duì)象的方法 ? 將結(jié)果或異常填入請(qǐng)求對(duì)象中 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 1 對(duì)象 ServerRequest Class ServerRequest { public: const char * operation() const。 parmaters)。 void set_result(const Anyamp。 void set_exception( const Anyamp。 作用:實(shí)現(xiàn)動(dòng)態(tài)框架功能 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 ? arguments(inout NVlist nv): 得到輸入型參數(shù)的值。 } 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 import .*。 public class BankImpl extends { // 屬性的定義 protected accountList。 // 用于創(chuàng)建請(qǐng)求對(duì)象的 ORB偽對(duì)象 protected POA poa。 = orb。 } // ORB回調(diào)方法,是每一個(gè)采用 DSI的對(duì)象實(shí)現(xiàn)都必須實(shí)現(xiàn)的方法 需要實(shí)現(xiàn)該接口 構(gòu)造方法,管理員開(kāi)始 時(shí)管理的賬戶(hù)清單為空 3 程序?qū)嵗? 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 public void invoke(ServerRequest request) { // 根據(jù)當(dāng)前對(duì)象引用取對(duì)象標(biāo)識(shí)(對(duì) Account而言,對(duì)象標(biāo)識(shí)就是賬戶(hù)名字) String objectId = new String(_object_id())。 // 根據(jù)請(qǐng)求對(duì)象中的操作名字分別處理 if (().equals(open)) { // 開(kāi)設(shè)賬戶(hù)操作 try { paramList = (0)。 ()。 (paramList)。 // 執(zhí)行開(kāi)戶(hù)操作,在賬戶(hù)清單中查找或開(kāi)設(shè)指定名字的賬戶(hù) if ((name) == null) { random = new ()。 (name, new Float(balance))。 } account = ( (), IDL:Bank/Account:)。 (account)。 } catch(Exception exc) { ()。 if (balance == null) throw new ()。 param = ()。 (amount, param, )。 float amount = (0).value().extract_float()。 (objectId, new Float(() + amount))。 } 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 } else if (().equals(withdraw)) { // 取款操作 try { // 根據(jù)對(duì)象標(biāo)識(shí)取賬戶(hù)余額 Float balance = (Float) (objectId)。 // 從請(qǐng)求對(duì)象中獲取參數(shù) paramList = (0)。 (0)。 (paramList)。 // 執(zhí)行取款操作并填寫(xiě)請(qǐng)求對(duì)象中的返回結(jié)果 result = ()。 else { (objectId)。 (true)。 } catch(Exception exc) { ()。 if (balance == null) throw new ()。 // 執(zhí)行查詢(xún)操作并填寫(xiě)請(qǐng)求對(duì)象中的返回結(jié)果 result = ()。 (result)。 } } else { // 非法的操作名字 throw new ()。 } } 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院基礎(chǔ)技術(shù)教學(xué)部 接口庫(kù) 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 接口庫(kù) ? 對(duì)象接口定義也可由一個(gè)專(zhuān)門(mén)的服務(wù)進(jìn)程來(lái)存儲(chǔ)或管理,即組織成可運(yùn)行的接口庫(kù) (IR)服務(wù),由其提供對(duì)象接口的相關(guān)信息 ? 接口庫(kù)與 IDL文件表達(dá)的信息完全相同,更適于客戶(hù)程序或?qū)ο髮?shí)現(xiàn)在運(yùn)行時(shí)可動(dòng)態(tài)訪問(wèn) ? 常見(jiàn)的用法:查找一個(gè)對(duì)象引用所有 IDL接口定義 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 接口庫(kù) ? DII – 得到遠(yuǎn)程對(duì)象引用,但不知該對(duì)象是否支持自己所需操作,及所需參數(shù) ? DSI – DynamicImplementation接口獲得 ServerRequest對(duì)象,對(duì)該操作的參數(shù)信息一無(wú)所知 ? 作用 – 保存 IDL接口信息 – 提供 IDL接口信息的動(dòng)態(tài)查詢(xún),修改和刪除 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院基礎(chǔ)技術(shù)教學(xué)部 上下文 山東大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 請(qǐng)求的上下文 ? 定義:客戶(hù)程序發(fā)送請(qǐng)求時(shí)附帶傳遞的一種特殊參數(shù) ? 作用:用于描述客戶(hù)程序的運(yùn)行環(huán)境 ? 屬性:(屬性名,屬性值 ) ? 使用: – 客戶(hù)程序創(chuàng)建一個(gè)上下文對(duì)象并設(shè)置其中的屬性,附在一個(gè)請(qǐng)求中發(fā)送給 ORB – 請(qǐng)求和上下文對(duì)象發(fā)給對(duì)象實(shí)現(xiàn) – 對(duì)象實(shí)現(xiàn)根據(jù)客戶(hù)不同屬性作出不同處理 ? 見(jiàn) P165
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1