and added files
[bcm963xx.git] / userapps / opensource / net-snmp / include / net-snmp / agent / table_iterator.h
diff --git a/userapps/opensource/net-snmp/include/net-snmp/agent/table_iterator.h b/userapps/opensource/net-snmp/include/net-snmp/agent/table_iterator.h
new file mode 100644 (file)
index 0000000..28f2b50
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * table_iterator.h 
+ */
+#ifndef _TABLE_ITERATOR_HANDLER_H_
+#define _TABLE_ITERATOR_HANDLER_H_
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
+    struct netsnmp_iterator_info_s;
+
+    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 struct netsnmp_iterator_info_s {
+        Netsnmp_First_Data_Point *get_first_data_point;
+        Netsnmp_Next_Data_Point *get_next_data_point;
+        Netsnmp_Make_Data_Context *make_data_context;
+        Netsnmp_Free_Loop_Context *free_loop_context;
+        Netsnmp_Free_Data_Context *free_data_context;
+        Netsnmp_Free_Loop_Context *free_loop_context_at_end;
+
+        void           *myvoid;
+
+        netsnmp_table_registration_info *table_reginfo;
+    } netsnmp_iterator_info;
+
+#define TABLE_ITERATOR_NAME "table_iterator"
+
+    netsnmp_mib_handler
+        *netsnmp_get_table_iterator_handler(netsnmp_iterator_info *iinfo);
+    int            
+        netsnmp_register_table_iterator(netsnmp_handler_registration
+                                        *reginfo,
+                                        netsnmp_iterator_info *iinfo);
+
+    void           *netsnmp_extract_iterator_context(netsnmp_request_info
+                                                     *);
+
+    Netsnmp_Node_Handler netsnmp_table_iterator_helper_handler;
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif                          /* _TABLE_ITERATOR_HANDLER_H_ */