watcher.h

00001 /*
00002  * watcher.h 
00003  */
00004 #ifndef NETSNMP_WATCHER_H
00005 #define NETSNMP_WATCHER_H
00006 
00007 #ifdef __cplusplus
00008 extern "C" {
00009 #endif
00010 
00011 /*
00012  * if handler flag has this bit set, the timestamp will be
00013  * treated as a pointer to the timestamp. If this bit is
00014  * not set (the default), the timestamp is a struct timeval
00015  * that must be compared to the agent starttime.
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  * Convenience registration calls
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 

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