table_data: Helps you implement a table with datamatted storage.(3)

NAME
table_data: Helps you implement a table with datamatted storage. - 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. More...

  Modules
table_dataset: Helps you implement a table with automatted storage.
This handler helps you implement a table where all the data is expected to be stored within the agent itself and not in some external storage location.

  Functions
void netsnmp_table_data_generate_index_oid (netsnmp_table_row *row)
generates the index portion of an table oid from a varlist.
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).
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).
void * netsnmp_table_data_delete_row (netsnmp_table_row *row)
deletes a row's memory.
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 *.
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_row * netsnmp_table_data_get (netsnmp_table_data *table, netsnmp_variable_list *indexes)
finds the data in 'datalist' stored at 'indexes'.
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.
netsnmp_mib_handler * netsnmp_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_table_data_helper_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
The helper handler that takes care of passing a specific row of data down to the lower handler(s).
netsnmp_table_data * netsnmp_create_table_data (const char *name)
creates and returns a pointer to table data set.
netsnmp_table_row * netsnmp_create_table_data_row (void)
creates and returns a pointer to table data set.
netsnmp_table_row * netsnmp_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.
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)
builds a result given a row, a varbind to set and the data.
netsnmp_table_row * netsnmp_table_data_clone_row (netsnmp_table_row *row)
clones a data row.

DETAILED DESCRIPTION

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 404 of file table_data.c.

Referenced by netsnmp_create_table_data_set().

  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 414 of file table_data.c.

Referenced by netsnmp_config_parse_add_row(), and netsnmp_table_data_set_create_row_from_defaults().

  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 422 of file table_data.c.

Referenced by netsnmp_extract_table_row_data(), and netsnmp_table_data_set_helper_handler().

  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 430 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 207 of file table_data.c.

Referenced by netsnmp_register_table_data().

  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 236 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 226 of file table_data.c.

Referenced by netsnmp_register_read_only_table_data(), and netsnmp_register_table_data_set().

  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)

Definition at line 52 of file table_data.c.

Referenced by netsnmp_config_parse_add_row(), netsnmp_table_data_replace_row(), and netsnmp_table_dataset_add_row().

  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)

builds a result given a row, a varbind to set and the data.

Definition at line 437 of file table_data.c.

Referenced by netsnmp_table_data_set_helper_handler().

  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 466 of file table_data.c.

Referenced by netsnmp_table_data_set_clone_row().

  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 136 of file table_data.c.

Referenced by netsnmp_table_data_remove_and_delete_row(), and netsnmp_table_dataset_delete_row().

  void netsnmp_table_data_generate_index_oid (netsnmp_table_row * row)

generates the index portion of an table oid from a varlist.

Definition at line 39 of file table_data.c.

Referenced by netsnmp_table_data_add_row().

  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 182 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 193 of file table_data.c.

Referenced by netsnmp_table_data_get(), and netsnmp_table_data_helper_handler().

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

The helper handler that takes care of passing a specific row of data down to the lower handler(s).

It sets request->processed if the request should not be handled.

Definition at line 250 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 161 of file table_data.c.

Referenced by netsnmp_table_dataset_remove_and_delete_row(), and netsnmp_table_dataset_remove_row().

  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 117 of file table_data.c.

Referenced by netsnmp_table_data_remove_and_delete_row(), and netsnmp_table_data_replace_row().

  void netsnmp_table_data_replace_row (netsnmp_table_data * table, netsnmp_table_row * origrow, netsnmp_table_row * newrow) [inline]

swaps out origrow with newrow.

This does *not* delete/free anything!

Definition at line 173 of file table_data.c.

Referenced by netsnmp_table_dataset_replace_row().