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

            Loki庫(kù)研究-消息回調(diào)機(jī)制實(shí)現(xiàn)

            最早以前.就說(shuō)要好好研究一下Loki庫(kù)..一直都忘記..要么就有事.剛好這幾天要寫(xiě)一個(gè)事件ID與事件處理函數(shù)的綁訂機(jī)制.就想起來(lái)Loki的functor來(lái)了...花了兩天時(shí)間仔細(xì)研究了下loki中的幾個(gè)實(shí)現(xiàn).全部明白不敢說(shuō)..不過(guò)確實(shí)明白了..這種思路..在這里也要多謝權(quán)哥...呵呵
            我是從具體的現(xiàn)實(shí)思路出發(fā).來(lái)研究loki的..我的實(shí)現(xiàn)目地.是可以便捷的綁訂事件ID與事件處理函數(shù),在回調(diào)事件處理函數(shù)時(shí).不會(huì)有以前使用函數(shù)地址注冊(cè)時(shí)所產(chǎn)生的問(wèn)題,比如.回調(diào)的函數(shù)中無(wú)法正常使用函數(shù)所歸屬類(lèi)的信息.無(wú)法綁訂同一類(lèi)不同對(duì)象的實(shí)現(xiàn)方法

            首先先來(lái)研究..實(shí)現(xiàn)思路應(yīng)該是一樣的..同樣是綁訂函數(shù)地址.這點(diǎn).loki的functor以前幫我做好了.剩下的.只是如何能更好的使用
            loki 的一個(gè)functor只能綁訂一個(gè)函數(shù),
            思路是,預(yù)先申請(qǐng)一個(gè)足夠大的functor數(shù)組,將每個(gè)申請(qǐng)的functor存入這個(gè)數(shù)組中,以數(shù)組的下標(biāo)做為處理函數(shù)的ID;

            解決了回調(diào)函數(shù)的問(wèn)題,然后就是事件ID了.這個(gè)有點(diǎn)郁悶.實(shí)現(xiàn)思路有點(diǎn)繞.

            首先事件ID肯定是聲明了的.然后利用聲明的事件ID自動(dòng)生成相應(yīng)的事件結(jié)構(gòu)體,則于事件回調(diào)不需要變動(dòng)參數(shù),所以
            所有結(jié)構(gòu)體都派生自同一基體,然后就通過(guò)事件結(jié)構(gòu)體中的事件ID來(lái)進(jìn)行綁訂,這樣可以確訂聲明的處理方法必須隸屬于
            某一個(gè)對(duì)應(yīng)的事件ID,這點(diǎn)在回調(diào)注冊(cè)時(shí)也可以保證,默認(rèn)要注冊(cè)兩個(gè)ID.用于判定當(dāng)前ID是否超過(guò)以聲明的范圍 ,EventBegin  EventEnd;

            解決了事件ID之后..就是它們之前的綁訂了.這個(gè)簡(jiǎn)單.在聲明進(jìn).先傳入事件結(jié)構(gòu)體,再傳入用同樣事件結(jié)構(gòu)體聲明的回調(diào)函數(shù),然后將回調(diào)函數(shù)
            放入相對(duì)應(yīng)以事件ID做為下標(biāo)的數(shù)組中.搞定

            最后還有一個(gè)消息分派的問(wèn)題,這個(gè)地方有很多做法,,,暫時(shí)我先用最簡(jiǎn)單
            由外界傳入一個(gè)觸發(fā)的事件ID,然后判定 這個(gè)ID是否合法,然后回調(diào)對(duì)應(yīng)下標(biāo)的functor...這樣..就回調(diào)了相應(yīng)的處理函數(shù)了,參數(shù)這里
            做的最簡(jiǎn)單化處理,只是聲明了一個(gè)結(jié)構(gòu)體,然后.將事件ID賦值,然后把結(jié)構(gòu)體傳入回調(diào)函數(shù),以后有需要的話(huà)..此結(jié)構(gòu)體可由外界傳入
            相應(yīng)的值由外界傳入,不過(guò)..一個(gè)事件回調(diào)....貌似沒(méi)有這種要求

            呵呵..總之對(duì)于模板編程,有了一個(gè)比較清晰的了解..最大的收獲就是,看著滿(mǎn)篇的模板,四處亂飛的typename typedef class..不再頭暈了...呵呵

            在這個(gè)過(guò)程中..還研究了..單件模式,智能指針,抽象化工廠,呵呵..收獲非常大..也感覺(jué)自己以前的實(shí)現(xiàn)太不優(yōu)雅了...以后要往優(yōu)雅方向努力啦

            Loki的單件模式非常Happy.....以后決定..徹底忘記自己 寫(xiě)的單件...看都不看....專(zhuān)心用loki的.....還有智能指針..不過(guò)智能指針有個(gè)不爽的地方
            ..也不是不爽..只是我感覺(jué)失落....為啥呢...因?yàn)橹悄苤羔槦o(wú)法控制它什么時(shí)候釋放.......它自己會(huì)釋放..這樣雖然..安全都有保證,用著也開(kāi)心....
            不過(guò)....忽然不用我釋放了...總是覺(jué)得心里少點(diǎn)啥.........想delete......哈哈

            變高手~~~~~變高手~~~~~變高手~~~~~變高手~~~~~變高手~~~~~變高手~~~~~變高手~~~~~變高手~~~~~

            posted on 2007-11-02 18:19 Randy 閱讀(1411) 評(píng)論(0)  編輯 收藏 引用


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


            <2007年11月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(3)

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久综合综合久久97色| 久久久久国产精品| 久久996热精品xxxx| 久久久国产打桩机| 久久99精品久久久久久动态图 | 欧美久久久久久精选9999| 亚洲国产美女精品久久久久∴| 狠狠狠色丁香婷婷综合久久五月 | 欧美丰满熟妇BBB久久久| 久久精品成人一区二区三区| 色综合久久中文字幕无码| 99久久超碰中文字幕伊人| 久久久免费观成人影院 | 大伊人青草狠狠久久| 一本色综合网久久| 香港aa三级久久三级老师2021国产三级精品三级在 | 99久久夜色精品国产网站| 99久久婷婷国产综合亚洲| 色天使久久综合网天天| 久久亚洲国产精品123区| 欧美va久久久噜噜噜久久| 久久精品无码av| 色噜噜狠狠先锋影音久久| 伊人久久大香线蕉亚洲五月天 | 秋霞久久国产精品电影院| 久久精品中文字幕一区| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久婷婷国产剧情内射白浆| 伊人久久免费视频| 国产精品久久久久久久午夜片| 久久精品国产清自在天天线| 久久精品亚洲乱码伦伦中文| 狠狠色丁香久久婷婷综| 久久丫精品国产亚洲av不卡| 欧美亚洲国产精品久久高清| 久久久久久久亚洲精品| 国产成人AV综合久久| 久久青草国产手机看片福利盒子| …久久精品99久久香蕉国产| 久久久久久九九99精品| 天天久久狠狠色综合|