00001
00002
00003
00004 #ifndef NETSNMP_WATCHER_H
00005 #define NETSNMP_WATCHER_H
00006
00007 #ifdef __cplusplus
00008 extern "C" {
00009 #endif
00010
00011
00012
00013
00014
00015
00016
00017 #define NETSNMP_WATCHER_DIRECT MIB_HANDLER_CUSTOM1
00018
00019 #define WATCHER_FIXED_SIZE 0x01
00020 #define WATCHER_MAX_SIZE 0x02
00021
00022 typedef struct netsnmp_watcher_info_s {
00023 void *data;
00024 size_t data_size;
00025 size_t max_size;
00026 u_char type;
00027 int flags;
00028 } netsnmp_watcher_info;
00029
00030 int netsnmp_register_watched_instance( netsnmp_handler_registration *reginfo,
00031 netsnmp_watcher_info *winfo);
00032 int netsnmp_register_watched_scalar( netsnmp_handler_registration *reginfo,
00033 netsnmp_watcher_info *winfo);
00034 int netsnmp_register_watched_timestamp(netsnmp_handler_registration *reginfo,
00035 marker_t timestamp);
00036 int netsnmp_watched_timestamp_register(netsnmp_mib_handler *whandler,
00037 netsnmp_handler_registration *reginfo,
00038 marker_t timestamp);
00039 int netsnmp_register_watched_spinlock(netsnmp_handler_registration *reginfo,
00040 int *spinlock);
00041
00042
00043
00044
00045
00046 int netsnmp_register_ulong_scalar(const char *name,
00047 oid * reg_oid, size_t reg_oid_len,
00048 u_long * it,
00049 Netsnmp_Node_Handler * subhandler);
00050 int netsnmp_register_read_only_ulong_scalar(const char *name,
00051 oid * reg_oid, size_t reg_oid_len,
00052 u_long * it,
00053 Netsnmp_Node_Handler * subhandler);
00054 int netsnmp_register_long_scalar(const char *name,
00055 oid * reg_oid, size_t reg_oid_len,
00056 long * it,
00057 Netsnmp_Node_Handler * subhandler);
00058 int netsnmp_register_read_only_long_scalar(const char *name,
00059 oid * reg_oid, size_t reg_oid_len,
00060 long * it,
00061 Netsnmp_Node_Handler * subhandler);
00062 int netsnmp_register_int_scalar(const char *name,
00063 oid * reg_oid, size_t reg_oid_len,
00064 int * it,
00065 Netsnmp_Node_Handler * subhandler);
00066 int netsnmp_register_read_only_int_scalar(const char *name,
00067 oid * reg_oid, size_t reg_oid_len,
00068 int * it,
00069 Netsnmp_Node_Handler * subhandler);
00070 int netsnmp_register_read_only_counter32_scalar(const char *name,
00071 oid * reg_oid, size_t reg_oid_len,
00072 u_long * it,
00073 Netsnmp_Node_Handler * subhandler);
00074
00075 #define WATCHER_HANDLER_NAME "watcher"
00076
00077 netsnmp_mib_handler *netsnmp_get_watcher_handler(void);
00078 netsnmp_watcher_info *netsnmp_create_watcher_info(void *, size_t, u_char, int);
00079 Netsnmp_Node_Handler netsnmp_watcher_helper_handler;
00080
00081 netsnmp_mib_handler *netsnmp_get_watched_timestamp_handler(void);
00082 Netsnmp_Node_Handler netsnmp_watched_timestamp_handler;
00083
00084 netsnmp_mib_handler *netsnmp_get_watched_spinlock_handler(void);
00085 Netsnmp_Node_Handler netsnmp_watched_spinlock_handler;
00086
00087 #ifdef __cplusplus
00088 }
00089 #endif
00090
00091 #endif