DESCRIPTION
This module defines the behaviour of the SNMP agent mib storage.
The mib storage is used by the agent to store internal mib- related information. The mib storage module is used by several entities, not just the mib-server.
A snmpa_mib_storage compliant module must export the following functions:
-
- *
- open/5
- *
- close/1
- *
- read/2
- *
- write/2
- *
- delete/1
- *
- delete/2
- *
- match_object/2
- *
- match_delete/2
- *
- tab2list/1
- *
- info/1
- *
- sync/1
- *
- backup/2
The semantics of them and their exact signatures are explained below.
CALLBACK FUNCTIONS
The following functions must be exported from a mib-server data callback module:
EXPORTS
Module:open(Name, RecordName, Fields, Type, Options) -> {ok, TabId} | {error, Reason}
-
Types:
-
Name = atom()
RecordName = atom()
Fields = [atom()]
Type = set | bag()
Options = list()
TabId = term()
Reason = term()
-
Name = atom()
-
Create or open a mib storage table.
Note that the RecordName and Fields arguments my not be used in all implementations (they are actually only needed for mnesia-based implementations).
Note also that the Options argument comes from the options config option of the mib-storage config option, and is passed on as is.
Module:close(TabId) -> void()
-
Types:
-
State = term()
-
State = term()
-
Close the mib-storage table.
Module:read(TabId, Key) -> false | {value, Record}
-
Types:
-
TabId = term()
Key = term()
Record = tuple()
-
TabId = term()
-
Read a record from the mib-storage table.
Module:write(TabId, Record) -> ok | {error, Reason}
-
Types:
-
TabId = term()
Record = tuple()
Reason = term()
-
TabId = term()
-
Write a record to the mib-storage table.
Module:delete(TabId) -> void()
-
Types:
-
TabId = term()
-
TabId = term()
-
Delete an entire mib-storage table.
Module:delete(TabId, Key) -> ok | {error, Reason}
-
Types:
-
TabId = term()
Key = term()
Reason = term()
-
TabId = term()
-
Delete a record from the mib-storage table.
Module:match_object(TabId, Pattern) -> {ok, Recs} | {error, Reason}
-
Types:
-
TabId = term()
Pattern = match_pattern()
Recs = [tuple()]
Reason = term()
-
TabId = term()
-
Search the mib-storage table for record that match the specified pattern.
Module:match_delete(TabId, Pattern) -> {ok, Recs} | {error, Reason}
-
Types:
-
TabId = term()
Pattern = match_pattern()
Recs = [tuple()]
Reason = term()
-
TabId = term()
-
Search the mib-storage table for record that match the specified pattern and then delete them. The records deleted are also returned.
Module:tab2list(TabId) -> Recs
-
Types:
-
TabId = term()
Recs = [tuple()]
-
TabId = term()
-
Return all records in the mib-storage table in the form of a list.
Module:info(TabId) -> {ok, Info} | {error, Reason}
-
Types:
-
TabId = term()
Info = term()
Reason = term()
-
TabId = term()
-
Retrieve implementation dependent mib-storage table information.
Module:sync(TabId) -> void()
-
Types:
-
TabId = term()
-
TabId = term()
-
Synchronize the mib-storage table.
What this means, if anything, is implementation dependent.
Module:backup(TabId, BackupDir) -> ok | {error, Reason}
-
Types:
-
TabId = term()
BackupDir = string()
Reason = term()
-
TabId = term()
-
Perform a backup of the mib-storage table.
What this means, if anything, is implementation dependent.