table_dataset
[table_data]

Helps you implement a table with automatted storage. [詳細]

関数

void netsnmp_init_table_dataset (void)
netsnmp_table_data_setnetsnmp_create_table_data_set (const char *table_name)
 Create a netsnmp_table_data_set structure given a table_data definition
netsnmp_table_rownetsnmp_table_data_set_clone_row (netsnmp_table_row *row)
 clones a dataset row, including all data.
NETSNMP_INLINE netsnmp_table_data_set_storagenetsnmp_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 the column values
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 its data)
netsnmp_table_rownetsnmp_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 (netsnmp_table_data_set *tset,...)
 adds multiple data column definitions to each row.
netsnmp_mib_handlernetsnmp_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_stashnetsnmp_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_setnetsnmp_extract_table_data_set (netsnmp_request_info *request)
 extracts a netsnmp_table_data_set pointer from a given request
netsnmp_table_data_set_storagenetsnmp_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_rownetsnmp_table_data_set_get_first_row (netsnmp_table_data_set *table)
 returns the first row in the table
netsnmp_table_rownetsnmp_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_storagenetsnmp_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 (netsnmp_table_data_set *tset,...)
 adds multiple indexes to a table_dataset helper object.

説明

Helps you implement a table with automatted storage.

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.


関数

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

例:
data_set.c.

table_dataset.c80 行で定義されています。

参照先 netsnmp_create_table_data()NULLSNMP_MALLOC_TYPEDEFnetsnmp_table_data_set_s::table.

参照元 netsnmp_config_parse_table_set().

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

table_dataset.c816 行で定義されています。

参照先 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

table_dataset.c826 行で定義されています。

参照先 netsnmp_extract_table_row_data()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

table_dataset.c356 行で定義されています。

参照先 netsnmp_mib_handler_s::flagsMIB_HANDLER_AUTO_NEXTnetsnmp_mib_handler_s::myvoidnetsnmp_create_handler()netsnmp_table_data_set_helper_handler()NULLsnmp_log().

参照元 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.

例:
data_set.c.

table_dataset.c1169 行で定義されています。

参照先 netsnmp_table_data_set_storage_s::columnnetsnmp_table_row_s::datanetsnmp_table_data_set_find_column()netsnmp_table_data_set_storage_s::nextsnmp_log()SNMP_MALLOC_TYPEDEFnetsnmp_table_data_set_storage_s::writable.

参照元 netsnmp_config_parse_add_row()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.
例:
data_set.c.

table_dataset.c853 行で定義されています。

参照先 netsnmp_table_data_s::namenetsnmp_add_list_data()netsnmp_create_data_list()NULLSNMP_MALLOC_TYPEDEFnetsnmp_table_data_set_s::tabledata_set_tables_s::table_set.

参照元 netsnmp_config_parse_table_set().

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.

例:
data_set.c.

table_dataset.c382 行で定義されています。

参照先 netsnmp_table_data_set_storage_s::columnnetsnmp_table_data_set_s::default_rownetsnmp_table_registration_info_s::indexesnetsnmp_table_data_s::indexes_templatenetsnmp_table_registration_info_s::max_columnnetsnmp_table_registration_info_s::min_columnnetsnmp_get_table_data_set_handler()netsnmp_inject_handler()netsnmp_register_table_data()netsnmp_table_data_set_storage_s::nextNULLsnmp_clone_varbind()SNMP_MALLOC_TYPEDEFSNMP_MAXSNMP_MINnetsnmp_table_data_set_s::table.

参照元 netsnmp_config_parse_table_set().

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.

例:
data_set.c.

table_dataset.c1204 行で定義されています。

参照先 netsnmp_table_data_set_storage_s::columnnetsnmp_table_row_s::data・netsnmp_table_data_set_storage_s::data・netsnmp_table_data_set_storage_s::data_lenmemdup()netsnmp_table_data_set_find_column()netsnmp_table_data_set_storage_s::nextSNMP_FREEsnmp_log()SNMP_MALLOC_TYPEDEFnetsnmp_table_data_set_storage_s::stringnetsnmp_table_data_set_storage_s::typenetsnmp_table_data_set_storage_s::voidp.

参照元 netsnmp_config_parse_add_row()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.

table_dataset.c92 行で定義されています。

参照先 netsnmp_table_row_s::datamemdup()netsnmp_table_data_clone_row()netsnmp_table_dataset_delete_row()netsnmp_table_data_set_storage_s::nextNULL.

参照元 netsnmp_table_data_set_helper_handler().

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

table_dataset.c226 行で定義されています。

参照先 netsnmp_table_data_set_storage_s::column・netsnmp_table_data_set_storage_s::data・netsnmp_table_data_set_storage_s::data_lennetsnmp_create_table_data_row()netsnmp_mark_row_column_writable()netsnmp_set_row_column()netsnmp_table_data_set_storage_s::nextNULLnetsnmp_table_data_set_storage_s::typenetsnmp_table_data_set_storage_s::voidpnetsnmp_table_data_set_storage_s::writable.

参照元 netsnmp_table_data_set_create_newrowstash().

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.

table_dataset.c1157 行で定義されています。

参照先 netsnmp_table_data_set_storage_s::columnnetsnmp_table_data_set_storage_s::next.

参照元 netsnmp_extract_table_data_set_column()netsnmp_mark_row_column_writable()netsnmp_set_row_column()netsnmp_table_data_set_helper_handler()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

table_dataset.c1126 行で定義されています。

参照先 netsnmp_table_data_get_first_row()netsnmp_table_data_set_s::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

table_dataset.c1133 行で定義されています。

参照先 netsnmp_table_data_get_next_row()netsnmp_table_data_set_s::table.

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.

例:
data_set.c.

table_dataset.c1258 行で定義されています。

参照先 netsnmp_table_data_set_s::table.

参照元 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

例:
data_set.c.

table_dataset.c171 行で定義されています。

参照先 netsnmp_table_data_add_row()netsnmp_table_data_set_s::table.

参照元 netsnmp_table_data_set_helper_handler().

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

table_dataset.c148 行で定義されています。

参照先 netsnmp_table_dataset_delete_data().

参照元 netsnmp_table_dataset_delete_row()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.

table_dataset.c135 行で定義されています。

参照先 netsnmp_table_data_set_storage_s::data・netsnmp_table_data_set_storage_s::nextNULLSNMP_FREEnetsnmp_table_data_set_storage_s::voidp.

参照元 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

table_dataset.c158 行で定義されています。

参照先 netsnmp_table_data_delete_row()netsnmp_table_dataset_delete_all_data().

参照元 netsnmp_table_data_set_clone_row()netsnmp_table_data_set_helper_handler().

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 its data)

table_dataset.c203 行で定義されています。

参照先 netsnmp_table_data_remove_and_delete_row()netsnmp_table_dataset_delete_all_data()netsnmp_table_data_set_s::table.

参照元 netsnmp_table_data_set_helper_handler().

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 the column values

table_dataset.c192 行で定義されています。

参照先 netsnmp_table_data_remove_and_delete_row()netsnmp_table_data_set_s::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

table_dataset.c181 行で定義されています。

参照先 netsnmp_table_data_replace_row()netsnmp_table_data_set_s::table.

参照元 netsnmp_table_data_set_helper_handler().

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

table_dataset.c252 行で定義されています。

参照先 netsnmp_table_data_set_storage_s::column・netsnmp_table_data_set_storage_s::data・netsnmp_table_data_set_storage_s::data_lennetsnmp_table_data_set_s::default_rowmemdup()netsnmp_table_data_set_find_column()netsnmp_table_data_set_storage_s::nextNULLsnmp_log()SNMP_MALLOC_TYPEDEFnetsnmp_table_data_set_storage_s::typenetsnmp_table_data_set_storage_s::voidpnetsnmp_table_data_set_storage_s::writable.

参照元 netsnmp_config_parse_table_set()netsnmp_table_set_multi_add_default_row().

void netsnmp_table_set_add_indexes ( netsnmp_table_data_set tset,
  ... 
)

adds multiple indexes to a table_dataset helper object.

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

table_dataset.c1269 行で定義されています。

参照先 netsnmp_table_dataset_add_index().

void netsnmp_table_set_multi_add_default_row ( netsnmp_table_data_set tset,
  ... 
)

adds multiple data column definitions to each row.

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

例:
data_set.c.

table_dataset.c313 行で定義されています。

参照先 netsnmp_table_set_add_default_row().


net-snmpに対してSat Sep 5 13:14:30 2009に生成されました。  doxygen 1.4.7