aboutsummaryrefslogtreecommitdiffstats
path: root/lib/snmp/doc/src/snmpa_local_db.xml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/snmp/doc/src/snmpa_local_db.xml')
-rw-r--r--lib/snmp/doc/src/snmpa_local_db.xml190
1 files changed, 190 insertions, 0 deletions
diff --git a/lib/snmp/doc/src/snmpa_local_db.xml b/lib/snmp/doc/src/snmpa_local_db.xml
new file mode 100644
index 0000000000..c077bc96d8
--- /dev/null
+++ b/lib/snmp/doc/src/snmpa_local_db.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="latin1" ?>
+<!DOCTYPE erlref SYSTEM "erlref.dtd">
+
+<erlref>
+ <header>
+ <copyright>
+ <year>1996</year><year>2009</year>
+ <holder>Ericsson AB. All Rights Reserved.</holder>
+ </copyright>
+ <legalnotice>
+ 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.
+
+ </legalnotice>
+
+ <title>snmpa_local_db</title>
+ <prepared></prepared>
+ <responsible></responsible>
+ <docno></docno>
+ <approved></approved>
+ <checked></checked>
+ <date></date>
+ <rev></rev>
+ <file>snmpa_local_db.xml</file>
+ </header>
+ <module>snmpa_local_db</module>
+ <modulesummary>The SNMP built-in database</modulesummary>
+ <description>
+ <p>The module <c>snmpa_local_db</c> contains functions for
+ implementing tables (and variables) using the SNMP built-in
+ database. The database exists in two instances, one volatile
+ and one persistent. The volatile database is implemented with
+ ets. The persistent database is implemented with dets.
+ </p>
+ <p>There is a scaling problem with this database.
+ </p>
+ <list type="bulleted">
+ <item>Insertions and deletions are inefficient for large tables.
+ </item>
+ </list>
+ <p>This problem is best solved by using Mnesia instead.
+ </p>
+ <p>The following functions describe the interface to
+ <c>snmpa_local_db</c>. Each function has a Mnesia equivalent.
+ The argument <c>NameDb</c> is a tuple <c>{Name, Db}</c> where
+ <c>Name</c> is the symbolic name of the managed object (as defined
+ in the MIB), and <c>Db</c> is either <c>volatile</c> or
+ <c>persistent</c>. <c>mnesia</c> is not possible since all these
+ functions are <c>snmpa_local_db</c> specific.
+ </p>
+ </description>
+
+ <section>
+ <title>Common Data Types</title>
+ <p>In the functions defined below, the following types are
+ used:
+ </p>
+ <list type="bulleted">
+ <item>
+ <p><c>NameDb = {Name, Db}</c></p>
+ </item>
+ <item>
+ <p><c>Name = atom(), Db = volatile | persistent</c></p>
+ </item>
+ <item>
+ <p><c>RowIndex = [int()]</c></p>
+ </item>
+ <item>
+ <p><c>Cols = [Col] | [{Col, Value}], Col = int(), Value = term()</c></p>
+ </item>
+ </list>
+ <p>where <c>RowIndex</c> denotes the last part of the OID, that
+ specifies the index of the row in the table. <c>Cols</c> is a
+ list of column numbers in case of a get operation, and a list of
+ column numbers and values in case of a set operation.
+ </p>
+ </section>
+ <funcs>
+ <func>
+ <name>dump() -> ok | {error, Reason}</name>
+ <fsummary>Dump the database to disk</fsummary>
+ <type>
+ <v>Reason = term()</v>
+ </type>
+ <desc>
+ <p>This function can be used to manually dump the database
+ to file.</p>
+ </desc>
+ </func>
+ <func>
+ <name>match(NameDb, Pattern)</name>
+ <fsummary>Perform a match on the table</fsummary>
+ <desc>
+ <p>Performs an ets/dets matching on the table.
+ See Stdlib documentation, module ets, for a description of
+ <c>Pattern</c> and the return values.</p>
+ </desc>
+ </func>
+ <func>
+ <name>print()</name>
+ <name>print(TableName)</name>
+ <name>print(TableName, Db)</name>
+ <fsummary>Print the database to screen</fsummary>
+ <type>
+ <v>TableName = atom()</v>
+ </type>
+ <desc>
+ <p>Prints the contents of the database on
+ screen. This is useful for debugging since the
+ <c>STANDARD-MIB</c> and <c>OTP-SNMPEA-MIB</c>
+ (and maybe your own MIBs) are stored in <c>snmpa_local_db</c>.
+ </p>
+ <p><c>TableName</c> is an atom for a table in the database.
+ When no name is supplied, the whole database is shown.</p>
+ </desc>
+ </func>
+ <func>
+ <name>table_create(NameDb) -> bool()</name>
+ <fsummary>Create a table</fsummary>
+ <desc>
+ <p>Creates a table. If the table already exist, the old copy
+ is destroyed.
+ </p>
+ <p>Returns <c>false</c> if the <c>NameDb</c> argument is
+ incorrectly specified, <c>true</c> otherwise.</p>
+ </desc>
+ </func>
+ <func>
+ <name>table_create_row(NameDb, RowIndex, Row) -> bool()</name>
+ <fsummary>Create a row in a table</fsummary>
+ <type>
+ <v>Row = {Val1, Val2, ..., ValN}</v>
+ <v>Val1 = Val2 = ... = ValN = term()</v>
+ </type>
+ <desc>
+ <p>Creates a row in a table. <c>Row</c> is a tuple with
+ values for all columns, including the index columns.</p>
+ </desc>
+ </func>
+ <func>
+ <name>table_delete(NameDb) -> void()</name>
+ <fsummary>Delete a table</fsummary>
+ <desc>
+ <p>Deletes a table.</p>
+ </desc>
+ </func>
+ <func>
+ <name>table_delete_row(NameDb, RowIndex) -> bool()</name>
+ <fsummary>Delete the row in the table</fsummary>
+ <desc>
+ <p>Deletes the row in the table.</p>
+ </desc>
+ </func>
+ <func>
+ <name>table_exists(NameDb) -> bool()</name>
+ <fsummary>Check if a table exists</fsummary>
+ <desc>
+ <p>Checks if a table exists.</p>
+ </desc>
+ </func>
+ <func>
+ <name>table_get_row(NameDb, RowIndex) -> Row | undefined</name>
+ <fsummary>Get a row from the table</fsummary>
+ <type>
+ <v>Row = {Val1, Val2, ..., ValN}</v>
+ <v>Val1 = Val2 = ... = ValN = term()</v>
+ </type>
+ <desc>
+ <p><c>Row</c> is a tuple with values for all columns,
+ including the index columns.</p>
+ </desc>
+ </func>
+ </funcs>
+
+ <section>
+ <title>See Also</title>
+ <p>ets(3), dets(3), snmp_generic(3)
+ </p>
+ </section>
+
+</erlref>
+