• <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>

            西城

            指尖代碼,手上年華

            聯(lián)系 聚合 管理
              20 Posts :: 0 Stories :: 62 Comments :: 0 Trackbacks
            這是orbit文檔中自帶的一些例子中總結(jié)出來(lái)。還沒(méi)看完所有的例子,所以可能會(huì)有些遺漏。
            服務(wù)器端:
            首先是兩個(gè)全局變量:CORBA_ORB和PortableServer_POA
            1.創(chuàng)建一個(gè)CORBA_Object 類(lèi)型的變量,一般初始化為CORBA_OBJECT_NIL
            2.用來(lái)寫(xiě)入IOR的文件(這個(gè)應(yīng)該是可選的,還有其他的實(shí)現(xiàn)方法)。
            3.環(huán)境變量,用來(lái)存儲(chǔ)錯(cuò)誤信息之類(lèi)的。CORBA_Environment,(不知道為什么例子中都是一個(gè)長(zhǎng)度
            為一的數(shù)組)。
            4.初始化:用命令行傳入的參數(shù),全局變量global_orb和root_poa,以及環(huán)境變量進(jìn)行初始化。
            (1)PortbaleServer_POAManager 
              (2)設(shè)置局部CORBA_Environment變量(用于保存錯(cuò)誤信息)
            (3)設(shè)置SIGINT和SIGTERM的信號(hào)處理函數(shù)
            (4)CORBA_ORB_init.ORB初始化,返回一個(gè)orb.
              (5)CORBA_ORB_resolve_initial_references.用ORB返回一個(gè)POA
            (6)PortableServer_POA__get_the_POAManager.用POA得到一個(gè)POA_Manager
              (7) PortableServer_POAManager_activeate。激活POA_Manager.
              (8)CORBA_OBject_release.釋放POA_Manager?
            5.激活服務(wù)。
            利用已經(jīng)生成好的框架,這里只是簡(jiǎn)單的調(diào)用。impl_X__create.這里X為實(shí)際的類(lèi),poa為參數(shù)。返回一個(gè)類(lèi)的實(shí)例。
            6.IOR寫(xiě)入文件,供客戶(hù)端讀取
            7.服務(wù)運(yùn)行:
            CORBA_ORB_run.主事件循環(huán)。
            8.清理工作
            (1)PortableServer_POA_reference_to_id
              (2)PortableServer_POA_deactivate_object
              (3)PortableServer_POA_destroy。銷(xiāo)毀POA
            (4)CORBA_free釋放objid
              (5)CORBA_Object_release.又一次POA釋放?
            (6)CORBA_Object_release.釋放實(shí)際的類(lèi)。
            (7)若ORB不空,CORBA_ORB_destroy
            客戶(hù)端:client
            1.initializes the environment.CORBA_Environment
            2.client initialize. init signal handling (SIGINT,SIGTERM).
            CORBA_ORB_init(similar to the server)
            3.read IOR from the file and translate it a X object
            4.run the client.use the method of X to do the real work.
            4.do some cleanup.
            CORBA_Object_release.
            if orb is not NULL,do CORBA_ORB_destroy.
            客戶(hù)端的代碼量要比服務(wù)器端的少一些。不過(guò)大致流程都一樣。orbit已經(jīng)為服務(wù)器端生成了很多結(jié)構(gòu)化的代碼。而且,大部分CORBA程序都可以按著這個(gè)流程來(lái),真正的實(shí)現(xiàn)部分并不多,所以熟悉了之后就可以寫(xiě)出很規(guī)范的代碼。
            posted on 2012-03-24 23:00 西城 閱讀(651) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Corba

            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久久久这里只有精品| 久久人妻少妇嫩草AV无码蜜桃| 久久伊人五月丁香狠狠色| 久久久SS麻豆欧美国产日韩| 久久亚洲AV成人出白浆无码国产| 久久福利青草精品资源站| 久久五月精品中文字幕| 亚洲精品乱码久久久久久久久久久久| 久久精品国产亚洲AV无码娇色 | 久久九九久精品国产| 欧美一级久久久久久久大| 久久国产高潮流白浆免费观看| 欧美综合天天夜夜久久| 亚洲中文久久精品无码ww16 | 亚洲午夜福利精品久久| 久久精品aⅴ无码中文字字幕不卡| 精品久久人人妻人人做精品| 久久无码AV中文出轨人妻| 国产精品免费久久久久久久久 | 精品久久久久中文字| 久久精品水蜜桃av综合天堂| 国内精品久久久久影院亚洲| 99久久亚洲综合精品网站| 久久精品国产亚洲av麻豆小说| 天天做夜夜做久久做狠狠| 国内精品伊人久久久久影院对白| 久久青青草原亚洲av无码app| 久久精品国产亚洲AV香蕉| 午夜视频久久久久一区 | 久久精品一区二区影院| 91久久成人免费| 色综合久久久久网| 成人久久精品一区二区三区| 7777精品久久久大香线蕉| 欧美国产成人久久精品| 色天使久久综合网天天| 久久精品国产精品亜洲毛片| 国产精品美女久久久免费| 久久久国产一区二区三区| 色偷偷91久久综合噜噜噜噜| 欧美国产成人久久精品|