Provided by: erlang-manpages_20.2.2+dfsg-1ubuntu2_all
NAME
snmpa_mib_data - Behaviour module for the SNMP agent mib-server data module.
DESCRIPTION
This module defines the behaviour of the SNMP agent mib-server data module. A snmpa_mib_data compliant module must export the following functions: * new/1 * close/1 * sync/1 * load_mib/4 * unload_mib/4 * lookup/2 * next/3 * register_subagent/3 * unregister_subagent/2 * which_mib/2 * which_mibs/1 * whereis_mib/2 * dump/2 * info/1 * backup/2 * code_change/4 The semantics of them and their exact signatures are explained below. Note that the data extracted from the imported (loaded) mibs are stored partly by the mib- server and partly by the symbolic-store server. See the default mib-server data module, snmpa_mib_data_tttn for details.
CALLBACK FUNCTIONS
The following functions must be exported from a mib-server data callback module:
EXPORTS
Module:new(Storage) -> State Types: Storage = mib_storage() State = term() Create a new mib-server data instance. Module:close(State) -> void() Types: State = term() Close the mib-storage. Module:sync(State) -> void() Types: State = term() Synchronize (write to disc, if possible) the mib-server data. This depends on the mib_storage option, and will only have an effect if the mib-storage option has an actual disc component (such as dets, or ets with a file). Module:load_mib(State, Filename, MeOverride, TeOverride) -> {ok, NewState} | {error, Reason} Types: State = NewState = term() Filename = filename() MeOverride = boolean() TeOverride = boolean() Reason = already_loaded | term() Load the mib specified by the Filename argument into the mib-server. The MeOverride and TeOverride arguments specifies how the mib-server shall handle duplicate mib- and trap- entries. Module:unload_mib(State, Filename) -> {ok, NewState} | {error, Reason} Types: State = NewState = term() Filename = filename() Reason = not_loaded | term() Unload the mib specified by the Filename argument from the mib-server. Module:lookup(State, Oid) -> Reply Types: State = term() Reply = {variable, ME} | {table_column, ME, TEOid} | {subagent, SAPid, SAOid} | {false, Reason} Oid = TEOid = SAOid = oid() SAPid = pid() ME = me() Reason = term() Find the mib-entry corresponding to the Oid. If it is a variable, the Oid must be <Oid for var>.0 and if it is a table, Oid must be <table>.<entry>.<col>.<any>. Module:next(State, Oid, MibView) -> Reply Types: State = term() Reply = false | endOfTable | {subagent, SAPid, SAOid} | {variable, ME, VarOid} | {table, TableOid, TableRestOid, ME} Oid = SAOid = VarOid = TableOid = TableRestOid = oid() SAPid = pid() ME = me() Finds the lexicographically next oid. Module:register_subagent(State, Oid, Pid) -> Reply Types: State = NewState = term() Reply = {ok, NewState} | {error, Reason} Oid = oid() Pid = pid() Reason = term() Register the subagent, process, handling part of the mib-tree. Module:unregister_subagent(State, PidOrOid) -> Reply Types: State = NewState = term() Reply = {ok, NewState} | {ok, NewState, Pid} | {error, Reason} PidOrOid = pid() | oid() Pid = pid() Reason = term() Unregister the subagent, handling part of the mib-tree, as specified by the oid() or pid() (PidOrOid). When unregister the subagent using an oid(), the pid() of the process handling the sub-tree is also returned. Module:dump(State, Destination) -> Reply Types: State = term() Reply = ok | {error, Reason} Destination = io | filename() Pid = pid() Reason = term() Dump the mib-server data to stdio (Destination = io) or the specified file. Module:which_mib(State, Oid) -> Reply Types: State = term() Reply = {ok, MibFile} | {error, Reason} Oid = oid() MibFile = string() Reason = term() Retrieve the mib-file to which an given oid() belongs. Module:which_mibs(State) -> Reply Types: State = term() Reply = [{MibName, Filename}] MibName = atom() Filename = string() Retrieve all loaded mib-files. Module:whereis_mib(State, MibName) -> Reply Types: State = term() MibName = atom() Reply = {ok, Filename} | {error, Reason} Filename = string() Reason = term() Retrieve the mib file for the mib. Module:info(State) -> Reply Types: State = term() Reply = {ok, Filename} | {error, Reason} Filename = string() Reason = term() Retrieve misc info for the mib data. This is a utility function used to inspect, for instance, memory usage, in a simple way. Module:backup(State, BackupDir) -> Reply Types: State = term() Reply = ok | {error, Reason} BackupDir = string() Reason = term() Perform a backup of the mib-server data. Note that its implementation dependant (and also dependent on mib-storage is used) if a backup is possible. Module:code_change(Destination, Vsn, Extra, State) -> NewState Types: Destination = up | down Vsn = term() Extra = term() State = NewState = term() Perform a code-change (upgrade or downgrade). See gen_server for more info regarding the Vsn and Extra arguments.