⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 table_data.h

📁 net_snmp应用程序示例
💻 H
字号:
/* * table_iterator.h  */#ifndef _TABLE_DATA_HANDLER_H_#define _TABLE_DATA_HANDLER_H_#ifdef __cplusplusextern          "C" {#endif    /*     * This helper is designed to completely automate the task of storing     * tables of data within the agent that are not tied to external data     * sources (like the kernel, hardware, or other processes, etc).  IE,     * all rows within a table are expected to be added manually using     * functions found below.     */#define TABLE_DATA_NAME "table_data"#define TABLE_DATA_ROW  "table_data"#define TABLE_DATA_TABLE "table_data_table"    typedef struct netsnmp_table_row_s {        netsnmp_variable_list *indexes; /* stored permanently if store_indexes = 1 */        oid            *index_oid;        size_t          index_oid_len;        void           *data;   /* the data to store */        struct netsnmp_table_row_s *next, *prev;        /* if used in a list */    } netsnmp_table_row;    typedef struct netsnmp_table_data_s {        netsnmp_variable_list *indexes_template;        /* containing only types */        char           *name;   /* if !NULL, it's registered globally */        int             flags;  /* not currently used */        int             store_indexes;        netsnmp_table_row *first_row;        netsnmp_table_row *last_row;    } netsnmp_table_data;/* ================================= * Table Data API: Table maintenance * ================================= */    void       netsnmp_table_data_generate_index_oid( netsnmp_table_row  *row);    netsnmp_table_data *netsnmp_create_table_data(const char *name);    netsnmp_table_row  *netsnmp_create_table_data_row(void);    netsnmp_table_row  *netsnmp_table_data_clone_row( netsnmp_table_row  *row);    void               *netsnmp_table_data_delete_row(netsnmp_table_row  *row);    int                 netsnmp_table_data_add_row(   netsnmp_table_data *table,                                                      netsnmp_table_row  *row);    NETSNMP_INLINE void       netsnmp_table_data_replace_row(netsnmp_table_data *table,                                      netsnmp_table_row *origrow,                                      netsnmp_table_row *newrow);    netsnmp_table_row *netsnmp_table_data_remove_row(netsnmp_table_data *table,                                                     netsnmp_table_row  *row);    void   *netsnmp_table_data_remove_and_delete_row(netsnmp_table_data *table,                                                     netsnmp_table_row  *row);/* ================================= * Table Data API: MIB maintenance * ================================= */    netsnmp_mib_handler *        netsnmp_get_table_data_handler(netsnmp_table_data           *table);    int netsnmp_register_table_data(netsnmp_handler_registration    *reginfo,                                    netsnmp_table_data              *table,                                    netsnmp_table_registration_info *table_info);    int netsnmp_register_read_only_table_data(                                    netsnmp_handler_registration    *reginfo,                                    netsnmp_table_data              *table,                                    netsnmp_table_registration_info *table_info);    Netsnmp_Node_Handler netsnmp_table_data_helper_handler;    netsnmp_table_data *netsnmp_extract_table(    netsnmp_request_info *);    netsnmp_table_row  *netsnmp_extract_table_row(netsnmp_request_info *);    void          *netsnmp_extract_table_row_data(netsnmp_request_info *);    void netsnmp_insert_table_row(netsnmp_request_info *, netsnmp_table_row *);    int netsnmp_table_data_build_result(netsnmp_handler_registration *reginfo,                                        netsnmp_agent_request_info   *reqinfo,                                        netsnmp_request_info         *request,                                        netsnmp_table_row *row, int column,                                        u_char type, u_char * result_data,                                        size_t result_data_len);/* ================================= * Table Data API: Row operations * ================================= */    netsnmp_table_row *netsnmp_table_data_get_first_row(                                              netsnmp_table_data    *table);    netsnmp_table_row *netsnmp_table_data_get_next_row(                                              netsnmp_table_data    *table,                                              netsnmp_table_row     *row);    netsnmp_table_row *netsnmp_table_data_get(netsnmp_table_data    *table,                                              netsnmp_variable_list *indexes);    netsnmp_table_row *netsnmp_table_data_get_from_oid(                                              netsnmp_table_data    *table,                                              oid *  searchfor,                                              size_t searchfor_len);    int netsnmp_table_data_num_rows(netsnmp_table_data *table);/* ================================= * Table Data API: Index operations * ================================= */#define netsnmp_table_data_add_index(thetable, type) snmp_varlist_add_variable(&thetable->indexes_template, NULL, 0, type, NULL, 0)#define netsnmp_table_row_add_index(row, type, value, value_len) snmp_varlist_add_variable(&row->indexes, NULL, 0, type, (const u_char *) value, value_len)#ifdef __cplusplus}#endif#endif                          /* _TABLE_DATA_HANDLER_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -