Logo
Home page Net-SNMP

Archive Search:

Require all words?

Site Search:
Google
Main Page | Modules | Data Structures | File List | Data Fields | Related Pages | Examples

Store and retrieve data referenced by an OID.
[The Net-SNMP library]

This is essentially a way of storing data associated with a given OID. More...

Functions

netsnmp_oid_stash_node *  netsnmp_oid_stash_create_sized_node (size_t mysize)
  Create an netsnmp_oid_stash node.
NETSNMP_INLINE netsnmp_oid_stash_node *  netsnmp_oid_stash_create_node (void)
  Creates a netsnmp_oid_stash_node.
int  netsnmp_oid_stash_add_data (netsnmp_oid_stash_node **root, oid *lookup, size_t lookup_len, void *mydata)
  adds data to the stash at a given oid.
netsnmp_oid_stash_node *  netsnmp_oid_stash_get_node (netsnmp_oid_stash_node *root, oid *lookup, size_t lookup_len)
  returns a node associated with a given OID.
netsnmp_oid_stash_node *  netsnmp_oid_stash_getnext_node (netsnmp_oid_stash_node *root, oid *lookup, size_t lookup_len)
  returns the next node associated with a given OID.
void *  netsnmp_oid_stash_get_data (netsnmp_oid_stash_node *root, oid *lookup, size_t lookup_len)
  returns a data pointer associated with a given OID.
int  netsnmp_oid_stash_store_all (int majorID, int minorID, void *serverarg, void *clientarg)
  a wrapper around netsnmp_oid_stash_store for use with a snmp_alarm.
void  netsnmp_oid_stash_store (netsnmp_oid_stash_node *root, const char *tokenname, NetSNMPStashDump *dumpfn, oid *curoid, size_t curoid_len)
  stores data in a starsh tree to peristent storage.
void  oid_stash_dump (netsnmp_oid_stash_node *root, char *prefix)
  For debugging: dump the netsnmp_oid_stash tree to stdout.
void  netsnmp_oid_stash_free (netsnmp_oid_stash_node **root, NetSNMPStashFreeNode *freefn)
  Frees the contents of a netsnmp_oid_stash tree.
void  netsnmp_oid_stash_no_free (void *bogus)

Detailed Description

This is essentially a way of storing data associated with a given OID.

It stores a bunch of data pointers within a memory tree that allows fairly efficient lookups with a heavily populated tree.


Function Documentation

int netsnmp_oid_stash_add_data netsnmp_oid_stash_node **  root,
oid *  lookup,
size_t  lookup_len,
void *  mydata
 

adds data to the stash at a given oid.

Parameters:
root  the top of the stash tree
lookup  the oid index to store the data at.
lookup_len  the length of the lookup oid.
mydata  the data to store
Returns:
SNMPERR_SUCCESS on success, SNMPERR_GENERR if data is already there, SNMPERR_MALLOC on malloc failures or if arguments passed in with NULL values.

Definition at line 83 of file oid_stash.c.

References netsnmp_oid_stash_create_node().

NETSNMP_INLINE netsnmp_oid_stash_node* netsnmp_oid_stash_create_node void   ) 
 

Creates a netsnmp_oid_stash_node.

Assumes you want the default OID_STASH_CHILDREN_SIZE hash size for the node.

Returns:
NULL on error, otherwise the newly allocated node

Definition at line 66 of file oid_stash.c.

References netsnmp_oid_stash_create_sized_node().

Referenced by netsnmp_oid_stash_add_data().

netsnmp_oid_stash_node* netsnmp_oid_stash_create_sized_node size_t  mysize  ) 
 

Create an netsnmp_oid_stash node.

Parameters:
mysize  the size of the child pointer array
Returns:
NULL on error, otherwise the newly allocated node

Definition at line 46 of file oid_stash.c.

References SNMP_MALLOC_TYPEDEF.

Referenced by netsnmp_oid_stash_create_node().

void netsnmp_oid_stash_free netsnmp_oid_stash_node **  root,
NetSNMPStashFreeNode *  freefn
 

Frees the contents of a netsnmp_oid_stash tree.

Parameters:
root  the top of the tree (or branch to be freed)
freefn  The function to be called on each data (void *) pointer. If left NULL the system free() function will be called

Definition at line 398 of file oid_stash.c.

void* netsnmp_oid_stash_get_data netsnmp_oid_stash_node *  root,
oid *  lookup,
size_t  lookup_len
 

returns a data pointer associated with a given OID.

This is equivelent to netsnmp_oid_stash_get_node, but returns only the data not the entire node.

Parameters:
root  the top of the stash
oid  the oid to search for
the  length of the search oid.

Definition at line 282 of file oid_stash.c.

References netsnmp_oid_stash_get_node().

netsnmp_oid_stash_node* netsnmp_oid_stash_get_node netsnmp_oid_stash_node *  root,
oid *  lookup,
size_t  lookup_len
 

returns a node associated with a given OID.

Parameters:
root  the top of the stash tree
lookup  the oid to look up a node for.
lookup_len  the length of the lookup oid

Definition at line 154 of file oid_stash.c.

Referenced by netsnmp_oid_stash_get_data().

netsnmp_oid_stash_node* netsnmp_oid_stash_getnext_node netsnmp_oid_stash_node *  root,
oid *  lookup,
size_t  lookup_len
 

returns the next node associated with a given OID.

INCOMPLETE. This is equivelent to a GETNEXT operation.

Definition at line 191 of file oid_stash.c.

void netsnmp_oid_stash_store netsnmp_oid_stash_node *  root,
const char *  tokenname,
NetSNMPStashDump *  dumpfn,
oid *  curoid,
size_t  curoid_len
 

stores data in a starsh tree to peristent storage.

This function can be called to save all data in a stash tree to Net-SNMP's percent storage. Make sure you register a parsing function with the read_config system to re-incorperate your saved data into future trees.

Parameters:
root  the top of the stash to store.
tokenname  the file token name to save in (passing "snmpd" will save things into snmpd.conf).
dumpfn  A function which can dump the data stored at a particular node into a char buffer.
curoid  must be a pointer to a OID array of length MAX_OID_LEN.
curoid_len  must be 0 for the top level call.

Definition at line 331 of file oid_stash.c.

References read_config_store().

Referenced by netsnmp_oid_stash_store_all().

int netsnmp_oid_stash_store_all int  majorID,
int  minorID,
void *  serverarg,
void *  clientarg
 

a wrapper around netsnmp_oid_stash_store for use with a snmp_alarm.

when calling snmp_alarm, you can list this as a callback. The clientarg should be a pointer to a netsnmp_oid_stash_save_info pointer. It can also be called directly, of course. The last argument (clientarg) is the only one that is used. The rest are ignored by the function.

Parameters:
clientarg  A pointer to a netsnmp_oid_stash_save_info structure.

Definition at line 301 of file oid_stash.c.

References netsnmp_oid_stash_store().

void oid_stash_dump netsnmp_oid_stash_node *  root,
char *  prefix
 

For debugging: dump the netsnmp_oid_stash tree to stdout.

Parameters:
root  The top of the tree
prefix  a character string prefix printed to the beginning of each line.

Definition at line 371 of file oid_stash.c.


Generated on Fri Dec 30 13:47:56 2005 for net-snmp by  doxygen 1.3.9.1

Valid CSS!


Last modified: Thursday, 01-Mar-2007 16:20:13 PST
For questions regarding web content and site functionality, please write to the net-snmp-users mail list.