bionic (3) snmpa_mib_storage.3erl.gz

Provided by: erlang-manpages_20.2.2+dfsg-1ubuntu2_all bug

NAME

       snmpa_mib_storage -
           Behaviour module for the SNMP agent mib storage.

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()

              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()

              Close the mib-storage table.

       Module:read(TabId, Key) -> false | {value, Record}

              Types:

                 TabId = term()
                 Key = term()
                 Record = tuple()

              Read a record from the mib-storage table.

       Module:write(TabId, Record) -> ok | {error, Reason}

              Types:

                 TabId = term()
                 Record = tuple()
                 Reason = term()

              Write a record to the mib-storage table.

       Module:delete(TabId) -> void()

              Types:

                 TabId = term()

              Delete an entire mib-storage table.

       Module:delete(TabId, Key) -> ok | {error, Reason}

              Types:

                 TabId = term()
                 Key = term()
                 Reason = 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()

              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()

              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()]

              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()

              Retrieve implementation dependent mib-storage table information.

       Module:sync(TabId) -> void()

              Types:

                 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()

              Perform a backup of the mib-storage table.

              What this means, if anything, is implementation dependent.