Data Structures |
|
| struct | ti_cache_info_s |
| struct | netsnmp_iterator_info_s |
| Holds iterator information containing functions which should be called by the iterator_handler to
loop over your data set and sort it in a SNMP specific manner. More... |
|
| struct | netsnmp_iterator_info_s |
| Holds iterator information containing functions which should be called by the iterator_handler to
loop over your data set and sort it in a SNMP specific manner. More... |
|
Defines |
|
| #define | TI_REQUEST_CACHE "ti_cache" |
| #define | TABLE_ITERATOR_NOTAGAIN 255 |
| #define | TABLE_ITERATOR_NAME "table_iterator" |
Typedefs |
|
| typedef ti_cache_info_s | ti_cache_info |
| typedef netsnmp_variable_list *( | Netsnmp_First_Data_Point )(void **loop_context, void **data_context, netsnmp_variable_list *, struct netsnmp_iterator_info_s *) |
| typedef netsnmp_variable_list *( | Netsnmp_Next_Data_Point )(void **loop_context, void **data_context, netsnmp_variable_list *, struct netsnmp_iterator_info_s *) |
| typedef void *( | Netsnmp_Make_Data_Context )(void *loop_context, struct netsnmp_iterator_info_s *) |
| typedef void( | Netsnmp_Free_Loop_Context )(void *, struct netsnmp_iterator_info_s *) |
| typedef void( | Netsnmp_Free_Data_Context )(void *, struct netsnmp_iterator_info_s *) |
| typedef netsnmp_iterator_info_s | netsnmp_iterator_info |
| Typedefs the netsnmp_iterator_info_s
struct into netsnmp_iterator_info. |
|
Functions |
|
| netsnmp_iterator_info * | netsnmp_iterator_create_table (Netsnmp_First_Data_Point *firstDP, Netsnmp_Next_Data_Point *nextDP, Netsnmp_First_Data_Point *getidx, netsnmp_variable_list *indexes) |
| void | netsnmp_iterator_delete_table (netsnmp_iterator_info *iinfo) |
| netsnmp_mib_handler * | netsnmp_get_table_iterator_handler (netsnmp_iterator_info *iinfo) |
| returns a netsnmp_mib_handler object for the table_iterator helper |
|
| int | netsnmp_register_table_iterator (netsnmp_handler_registration *reginfo, netsnmp_iterator_info *iinfo) |
| Creates and registers a table iterator helper handler calling netsnmp_create_handler with a handler
name set to TABLE_ITERATOR_NAME and access method, netsnmp_table_iterator_helper_handler. |
|
| NETSNMP_INLINE void * | netsnmp_extract_iterator_context (netsnmp_request_info *request) |
| extracts the table_iterator specific data from a request. |
|
| NETSNMP_INLINE void | netsnmp_insert_iterator_context (netsnmp_request_info *request, void *data) |
| inserts table_iterator specific data for a newly created row into a request |
|
| int | netsnmp_table_iterator_helper_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests) |
| void * | netsnmp_iterator_row_first (netsnmp_iterator_info *iinfo) |
| void * | netsnmp_iterator_row_get (netsnmp_iterator_info *iinfo, void *row) |
| void * | netsnmp_iterator_row_next (netsnmp_iterator_info *iinfo, void *row) |
| void * | netsnmp_iterator_row_get_byidx (netsnmp_iterator_info *iinfo, netsnmp_variable_list *indexes) |
| void * | netsnmp_iterator_row_next_byidx (netsnmp_iterator_info *iinfo, netsnmp_variable_list *indexes) |
| void * | netsnmp_iterator_row_get_byoid (netsnmp_iterator_info *iinfo, oid *instance, size_t len) |
| void * | netsnmp_iterator_row_next_byoid (netsnmp_iterator_info *iinfo, oid *instance, size_t len) |
| int | netsnmp_iterator_row_count (netsnmp_iterator_info *iinfo) |
Variables |
|
| Netsnmp_Node_Handler | netsnmp_table_iterator_helper_handler |
The module the table_iterator helps should, afterwards, never be called for the case of "MODE_GETNEXT" and only for the GET and SET related modes instead.
The fundamental notion between the table iterator is that it allows your code to iterate over each "row" within your data storage mechanism, without requiring that it be sorted in a SNMP-index-compliant manner. Through the get_first_data_point and get_next_data_point hooks, the table_iterator helper will repeatedly call your hooks to find the "proper" row of data that needs processing. The following concepts are important:
The table iterator operates in a series of steps that call your code hooks from your netsnmp_iterator_info registration pointer.
|
|
Typedefs the netsnmp_iterator_info_s struct into netsnmp_iterator_info. Referenced by netsnmp_get_table_iterator_handler(), and netsnmp_register_table_iterator(). |
|
|
extracts the table_iterator specific data from a request. This function extracts the table iterator specific data from a netsnmp_request_info object. Calls netsnmp_request_get_list_data with request->parent_data set with data from a request that was added previously by a module and TABLE_ITERATOR_NAME handler name.
Definition at line 228 of file table_iterator.c. References netsnmp_request_get_list_data(). |
|
|
returns a netsnmp_mib_handler object for the table_iterator helper Definition at line 168 of file table_iterator.c. References netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), netsnmp_iterator_info, and netsnmp_mib_handler. Referenced by netsnmp_register_table_iterator(). |
|
||||||||||||
|
inserts table_iterator specific data for a newly created row into a request Definition at line 236 of file table_iterator.c. References netsnmp_table_request_info_s::indexes, netsnmp_create_data_list(), netsnmp_extract_table_info(), netsnmp_request_add_list_data(), netsnmp_request_info_s::next, netsnmp_request_info_s::prev, and snmp_oid_compare(). |
|
||||||||||||
|
Creates and registers a table iterator helper handler calling netsnmp_create_handler with a handler name set to TABLE_ITERATOR_NAME and access method, netsnmp_table_iterator_helper_handler. If NOT_SERIALIZED is not defined the function injects the serialize handler into the calling chain prior to calling netsnmp_register_table.
Definition at line 199 of file table_iterator.c. References netsnmp_table_registration_info_s::indexes, netsnmp_iterator_info_s::indexes, netsnmp_handler_registration_s::modes, netsnmp_get_table_iterator_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), netsnmp_iterator_info, netsnmp_register_table(), and netsnmp_iterator_info_s::table_reginfo. |
1.3.9.1
Last modified: Thursday, 01-Mar-2007 16:20:11 PST
For questions regarding web content and site functionality, please write to the net-snmp-users mail list.