callback.h
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:2k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. /*
  2.  * callback.c: A generic callback mechanism 
  3.  */
  4. #ifndef CALLBACK_H
  5. #define CALLBACK_H
  6. #ifdef __cplusplus
  7. extern          "C" {
  8. #endif
  9. #define MAX_CALLBACK_IDS    2
  10. #define MAX_CALLBACK_SUBIDS 16
  11.     /*
  12.      * Callback Major Types 
  13.      */
  14. #define SNMP_CALLBACK_LIBRARY     0
  15. #define SNMP_CALLBACK_APPLICATION 1
  16.     /*
  17.      * SNMP_CALLBACK_LIBRARY minor types 
  18.      */
  19. #define SNMP_CALLBACK_POST_READ_CONFIG         0
  20. #define SNMP_CALLBACK_STORE_DATA         1
  21. #define SNMP_CALLBACK_SHUTDOWN         2
  22. #define SNMP_CALLBACK_POST_PREMIB_READ_CONFIG 3
  23. #define SNMP_CALLBACK_LOGGING 4
  24. #define SNMP_CALLBACK_SESSION_INIT 5
  25.     typedef int     (SNMPCallback) (int majorID, int minorID,
  26.                                     void *serverarg, void *clientarg);
  27.     struct snmp_gen_callback {
  28.         SNMPCallback   *sc_callback;
  29.         void           *sc_client_arg;
  30.         int             priority;
  31.         struct snmp_gen_callback *next;
  32.     };
  33.     /*
  34.      * function prototypes 
  35.      */
  36.     void            init_callbacks(void);
  37.     int             netsnmp_register_callback(int major, int minor,
  38.                                               SNMPCallback * new_callback,
  39.                                               void *arg, int priority);
  40.     int             snmp_register_callback(int major, int minor,
  41.                                            SNMPCallback * new_callback,
  42.                                            void *arg);
  43.     int             snmp_call_callbacks(int major, int minor,
  44.                                         void *caller_arg);
  45.     int             snmp_callback_available(int major, int minor);      /* is >1 available */
  46.     int             snmp_count_callbacks(int major, int minor); /* ret the number registered */
  47.     int             snmp_unregister_callback(int major, int minor,
  48.                                              SNMPCallback * new_callback,
  49.                                              void *arg, int matchargs);
  50.     void            clear_callback (void);
  51.     int             netsnmp_callback_clear_client_arg(void *, int i, int j);
  52.     struct snmp_gen_callback *snmp_callback_list(int major, int minor);
  53. #ifdef __cplusplus
  54. }
  55. #endif
  56. #endif                          /* CALLBACK_H */