.fi
.SH FUNCTIONS
.TP
.BI "int netsnmp_ds_set_boolean(int " store ", int " which ", int " val ");"
Stores
.I TRUE
if 
.I val
!= 0 or else
.I FALSE
into the bool_storage[store][which] slot.  Returns
.B SNMPERR_GENERR
if the
.IR store " and " which
parameters do not correspond to a valid slot, or
.B SNMPERR_SUCCESS
otherwise.
.TP
.BI "int netsnmp_ds_get_boolean(int " store ", int " which ");"
Returns 1 if bool_storage[store][which] is 
.IR TRUE
or 0 if not.  May also return
.B SNMPERR_GENERR
if the 
.IR store " and " which
parameters do not correspond to a valid slot.
.TP
.BI "int netsnmp_ds_set_string(int " store ", int " which ", const char *" val ");"
Stores
.I val
into the string_storage[store][which] slot.  Returns
.B SNMPERR_SUCCESS
normally, or 
.B SNMPERR_GENERR
if the 
.IR store " and " which
parameters do not correspond to a valid slot.
.TP
.BI "char *netsnmp_ds_get_string(int " store ", int " which ");"
Returns the string which has been stored in the
string_storage[store][which] slot, or
.B NULL
if the
.IR store " and " which
parameters do not correspond to a valid slot.
.TP 
.BI "netsnmp_ds_set_int(int " store ", int " which ", int " val ");"
Stores
.I val
into the int_storage[store][which] slot.  Returns
.B SNMPERR_GENERR
if the
.IR store " and " which
parameters do not correspond to a valid slot, or
.B SNMPERR_SUCCESS
otherwise.
.TP
.BI "int netsnmp_ds_get_int(int " store ", int " which ");"
Returns the integer which has been stored in the
int_storage[store][which] slot, or
.B SNMPERR_GENERR
if the
.IR store " and " which
parameters do not correspond to a valid slot.
.TP
.BI "void netsnmp_ds_shutdown(void);"
Reclaims memory used to hold information gathered by
.BR netsnmp_ds_register_config " and " netsnmp_ds_register_premib .
.TP
.BI "int netsnmp_ds_register_config(u_char " type ", const char *" ftype ", const char *" token ", int " store ", int " which ");"
Registers a configuration file directive 
.I token
and attaches it to 
a default storage type and slot.  Specifically,
.I store
and
.I which
indicate the storage slot in the data type indicated by
.I type,
where
.I type
is one of the following constants:
.BR ASN_BOOLEAN ", " ASN_INTEGER ", or " ASN_OCTET_STR .
The
.I ftype
variable indicates the file name base string searched for the
.I token
keyword.  For example, the following call:
.RS
.IP
netsnmp_ds_register_config(ASN_INTEGER, "snmp", "testtoken", DS_APPLICATION_ID, 5)
.RE
.IP
would indicate that when the snmp.conf file(s) were found and parsed,
that any line beginning with the word "testtoken" should be read and
the value after "testtoken" should be stored into the
int_storage[DS_APPLICATION_ID][5] slot.  For example the following
line in the configuration file:
.RS
.IP
testtoken 502
.RE
.IP
would set int_storage[DS_APPLICATION_ID][5] = 502.  This function returns
.B SNMPERR_SUCCESS
if the registration was made successfully, or 
.B SNMPERR_GENERR
if the registration was not made (perhaps because the
.IR store " and " which
parameters do not correspond to a valid slot, or because of a memory
allocation failure).
.TP
.BI "int netsnmp_ds_register_premib(u_char " type ", const char *" ftype ", const char *" token ", int " store ", int " which ");"
Analogous to the preceeding function, but the
.I token
is processed before MIBs are read (this is therefore useful for controlling
MIB processing options).
.SH "SEE ALSO"
.BR snmp_config "(5), " read_config "(3)"

