diff options
Diffstat (limited to 'include/net-snmp/agent/row_merge.h')
-rw-r--r-- | include/net-snmp/agent/row_merge.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/net-snmp/agent/row_merge.h b/include/net-snmp/agent/row_merge.h new file mode 100644 index 0000000..3e98957 --- /dev/null +++ b/include/net-snmp/agent/row_merge.h @@ -0,0 +1,38 @@ +#ifndef ROW_MERGE_H +#define ROW_MERGE_H + +/* + * This row_merge 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. + */ + +#ifdef __cplusplus +extern "C" { +#endif + + typedef struct netsnmp_row_merge_status_x { + char count; /* number of requests */ + char rows; /* number of rows (unique indexes) */ + char current; /* current row number */ + char reserved; /* reserver for future use */ + + netsnmp_request_info **saved_requests; /* internal use */ + char *saved_status; /* internal use */ + } netsnmp_row_merge_status; + + netsnmp_mib_handler *netsnmp_get_row_merge_handler(int); + int netsnmp_register_row_merge(netsnmp_handler_registration *reginfo); + void netsnmp_init_row_merge(void); + + int netsnmp_row_merge_status_first(netsnmp_handler_registration *reginfo, + netsnmp_agent_request_info *reqinfo); + int netsnmp_row_merge_status_last(netsnmp_handler_registration *reginfo, + netsnmp_agent_request_info *reqinfo); + + Netsnmp_Node_Handler netsnmp_row_merge_helper_handler; + +#ifdef __cplusplus +} +#endif +#endif |