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

table_dataset: Helps you implement a table with automatted storage.
[table_data: Helps you implement a table with datamatted storage.]

This helper is obsolete. More...

Functions

void  netsnmp_init_table_dataset (void)
netsnmp_table_data_set *  netsnmp_create_table_data_set (const char *table_name)
  Create a netsnmp_table_data_set structure given a table_data definition.
netsnmp_table_row *  netsnmp_table_data_set_clone_row (netsnmp_table_row *row)
  clones a dataset row, including all data.
NETSNMP_INLINE netsnmp_table_data_set_storage *  netsnmp_table_dataset_delete_data (netsnmp_table_data_set_storage *data)
  deletes a single dataset table data.
NETSNMP_INLINE void  netsnmp_table_dataset_delete_all_data (netsnmp_table_data_set_storage *data)
  deletes all the data from this node and beyond in the linked list
NETSNMP_INLINE void  netsnmp_table_dataset_delete_row (netsnmp_table_row *row)
  deletes all the data from this node and beyond in the linked list
NETSNMP_INLINE void  netsnmp_table_dataset_add_row (netsnmp_table_data_set *table, netsnmp_table_row *row)
  adds a new row to a dataset table
NETSNMP_INLINE void  netsnmp_table_dataset_replace_row (netsnmp_table_data_set *table, netsnmp_table_row *origrow, netsnmp_table_row *newrow)
  adds a new row to a dataset table
NETSNMP_INLINE void  netsnmp_table_dataset_remove_row (netsnmp_table_data_set *table, netsnmp_table_row *row)
  removes a row from the table, but doesn't delete/free anything
NETSNMP_INLINE void  netsnmp_table_dataset_remove_and_delete_row (netsnmp_table_data_set *table, netsnmp_table_row *row)
  removes a row from the table and then deletes it (and all it's data)
netsnmp_table_row *  netsnmp_table_data_set_create_row_from_defaults (netsnmp_table_data_set_storage *defrow)
  creates a new row from an existing defined default set
int  netsnmp_table_set_add_default_row (netsnmp_table_data_set *table_set, unsigned int column, int type, int writable, void *default_value, size_t default_value_len)
  adds a new default row to a table_set.
void  netsnmp_table_set_multi_add_default_row (va_dcl)
  adds multiple data column definitions to each row.
netsnmp_mib_handler netsnmp_get_table_data_set_handler (netsnmp_table_data_set *data_set)
  Given a netsnmp_table_data_set definition, create a handler for it.
int  netsnmp_register_table_data_set (netsnmp_handler_registration *reginfo, netsnmp_table_data_set *data_set, netsnmp_table_registration_info *table_info)
  register a given data_set at a given oid (specified in the netsnmp_handler_registration pointer).
newrow_stash *  netsnmp_table_data_set_create_newrowstash (netsnmp_table_data_set *datatable, netsnmp_table_request_info *table_info)
int  netsnmp_table_data_set_helper_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
NETSNMP_INLINE netsnmp_table_data_set *  netsnmp_extract_table_data_set (netsnmp_request_info *request)
  extracts a netsnmp_table_data_set pointer from a given request
netsnmp_table_data_set_storage *  netsnmp_extract_table_data_set_column (netsnmp_request_info *request, unsigned int column)
  extracts a netsnmp_table_data_set pointer from a given request
void  netsnmp_register_auto_data_table (netsnmp_table_data_set *table_set, char *registration_name)
  registers a table_dataset so that the "add_row" snmpd.conf token can be used to add data to this table.
void  netsnmp_config_parse_table_set (const char *token, char *line)
void  netsnmp_config_parse_add_row (const char *token, char *line)
netsnmp_table_row *  netsnmp_table_data_set_get_first_row (netsnmp_table_data_set *table)
  returns the first row in the table
netsnmp_table_row *  netsnmp_table_data_set_get_next_row (netsnmp_table_data_set *table, netsnmp_table_row *row)
  returns the next row in the table
int  netsnmp_table_set_num_rows (netsnmp_table_data_set *table)
netsnmp_table_data_set_storage *  netsnmp_table_data_set_find_column (netsnmp_table_data_set_storage *start, unsigned int column)
  Finds a column within a given storage set, given the pointer to the start of the storage set list.
int  netsnmp_mark_row_column_writable (netsnmp_table_row *row, int column, int writable)
  marks a given column in a row as writable or not.
int  netsnmp_set_row_column (netsnmp_table_row *row, unsigned int column, int type, const char *value, size_t value_len)
  sets a given column in a row with data given a type, value, and length.
NETSNMP_INLINE void  netsnmp_table_dataset_add_index (netsnmp_table_data_set *table, u_char type)
  adds an index to the table.
void  netsnmp_table_set_add_indexes (va_alist)
  adds multiple indexes to a table_dataset helper object.

Detailed Description

This helper is obsolete.

If you are writing a new module, please consider using the table_dataset2 helper instead.

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. It handles all MIB requests including GETs, GETNEXTs and SETs. It's possible to simply create a table without actually ever defining a handler to be called when SNMP requests come in. To use the data, you can either attach a sub-handler that merely uses/manipulates the data further when requests come in, or you can loop through it externally when it's actually needed. This handler is most useful in cases where a table is holding configuration data for something which gets triggered via another event.

NOTE NOTE NOTE: This helper isn't complete and is likely to change somewhat over time. Specifically, the way it stores data internally may change drastically.


Function Documentation

netsnmp_table_data_set* netsnmp_create_table_data_set const char *  table_name  ) 
 

Create a netsnmp_table_data_set structure given a table_data definition.

Examples:
data_set.c.

Definition at line 79 of file table_dataset.c.

References netsnmp_create_table_data(), and SNMP_MALLOC_TYPEDEF.

NETSNMP_INLINE netsnmp_table_data_set* netsnmp_extract_table_data_set netsnmp_request_info request  ) 
 

extracts a netsnmp_table_data_set pointer from a given request

Definition at line 795 of file table_dataset.c.

References netsnmp_request_get_list_data().

netsnmp_table_data_set_storage* netsnmp_extract_table_data_set_column netsnmp_request_info request,
unsigned int  column
 

extracts a netsnmp_table_data_set pointer from a given request

Definition at line 805 of file table_dataset.c.

References netsnmp_extract_table_row_data(), and netsnmp_table_data_set_find_column().

netsnmp_mib_handler* netsnmp_get_table_data_set_handler netsnmp_table_data_set *  data_set  ) 
 

Given a netsnmp_table_data_set definition, create a handler for it.

Definition at line 355 of file table_dataset.c.

References netsnmp_mib_handler_s::flags, netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), netsnmp_mib_handler, and snmp_log().

Referenced by netsnmp_register_table_data_set().

int netsnmp_mark_row_column_writable netsnmp_table_row *  row,
int  column,
int  writable
 

marks a given column in a row as writable or not.

Examples:
data_set.c.

Definition at line 1148 of file table_dataset.c.

References variable_list::data, netsnmp_table_data_set_find_column(), snmp_log(), and SNMP_MALLOC_TYPEDEF.

Referenced by netsnmp_table_data_set_create_row_from_defaults().

void netsnmp_register_auto_data_table netsnmp_table_data_set *  table_set,
char *  registration_name
 

registers a table_dataset so that the "add_row" snmpd.conf token can be used to add data to this table.

If registration_name is NULL then the name used when the table was created will be used instead.

Todo:
create a properly free'ing registeration pointer for the datalist, and get the datalist freed at shutdown.
Examples:
data_set.c.

Definition at line 832 of file table_dataset.c.

References variable_list::name, netsnmp_add_list_data(), netsnmp_create_data_list(), and SNMP_MALLOC_TYPEDEF.

int netsnmp_register_table_data_set netsnmp_handler_registration reginfo,
netsnmp_table_data_set *  data_set,
netsnmp_table_registration_info table_info
 

register a given data_set at a given oid (specified in the netsnmp_handler_registration pointer).

The reginfo->handler->access_method *may* be null if the call doesn't ever want to be called for SNMP operations.

Examples:
data_set.c.

Definition at line 381 of file table_dataset.c.

References netsnmp_table_registration_info_s::indexes, netsnmp_table_registration_info_s::max_column, netsnmp_table_registration_info_s::min_column, netsnmp_get_table_data_set_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), netsnmp_register_table_data(), SNMP_MALLOC_TYPEDEF, SNMP_MAX, and SNMP_MIN.

int netsnmp_set_row_column netsnmp_table_row *  row,
unsigned int  column,
int  type,
const char *  value,
size_t  value_len
 

sets a given column in a row with data given a type, value, and length.

Data is memdup'ed by the function.

Examples:
data_set.c.

Definition at line 1183 of file table_dataset.c.

References variable_list::data, memdup(), netsnmp_table_data_set_find_column(), SNMP_FREE, snmp_log(), SNMP_MALLOC_TYPEDEF, and variable_list::type.

Referenced by netsnmp_table_data_set_create_row_from_defaults().

netsnmp_table_row* netsnmp_table_data_set_clone_row netsnmp_table_row *  row  ) 
 

clones a dataset row, including all data.

Definition at line 91 of file table_dataset.c.

References memdup(), netsnmp_table_data_clone_row(), and netsnmp_table_dataset_delete_row().

netsnmp_table_row* netsnmp_table_data_set_create_row_from_defaults netsnmp_table_data_set_storage *  defrow  ) 
 

creates a new row from an existing defined default set

Definition at line 225 of file table_dataset.c.

References netsnmp_create_table_data_row(), netsnmp_mark_row_column_writable(), and netsnmp_set_row_column().

netsnmp_table_data_set_storage* netsnmp_table_data_set_find_column netsnmp_table_data_set_storage *  start,
unsigned int  column
 

Finds a column within a given storage set, given the pointer to the start of the storage set list.

Definition at line 1136 of file table_dataset.c.

Referenced by netsnmp_extract_table_data_set_column(), netsnmp_mark_row_column_writable(), netsnmp_set_row_column(), and netsnmp_table_set_add_default_row().

netsnmp_table_row* netsnmp_table_data_set_get_first_row netsnmp_table_data_set *  table  ) 
 

returns the first row in the table

Definition at line 1105 of file table_dataset.c.

References netsnmp_table_data_get_first_row().

netsnmp_table_row* netsnmp_table_data_set_get_next_row netsnmp_table_data_set *  table,
netsnmp_table_row *  row
 

returns the next row in the table

Definition at line 1112 of file table_dataset.c.

References netsnmp_table_data_get_next_row().

NETSNMP_INLINE void netsnmp_table_dataset_add_index netsnmp_table_data_set *  table,
u_char  type
 

adds an index to the table.

Call this repeatly for each index.

Examples:
data_set.c.

Definition at line 1237 of file table_dataset.c.

Referenced by netsnmp_table_set_add_indexes().

NETSNMP_INLINE void netsnmp_table_dataset_add_row netsnmp_table_data_set *  table,
netsnmp_table_row *  row
 

adds a new row to a dataset table

Examples:
data_set.c.

Definition at line 170 of file table_dataset.c.

References netsnmp_table_data_add_row().

NETSNMP_INLINE void netsnmp_table_dataset_delete_all_data netsnmp_table_data_set_storage *  data  ) 
 

deletes all the data from this node and beyond in the linked list

Definition at line 147 of file table_dataset.c.

References netsnmp_table_dataset_delete_data().

Referenced by netsnmp_table_dataset_delete_row(), and netsnmp_table_dataset_remove_and_delete_row().

NETSNMP_INLINE netsnmp_table_data_set_storage* netsnmp_table_dataset_delete_data netsnmp_table_data_set_storage *  data  ) 
 

deletes a single dataset table data.

returns the (possibly still good) next pointer of the deleted data object.

Definition at line 134 of file table_dataset.c.

References SNMP_FREE.

Referenced by netsnmp_table_dataset_delete_all_data().

NETSNMP_INLINE void netsnmp_table_dataset_delete_row netsnmp_table_row *  row  ) 
 

deletes all the data from this node and beyond in the linked list

Definition at line 157 of file table_dataset.c.

References netsnmp_table_data_delete_row(), and netsnmp_table_dataset_delete_all_data().

Referenced by netsnmp_table_data_set_clone_row().

NETSNMP_INLINE void netsnmp_table_dataset_remove_and_delete_row netsnmp_table_data_set *  table,
netsnmp_table_row *  row
 

removes a row from the table and then deletes it (and all it's data)

Definition at line 202 of file table_dataset.c.

References netsnmp_table_data_remove_and_delete_row(), and netsnmp_table_dataset_delete_all_data().

NETSNMP_INLINE void netsnmp_table_dataset_remove_row netsnmp_table_data_set *  table,
netsnmp_table_row *  row
 

removes a row from the table, but doesn't delete/free anything

Definition at line 191 of file table_dataset.c.

References netsnmp_table_data_remove_and_delete_row().

NETSNMP_INLINE void netsnmp_table_dataset_replace_row netsnmp_table_data_set *  table,
netsnmp_table_row *  origrow,
netsnmp_table_row *  newrow
 

adds a new row to a dataset table

Definition at line 180 of file table_dataset.c.

References netsnmp_table_data_replace_row().

int netsnmp_table_set_add_default_row netsnmp_table_data_set *  table_set,
unsigned int  column,
int  type,
int  writable,
void *  default_value,
size_t  default_value_len
 

adds a new default row to a table_set.

Arguments should be the table_set, column number, variable type and finally a 1 if it is allowed to be writable, or a 0 if not. If the default_value field is not NULL, it will be used to populate new valuse in that column fro newly created rows. It is copied into the storage template (free your calling argument).

returns SNMPERR_SUCCESS or SNMPERR_FAILURE

Definition at line 251 of file table_dataset.c.

References memdup(), netsnmp_table_data_set_find_column(), snmp_log(), and SNMP_MALLOC_TYPEDEF.

Referenced by netsnmp_table_set_multi_add_default_row().

void netsnmp_table_set_add_indexes va_alist   ) 
 

adds multiple indexes to a table_dataset helper object.

To end the list, use a 0 after the list of ASN index types.

Definition at line 1251 of file table_dataset.c.

References netsnmp_table_dataset_add_index().

void netsnmp_table_set_multi_add_default_row va_dcl   ) 
 

adds multiple data column definitions to each row.

Functionally, this is a wrapper around calling netsnmp_table_set_add_default_row repeatedly for you.

Definition at line 314 of file table_dataset.c.

References netsnmp_table_set_add_default_row(), and netsnmp_table_set_multi_add_default_row().

Referenced by netsnmp_table_set_multi_add_default_row().


Generated on Fri Dec 30 13:48:01 2005 for net-snmp by  doxygen 1.3.9.1

Valid CSS!


Last modified: Friday, 02-Mar-2007 00:20:10 UTC
For questions regarding web content and site functionality, please write to the net-snmp-users mail list.