00001 /* 00002 * $Id: baby_steps.h 11068 2004-09-14 02:29:16Z rstory $ 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 * Flags for baby step modes 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 * baby step modes 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 /* baby_steps */