00001
00002
00003
00004
00005 #ifndef _TABLE_CONTAINER_HANDLER_H_
00006 #define _TABLE_CONTAINER_HANDLER_H_
00007
00008 #ifdef __cplusplus
00009 extern "C" {
00010 #endif
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <net-snmp/library/container.h>
00027 #include <net-snmp/agent/table.h>
00028
00029 #define TABLE_CONTAINER_ROW "table_container:row"
00030 #define TABLE_CONTAINER_CONTAINER "table_container:container"
00031
00032 #define TABLE_CONTAINER_KEY_NETSNMP_INDEX 1
00033 #define TABLE_CONTAINER_KEY_VARBIND_INDEX 2
00034 #define TABLE_CONTAINER_KEY_VARBIND_RAW 3
00035
00036
00037
00038
00039
00040
00041
00042
00043 netsnmp_mib_handler *
00044 netsnmp_container_table_handler_get(netsnmp_table_registration_info *tabreq,
00045 netsnmp_container *container,
00046 char key_type);
00047
00048
00049
00050 int
00051 netsnmp_container_table_register(netsnmp_handler_registration *reginfo,
00052 netsnmp_table_registration_info *tabreq,
00053 netsnmp_container *container,
00054 char key_type);
00055 int
00056 netsnmp_container_table_unregister(netsnmp_handler_registration *reginfo);
00057
00059 netsnmp_container*
00060 netsnmp_container_table_container_extract(netsnmp_request_info *request);
00061
00063 #ifdef NETSNMP_USE_INLINE
00064 NETSNMP_STATIC_INLINE void *
00065 netsnmp_container_table_row_extract(netsnmp_request_info *request)
00066 {
00067
00068
00069
00070
00071 return netsnmp_request_get_list_data(request, TABLE_CONTAINER_ROW);
00072 }
00073
00074 NETSNMP_STATIC_INLINE void *
00075 netsnmp_container_table_extract_context(netsnmp_request_info *request)
00076 {
00077
00078
00079
00080
00081 return netsnmp_request_get_list_data(request, TABLE_CONTAINER_ROW);
00082 }
00083 #else
00084 void *
00085 netsnmp_container_table_row_extract(netsnmp_request_info *request);
00086 void *
00087 netsnmp_container_table_extract_context(netsnmp_request_info *request);
00088 #endif
00089
00090 void netsnmp_container_table_row_insert(netsnmp_request_info *request,
00091 netsnmp_index *row);
00092
00093
00094
00095
00096
00097 void *
00098 netsnmp_container_table_find_next_row(netsnmp_request_info *request,
00099 netsnmp_table_request_info *tblreq,
00100 netsnmp_container *container,
00101 char key_type );
00102 #ifdef __cplusplus
00103 }
00104 #endif
00105
00106 #endif