📄 oid_stash.h
字号:
#ifndef OID_STASH_H#define OID_STASH_H/* * designed to store/retrieve information associated with a given oid. * Storage is done in an efficient tree manner for fast lookups. */#define OID_STASH_CHILDREN_SIZE 31#ifdef __cplusplusextern "C" {#endif struct netsnmp_oid_stash_node_s; /* args: buffer, sizeof(buffer), yourdata, stashnode */ typedef int (NetSNMPStashDump) (char *, size_t, void *, struct netsnmp_oid_stash_node_s *); typedef void (NetSNMPStashFreeNode) (void *); typedef struct netsnmp_oid_stash_node_s { oid value; struct netsnmp_oid_stash_node_s **children; /* array of children */ size_t children_size; struct netsnmp_oid_stash_node_s *next_sibling; /* cache too small links */ struct netsnmp_oid_stash_node_s *prev_sibling; struct netsnmp_oid_stash_node_s *parent; void *thedata; } netsnmp_oid_stash_node; typedef struct netsnmp_oid_stash_save_info_s { const char *token; netsnmp_oid_stash_node **root; NetSNMPStashDump *dumpfn; } netsnmp_oid_stash_save_info; int netsnmp_oid_stash_add_data(netsnmp_oid_stash_node **root, oid * lookup, size_t lookup_len, void *mydata); SNMPCallback netsnmp_oid_stash_store_all; netsnmp_oid_stash_node *netsnmp_oid_stash_get_node(netsnmp_oid_stash_node *root, oid * lookup, size_t lookup_len); void *netsnmp_oid_stash_get_data(netsnmp_oid_stash_node *root, oid * lookup, size_t lookup_len); netsnmp_oid_stash_node * netsnmp_oid_stash_getnext_node(netsnmp_oid_stash_node *root, oid * lookup, size_t lookup_len); netsnmp_oid_stash_node *netsnmp_oid_stash_create_sized_node(size_t mysize); netsnmp_oid_stash_node *netsnmp_oid_stash_create_node(void); /* returns a malloced node */ void netsnmp_oid_stash_store(netsnmp_oid_stash_node *root, const char *tokenname, NetSNMPStashDump *dumpfn, oid *curoid, size_t curoid_len); /* frees all data in the stash and cleans it out. Sets root = NULL */ void netsnmp_oid_stash_free(netsnmp_oid_stash_node **root, NetSNMPStashFreeNode *freefn); /* a noop function that can be passed to netsnmp_oid_stash_node to NOT free the data */ NetSNMPStashFreeNode netsnmp_oid_stash_no_free;#ifdef __cplusplus}#endif#endif /* OID_STASH_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -