| .TH DEFAULT_STORE 3 "25 Jun 2002" VVERSIONINFO "Net-SNMP" |
| .UC 5 |
| .SH NAME |
| default_store \- generic storage of global data. |
| .SH SYNOPSIS |
| .B #include <net-snmp/net-snmp-config.h> |
| .br |
| .B #include <net-snmp/config_api.h> |
| |
| .BI "int netsnmp_ds_set_boolean(int " store ", int " which ", int " val ");" |
| .br |
| .BI "int netsnmp_ds_get_boolean(int " store ", int " which ");" |
| .br |
| .BI "int netsnmp_ds_set_int(int " store ", int " which ", int " val ");" |
| .br |
| .BI "int netsnmp_ds_get_int(int " store ", int " which ");" |
| .br |
| .BI "int netsnmp_ds_set_string(int " store ", int " which ", " |
| .br |
| .BI " const char *" val ");" |
| .br |
| .BI "char *netsnmp_ds_get_string(int " store ", int " which ");" |
| .br |
| .BI "int netsnmp_ds_register_config(u_char " type ", " |
| .br |
| .BI " const char *" ftype "," |
| .br |
| .BI " const char *" token "," |
| .br |
| .BI " int " store ", int " which ");" |
| .br |
| .BI "int netsnmp_ds_register_premib(u_char " type ", " |
| .br |
| .BI " const char *" ftype "," |
| .br |
| .BI " const char *" token "," |
| .br |
| .BI " int " store ", int " which ");" |
| .br |
| .BI "void netsnmp_ds_shutdown(void);" |
| .fi |
| .SH DESCRIPTION |
| The purpose of the default storage is three-fold: |
| .IP 1) |
| To create a global storage space without creating a whole bunch of |
| globally accessible variables or a whole bunch of access functions to |
| work with more privately restricted variables. |
| .IP 2) |
| To provide a single location where the thread locking needs to be |
| implemented. At the time of this writing, however, thread locking is not |
| yet in place. |
| .IP 3) |
| To reduce the number of cross dependencies between code pieces that |
| may or may not be linked together in the long run. This provides for a |
| single location in which configuration data, for example, can be |
| stored for a separate section of code that may not be linked in to |
| the application in question. |
| .PP |
| The functions defined here implement these goals. |
| .PP |
| Currently, three data types are supported: booleans, integers, and |
| strings. Each of these data types have separate storage |
| spaces. In addition, the storage space for each data type is divided |
| further by the application level. Currently, there are two storage |
| spaces. The first is reserved for the SNMP library itself. The second |
| is intended for use in applications and is not modified or checked by |
| the library, and, therefore, this is the space usable by you. |
| .PP |
| You can think of these storage spaces as being 3 arrays, something |
| like bool_storage[storeid][which], int_storage[storeid][which], and |
| string_storage[storeid][which]. The data is then accessed through the |
| functions defined below. For data you wish to store, you should use a |
| .I store |
| parameter of |
| .BR NETSNMP_DS_APPLICATION_ID . |
| .PP |
| The storage space used by the library (for which the |
| .I store |
| parameter is |
| .BR NETSNMP_DS_LIBRARY_ID ) |
| is defined in the default_store.h file, which currently contains the |
| following defines: |
| .PP |
| .nf |