net-snmp 5.7
Modules | Functions
table_data
table

Helps you implement a table with datamatted storage. More...

Modules

 table_dataset
 

Helps you implement a table with automatted storage.


Functions

netsnmp_table_datanetsnmp_create_table_data (const char *name)
 creates and returns a pointer to table data set
netsnmp_table_rownetsnmp_create_table_data_row (void)
 creates and returns a pointer to table data set
netsnmp_table_rownetsnmp_table_data_clone_row (netsnmp_table_row *row)
 clones a data row.
void * netsnmp_table_data_delete_row (netsnmp_table_row *row)
 deletes a row's memory.
int netsnmp_table_data_add_row (netsnmp_table_data *table, netsnmp_table_row *row)
 Adds a row of data to a given table (stored in proper lexographical order).
void netsnmp_table_data_replace_row (netsnmp_table_data *table, netsnmp_table_row *origrow, netsnmp_table_row *newrow)
 swaps out origrow with newrow.
netsnmp_table_rownetsnmp_table_data_remove_row (netsnmp_table_data *table, netsnmp_table_row *row)
 removes a row of data to a given table and returns it (no free's called)
void * netsnmp_table_data_remove_and_delete_row (netsnmp_table_data *table, netsnmp_table_row *row)
 removes and frees a row of data to a given table and returns the void *
netsnmp_table_datanetsnmp_table_data_create_table (const char *name, long flags)
void netsnmp_table_data_delete_table (netsnmp_table_data *table)
netsnmp_table_rownetsnmp_table_data_create_row (void *entry)
int netsnmp_table_data_copy_row (netsnmp_table_row *old_row, netsnmp_table_row *new_row)
void * netsnmp_table_data_remove_delete_row (netsnmp_table_data *table, netsnmp_table_row *row)
netsnmp_mib_handlernetsnmp_get_table_data_handler (netsnmp_table_data *table)
 Creates a table_data handler and returns it.
int netsnmp_register_table_data (netsnmp_handler_registration *reginfo, netsnmp_table_data *table, netsnmp_table_registration_info *table_info)
 registers a handler as a data table.
int netsnmp_register_read_only_table_data (netsnmp_handler_registration *reginfo, netsnmp_table_data *table, netsnmp_table_registration_info *table_info)
 registers a handler as a read-only data table If table_info != NULL, it registers it as a normal table too.
int netsnmp_unregister_table_data (netsnmp_handler_registration *reginfo)
int netsnmp_table_data_helper_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
netsnmp_table_datanetsnmp_extract_table (netsnmp_request_info *request)
 extracts the table being accessed passed from the table_data helper
netsnmp_table_rownetsnmp_extract_table_row (netsnmp_request_info *request)
 extracts the row being accessed passed from the table_data helper
void * netsnmp_extract_table_row_data (netsnmp_request_info *request)
 extracts the data from the row being accessed passed from the table_data helper
void netsnmp_insert_table_row (netsnmp_request_info *request, netsnmp_table_row *row)
 inserts a newly created table_data row into a request
int netsnmp_table_data_build_result (netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *request, netsnmp_table_row *row, int column, u_char type, u_char *result_data, size_t result_data_len)
netsnmp_table_rownetsnmp_table_data_get_first_row (netsnmp_table_data *table)
 returns the first row in the table
netsnmp_table_rownetsnmp_table_data_get_next_row (netsnmp_table_data *table, netsnmp_table_row *row)
 returns the next row in the table
netsnmp_table_rownetsnmp_table_data_get (netsnmp_table_data *table, netsnmp_variable_list *indexes)
 finds the data in "datalist" stored at "indexes"
netsnmp_table_rownetsnmp_table_data_get_from_oid (netsnmp_table_data *table, oid *searchfor, size_t searchfor_len)
 finds the data in "datalist" stored at the searchfor oid
int netsnmp_table_data_num_rows (netsnmp_table_data *table)
netsnmp_table_rownetsnmp_table_data_row_first (netsnmp_table_data *table)
netsnmp_table_rownetsnmp_table_data_row_get (netsnmp_table_data *table, netsnmp_table_row *row)
netsnmp_table_rownetsnmp_table_data_row_next (netsnmp_table_data *table, netsnmp_table_row *row)
netsnmp_table_rownetsnmp_table_data_row_get_byoid (netsnmp_table_data *table, oid *instance, size_t len)
netsnmp_table_rownetsnmp_table_data_row_next_byoid (netsnmp_table_data *table, oid *instance, size_t len)
netsnmp_table_rownetsnmp_table_data_row_get_byidx (netsnmp_table_data *table, netsnmp_variable_list *indexes)
netsnmp_table_rownetsnmp_table_data_row_next_byidx (netsnmp_table_data *table, netsnmp_variable_list *indexes)
int netsnmp_table_data_row_count (netsnmp_table_data *table)
void * netsnmp_table_data_entry_first (netsnmp_table_data *table)
void * netsnmp_table_data_entry_get (netsnmp_table_data *table, netsnmp_table_row *row)
void * netsnmp_table_data_entry_next (netsnmp_table_data *table, netsnmp_table_row *row)
void * netsnmp_table_data_entry_get_byidx (netsnmp_table_data *table, netsnmp_variable_list *indexes)
void * netsnmp_table_data_entry_next_byidx (netsnmp_table_data *table, netsnmp_variable_list *indexes)
void * netsnmp_table_data_entry_get_byoid (netsnmp_table_data *table, oid *instance, size_t len)
void * netsnmp_table_data_entry_next_byoid (netsnmp_table_data *table, oid *instance, size_t len)

Detailed Description

Helps you implement a table with datamatted storage.

This helper is obsolete. If you are writing a new module, please consider using the table_tdata helper instead.

This helper helps you implement a table where all the indexes 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

netsnmp_table_data* netsnmp_create_table_data ( const char *  name)

creates and returns a pointer to table data set

Definition at line 75 of file table_data.c.

netsnmp_table_row* netsnmp_create_table_data_row ( void  )

creates and returns a pointer to table data set

Examples:
data_set.c.

Definition at line 85 of file table_data.c.

netsnmp_table_data* netsnmp_extract_table ( netsnmp_request_info request)

extracts the table being accessed passed from the table_data helper

Definition at line 699 of file table_data.c.

netsnmp_table_row* netsnmp_extract_table_row ( netsnmp_request_info request)

extracts the row being accessed passed from the table_data helper

Definition at line 707 of file table_data.c.

void* netsnmp_extract_table_row_data ( netsnmp_request_info request)

extracts the data from the row being accessed passed from the table_data helper

Definition at line 717 of file table_data.c.

netsnmp_mib_handler* netsnmp_get_table_data_handler ( netsnmp_table_data table)

Creates a table_data handler and returns it.

Definition at line 407 of file table_data.c.

void netsnmp_insert_table_row ( netsnmp_request_info request,
netsnmp_table_row row 
)

inserts a newly created table_data row into a request

Definition at line 731 of file table_data.c.

int netsnmp_register_read_only_table_data ( netsnmp_handler_registration reginfo,
netsnmp_table_data table,
netsnmp_table_registration_info table_info 
)

registers a handler as a read-only data table If table_info != NULL, it registers it as a normal table too.

Definition at line 443 of file table_data.c.

int netsnmp_register_table_data ( netsnmp_handler_registration reginfo,
netsnmp_table_data table,
netsnmp_table_registration_info table_info 
)

registers a handler as a data table.

If table_info != NULL, it registers it as a normal table too.

Definition at line 430 of file table_data.c.

int netsnmp_table_data_add_row ( netsnmp_table_data table,
netsnmp_table_row row 
)

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

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

xxx-rks: remove invalid row?

Definition at line 157 of file table_data.c.

netsnmp_table_row* netsnmp_table_data_clone_row ( netsnmp_table_row row)

clones a data row.

DOES NOT CLONE THE CONTAINED DATA.

Definition at line 93 of file table_data.c.

void* netsnmp_table_data_delete_row ( netsnmp_table_row row)

deletes a row's memory.

returns the void data that it doesn't know how to delete.

Definition at line 128 of file table_data.c.

netsnmp_table_row* netsnmp_table_data_get ( netsnmp_table_data table,
netsnmp_variable_list indexes 
)

finds the data in "datalist" stored at "indexes"

Definition at line 858 of file table_data.c.

netsnmp_table_row* netsnmp_table_data_get_first_row ( netsnmp_table_data table)

returns the first row in the table

Definition at line 839 of file table_data.c.

netsnmp_table_row* netsnmp_table_data_get_from_oid ( netsnmp_table_data table,
oid *  searchfor,
size_t  searchfor_len 
)

finds the data in "datalist" stored at the searchfor oid

Definition at line 872 of file table_data.c.

netsnmp_table_row* netsnmp_table_data_get_next_row ( netsnmp_table_data table,
netsnmp_table_row row 
)

returns the next row in the table

Definition at line 848 of file table_data.c.

void* netsnmp_table_data_remove_and_delete_row ( netsnmp_table_data table,
netsnmp_table_row row 
)

removes and frees a row of data to a given table and returns the void *

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

Definition at line 297 of file table_data.c.

netsnmp_table_row* netsnmp_table_data_remove_row ( netsnmp_table_data table,
netsnmp_table_row row 
)

removes a row of data to a 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 271 of file table_data.c.

void netsnmp_table_data_replace_row ( netsnmp_table_data table,
netsnmp_table_row origrow,
netsnmp_table_row newrow 
)

swaps out origrow with newrow.

This does *not* delete/free anything!

Definition at line 256 of file table_data.c.