20132014 Ericsson AB. All Rights Reserved. The contents of this file are subject to the Erlang Public License, Version 1.1, (the "License"); you may not use this file except in compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. snmpa_mib_storage snmpa_mib_storage.xml
snmpa_mib_storage Behaviour module for the SNMP agent mib storage.

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:

Module:open(Name, RecordName, Fields, Type, Options) -> {ok, TabId} | {error, Reason} Create new (mib-server) data instance Name = atom() RecordName = atom() Fields = [atom()] Type = set | bag() Options = list() TabId = term() Reason = term()

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() Close the mib-storage table State = term()

Close the mib-storage table.

Module:read(TabId, Key) -> false | {value, Record} Read a record from the mib-storage table TabId = term() Key = term() Record = tuple()

Read a record from the mib-storage table.

Module:write(TabId, Record) -> ok | {error, Reason} Write a record to the mib-storage table TabId = term() Record = tuple() Reason = term()

Write a record to the mib-storage table.

Module:delete(TabId) -> void() Delete an entire mib-storage table TabId = term()

Delete an entire mib-storage table.

Module:delete(TabId, Key) -> ok | {error, Reason} Delete a record from the mib-storage table TabId = term() Key = term() Reason = term()

Delete a record from the mib-storage table.

Module:match_object(TabId, Pattern) -> {ok, Recs} | {error, Reason} Search the mib-storage table for record matching pattern TabId = term() Pattern = match_pattern() Recs = [tuple()] Reason = term()

Search the mib-storage table for record that match the specified pattern.

Module:match_delete(TabId, Pattern) -> {ok, Recs} | {error, Reason} Delete records in the mib-storage table matching pattern TabId = term() Pattern = match_pattern() Recs = [tuple()] Reason = 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 Return all records of the mib-storage table TabId = term() Recs = [tuple()]

Return all records in the mib-storage table in the form of a list.

Module:info(TabId) -> {ok, Info} | {error, Reason} Returns information about the mib-storage table. TabId = term() Info = term() Reason = term()

Retrieve implementation dependent mib-storage table information.

Module:sync(TabId) -> void() Synchronize mib-storage table TabId = term()

Synchronize the mib-storage table.

What this means, if anything, is implementation dependent.

Module:backup(TabId, BackupDir) -> ok | {error, Reason} Perform a backup of the mib-storage table TabId = term() BackupDir = string() Reason = term()

Perform a backup of the mib-storage table.

What this means, if anything, is implementation dependent.