varbind_api.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #ifndef NET_SNMP_VARBIND_API_H
  2. #define NET_SNMP_VARBIND_API_H
  3. /**
  4. * Library API routines concerned with variable bindings and values.
  5. */
  6. #include <net-snmp/types.h>
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. /* Creation */
  11. NETSNMP_IMPORT
  12. netsnmp_variable_list *
  13. snmp_pdu_add_variable(netsnmp_pdu *pdu,
  14. const oid * name, size_t name_length,
  15. u_char type,
  16. const void * value, size_t len);
  17. NETSNMP_IMPORT
  18. netsnmp_variable_list *
  19. snmp_varlist_add_variable(netsnmp_variable_list ** varlist,
  20. const oid * name, size_t name_length,
  21. u_char type,
  22. const void * value, size_t len);
  23. NETSNMP_IMPORT
  24. netsnmp_variable_list *
  25. snmp_add_null_var(netsnmp_pdu *pdu,
  26. const oid * name, size_t name_length);
  27. NETSNMP_IMPORT
  28. netsnmp_variable_list *
  29. snmp_clone_varbind(netsnmp_variable_list * varlist);
  30. /* Setting Values */
  31. NETSNMP_IMPORT
  32. int snmp_set_var_objid(netsnmp_variable_list * var,
  33. const oid * name, size_t name_length);
  34. NETSNMP_IMPORT
  35. int snmp_set_var_value(netsnmp_variable_list * var,
  36. const void * value, size_t len);
  37. NETSNMP_IMPORT
  38. int snmp_set_var_typed_value(netsnmp_variable_list * var,
  39. u_char type,
  40. const void * value, size_t len);
  41. NETSNMP_IMPORT
  42. int snmp_set_var_typed_integer(netsnmp_variable_list * var,
  43. u_char type, long val);
  44. /* Output */
  45. NETSNMP_IMPORT
  46. void print_variable(const oid * objid, size_t objidlen,
  47. const netsnmp_variable_list * variable);
  48. NETSNMP_IMPORT
  49. void fprint_variable(FILE * fp,
  50. const oid * objid, size_t objidlen,
  51. const netsnmp_variable_list * variable);
  52. NETSNMP_IMPORT
  53. int snprint_variable(char *buf, size_t buf_len,
  54. const oid * objid, size_t objidlen,
  55. const netsnmp_variable_list * variable);
  56. NETSNMP_IMPORT
  57. void print_value(const oid * objid, size_t objidlen,
  58. const netsnmp_variable_list * variable);
  59. NETSNMP_IMPORT
  60. void fprint_value(FILE * fp,
  61. const oid * objid, size_t objidlen,
  62. const netsnmp_variable_list * variable);
  63. NETSNMP_IMPORT
  64. int snprint_value(char *buf, size_t buf_len,
  65. const oid * objid, size_t objidlen,
  66. const netsnmp_variable_list * variable);
  67. /* See mib_api.h for {,f,sn}print_objid */
  68. /* Deletion */
  69. NETSNMP_IMPORT
  70. void snmp_free_var( netsnmp_variable_list *var); /* frees just this one */
  71. NETSNMP_IMPORT
  72. void snmp_free_varbind(netsnmp_variable_list *varlist); /* frees all in list */
  73. #ifdef __cplusplus
  74. }
  75. #endif
  76. /*
  77. * Having extracted the main ("public API") calls relevant
  78. * to this area of the Net-SNMP project, the next step is to
  79. * identify the related "public internal API" routines.
  80. *
  81. * In due course, these should probably be gathered
  82. * together into a companion 'library/varbind_api.h' header file.
  83. * [Or some suitable name]
  84. *
  85. * But for the time being, the expectation is that the
  86. * traditional headers that provided the above definitions
  87. * will probably also cover the relevant internal API calls.
  88. * Hence they are listed here:
  89. */
  90. #include <net-snmp/library/snmp_api.h>
  91. #include <net-snmp/library/snmp_client.h>
  92. #include <net-snmp/library/mib.h>
  93. #endif /* NET_SNMP_VARBIND_API_H */