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

SNMP编程

开发平台:

Unix_Linux

  1. .TH "Store and retrieve data referenced by an OID." 3 "28 Nov 2005" "Version 5.2.1.rc3" "net-snmp" " -*- nroff -*-
  2. .ad l
  3. .nh
  4. .SH NAME
  5. Store and retrieve data referenced by an OID. - This is essentially a way of storing data associated with a given OID.  
  6. .PP
  7. .SS "Functions"
  8. .in +1c
  9. .ti -1c
  10. .RI "fBnetsnmp_oid_stash_nodefP * fBnetsnmp_oid_stash_create_sized_nodefP (size_t mysize)"
  11. .br
  12. .RI "fICreate an netsnmp_oid_stash node. fP"
  13. .ti -1c
  14. .RI "NETSNMP_INLINE fBnetsnmp_oid_stash_nodefP * fBnetsnmp_oid_stash_create_nodefP (void)"
  15. .br
  16. .RI "fICreates a netsnmp_oid_stash_node. fP"
  17. .ti -1c
  18. .RI "int fBnetsnmp_oid_stash_add_datafP (fBnetsnmp_oid_stash_nodefP **root, oid *lookup, size_t lookup_len, void *mydata)"
  19. .br
  20. .RI "fIadds data to the stash at a given oid. fP"
  21. .ti -1c
  22. .RI "fBnetsnmp_oid_stash_nodefP * fBnetsnmp_oid_stash_get_nodefP (fBnetsnmp_oid_stash_nodefP *root, oid *lookup, size_t lookup_len)"
  23. .br
  24. .RI "fIreturns a node associated with a given OID. fP"
  25. .ti -1c
  26. .RI "fBnetsnmp_oid_stash_nodefP * fBnetsnmp_oid_stash_getnext_nodefP (fBnetsnmp_oid_stash_nodefP *root, oid *lookup, size_t lookup_len)"
  27. .br
  28. .RI "fIreturns the next node associated with a given OID. fP"
  29. .ti -1c
  30. .RI "void * fBnetsnmp_oid_stash_get_datafP (fBnetsnmp_oid_stash_nodefP *root, oid *lookup, size_t lookup_len)"
  31. .br
  32. .RI "fIreturns a data pointer associated with a given OID. fP"
  33. .ti -1c
  34. .RI "int fBnetsnmp_oid_stash_store_allfP (int majorID, int minorID, void *serverarg, void *clientarg)"
  35. .br
  36. .RI "fIa wrapper around netsnmp_oid_stash_store for use with a fBsnmp_alarmfP. fP"
  37. .ti -1c
  38. .RI "void fBnetsnmp_oid_stash_storefP (fBnetsnmp_oid_stash_nodefP *root, const char *tokenname, NetSNMPStashDump *dumpfn, oid *curoid, size_t curoid_len)"
  39. .br
  40. .RI "fIstores data in a starsh tree to peristent storage. fP"
  41. .ti -1c
  42. .RI "void fBoid_stash_dumpfP (fBnetsnmp_oid_stash_nodefP *root, char *prefix)"
  43. .br
  44. .RI "fIFor debugging: dump the netsnmp_oid_stash tree to stdout. fP"
  45. .ti -1c
  46. .RI "void fBnetsnmp_oid_stash_freefP (fBnetsnmp_oid_stash_nodefP **root, NetSNMPStashFreeNode *freefn)"
  47. .br
  48. .RI "fIFrees the contents of a netsnmp_oid_stash tree. fP"
  49. .ti -1c
  50. .RI "void fBnetsnmp_oid_stash_no_freefP (void *bogus)"
  51. .br
  52. .in -1c
  53. .SH "Detailed Description"
  54. .PP 
  55. This is essentially a way of storing data associated with a given OID. 
  56. .PP
  57. It stores a bunch of data pointers within a memory tree that allows fairly efficient lookups with a heavily populated tree.
  58. .SH "Function Documentation"
  59. .PP 
  60. .SS "int netsnmp_oid_stash_add_data (fBnetsnmp_oid_stash_nodefP ** root, oid * lookup, size_t lookup_len, void * mydata)"
  61. .PP
  62. adds data to the stash at a given oid. 
  63. .PP
  64. fBParameters:fP
  65. .RS 4
  66. fIrootfP the top of the stash tree 
  67. .br
  68. fIlookupfP the oid index to store the data at. 
  69. .br
  70. fIlookup_lenfP the length of the lookup oid. 
  71. .br
  72. fImydatafP the data to store
  73. .RE
  74. .PP
  75. fBReturns:fP
  76. .RS 4
  77. SNMPERR_SUCCESS on success, SNMPERR_GENERR if data is already there, SNMPERR_MALLOC on malloc failures or if arguments passed in with NULL values.
  78. .RE
  79. .PP
  80. .PP
  81. Definition at line 87 of file oid_stash.c.
  82. .PP
  83. References netsnmp_oid_stash_node_s::children, netsnmp_oid_stash_node_s::children_size, netsnmp_oid_stash_create_node(), netsnmp_oid_stash_node_s::next_sibling, NULL, netsnmp_oid_stash_node_s::parent, netsnmp_oid_stash_node_s::prev_sibling, netsnmp_oid_stash_node_s::thedata, and netsnmp_oid_stash_node_s::value.
  84. .PP
  85. Referenced by netsnmp_table_data_set_helper_handler(), and netsnmp_table_iterator_helper_handler().
  86. .SS "NETSNMP_INLINE fBnetsnmp_oid_stash_nodefP* netsnmp_oid_stash_create_node (void)"
  87. .PP
  88. Creates a netsnmp_oid_stash_node. 
  89. .PP
  90. Assumes you want the default OID_STASH_CHILDREN_SIZE hash size for the node. 
  91. .PP
  92. fBReturns:fP
  93. .RS 4
  94. NULL on error, otherwise the newly allocated node
  95. .RE
  96. .PP
  97. .PP
  98. Definition at line 70 of file oid_stash.c.
  99. .PP
  100. References netsnmp_oid_stash_create_sized_node().
  101. .PP
  102. Referenced by netsnmp_oid_stash_add_data().
  103. .SS "fBnetsnmp_oid_stash_nodefP* netsnmp_oid_stash_create_sized_node (size_t mysize)"
  104. .PP
  105. Create an netsnmp_oid_stash node. 
  106. .PP
  107. fBParameters:fP
  108. .RS 4
  109. fImysizefP the size of the child pointer array
  110. .RE
  111. .PP
  112. fBReturns:fP
  113. .RS 4
  114. NULL on error, otherwise the newly allocated node
  115. .RE
  116. .PP
  117. .PP
  118. Definition at line 50 of file oid_stash.c.
  119. .PP
  120. References netsnmp_oid_stash_node_s::children, netsnmp_oid_stash_node_s::children_size, NULL, and SNMP_MALLOC_TYPEDEF.
  121. .PP
  122. Referenced by netsnmp_oid_stash_create_node().
  123. .SS "void netsnmp_oid_stash_free (fBnetsnmp_oid_stash_nodefP ** root, NetSNMPStashFreeNode * freefn)"
  124. .PP
  125. Frees the contents of a netsnmp_oid_stash tree. 
  126. .PP
  127. fBParameters:fP
  128. .RS 4
  129. fIrootfP the top of the tree (or branch to be freed) 
  130. .br
  131. fIfreefnfP The function to be called on each data (void *) pointer. If left NULL the system free() function will be called
  132. .RE
  133. .PP
  134. .PP
  135. Definition at line 399 of file oid_stash.c.
  136. .PP
  137. References netsnmp_oid_stash_node_s::children, netsnmp_oid_stash_free(), netsnmp_oid_stash_node_s::next_sibling, NULL, and netsnmp_oid_stash_node_s::thedata.
  138. .PP
  139. Referenced by netsnmp_oid_stash_free(), and netsnmp_stash_cache_update().
  140. .SS "void* netsnmp_oid_stash_get_data (fBnetsnmp_oid_stash_nodefP * root, oid * lookup, size_t lookup_len)"
  141. .PP
  142. returns a data pointer associated with a given OID. 
  143. .PP
  144. This is equivelent to netsnmp_oid_stash_get_node, but returns only the data not the entire node.
  145. .PP
  146. fBParameters:fP
  147. .RS 4
  148. fIrootfP the top of the stash 
  149. .br
  150. fIoidfP the oid to search for 
  151. .br
  152. fIthefP length of the search oid.
  153. .RE
  154. .PP
  155. .PP
  156. Definition at line 283 of file oid_stash.c.
  157. .PP
  158. References netsnmp_oid_stash_get_node(), NULL, and netsnmp_oid_stash_node_s::thedata.
  159. .PP
  160. Referenced by netsnmp_stash_cache_helper(), and netsnmp_table_data_set_helper_handler().
  161. .SS "fBnetsnmp_oid_stash_nodefP* netsnmp_oid_stash_get_node (fBnetsnmp_oid_stash_nodefP * root, oid * lookup, size_t lookup_len)"
  162. .PP
  163. returns a node associated with a given OID. 
  164. .PP
  165. fBParameters:fP
  166. .RS 4
  167. fIrootfP the top of the stash tree 
  168. .br
  169. fIlookupfP the oid to look up a node for. 
  170. .br
  171. fIlookup_lenfP the length of the lookup oid
  172. .RE
  173. .PP
  174. .PP
  175. Definition at line 155 of file oid_stash.c.
  176. .PP
  177. References netsnmp_oid_stash_node_s::children, netsnmp_oid_stash_node_s::children_size, netsnmp_oid_stash_node_s::next_sibling, NULL, and netsnmp_oid_stash_node_s::value.
  178. .PP
  179. Referenced by netsnmp_oid_stash_get_data().
  180. .SS "fBnetsnmp_oid_stash_nodefP* netsnmp_oid_stash_getnext_node (fBnetsnmp_oid_stash_nodefP * root, oid * lookup, size_t lookup_len)"
  181. .PP
  182. returns the next node associated with a given OID. 
  183. .PP
  184. INCOMPLETE. This is equivelent to a GETNEXT operation.
  185. .PP
  186. Definition at line 192 of file oid_stash.c.
  187. .PP
  188. References netsnmp_oid_stash_node_s::children, netsnmp_oid_stash_node_s::children_size, netsnmp_oid_stash_node_s::next_sibling, NULL, netsnmp_oid_stash_node_s::parent, netsnmp_oid_stash_node_s::thedata, and netsnmp_oid_stash_node_s::value.
  189. .PP
  190. Referenced by netsnmp_stash_cache_helper().
  191. .SS "void netsnmp_oid_stash_store (fBnetsnmp_oid_stash_nodefP * root, const char * tokenname, NetSNMPStashDump * dumpfn, oid * curoid, size_t curoid_len)"
  192. .PP
  193. stores data in a starsh tree to peristent storage. 
  194. .PP
  195. This function can be called to save all data in a stash tree to Net-SNMP's percent storage. Make sure you register a parsing function with the read_config system to re-incorperate your saved data into future trees.
  196. .PP
  197. fBParameters:fP
  198. .RS 4
  199. fIrootfP the top of the stash to store. 
  200. .br
  201. fItokennamefP the file token name to save in (passing 'snmpd' will save things into snmpd.conf). 
  202. .br
  203. fIdumpfnfP A function which can dump the data stored at a particular node into a char buffer. 
  204. .br
  205. fIcuroidfP must be a pointer to a OID array of length MAX_OID_LEN. 
  206. .br
  207. fIcuroid_lenfP must be 0 for the top level call.
  208. .RE
  209. .PP
  210. .PP
  211. Definition at line 332 of file oid_stash.c.
  212. .PP
  213. References netsnmp_oid_stash_node_s::children, netsnmp_oid_stash_node_s::children_size, netsnmp_ds_get_string(), netsnmp_oid_stash_store(), netsnmp_oid_stash_node_s::next_sibling, read_config_save_objid(), read_config_store(), SNMP_MAXBUF, netsnmp_oid_stash_node_s::thedata, and netsnmp_oid_stash_node_s::value.
  214. .PP
  215. Referenced by netsnmp_oid_stash_store(), and netsnmp_oid_stash_store_all().
  216. .SS "int netsnmp_oid_stash_store_all (int majorID, int minorID, void * serverarg, void * clientarg)"
  217. .PP
  218. a wrapper around netsnmp_oid_stash_store for use with a fBsnmp_alarmfP. 
  219. .PP
  220. when calling fBsnmp_alarmfP, you can list this as a callback. The clientarg should be a pointer to a netsnmp_oid_stash_save_info pointer. It can also be called directly, of course. The last argument (clientarg) is the only one that is used. The rest are ignored by the function. 
  221. .PP
  222. fBParameters:fP
  223. .RS 4
  224. fIclientargfP A pointer to a netsnmp_oid_stash_save_info structure.
  225. .RE
  226. .PP
  227. .PP
  228. Definition at line 302 of file oid_stash.c.
  229. .PP
  230. References netsnmp_oid_stash_save_info_s::dumpfn, netsnmp_oid_stash_store(), netsnmp_oid_stash_save_info_s::root, and netsnmp_oid_stash_save_info_s::token.
  231. .SS "void oid_stash_dump (fBnetsnmp_oid_stash_nodefP * root, char * prefix)"
  232. .PP
  233. For debugging: dump the netsnmp_oid_stash tree to stdout. 
  234. .PP
  235. fBParameters:fP
  236. .RS 4
  237. fIrootfP The top of the tree 
  238. .br
  239. fIprefixfP a character string prefix printed to the beginning of each line.
  240. .RE
  241. .PP
  242. .PP
  243. Definition at line 372 of file oid_stash.c.
  244. .PP
  245. References netsnmp_oid_stash_node_s::children, netsnmp_oid_stash_node_s::next_sibling, netsnmp_oid_stash_node_s::thedata, and netsnmp_oid_stash_node_s::value.