Logo
Home page Net-SNMP

Archive Search:

Require all words?

Site Search:
Google

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, const 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, const 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, const 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,
const 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.

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.

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.

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 401 of file oid_stash.c.

void* netsnmp_oid_stash_get_data ( netsnmp_oid_stash_node root,
const 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
lookup  the oid to search for
lookup_len  the length of the search oid.

Definition at line 282 of file oid_stash.c.

netsnmp_oid_stash_node* netsnmp_oid_stash_get_node ( netsnmp_oid_stash_node root,
const 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.

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 334 of file oid_stash.c.

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:
majorID 
minorID 
serverarg 
clientarg  A pointer to a netsnmp_oid_stash_save_info structure.

Definition at line 304 of file oid_stash.c.

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 374 of file oid_stash.c.


Generated on 28 Sep 2009 for net-snmp by  doxygen 1.6.1

Last modified: Monday, 28-Sep-2009 20:19:11 UTC
For questions regarding web content and site functionality, please write to the net-snmp-users mail list.