查看源代码 snmpa_mib_storage 行为 (snmp v5.18)
SNMP 代理 MIB 存储的行为模块。
此模块定义了 SNMP 代理 MIB 存储的行为。
代理使用 MIB 存储来存储内部 MIB 相关信息。MIB 存储模块被多个实体使用,而不仅仅是 MIB 服务器。
符合 snmpa_mib_storage
规范的模块必须导出以下函数
- open/5
- close/1
- read/2
- write/2
- delete/1
- delete/2
- match_object/2
- match_delete/2
- tab2list/1
- info/1
- info/2
- sync/1
- backup/2
它们的语义和确切签名将在下面解释。
概要
回调:回调函数
执行 MIB 存储表的备份。
关闭 MIB 存储表。
删除整个 MIB 存储表。
从 MIB 存储表中删除一条记录。
检索依赖于实现的 MIB 存储表信息。
在 MIB 存储表中搜索与指定模式匹配的记录,然后将其删除。返回已删除的记录。
在 MIB 存储表中搜索与指定模式匹配的记录。
创建或打开一个 MIB 存储表。
从 MIB 存储表中读取一条记录。
同步 MIB 存储表。
以列表的形式返回 MIB 存储表中的所有记录。
向 MIB 存储表写入一条记录。
类型
回调:回调函数
-callback backup(TabId :: mib_storage_table_id(), Dir :: file:filename()) -> ok | {error, Reason :: term()}.
执行 MIB 存储表的备份。
这表示什么,如果有的话,取决于具体的实现。
-callback close(TabId :: mib_storage_table_id()) -> term().
关闭 MIB 存储表。
-callback delete(TabId :: mib_storage_table_id()) -> snmp:void().
删除整个 MIB 存储表。
-callback delete(TabId :: mib_storage_table_id(), Key :: term()) -> ok | {error, Reason :: term()}.
从 MIB 存储表中删除一条记录。
-callback info(TabId :: mib_storage_table_id()) -> Info :: term().
检索依赖于实现的 MIB 存储表信息。
-callback info(TabId :: mib_storage_table_id(), Item :: atom()) -> Info :: term().
-callback match_delete(TabId :: mib_storage_table_id(), Pattern :: ets:match_pattern()) -> Recs :: [tuple()] | {error, Reason :: term()}.
在 MIB 存储表中搜索与指定模式匹配的记录,然后将其删除。返回已删除的记录。
-callback match_object(TabId :: mib_storage_table_id(), Pattern :: ets:match_pattern()) -> Recs :: [tuple()] | {error, Reason :: term()}.
在 MIB 存储表中搜索与指定模式匹配的记录。
-callback open(Name :: atom(), RecName :: atom(), Fields :: mib_storage_fields(), Type :: mib_storage_table_type(), Options :: list()) -> {ok, TabId :: mib_storage_table_id()} | {error, Reason :: term()}.
创建或打开一个 MIB 存储表。
请注意,并非所有实现都可能使用 RecordName
和 Fields
参数(它们实际上仅在基于 mnesia 的实现中需要)。
另请注意,Options
参数来自 MIB 存储配置选项的 options
配置选项,并按原样传递。
-callback read(TabId :: mib_storage_table_id(), Key :: term()) -> false | {value, Record :: tuple()}.
从 MIB 存储表中读取一条记录。
-callback sync(TabId :: mib_storage_table_id()) -> snmp:void().
同步 MIB 存储表。
这表示什么,如果有的话,取决于具体的实现。
-callback tab2list(TabId :: mib_storage_table_id()) -> [tuple()].
以列表的形式返回 MIB 存储表中的所有记录。
-callback write(TabId :: mib_storage_table_id(), Record :: tuple()) -> ok | {error, Reason :: term()}.
向 MIB 存储表写入一条记录。