当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。