and added files
[bcm963xx.git] / userapps / opensource / net-snmp / include / net-snmp / agent / table_iterator.h
1 /*
2  * table_iterator.h 
3  */
4 #ifndef _TABLE_ITERATOR_HANDLER_H_
5 #define _TABLE_ITERATOR_HANDLER_H_
6
7 #ifdef __cplusplus
8 extern          "C" {
9 #endif
10
11     struct netsnmp_iterator_info_s;
12
13     typedef netsnmp_variable_list *(Netsnmp_First_Data_Point) (void
14                                                                **loop_context,
15                                                                void
16                                                                **data_context,
17                                                                netsnmp_variable_list
18                                                                *,
19                                                                struct
20                                                                netsnmp_iterator_info_s
21                                                                *);
22     typedef netsnmp_variable_list *(Netsnmp_Next_Data_Point) (void
23                                                               **loop_context,
24                                                               void
25                                                               **data_context,
26                                                               netsnmp_variable_list
27                                                               *,
28                                                               struct
29                                                               netsnmp_iterator_info_s
30                                                               *);
31     typedef void   *(Netsnmp_Make_Data_Context) (void *loop_context,
32                                                  struct
33                                                  netsnmp_iterator_info_s
34                                                  *);
35     typedef void    (Netsnmp_Free_Loop_Context) (void *,
36                                                  struct
37                                                  netsnmp_iterator_info_s
38                                                  *);
39     typedef void    (Netsnmp_Free_Data_Context) (void *,
40                                                  struct
41                                                  netsnmp_iterator_info_s
42                                                  *);
43
44     typedef struct netsnmp_iterator_info_s {
45         Netsnmp_First_Data_Point *get_first_data_point;
46         Netsnmp_Next_Data_Point *get_next_data_point;
47         Netsnmp_Make_Data_Context *make_data_context;
48         Netsnmp_Free_Loop_Context *free_loop_context;
49         Netsnmp_Free_Data_Context *free_data_context;
50         Netsnmp_Free_Loop_Context *free_loop_context_at_end;
51
52         void           *myvoid;
53
54         netsnmp_table_registration_info *table_reginfo;
55     } netsnmp_iterator_info;
56
57 #define TABLE_ITERATOR_NAME "table_iterator"
58
59     netsnmp_mib_handler
60         *netsnmp_get_table_iterator_handler(netsnmp_iterator_info *iinfo);
61     int            
62         netsnmp_register_table_iterator(netsnmp_handler_registration
63                                         *reginfo,
64                                         netsnmp_iterator_info *iinfo);
65
66     void           *netsnmp_extract_iterator_context(netsnmp_request_info
67                                                      *);
68
69     Netsnmp_Node_Handler netsnmp_table_iterator_helper_handler;
70
71 #ifdef __cplusplus
72 };
73 #endif
74
75 #endif                          /* _TABLE_ITERATOR_HANDLER_H_ */