callback.h

00001 /*
00002  * callback.c: A generic callback mechanism 
00003  */
00004 
00005 #ifndef CALLBACK_H
00006 #define CALLBACK_H
00007 
00008 #ifdef __cplusplus
00009 extern          "C" {
00010 #endif
00011 
00012 #define MAX_CALLBACK_IDS    2
00013 #define MAX_CALLBACK_SUBIDS 16
00014 
00015     /*
00016      * Callback Major Types 
00017      */
00018 #define SNMP_CALLBACK_LIBRARY     0
00019 #define SNMP_CALLBACK_APPLICATION 1
00020 
00021     /*
00022      * SNMP_CALLBACK_LIBRARY minor types 
00023      */
00024 #define SNMP_CALLBACK_POST_READ_CONFIG          0
00025 #define SNMP_CALLBACK_STORE_DATA                1
00026 #define SNMP_CALLBACK_SHUTDOWN                  2
00027 #define SNMP_CALLBACK_POST_PREMIB_READ_CONFIG   3
00028 #define SNMP_CALLBACK_LOGGING                   4
00029 #define SNMP_CALLBACK_SESSION_INIT              5
00030 
00031 
00032     /*
00033      * Callback priority (lower priority numbers called first(
00034      */
00035 #define NETSNMP_CALLBACK_HIGHEST_PRIORITY      -1024 
00036 #define NETSNMP_CALLBACK_DEFAULT_PRIORITY       0
00037 #define NETSNMP_CALLBACK_LOWEST_PRIORITY        1024
00038 
00039     typedef int     (SNMPCallback) (int majorID, int minorID,
00040                                     void *serverarg, void *clientarg);
00041 
00042     struct snmp_gen_callback {
00043         SNMPCallback   *sc_callback;
00044         void           *sc_client_arg;
00045         int             priority;
00046         struct snmp_gen_callback *next;
00047     };
00048 
00049     /*
00050      * function prototypes 
00051      */
00052     void            init_callbacks(void);
00053 
00054     int             netsnmp_register_callback(int major, int minor,
00055                                               SNMPCallback * new_callback,
00056                                               void *arg, int priority);
00057     int             snmp_register_callback(int major, int minor,
00058                                            SNMPCallback * new_callback,
00059                                            void *arg);
00060     int             snmp_call_callbacks(int major, int minor,
00061                                         void *caller_arg);
00062     int             snmp_callback_available(int major, int minor);      /* is >1 available */
00063     int             snmp_count_callbacks(int major, int minor); /* ret the number registered */
00064     int             snmp_unregister_callback(int major, int minor,
00065                                              SNMPCallback * new_callback,
00066                                              void *arg, int matchargs);
00067     void            clear_callback (void);
00068     int             netsnmp_callback_clear_client_arg(void *, int i, int j);
00069 
00070     struct snmp_gen_callback *snmp_callback_list(int major, int minor);
00071 
00072 #ifdef __cplusplus
00073 }
00074 #endif
00075 #endif                          /* CALLBACK_H */

net-snmpに対してSat Sep 5 13:14:20 2009に生成されました。  doxygen 1.4.7