一種數(shù)據(jù)監(jiān)控的方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種數(shù)據(jù)監(jiān)控的方法和裝置。所述方法包括:針對各C語言對象,將所述C語言對象的多個屬性分別保存在針對所述c語言對象預置的哈希表中,所述屬性包括屬性名稱、屬性值和屬性值類型;接收通過訪問預置的監(jiān)聽接口發(fā)送的第一目標訪問所述哈希表的請求,讀取并返回所述哈希表中C語言對象的屬性,生成所述第一目標讀取所述屬性的第一消息,或修改所述哈希表中C語言對象的屬性,生成所述第一目標修改所述屬性的第二消息;通過所述監(jiān)聽接口將所述第一消息或所述第二消息發(fā)送給注冊所述監(jiān)聽接口的第二目標。
【專利說明】一種數(shù)據(jù)監(jiān)控的方法和裝置
【技術領域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理【技術領域】,特別是涉及一種數(shù)據(jù)監(jiān)控的方法,以及,一種數(shù)據(jù) 監(jiān)控的裝置。
【背景技術】
[0002] C語言是一種比較接底層的計算機程序設計語言,它既具有高級語言的特點,又具 有匯編語言的特點。它可以作為工作系統(tǒng)設計語言,編寫系統(tǒng)應用程序,也可以作為應用程 序設計語言,編寫不依賴計算機硬件的應用程序。
[0003] 在面向?qū)ο蟮木幊汤铮磺惺挛锝詫ο?,通過面向?qū)ο蟮姆绞?,將現(xiàn)實世界的事物 抽象成對象,現(xiàn)實世界中的關系抽象成類和繼承,幫助人們實現(xiàn)對現(xiàn)實世界的抽象與數(shù)字 建模。通過面向?qū)ο蟮姆椒ǎ谟萌死斫獾姆绞綄碗s系統(tǒng)進行分析、設計與編程。同 時,面向?qū)ο竽苡行岣呔幊痰男剩ㄟ^封裝技術,消息機制可以像搭積木的一樣快速開 發(fā)出一個全新的系統(tǒng)。因此C++、Java、C#等面向?qū)ο蟮拈_發(fā)語言得到了快速的發(fā)展和廣泛 的應用。
[0004] 在一些底層的系統(tǒng)開發(fā)者,為了得到更好的效率和移植,必須使用C語言來編寫。 而C語言是一門面向過程的語言,本身并不提供面向?qū)ο蟮木幊汰h(huán)境。
[0005] 在使用C語言編寫的面向?qū)ο蟪绦蛑校绦蚰軌驅(qū)ο蟮臄?shù)據(jù)進行直接的訪問和 修改,而這些修改的數(shù)據(jù)有可能影響到其他對象,但他們卻無法在數(shù)據(jù)修改后得到及時的 通知,并做出相應的響應,為了處理這種情況,開發(fā)者必須設計一種通知機制以滿足需求。
[0006] 同時在面向?qū)ο蟮木幊讨校粋€很重要的特點就是數(shù)據(jù)的封裝,控制數(shù)據(jù)的訪問 和修改權限,能被其他對數(shù)據(jù)感興趣的對象或模塊捕獲,從而做出相應的反饋。
[0007] 綜上所述,為了利用面向?qū)ο蟮膬?yōu)點,需要有一套基于C語言的供開發(fā)者自己實 現(xiàn)面向?qū)ο蟮臋C制。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明提供了一種數(shù)據(jù)監(jiān)控的方法和裝置,以全部解決或部分解決上述技術問 題。
[0009] 本發(fā)明提供了一種數(shù)據(jù)監(jiān)控的方法,包括:
[0010] 針對各C語言對象,將所述C語言對象的多個屬性分別保存在針對所述C語言對 象預置的哈希表中,所述屬性包括屬性名稱、屬性值和屬性值類型;
[0011] 接收通過訪問預置的監(jiān)聽接口發(fā)送的第一目標訪問所述哈希表的請求,讀取并返 回所述哈希表中C語言對象的屬性,生成所述第一目標讀取所述屬性的第一消息,或修改 所述哈希表中C語言對象的屬性,生成所述第一目標修改所述屬性的第二消息;
[0012] 通過所述監(jiān)聽接口將所述第一消息或所述第二消息發(fā)送給注冊所述監(jiān)聽接口的 第二目標。
[0013] 優(yōu)選地,所述哈希表中的數(shù)據(jù)以鍵-鍵值的形式保存,所述鍵為所述屬性的屬性 名稱,所述鍵值為所述屬性的屬性值和屬性值類型,所述讀取所述哈希表的請求攜帶請求 讀取的屬性的名稱。
[0014] 優(yōu)選地,所述讀取并返回所述哈希表中C語言對象的屬性包括:
[0015] 以所述第一目標請求讀取的屬性的屬性名稱作為鍵,查找所述鍵對應的鍵值,作 為請求讀取的屬性;
[0016] 將查找的屬性通過所述監(jiān)聽接口返回給所述第一目標。
[0017] 優(yōu)選地,所述方法還包括:
[0018] 接收第一目標或第二目標監(jiān)聽所有屬性或部分屬性的請求,并將所述第一目標或 第二目標的身份信息添加到預置的監(jiān)聽對象名單中。
[0019] 優(yōu)選地,所述屬性的數(shù)據(jù)類型為字符型、字符串型、整形、浮點型或指針型。
[0020] 本發(fā)明還提供了一種數(shù)據(jù)監(jiān)控的裝置,包括:
[0021] 保存模塊,用于針對各C語言對象,將所述C語言對象的多個屬性分別保存在針對 所述C語言對象預置的哈希表中,所述屬性包括屬性名稱、屬性值和屬性值類型;
[0022] 第一訪問模塊,用于接收通過訪問預置的監(jiān)聽接口發(fā)送的第一目標訪問所述哈希 表的請求,讀取并返回所述哈希表中C語言對象的屬性,生成所述第一目標讀取所述屬性 的第一消息,或,第二訪問模塊,用于修改所述哈希表中C語言對象的屬性,生成所述第一 目標修改所述屬性的第二消息;
[0023] 消息發(fā)送模塊,用于通過所述監(jiān)聽接口將所述第一消息或所述第二消息發(fā)送給注 冊所述監(jiān)聽接口的第二目標。
[0024] 優(yōu)選地,所述哈希表中的數(shù)據(jù)以鍵-鍵值的形式保存,所述鍵為所述屬性的屬性 名稱,所述鍵值為所述屬性的屬性值和屬性值類型,所述讀取所述哈希表的請求攜帶請求 讀取的屬性的名稱。
[0025] 優(yōu)選地,所述第一訪問模塊包括:
[0026] 鍵值查找子模塊,用于以所述第一目標請求讀取的屬性的屬性名稱作為鍵,查找 所述鍵對應的鍵值,作為請求讀取的屬性;
[0027] 鍵值返回子模塊,用于將查找的屬性通過所述監(jiān)聽接口返回給所述第一目標。
[0028] 優(yōu)選地,所述裝置還包括:
[0029] 添加模塊,用于接收第一目標或第二目標監(jiān)聽所有屬性或部分屬性的請求,并將 所述第一目標或第二目標的身份信息添加到預置的監(jiān)聽對象名單中。
[0030] 優(yōu)選地,所述屬性的數(shù)據(jù)類型為字符型、字符串型、整形、浮點型或指針型。
[0031] 與【背景技術】相比,本發(fā)明包括以下優(yōu)點:
[0032] 依據(jù)本發(fā)明實施例,將C語言對象的屬性和屬性的分類保存在哈希表中,通過監(jiān) 聽接口接收到第一目標對數(shù)據(jù)的訪問請求后,從哈希表中讀取或是修改C語言對象的屬 性,并生成相應的消息通知給監(jiān)聽語言對象的第二目標,由此可見,本發(fā)明實施例提供了一 種面向?qū)ο蟮逆I值觀察者模式,當指定的對象的屬性被修改后,該對象和對該對象感興趣 的監(jiān)聽者就會接收到通知。簡單的說就是每次指定的被觀察的對象的屬性被修改后,就會 自動通知相應的觀察者。
[0033] 并且,本發(fā)明實施例還可以控制監(jiān)聽C語言對象的權限,監(jiān)聽者必須注冊為所有 屬性或者某個具體屬性的監(jiān)聽者,增添到監(jiān)聽對象名單中才可以實現(xiàn)對C語言對象的監(jiān) 聽。
[0034] 此外,每一個屬性分類都是從基類繼承下來,在編寫屬性分類時,不必再為每個屬 性編寫接口,自然獲得了基類的鍵值觀察者功能,無需增加新的應用程序,節(jié)省了存儲空間 和資源的浪費,簡化了編程工作,方便擴展。
【專利附圖】
【附圖說明】
[0035] 圖1是本發(fā)明實施例的一種數(shù)據(jù)監(jiān)控的方法的流程圖;
[0036] 圖2是本發(fā)明實施例的一種數(shù)據(jù)監(jiān)控的裝置的結構框圖。
【具體實施方式】
[0037] 為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和具體實 施方式對本發(fā)明作進一步詳細的說明。
[0038] 基于C語言本身并不提供面向?qū)ο髾C制的問題,本發(fā)明實施例提供了一種基于C 語言的鍵值觀察者模式,即KVO(Key-Value Observing),KV0設計模式的設計思想在于提供 了一種機制,當指定的對象的屬性被修改后,該對象和對該對象感興趣的監(jiān)聽者就會接收 到通知。簡單的說就是每次指定的被觀察的對象的屬性被修改后,就會自動通知相應的觀 察者。
[0039] 下面通過實施例對本發(fā)明所述方法的實現(xiàn)流程進行詳細說明。
[0040] 參照圖1,其示出了本發(fā)明實施例所述一種數(shù)據(jù)監(jiān)控的方法的流程圖,所述方法具 體可以包括:
[0041] 步驟101、針對各C語言對象,將所述C語言對象的多個屬性分別保存在針對所述 C語言對象預置的哈希表中,所述屬性包括屬性名稱、屬性值和屬性值類型。
[0042] 在設計的C語言對象中,每一個C語言對象都是屬性和方法的集合。屬性是對C 語言中所有C語言數(shù)據(jù)類型的抽象,本發(fā)明實施例對C語言對象的屬性進行封裝,抽象出一 個屬性的類,它是C語言對象的基本單元,每一個屬性包含一個屬性類型、屬性名稱和屬性 值。
[0043] 進一步,還需要本發(fā)明針對屬性設置了一個統(tǒng)一的基類,針對該基類設置一個哈 希表,以屬性的名稱為鍵,用來存儲C語言對象的所有屬性。哈希表中的數(shù)據(jù)以鍵-鍵值的 形式保存,鍵為所述屬性的屬性名稱,鍵值為所述屬性的屬性值和屬性值類型。
[0044] 需要說明的是,針對C語言對象都設置了對應的獨立的哈希表,即每一個對象都 有自己的哈希表,并且是 對應的。
[0045] 在具體的實現(xiàn)中,優(yōu)選地,所述屬性的數(shù)據(jù)類型為字符型、字符串型、整形、浮點型 或指針型等各種數(shù)據(jù)類型,并可以靈活地擴展新的數(shù)據(jù)類型。
[0046] 步驟102、接收通過訪問預置的監(jiān)聽接口發(fā)送的第一目標訪問所述哈希表的請求, 讀取并返回所述哈希表中C語言對象的屬性,生成所述第一目標讀取所述屬性的第一消 息,或修改所述哈希表中C語言對象的屬性,生成所述第一目標修改所述屬性的第二消息。 [0047] 本發(fā)明實施例還提供了訪問哈希表的方法,即訪問屬性的方法,屬性是不向外公 開的,外界想要訪問對象的數(shù)據(jù),必須通過本發(fā)明的訪問屬性的方法和屬性名稱來訪問,在 設計該方案時,對象訪問和修改數(shù)據(jù)的方法里,封裝了對數(shù)據(jù)訪問的控制,因此任何對數(shù)據(jù) 的訪問和修改,都能被對象監(jiān)聽到。
[0048] 本發(fā)明實施例還設置了監(jiān)聽的統(tǒng)一接口,第一目標必須通過接口來實現(xiàn)監(jiān)聽,以 便注冊為對象的監(jiān)聽者。
[0049] 第一目標通過預置的監(jiān)聽接口請求訪問哈希表,訪問請求可以是為了獲取數(shù)據(jù), 或是為了修改數(shù)據(jù)。根據(jù)接收的請求,若為獲取數(shù)據(jù)的請求,可以讀取請求的C語言的屬性 返回,并生成第一消息,第一消息標志發(fā)生讀取屬性的操作,若為修改數(shù)據(jù)的請求,可以修 改C語言對象的屬性,并生成第二消息,第二消息標志發(fā)生修改屬性的操作。
[0050] 通過本發(fā)明實施例的方案可以知道第一目標什么時候訪問了屬性或修改了屬性, 從而通知監(jiān)聽的第二對象,從而實現(xiàn)鍵值監(jiān)聽。
[0051] 具體地,所述讀取所述哈希表的請求攜帶請求讀取的屬性的名稱。
[0052] 本發(fā)明實施例中,優(yōu)選地,所述讀取并返回所述哈希表中C語言對象的屬性包括:
[0053] 子步驟S11、以所述第一目標請求讀取的屬性的屬性名稱作為鍵,查找所述鍵對應 的鍵值,作為請求讀取的屬性;
[0054] 子步驟S12、將查找的屬性通過所述監(jiān)聽接口返回給所述第一目標。
[0055] 根據(jù)請求讀取的屬性的屬性名稱可以找到對應的鍵,提取鍵對應的鍵值即作為該 C語言對象的屬性,將屬性反饋給請求訪問的第一目標。
[0056] 步驟103、通過所述監(jiān)聽接口將所述第一消息或所述第二消息發(fā)送給注冊所述監(jiān) 聽接口的第二目標。
[0057] 將第一消息或第二消息反饋給第二目標,從而實現(xiàn)了第二目標對鍵值的監(jiān)聽。
[0058] 依據(jù)本發(fā)明實施例,將C語言對象的屬性和屬性的分類保存在哈希表中,通過監(jiān) 聽接口接收到第一目標對數(shù)據(jù)的訪問請求后,從哈希表中讀取或是修改C語言對象的屬 性,并生成相應的消息通知給監(jiān)聽語言對象的第二目標,由此可見,本發(fā)明實施例提供了一 種面向?qū)ο蟮逆I值觀察者模式,當指定的對象的屬性被修改后,該對象和對該對象感興趣 的監(jiān)聽者就會接收到通知。簡單的說就是每次指定的被觀察的對象的屬性被修改后,就會 自動通知相應的觀察者。
[0059] 并且,由于每一個類都是從基類繼承下來,自然獲得了基類的KV0功能。C語言 面向?qū)ο蟮念惤Y構中,所有的屬性都存儲在哈希表中,對外界提供了一個統(tǒng)一的訪問和修 改接口,因此在編寫子類時,不必再為每個屬性編寫通知接口,子類自然也獲得了 KV0的功 能,簡化了編程,方便擴展。為了實現(xiàn)這種通用強大的功能,這個應該是需要經(jīng)過的過程。
[0060] 本發(fā)明實施例中,進一步優(yōu)選地,所述方法還包括:
[0061] 接收第一目標或第二目標監(jiān)聽所有屬性或部分屬性的請求,并將所述第一目標或 第二目標的身份信息添加到預置的監(jiān)聽對象名單中。
[0062] 本發(fā)明實施例還可以控制監(jiān)聽C語言對象的權限,監(jiān)聽者必須注冊為所有屬性或 者某個具體屬性的監(jiān)聽者,增添到監(jiān)聽對象名單中才可以實現(xiàn)對C語言對象的監(jiān)聽,當指 定的對象的屬性被修改后,對該對象感興趣的監(jiān)聽者就會接收到通知。
[0063] 為使本領域技術人員更理解本發(fā)明實施例,以下給出一個創(chuàng)建C語言對象過程, 并實現(xiàn)對C語言對象的監(jiān)聽。
[0064] 首先,創(chuàng)建一個對象〖Properties user = Properties_New ()。
[0065] 接著,創(chuàng)建并設置屬性:
[0066] Properties_Set (user, "name", " Jack"),對應屬性名稱是 name,屬性值是字符串 "Jack",屬性值類型是字符串類型;
[0067] Properties_Set_Int (user, "age",17),對應屬性名稱是 age,屬性值是 17,屬性 值類型是整型;
[0068] Properties_Set_Double (user,"height",178. 5),對應屬性名稱是 height,屬性 值是178. 5,屬性值類型是浮點型;
[0069] char*privatedata = (char*)malloc(256);
[0070] Properties_Set_Data (user,"private",privatedata,256, free,NULL);對應屬 性名稱是private,屬性值是privatedata,屬性值類型是指針型,同時指定了數(shù)據(jù)的長度, 以及如何釋放數(shù)據(jù)的方法。
[0071] 接著,定義一個監(jiān)聽函數(shù),包括多個參數(shù)static int listener_ callback(ListenerObject listener, Properties object, char氺name, void氺arg),其中第 一參數(shù)listener是監(jiān)聽者,第二個參數(shù)object是被監(jiān)聽者,第三個參數(shù)是當object的屬 性發(fā)生改變時通知是哪個屬性發(fā)生了改變,第四個是額外的參數(shù),一般為調(diào)用者設置。
[0072] 通過 ListenerOb ject listener = ListenerOb ject_New ()創(chuàng)建一個監(jiān)聽者對象 listener ;通過 Properties_Set_Listener (user, listener, listener_callback, NULL)設 置listener監(jiān)聽user的屬性變化。
[0073] 通過設置 Properties_Set_Int (user, "age",18),當調(diào)用此函數(shù)后,listener_ callback就會被調(diào)用,在監(jiān)聽函數(shù)里就可以根據(jù)具體的情況作出響應。
[0074] 通過 int age = Properties_Get_Int (user, "age")訪問對象的屬性
[0075] 最后,釋放對象,Properties_Close (user)以及 Properties_Close (listener)。
[0076] 需要說明的是,對于前述的方法實施例,為了簡單描述,故將其都表述為一系列的 動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依 據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉, 說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本發(fā)明所必需的。
[0077] 基于上述方法實施例的說明,本發(fā)明還提供了相應的數(shù)據(jù)監(jiān)控的裝置實施例,來 實現(xiàn)上述方法實施例所述的內(nèi)容。
[0078] 參照圖2,其示出了本發(fā)明實施例所述一種數(shù)據(jù)監(jiān)控的裝置的結構框圖,包括:
[0079] 保存模塊201,用于針對各C語言對象,將所述C語言對象的多個屬性分別保存在 針對所述C語言對象預置的哈希表中,所述屬性包括屬性名稱、屬性值和屬性值類型;
[0080] 第一訪問模塊202,用于接收通過訪問預置的監(jiān)聽接口發(fā)送的第一目標訪問所述 哈希表的請求,讀取并返回所述哈希表中C語言對象的屬性,生成所述第一目標讀取所述 屬性的第一消息,或,第二訪問模塊203,用于修改所述哈希表中C語言對象的屬性,生成所 述第一目標修改所述屬性的第二消息;
[0081] 消息發(fā)送模塊204,用于通過所述監(jiān)聽接口將所述第一消息或所述第二消息發(fā)送 給注冊所述監(jiān)聽接口的第二目標。
[0082] 本發(fā)明實施例中,優(yōu)選地,所述哈希表中的數(shù)據(jù)以鍵-鍵值的形式保存,所述鍵為 所述屬性的屬性名稱,所述鍵值為所述屬性的屬性值和屬性值類型,所述讀取所述哈希表 的請求攜帶請求讀取的屬性的名稱。
[0083] 本發(fā)明實施例中,優(yōu)選地,所述第一訪問模塊包括:
[0084] 鍵值查找子模塊,用于以所述第一目標請求讀取的屬性的屬性名稱作為鍵,查找 所述鍵對應的鍵值,作為請求讀取的屬性;
[0085] 鍵值返回子模塊,用于將查找的屬性通過所述監(jiān)聽接口返回給所述第一目標。 [0086] 本發(fā)明實施例中,優(yōu)選地,所述裝置還包括:
[0087] 添加模塊,用于接收第一目標或第二目標監(jiān)聽所有屬性或部分屬性的請求,并將 所述第一目標或第二目標的身份信息添加到預置的監(jiān)聽對象名單中。
[0088] 本發(fā)明實施例中,優(yōu)選地,所述屬性的數(shù)據(jù)類型為字符型、字符串型、整形、浮點型 或指針型。
[0089] 依據(jù)本發(fā)明實施例,將C語言對象的屬性和屬性的分類保存在哈希表中,通過監(jiān) 聽接口接收到第一目標對數(shù)據(jù)的訪問請求后,從哈希表中讀取或是修改C語言對象的屬 性,并生成相應的消息通知給監(jiān)聽語言對象的第二目標,由此可見,本發(fā)明實施例提供了一 種面向?qū)ο蟮逆I值觀察者模式,當指定的對象的屬性被修改后,該對象和對該對象感興趣 的監(jiān)聽者就會接收到通知。簡單的說就是每次指定的被觀察的對象的屬性被修改后,就會 自動通知相應的觀察者。
[0090] 并且,本發(fā)明實施例還可以控制監(jiān)聽C語言對象的權限,監(jiān)聽者必須注冊為所有 屬性或者某個具體屬性的監(jiān)聽者,增添到監(jiān)聽對象名單中才可以實現(xiàn)對C語言對象的監(jiān) 聽。
[0091] 此外,每一個屬性分類都是從基類繼承下來,在編寫屬性分類時,不必再為每個屬 性編寫通知接口,自然獲得了基類的鍵值觀察者功能,無需增加新的應用程序,節(jié)省了存儲 空間和資源的浪費,簡化了編程工作,方便擴展。
[0092] 對于上述數(shù)據(jù)監(jiān)控的裝置實施例而言,由于其與方法實施例基本相似,所以描述 的比較簡單,相關之處參見圖1所示方法實施例的部分說明即可。
[0093] 本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與 其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0094] 本領域技術人員易于想到的是:上述各個實施例的任意組合應用都是可行的,故 上述各個實施例之間的任意組合都是本發(fā)明的實施方案,但是由于篇幅限制,本說明書在 此就不一一詳述了。
[0095] 本發(fā)明可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如:個人計算機、服務 器計算機、手持設備或便攜式設備、平板型設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂 盒、可編程的消費電子設備、網(wǎng)絡PC、小型計算機、大型計算機、包括以上任何系統(tǒng)或設備的 分布式計算環(huán)境等等。
[0096] 本發(fā)明可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序 模塊。一般地,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組 件、數(shù)據(jù)結構等等。也可以在分布式計算環(huán)境中實踐本發(fā)明,在這些分布式計算環(huán)境中,由 通過通信網(wǎng)絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以 位于包括存儲設備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
[0097] 在本發(fā)明中,"組件"、"裝置"、"系統(tǒng)"等等指應用于計算機的相關實體,如硬件、硬 件和軟件的組合、軟件或執(zhí)行中的軟件等。詳細地說,例如,組件可以、但不限于是運行于處 理器的過程、處理器、對象、可執(zhí)行組件、執(zhí)行線程、程序和/或計算機。還有,運行于服務器 上的應用程序或腳本程序、服務器都可以是組件。一個或多個組件可在執(zhí)行的過程和/或 線程中,并且組件可以在一臺計算機上本地化和/或分布在兩臺或多臺計算機之間,并可 以由各種計算機可讀介質(zhì)運行。組件還可以根據(jù)具有一個或多個數(shù)據(jù)包的信號,例如,來自 一個與本地系統(tǒng)、分布式系統(tǒng)中另一組件交互的,和/或在因特網(wǎng)的網(wǎng)絡通過信號與其它 系統(tǒng)交互的數(shù)據(jù)的信號通過本地和/或遠程過程來進行通信。
[0098] 最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將 一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作 之間存在任何這種實際的關系或者順序。而且,術語"包括"、"包含",不僅包括那些要素,而 且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有 的要素。在沒有更多限制的情況下,由語句"包括……"限定的要素,并不排除在包括所述 要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0099] 而且,上文中的"和/或"表示本文既包含了 "和"的關系,也包含了"或"的關系, 其中:如果方案A與方案B是"和"的關系,則表示某實施例中可以同時包括方案A和方案 B ;如果方案A與方案B是"或"的關系,則表示某實施例中可以單獨包括方案A,或者單獨包 括方案B。
[0100] 本領域內(nèi)的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序 產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實 施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機 可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn) 品的形式。
[0101] 本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程 圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一 流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算 機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理 器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生 用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能 的裝置。
[0102] 這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特 定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或 多個方框中指定的功能。
[0103] 這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計 算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或 其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖 一個方框或多個方框中指定的功能的步驟。
[0104] 盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內(nèi)的技術人員一旦得知了基本創(chuàng)造 性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu) 選實施例以及落入本發(fā)明范圍的所有變更和修改。
[0105] 以上對本發(fā)明所提供的一種數(shù)據(jù)監(jiān)控的方法和數(shù)據(jù)監(jiān)控的裝置,進行了詳細介 紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只 是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā) 明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理 解為對本發(fā)明的限制。
【權利要求】
1. 一種數(shù)據(jù)監(jiān)控的方法,其特征在于,包括: 針對各C語言對象,將所述C語言對象的多個屬性分別保存在針對所述C語言對象預 置的哈希表中,所述屬性包括屬性名稱、屬性值和屬性值類型; 接收通過訪問預置的監(jiān)聽接口發(fā)送的第一目標訪問所述哈希表的請求,讀取并返回所 述哈希表中C語言對象的屬性,生成所述第一目標讀取所述屬性的第一消息,或修改所述 哈希表中C語言對象的屬性,生成所述第一目標修改所述屬性的第二消息; 通過所述監(jiān)聽接口將所述第一消息或所述第二消息發(fā)送給注冊所述監(jiān)聽接口的第二 目標。
2. 根據(jù)權利要求1所述的方法,其特征在于: 所述哈希表中的數(shù)據(jù)以鍵-鍵值的形式保存,所述鍵為所述屬性的屬性名稱,所述鍵 值為所述屬性的屬性值和屬性值類型,所述讀取所述哈希表的請求攜帶請求讀取的屬性的 名稱。
3. 根據(jù)權利要求2所述的方法,其特征在于,所述讀取并返回所述哈希表中C語言對象 的屬性包括: 以所述第一目標請求讀取的屬性的屬性名稱作為鍵,查找所述鍵對應的鍵值,作為請 求讀取的屬性; 將查找的屬性通過所述監(jiān)聽接口返回給所述第一目標。
4. 根據(jù)權利要求1所述的方法,其特征在于,還包括: 接收第一目標或第二目標監(jiān)聽所有屬性或部分屬性的請求,并將所述第一目標或第二 目標的身份信息添加到預置的監(jiān)聽對象名單中。
5. 根據(jù)權利要求1所述的方法,其特征在于: 所述屬性的數(shù)據(jù)類型為字符型、字符串型、整形、浮點型或指針型。
6. -種數(shù)據(jù)監(jiān)控的裝置,其特征在于,包括: 保存模塊,用于針對各C語言對象,將所述C語言對象的多個屬性分別保存在針對所述 C語言對象預置的哈希表中,所述屬性包括屬性名稱、屬性值和屬性值類型; 第一訪問模塊,用于接收通過訪問預置的監(jiān)聽接口發(fā)送的第一目標訪問所述哈希表的 請求,讀取并返回所述哈希表中C語言對象的屬性,生成所述第一目標讀取所述屬性的第 一消息,或,第二訪問模塊,用于修改所述哈希表中C語言對象的屬性,生成所述第一目標 修改所述屬性的第二消息; 消息發(fā)送模塊,用于通過所述監(jiān)聽接口將所述第一消息或所述第二消息發(fā)送給注冊所 述監(jiān)聽接口的第二目標。
7. 根據(jù)權利要求6所述的裝置,其特征在于: 所述哈希表中的數(shù)據(jù)以鍵-鍵值的形式保存,所述鍵為所述屬性的屬性名稱,所述鍵 值為所述屬性的屬性值和屬性值類型,所述讀取所述哈希表的請求攜帶請求讀取的屬性的 名稱。
8. 根據(jù)權利要求7所述的裝置,其特征在于,所述第一訪問模塊包括: 鍵值查找子模塊,用于以所述第一目標請求讀取的屬性的屬性名稱作為鍵,查找所述 鍵對應的鍵值,作為請求讀取的屬性; 鍵值返回子模塊,用于將查找的屬性通過所述監(jiān)聽接口返回給所述第一目標。
9. 根據(jù)權利要求6所述的裝置,其特征在于,還包括: 添加模塊,用于接收第一目標或第二目標監(jiān)聽所有屬性或部分屬性的請求,并將所述 第一目標或第二目標的身份信息添加到預置的監(jiān)聽對象名單中。
10. 根據(jù)權利要求6所述的裝置,其特征在于: 所述屬性的數(shù)據(jù)類型為字符型、字符串型、整形、浮點型或指針型。
【文檔編號】G06F9/44GK104216708SQ201410413050
【公開日】2014年12月17日 申請日期:2014年8月20日 優(yōu)先權日:2014年8月20日
【發(fā)明者】劉細華 申請人:北京奇藝世紀科技有限公司