.TH "table_dataset" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
.ad l
.nh
.SH NAME
table_dataset \- 
.PP
Helps you implement a table with automatted storage.  

.SS "Functions"

.in +1c
.ti -1c
.RI "void \fBnetsnmp_init_table_dataset\fP (void)"
.br
.ti -1c
.RI "NETSNMP_INLINE \fBnetsnmp_table_data_set_storage\fP * \fBnetsnmp_table_dataset_delete_data\fP (\fBnetsnmp_table_data_set_storage\fP *data)"
.br
.RI "\fIdeletes a single dataset table data. \fP"
.ti -1c
.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_delete_all_data\fP (\fBnetsnmp_table_data_set_storage\fP *data)"
.br
.RI "\fIdeletes all the data from this \fBnode\fP and beyond in the linked list \fP"
.ti -1c
.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_delete_row\fP (\fBnetsnmp_table_row\fP *row)"
.br
.RI "\fIdeletes all the data from this \fBnode\fP and beyond in the linked list \fP"
.ti -1c
.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_add_row\fP (\fBnetsnmp_table_data_set\fP *table, \fBnetsnmp_table_row\fP *row)"
.br
.RI "\fIadds a new row to a dataset table \fP"
.ti -1c
.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_replace_row\fP (\fBnetsnmp_table_data_set\fP *table, \fBnetsnmp_table_row\fP *origrow, \fBnetsnmp_table_row\fP *newrow)"
.br
.RI "\fIadds a new row to a dataset table \fP"
.ti -1c
.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_remove_row\fP (\fBnetsnmp_table_data_set\fP *table, \fBnetsnmp_table_row\fP *row)"
.br
.RI "\fIremoves a row from the table, but doesn't delete/free the column values \fP"
.ti -1c
.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_remove_and_delete_row\fP (\fBnetsnmp_table_data_set\fP *table, \fBnetsnmp_table_row\fP *row)"
.br
.RI "\fIremoves a row from the table and then deletes it (and all its data) \fP"
.ti -1c
.RI "\fBnetsnmp_table_data_set\fP * \fBnetsnmp_create_table_data_set\fP (const char *table_name)"
.br
.RI "\fICreate a netsnmp_table_data_set structure given a table_data definition. \fP"
.ti -1c
.RI "void \fBnetsnmp_delete_table_data_set\fP (\fBnetsnmp_table_data_set\fP *table_set)"
.br
.ti -1c
.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_set_clone_row\fP (\fBnetsnmp_table_row\fP *row)"
.br
.RI "\fIclones a dataset row, including all data. \fP"
.ti -1c
.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_set_create_row_from_defaults\fP (\fBnetsnmp_table_data_set_storage\fP *defrow)"
.br
.RI "\fIcreates a new row from an existing defined default set \fP"
.ti -1c
.RI "int \fBnetsnmp_table_set_add_default_row\fP (\fBnetsnmp_table_data_set\fP *table_set, unsigned int column, int type, int writable, void *default_value, size_t default_value_len)"
.br
.RI "\fIadds a new default row to a table_set. \fP"
.ti -1c
.RI "void \fBnetsnmp_table_set_multi_add_default_row\fP (\fBnetsnmp_table_data_set\fP *tset,...)"
.br
.RI "\fIadds multiple data column definitions to each row. \fP"
.ti -1c
.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_table_data_set_handler\fP (\fBnetsnmp_table_data_set\fP *data_set)"
.br
.RI "\fIGiven a netsnmp_table_data_set definition, create a handler for it. \fP"
.ti -1c
.RI "int \fBnetsnmp_register_table_data_set\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_table_data_set\fP *data_set, \fBnetsnmp_table_registration_info\fP *table_info)"
.br
.RI "\fIregister a given data_set at a given oid (specified in the netsnmp_handler_registration pointer). \fP"
.ti -1c
.RI "\fBnewrow_stash\fP * \fBnetsnmp_table_data_set_create_newrowstash\fP (\fBnetsnmp_table_data_set\fP *datatable, \fBnetsnmp_table_request_info\fP *table_info)"
.br
.ti -1c
.RI "int \fBnetsnmp_table_data_set_helper_handler\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
.br
.ti -1c
.RI "NETSNMP_INLINE \fBnetsnmp_table_data_set\fP * \fBnetsnmp_extract_table_data_set\fP (\fBnetsnmp_request_info\fP *request)"
.br
.RI "\fIextracts a netsnmp_table_data_set pointer from a given request \fP"
.ti -1c
.RI "\fBnetsnmp_table_data_set_storage\fP * \fBnetsnmp_extract_table_data_set_column\fP (\fBnetsnmp_request_info\fP *request, unsigned int column)"
.br
.RI "\fIextracts a netsnmp_table_data_set pointer from a given request \fP"
.ti -1c
.RI "void \fBnetsnmp_register_auto_data_table\fP (\fBnetsnmp_table_data_set\fP *table_set, char *registration_name)"
.br
.RI "\fIregisters a table_dataset so that the 'add_row' snmpd.conf token can be used to add data to this table. \fP"
.ti -1c
.RI "void \fBnetsnmp_config_parse_table_set\fP (const char *token, char *line)"
.br
.ti -1c
.RI "void \fBnetsnmp_config_parse_add_row\fP (const char *token, char *line)"
.br
.ti -1c
.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_set_get_first_row\fP (\fBnetsnmp_table_data_set\fP *table)"
.br
.RI "\fIreturns the first row in the table \fP"
.ti -1c
.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_set_get_next_row\fP (\fBnetsnmp_table_data_set\fP *table, \fBnetsnmp_table_row\fP *row)"
.br
.RI "\fIreturns the next row in the table \fP"
.ti -1c
.RI "int \fBnetsnmp_table_set_num_rows\fP (\fBnetsnmp_table_data_set\fP *table)"
.br
.ti -1c
.RI "\fBnetsnmp_table_data_set_storage\fP * \fBnetsnmp_table_data_set_find_column\fP (\fBnetsnmp_table_data_set_storage\fP *start, unsigned int column)"
.br
.RI "\fIFinds a column within a given storage set, given the pointer to the start of the storage set list. \fP"
.ti -1c
.RI "int \fBnetsnmp_mark_row_column_writable\fP (\fBnetsnmp_table_row\fP *row, int column, int writable)"
.br
.RI "\fImarks a given column in a row as writable or not. \fP"
.ti -1c
.RI "int \fBnetsnmp_set_row_column\fP (\fBnetsnmp_table_row\fP *row, unsigned int column, int type, const void *value, size_t value_len)"
.br
.RI "\fIsets a given column in a row with data given a type, value, and length. \fP"
.ti -1c
.RI "void \fBnetsnmp_table_dataset_add_index\fP (\fBnetsnmp_table_data_set\fP *table, u_char type)"
.br
.RI "\fIadds an index to the table. \fP"
.ti -1c
.RI "void \fBnetsnmp_table_set_add_indexes\fP (\fBnetsnmp_table_data_set\fP *tset,...)"
.br
.RI "\fIadds multiple indexes to a table_dataset helper object. \fP"
.in -1c
.SH "Detailed Description"
.PP 
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. 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.
.PP
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. 
.SH "Function Documentation"
.PP 
.SS "\fBnetsnmp_table_data_set\fP* netsnmp_create_table_data_set (const char * table_name)"
.PP
Create a netsnmp_table_data_set structure given a table_data definition. 
.PP
\fBExamples: \fP
.in +1c
\fBdata_set.c\fP.
.PP
Definition at line 165 of file table_dataset.c.
.SS "NETSNMP_INLINE \fBnetsnmp_table_data_set\fP* netsnmp_extract_table_data_set (\fBnetsnmp_request_info\fP * request)"
.PP
extracts a netsnmp_table_data_set pointer from a given request 
.PP
Definition at line 839 of file table_dataset.c.
.SS "\fBnetsnmp_table_data_set_storage\fP* netsnmp_extract_table_data_set_column (\fBnetsnmp_request_info\fP * request, unsigned int column)"
.PP
extracts a netsnmp_table_data_set pointer from a given request 
.PP
Definition at line 849 of file table_dataset.c.
.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_table_data_set_handler (\fBnetsnmp_table_data_set\fP * data_set)"
.PP
Given a netsnmp_table_data_set definition, create a handler for it. 
.PP
Definition at line 363 of file table_dataset.c.
.SS "int netsnmp_mark_row_column_writable (\fBnetsnmp_table_row\fP * row, int column, int writable)"
.PP
marks a given column in a row as writable or not. 
.PP
\fBExamples: \fP
.in +1c
\fBdata_set.c\fP.
.PP
Definition at line 1217 of file table_dataset.c.
.SS "void netsnmp_register_auto_data_table (\fBnetsnmp_table_data_set\fP * table_set, char * registration_name)"
.PP
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.
.PP
\fBTodo\fP
.RS 4
create a properly free'ing registeration pointer for the datalist, and get the datalist freed at shutdown. 
.RE
.PP

.PP
\fBExamples: \fP
.in +1c
\fBdata_set.c\fP.
.PP
Definition at line 876 of file table_dataset.c.
.SS "int netsnmp_register_table_data_set (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_table_data_set\fP * data_set, \fBnetsnmp_table_registration_info\fP * table_info)"
.PP
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. 
.PP
\fBExamples: \fP
.in +1c
\fBdata_set.c\fP.
.PP
Definition at line 389 of file table_dataset.c.
.SS "int netsnmp_set_row_column (\fBnetsnmp_table_row\fP * row, unsigned int column, int type, const void * value, size_t value_len)"
.PP
sets a given column in a row with data given a type, value, and length. Data is memdup'ed by the function. 
.PP
\fBExamples: \fP
.in +1c
\fBdata_set.c\fP.
.PP
Definition at line 1252 of file table_dataset.c.
.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_set_clone_row (\fBnetsnmp_table_row\fP * row)"
.PP
clones a dataset row, including all data. 
.PP
Definition at line 196 of file table_dataset.c.
.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_set_create_row_from_defaults (\fBnetsnmp_table_data_set_storage\fP * defrow)"
.PP
creates a new row from an existing defined default set 
.PP
Definition at line 244 of file table_dataset.c.
.SS "\fBnetsnmp_table_data_set_storage\fP* netsnmp_table_data_set_find_column (\fBnetsnmp_table_data_set_storage\fP * start, unsigned int column)"
.PP
Finds a column within a given storage set, given the pointer to the start of the storage set list. 
.PP
Definition at line 1205 of file table_dataset.c.
.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_set_get_first_row (\fBnetsnmp_table_data_set\fP * table)"
.PP
returns the first row in the table 
.PP
Definition at line 1174 of file table_dataset.c.
.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_set_get_next_row (\fBnetsnmp_table_data_set\fP * table, \fBnetsnmp_table_row\fP * row)"
.PP
returns the next row in the table 
.PP
Definition at line 1181 of file table_dataset.c.
.SS "void netsnmp_table_dataset_add_index (\fBnetsnmp_table_data_set\fP * table, u_char type)"
.PP
adds an index to the table. Call this repeatly for each index. 
.PP
\fBExamples: \fP
.in +1c
\fBdata_set.c\fP.
.PP
Definition at line 1306 of file table_dataset.c.
.SS "NETSNMP_INLINE void netsnmp_table_dataset_add_row (\fBnetsnmp_table_data_set\fP * table, \fBnetsnmp_table_row\fP * row)"
.PP
adds a new row to a dataset table 
.PP
\fBExamples: \fP
.in +1c
\fBdata_set.c\fP.
.PP
Definition at line 117 of file table_dataset.c.
.SS "NETSNMP_INLINE void netsnmp_table_dataset_delete_all_data (\fBnetsnmp_table_data_set_storage\fP * data)"
.PP
deletes all the data from this \fBnode\fP and beyond in the linked list 
.PP
Definition at line 94 of file table_dataset.c.
.SS "NETSNMP_INLINE \fBnetsnmp_table_data_set_storage\fP* netsnmp_table_dataset_delete_data (\fBnetsnmp_table_data_set_storage\fP * data)"
.PP
deletes a single dataset table data. returns the (possibly still good) next pointer of the deleted data object. 
.PP
Definition at line 81 of file table_dataset.c.
.SS "NETSNMP_INLINE void netsnmp_table_dataset_delete_row (\fBnetsnmp_table_row\fP * row)"
.PP
deletes all the data from this \fBnode\fP and beyond in the linked list 
.PP
Definition at line 104 of file table_dataset.c.
.SS "NETSNMP_INLINE void netsnmp_table_dataset_remove_and_delete_row (\fBnetsnmp_table_data_set\fP * table, \fBnetsnmp_table_row\fP * row)"
.PP
removes a row from the table and then deletes it (and all its data) 
.PP
Definition at line 149 of file table_dataset.c.
.SS "NETSNMP_INLINE void netsnmp_table_dataset_remove_row (\fBnetsnmp_table_data_set\fP * table, \fBnetsnmp_table_row\fP * row)"
.PP
removes a row from the table, but doesn't delete/free the column values 
.PP
Definition at line 138 of file table_dataset.c.
.SS "NETSNMP_INLINE void netsnmp_table_dataset_replace_row (\fBnetsnmp_table_data_set\fP * table, \fBnetsnmp_table_row\fP * origrow, \fBnetsnmp_table_row\fP * newrow)"
.PP
adds a new row to a dataset table 
.PP
Definition at line 127 of file table_dataset.c.
.SS "int netsnmp_table_set_add_default_row (\fBnetsnmp_table_data_set\fP * table_set, unsigned int column, int type, int writable, void * default_value, size_t default_value_len)"
.PP
adds a new default row to a table_set. Arguments should be the table_set, column number, \fBvariable\fP 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).
.PP
returns SNMPERR_SUCCESS or SNMPERR_FAILURE 
.PP
Definition at line 270 of file table_dataset.c.
.SS "void netsnmp_table_set_add_indexes (\fBnetsnmp_table_data_set\fP * tset,  ...)"
.PP
adds multiple indexes to a table_dataset helper object. To end the list, use a 0 after the list of ASN index types. 
.PP
Definition at line 1316 of file table_dataset.c.
.SS "void netsnmp_table_set_multi_add_default_row (\fBnetsnmp_table_data_set\fP * tset,  ...)"
.PP
adds multiple data column definitions to each row. Functionally, this is a wrapper around calling netsnmp_table_set_add_default_row repeatedly for you. 
.PP
\fBExamples: \fP
.in +1c
\fBdata_set.c\fP.
.PP
Definition at line 332 of file table_dataset.c.
.SH "Author"
.PP 
Generated automatically by Doxygen for net-snmp from the source code.
