net-snmp 5.7
Functions | Variables
tdata
table

Implement a table with datamatted storage. More...

Functions

netsnmp_tdata * netsnmp_tdata_create_table (const char *name, long flags)
 creates and returns a 'tdata' table data structure
void netsnmp_tdata_delete_table (netsnmp_tdata *table)
 creates and returns a 'tdata' table data structure
netsnmp_tdata_row * netsnmp_tdata_create_row (void)
 creates and returns a pointer to new row data structure
 netsnmp_feature_child_of (tdata_clone_row, table_tdata_all)
 clones a 'tdata' row.
 netsnmp_feature_child_of (tdata_copy_row, table_tdata_all)
 copy the contents of a 'tdata' row.
void * netsnmp_tdata_delete_row (netsnmp_tdata_row *row)
 deletes the memory used by the specified row returns the table-specific entry data (that it doesn't know how to delete)
int netsnmp_tdata_add_row (netsnmp_tdata *table, netsnmp_tdata_row *row)
 Adds a row to the given table (stored in proper lexographical order).
 netsnmp_feature_child_of (tdata_replace_row, table_tdata_all)
 swaps out origrow with newrow.
netsnmp_tdata_row * netsnmp_tdata_remove_row (netsnmp_tdata *table, netsnmp_tdata_row *row)
 removes a row from the given table and returns it (no free's called)
void * netsnmp_tdata_remove_and_delete_row (netsnmp_tdata *table, netsnmp_tdata_row *row)
 removes and frees a row of the given table and returns the table-specific entry data
netsnmp_mib_handler * netsnmp_get_tdata_handler (netsnmp_tdata *table)
 Creates a tdata handler and returns it.
int _netsnmp_tdata_helper_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
int netsnmp_tdata_register (netsnmp_handler_registration *reginfo, netsnmp_tdata *table, netsnmp_table_registration_info *table_info)
 registers a tdata-based MIB table
 netsnmp_feature_child_of (tdata_unregister, table_tdata_all)
netsnmp_tdata * netsnmp_tdata_extract_table (netsnmp_request_info *request)
 extracts the tdata table from the request structure
 netsnmp_feature_child_of (tdata_extract_container, table_tdata_all)
 extracts the tdata container from the request structure
netsnmp_tdata_row * netsnmp_tdata_extract_row (netsnmp_request_info *request)
 extracts the tdata row being accessed from the request structure
void * netsnmp_tdata_extract_entry (netsnmp_request_info *request)
 extracts the (table-specific) entry being accessed from the request structure
NETSNMP_INLINE void netsnmp_insert_tdata_row (netsnmp_request_info *request, netsnmp_tdata_row *row)
 inserts a newly created tdata row into a request
NETSNMP_INLINE void netsnmp_remove_tdata_row (netsnmp_request_info *request, netsnmp_tdata_row *row)
 inserts a newly created tdata row into a request
void * netsnmp_tdata_row_entry (netsnmp_tdata_row *row)
 returns the (table-specific) entry data for a given row
netsnmp_tdata_row * netsnmp_tdata_row_first (netsnmp_tdata *table)
 returns the first row in the table
netsnmp_tdata_row * netsnmp_tdata_row_get (netsnmp_tdata *table, netsnmp_tdata_row *row)
 finds a row in the 'tdata' table given another row
netsnmp_tdata_row * netsnmp_tdata_row_next (netsnmp_tdata *table, netsnmp_tdata_row *row)
 returns the next row in the table
netsnmp_tdata_row * netsnmp_tdata_row_get_byidx (netsnmp_tdata *table, netsnmp_variable_list *indexes)
 finds a row in the 'tdata' table given the index values
netsnmp_tdata_row * netsnmp_tdata_row_get_byoid (netsnmp_tdata *table, oid *searchfor, size_t searchfor_len)
 finds a row in the 'tdata' table given the index OID
netsnmp_tdata_row * netsnmp_tdata_row_next_byidx (netsnmp_tdata *table, netsnmp_variable_list *indexes)
 finds the lexically next row in the 'tdata' table given the index values
netsnmp_tdata_row * netsnmp_tdata_row_next_byoid (netsnmp_tdata *table, oid *searchfor, size_t searchfor_len)
 finds the lexically next row in the 'tdata' table given the index OID
 netsnmp_feature_child_of (tdata_row_count, table_tdata_all)
 netsnmp_feature_child_of (tdata_compare_idx, table_tdata_all)
 compare a row with the given index values
int netsnmp_tdata_compare_oid (netsnmp_tdata_row *row, oid *compareto, size_t compareto_len)
 compare a row with the given index OID
int netsnmp_tdata_compare_subtree_idx (netsnmp_tdata_row *row, netsnmp_variable_list *indexes)
int netsnmp_tdata_compare_subtree_oid (netsnmp_tdata_row *row, oid *compareto, size_t compareto_len)

Variables

Netsnmp_Node_Handler _netsnmp_tdata_helper_handler

Detailed Description

Implement a table with datamatted storage.

This helper helps you implement a table where all the rows are expected to be stored within the agent itself and not in some external storage location. It can be used to store a list of rows, where a row consists of the indexes to the table and a generic data pointer. You can then implement a subhandler which is passed the exact row definition and data it must return data for or accept data for. Complex GETNEXT handling is greatly simplified in this case.


Function Documentation

int _netsnmp_tdata_helper_handler ( netsnmp_mib_handler *  handler,
netsnmp_handler_registration *  reginfo,
netsnmp_agent_request_info *  reqinfo,
netsnmp_request_info *  requests 
)

Fall through

skip next handler if processing not needed

Definition at line 350 of file table_tdata.c.

netsnmp_feature_child_of ( tdata_copy_row  ,
table_tdata_all   
)

copy the contents of a 'tdata' row.

DOES NOT COPY THE TABLE-SPECIFIC ENTRY DATA.

Definition at line 159 of file table_tdata.c.

netsnmp_feature_child_of ( tdata_replace_row  ,
table_tdata_all   
)

swaps out origrow with newrow.

This does *not* delete/free anything!

Definition at line 261 of file table_tdata.c.

netsnmp_feature_child_of ( tdata_extract_container  ,
table_tdata_all   
)

extracts the tdata container from the request structure

Definition at line 436 of file table_tdata.c.

netsnmp_feature_child_of ( tdata_clone_row  ,
table_tdata_all   
)

clones a 'tdata' row.

DOES NOT CLONE THE TABLE-SPECIFIC ENTRY DATA.

Definition at line 120 of file table_tdata.c.

netsnmp_feature_child_of ( tdata_compare_idx  ,
table_tdata_all   
)

compare a row with the given index values

Definition at line 602 of file table_tdata.c.

netsnmp_mib_handler* netsnmp_get_tdata_handler ( netsnmp_tdata *  table)

Creates a tdata handler and returns it.

Definition at line 322 of file table_tdata.c.

NETSNMP_INLINE void netsnmp_insert_tdata_row ( netsnmp_request_info *  request,
netsnmp_tdata_row *  row 
)

inserts a newly created tdata row into a request

Definition at line 470 of file table_tdata.c.

NETSNMP_INLINE void netsnmp_remove_tdata_row ( netsnmp_request_info *  request,
netsnmp_tdata_row *  row 
)

inserts a newly created tdata row into a request

Definition at line 480 of file table_tdata.c.

int netsnmp_tdata_add_row ( netsnmp_tdata *  table,
netsnmp_tdata_row *  row 
)

Adds a row to the given table (stored in proper lexographical order).

returns SNMPERR_SUCCESS on successful addition. or SNMPERR_GENERR on failure (E.G., indexes already existed)

Definition at line 219 of file table_tdata.c.

int netsnmp_tdata_compare_oid ( netsnmp_tdata_row *  row,
oid *  compareto,
size_t  compareto_len 
)

compare a row with the given index OID

Definition at line 619 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_create_row ( void  )

creates and returns a pointer to new row data structure

Definition at line 113 of file table_tdata.c.

netsnmp_tdata* netsnmp_tdata_create_table ( const char *  name,
long  flags 
)

creates and returns a 'tdata' table data structure

Definition at line 73 of file table_tdata.c.

void* netsnmp_tdata_delete_row ( netsnmp_tdata_row *  row)

deletes the memory used by the specified row returns the table-specific entry data (that it doesn't know how to delete)

Definition at line 190 of file table_tdata.c.

void netsnmp_tdata_delete_table ( netsnmp_tdata *  table)

creates and returns a 'tdata' table data structure

Definition at line 96 of file table_tdata.c.

void* netsnmp_tdata_extract_entry ( netsnmp_request_info *  request)

extracts the (table-specific) entry being accessed from the request structure

Definition at line 457 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_extract_row ( netsnmp_request_info *  request)

extracts the tdata row being accessed from the request structure

Definition at line 449 of file table_tdata.c.

netsnmp_tdata* netsnmp_tdata_extract_table ( netsnmp_request_info *  request)

extracts the tdata table from the request structure

Definition at line 428 of file table_tdata.c.

int netsnmp_tdata_register ( netsnmp_handler_registration *  reginfo,
netsnmp_tdata *  table,
netsnmp_table_registration_info *  table_info 
)

registers a tdata-based MIB table

Definition at line 406 of file table_tdata.c.

void* netsnmp_tdata_remove_and_delete_row ( netsnmp_tdata *  table,
netsnmp_tdata_row *  row 
)

removes and frees a row of the given table and returns the table-specific entry data

returns the void * pointer on successful deletion. or NULL on failure (bad arguments)

Definition at line 298 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_remove_row ( netsnmp_tdata *  table,
netsnmp_tdata_row *  row 
)

removes a row from the given table and returns it (no free's called)

returns the row pointer itself on successful removing. or NULL on failure (bad arguments)

Definition at line 280 of file table_tdata.c.

void* netsnmp_tdata_row_entry ( netsnmp_tdata_row *  row)

returns the (table-specific) entry data for a given row

Definition at line 496 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_first ( netsnmp_tdata *  table)

returns the first row in the table

Definition at line 506 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_get ( netsnmp_tdata *  table,
netsnmp_tdata_row *  row 
)

finds a row in the 'tdata' table given another row

Definition at line 513 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_get_byidx ( netsnmp_tdata *  table,
netsnmp_variable_list *  indexes 
)

finds a row in the 'tdata' table given the index values

Definition at line 529 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_get_byoid ( netsnmp_tdata *  table,
oid *  searchfor,
size_t  searchfor_len 
)

finds a row in the 'tdata' table given the index OID

Definition at line 542 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_next ( netsnmp_tdata *  table,
netsnmp_tdata_row *  row 
)

returns the next row in the table

Definition at line 521 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_next_byidx ( netsnmp_tdata *  table,
netsnmp_variable_list *  indexes 
)

finds the lexically next row in the 'tdata' table given the index values

Definition at line 557 of file table_tdata.c.

netsnmp_tdata_row* netsnmp_tdata_row_next_byoid ( netsnmp_tdata *  table,
oid *  searchfor,
size_t  searchfor_len 
)

finds the lexically next row in the 'tdata' table given the index OID

Definition at line 571 of file table_tdata.c.