00001
00002
00003
00004 #ifndef BABY_STEPS_H
00005 #define BABY_STEPS_H
00006
00007 #ifdef __cplusplus
00008 extern "C" {
00009 #endif
00010
00011 #include <net-snmp/agent/agent_handler.h>
00012
00013
00014
00015
00016 #define BABY_STEP_NONE 0
00017 #define BABY_STEP_PRE_REQUEST (0x1 << 1)
00018 #define BABY_STEP_OBJECT_LOOKUP (0x1 << 2)
00019 #define BABY_STEP_CHECK_VALUE (0x1 << 3)
00020 #define BABY_STEP_ROW_CREATE (0x1 << 4)
00021 #define BABY_STEP_UNDO_SETUP (0x1 << 5)
00022 #define BABY_STEP_SET_VALUE (0x1 << 6)
00023 #define BABY_STEP_CHECK_CONSISTENCY (0x1 << 7)
00024 #define BABY_STEP_UNDO_SET (0x1 << 8)
00025 #define BABY_STEP_COMMIT (0x1 << 9)
00026 #define BABY_STEP_UNDO_COMMIT (0x1 << 10)
00027 #define BABY_STEP_IRREVERSIBLE_COMMIT (0x1 << 11)
00028 #define BABY_STEP_UNDO_CLEANUP (0x1 << 12)
00029 #define BABY_STEP_POST_REQUEST (0x1 << 13)
00030
00031 #define BABY_STEP_ALL (0xffffffff)
00032
00033
00034 #define BABY_STEP_CHECK_OBJECT BABY_STEP_CHECK_VALUE
00035 #define BABY_STEP_SET_VALUES BABY_STEP_SET_VALUE
00036 #define BABY_STEP_UNDO_SETS BABY_STEP_UNDO_SET
00037
00045 typedef struct netsnmp_baby_steps_modes_s {
00046 u_int registered;
00047 u_int completed;
00048 } netsnmp_baby_steps_modes;
00049
00050 void netsnmp_baby_steps_init(void);
00051
00052 netsnmp_mib_handler *netsnmp_baby_steps_handler_get(u_long modes);
00053
00069 typedef struct netsnmp_baby_steps_access_methods_s {
00070
00071
00072
00073
00074 Netsnmp_Node_Handler *pre_request;
00075 Netsnmp_Node_Handler *object_lookup;
00076 Netsnmp_Node_Handler *get_values;
00077 Netsnmp_Node_Handler *object_syntax_checks;
00078 Netsnmp_Node_Handler *row_creation;
00079 Netsnmp_Node_Handler *undo_setup;
00080 Netsnmp_Node_Handler *set_values;
00081 Netsnmp_Node_Handler *consistency_checks;
00082 Netsnmp_Node_Handler *commit;
00083 Netsnmp_Node_Handler *undo_sets;
00084 Netsnmp_Node_Handler *undo_cleanup;
00085 Netsnmp_Node_Handler *undo_commit;
00086 Netsnmp_Node_Handler *irreversible_commit;
00087 Netsnmp_Node_Handler *post_request;
00088
00089 void *my_access_void;
00090
00091 } netsnmp_baby_steps_access_methods;
00092
00093 netsnmp_mib_handler * netsnmp_baby_steps_access_multiplexer_get(
00094 netsnmp_baby_steps_access_methods *);
00095
00096 int netsnmp_baby_step_mode2flag( u_int mode );
00097
00102 #define netsnmp_get_baby_steps_handler netsnmp_baby_steps_handler_get
00103 #define netsnmp_init_baby_steps_helper netsnmp_baby_steps_handler_init
00104
00105
00106 #ifdef __cplusplus
00107 }
00108 #endif
00109 #endif