當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


erlang snmp_open_table(Tab :: table(), Snmp :: snmp_struct())用法及代碼示例


snmp_open_table(Tab :: table(), Snmp :: snmp_struct()) -> ok
類型:
選項卡::= atom()
SnmpStruct::= [{key, type()}]
type()::= type_spec() | {type_spec()、type_spec()、...}
type_spec()::= fix_string |字符串|整數

Mnesia 表和 SNMP 表之間可以建立直接的一對一映射。許多電信應用程序都是通過 SNMP 協議進行控製和監視的。 Mnesia 和 SNMP 之間的這種連接使得實現這種映射變得簡單方便。

參數 SnmpStruct 是 SNMP 信息列表。目前,唯一需要的信息是有關表中鍵類型的信息。 Mnesia 無法處理多個鍵,但許多 SNMP 表都有多個鍵。因此,使用以下約定:如果表有多個鍵,則這些鍵必須始終存儲為鍵的元組。有關鍵類型的信息被指定為說明類型的原子元組。唯一重要的類型是 fix_string 。這意味著字符串具有固定的大小。

例如,以下命令會導致表 person 作為 SNMP 表進行排序:

mnesia:snmp_open_table(person, [{key, string}])

考慮以下公司員工表的架構。每個員工都通過部門編號和姓名進行識別。另一個表列存儲電話號碼:

mnesia:create_table(employee,
    [{snmp, [{key, {integer, string}}]},
     {attributes, record_info(fields, employees)}]),

相應的 SNMP 表將包含三列: departmentnametelno

一個選項是讓表列通過 SNMP 協議不可見。這些列必須是表的最後一列。在前麵的示例中,SNMP 表隻能包含departmentname 列。然後,應用程序可以在內部使用telno 列,但 SNMP 管理器將看不到它。

在 SNMP 監控的表中,所有元素都必須是整數、字符串或整數列表。

當表是 SNMP 排序的時,修改的成本比平常更高,O(logN)。此外,還會使用更多內存。

請注意,Mnesia 中僅實現了字典順序的 SNMP 排序,而不是實際的 SNMP 監控。

相關用法


注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 snmp_open_table(Tab :: table(), Snmp :: snmp_struct()) -> ok。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。