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

row_merge: Calls sub handlers with request for one row at a time.
[utility_handlers: simplify request processing]

This helper splits a whole bunch of requests into chunks based on the row index that they refer to, and passes all requests for a given row to the lower handlers. More...

Defines

#define  ROW_MERGE_WAITING   0
#define  ROW_MERGE_ACTIVE   1
#define  ROW_MERGE_DONE   2
#define  ROW_MERGE_HEAD   3

Functions

netsnmp_mib_handler netsnmp_get_row_merge_handler (int prefix_len)
  returns a row_merge handler that can be injected into a given handler chain.
int  netsnmp_register_row_merge (netsnmp_handler_registration *reginfo)
  functionally the same as calling netsnmp_register_handler() but also injects a row_merge handler at the same time for you.
netsnmp_row_merge_status *  netsnmp_row_merge_status_get (netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, int create_missing)
  retrieve row_merge_status
int  netsnmp_row_merge_status_first (netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo)
  Determine if this is the first row.
int  netsnmp_row_merge_status_last (netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo)
  Determine if this is the last row.
int  netsnmp_row_merge_helper_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
  Implements the row_merge handler.
void  netsnmp_init_row_merge (void)
  initializes the row_merge helper which then registers a row_merge handler as a run-time injectable handler for configuration file use.

Detailed Description

This helper splits a whole bunch of requests into chunks based on the row index that they refer to, and passes all requests for a given row to the lower handlers.

This is useful for handlers that don't want to process multiple rows at the same time, but are happy to iterate through the request list for a single row.


Function Documentation

netsnmp_mib_handler* netsnmp_get_row_merge_handler int  prefix_len  ) 
 

returns a row_merge handler that can be injected into a given handler chain.

Definition at line 27 of file row_merge.c.

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

Referenced by netsnmp_init_row_merge(), and netsnmp_register_row_merge().

void netsnmp_init_row_merge void   ) 
 

initializes the row_merge helper which then registers a row_merge handler as a run-time injectable handler for configuration file use.

Definition at line 352 of file row_merge.c.

References netsnmp_get_row_merge_handler(), and netsnmp_register_handler_by_name().

int netsnmp_register_row_merge netsnmp_handler_registration reginfo  ) 
 

functionally the same as calling netsnmp_register_handler() but also injects a row_merge handler at the same time for you.

Definition at line 41 of file row_merge.c.

References netsnmp_get_row_merge_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), netsnmp_register_handler(), and netsnmp_handler_registration_s::rootoid_len.

int netsnmp_row_merge_helper_handler netsnmp_mib_handler handler,
netsnmp_handler_registration reginfo,
netsnmp_agent_request_info reqinfo,
netsnmp_request_info requests
 

Implements the row_merge handler.

Definition at line 153 of file row_merge.c.

References netsnmp_agent_request_info_s::mode, netsnmp_mib_handler_s::myvoid, variable_list::name, variable_list::name_length, netsnmp_call_next_handler(), netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_row_merge_status_get(), netsnmp_request_info_s::next, netsnmp_request_info_s::processed, netsnmp_request_info_s::requestvb, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, SNMP_FREE, snmp_log(), and snmp_oid_compare().

int netsnmp_row_merge_status_first netsnmp_handler_registration reginfo,
netsnmp_agent_request_info reqinfo
 

Determine if this is the first row.

returns 1 if this is the first row for this pass of the handler.

Definition at line 109 of file row_merge.c.

References netsnmp_handler_registration, and netsnmp_row_merge_status_get().

netsnmp_row_merge_status* netsnmp_row_merge_status_get netsnmp_handler_registration reginfo,
netsnmp_agent_request_info reqinfo,
int  create_missing
 

retrieve row_merge_status

Definition at line 66 of file row_merge.c.

References netsnmp_create_data_list(), netsnmp_handler_registration, snmp_log(), and SNMP_MALLOC_TYPEDEF.

Referenced by netsnmp_row_merge_helper_handler(), netsnmp_row_merge_status_first(), and netsnmp_row_merge_status_last().

int netsnmp_row_merge_status_last netsnmp_handler_registration reginfo,
netsnmp_agent_request_info reqinfo
 

Determine if this is the last row.

returns 1 if this is the last row for this pass of the handler.

Definition at line 129 of file row_merge.c.

References netsnmp_handler_registration, and netsnmp_row_merge_status_get().


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

Valid CSS!


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.