node-get.m2i
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:4k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #############################################################  -*- c -*-
  2. ## generic include for XXX. Do not use directly.
  3. ##
  4. ## $Id: node-get.m2i,v 1.14 2004/10/15 00:52:14 rstory Exp $
  5. ########################################################################
  6. @if $m2c_mark_boundary == 1@
  7. /** START code generated by $RCSfile: node-get.m2i,v $ $Revision: 1.14 $ */
  8. @end@
  9. ########################################################################
  10. ##
  11. @include m2c_setup_node.m2i@
  12. @eval $m2c_node_realloc = 2@ // malloc
  13. /**
  14.  * Extract the current value of the $node data.
  15.  *
  16.  * Set a value using the data context for the row.
  17.  *
  18. @if $m2c_node_get_comments ne ""@
  19. $m2c_node_get_comments
  20. *
  21. @end@
  22.  * @param rowreq_ctx
  23.  *        Pointer to the row request context.
  24.  * @param $m2c_node_param_ref_name
  25.  *        Pointer to storage for a $node.decl variable
  26. @if $m2c_node_needlength == 1@
  27.  * @param $m2c_node_param_ref_lname
  28.  *        Pointer to a size_t. On entry, it will contain the size (in bytes)
  29.  *        pointed to by $node.
  30.  *        On exit, this value should contain the data size (in bytes).
  31. @end@
  32.  *
  33.  * @retval MFD_SUCCESS         : success
  34.  * @retval MFD_SKIP            : skip this node (no value for now)
  35.  * @retval MFD_ERROR           : Any other error
  36. @if $m2c_node_needlength == 1@
  37. *
  38.  * @note If you need more than (*$m2c_node_param_ref_lname) bytes of memory,
  39.  *       allocate it using malloc() and update $m2c_node_param_ref_name.
  40.  *       <b>DO NOT</b> free the previous pointer.
  41.  *       The MFD helper will release the memory you allocate.
  42.  *
  43.  * @remark If you call this function yourself, you are responsible
  44.  *         for checking if the pointer changed, and freeing any
  45.  *         previously allocated memory. (Not necessary if you pass
  46.  *         in a pointer to static memory, obviously.)
  47. @end@
  48.  */
  49. int
  50. ${node}_get( ${context}_rowreq_ctx *rowreq_ctx, $m2c_node_param_ref )
  51. {
  52. @ifconf syntax-$node.syntax-get.m2i@
  53. @    include syntax-$node.syntax-get.m2i@
  54. @else@
  55. @    include generic-get-decl.m2i@
  56.     DEBUGMSGTL(("verbose:${context}:${node}_get","calledn"));
  57.     netsnmp_assert(NULL != rowreq_ctx);
  58. /*
  59.  * TODO:231:o: |-> Extract the current value of the $node data.
  60. @if $m2c_node_needlength == 0@
  61.  * set $m2c_node_lh from $m2c_data_item_base
  62. @else@
  63.  * set $m2c_node_lh and $m2c_node_lhs from $m2c_data_item_base
  64. @end@
  65.  */
  66. @    if ("$m2c_data_context" eq "generated") && ($m2c_node_skip_get != 1)@
  67. @        include generic-ctx-get.m2i@
  68. @    else@
  69.     return MFD_SKIP; /* TODO:235:M: |-> Remove SKIP once you've set $node data */
  70. @    end@
  71. ##   ------------------------------------------------------------------
  72. @    if $node.decl =~ /long/i@ #   ASN_INTEGER ASN_COUNTER ASN_GAUGE
  73. @       include generic-get-long.m2i@
  74. @    elsif $node.decl =~ /char/i@ #         ASN_OCTET_STR ASN_OPAQUE
  75. @       include generic-get-char.m2i@
  76. @    elsif $node.decl =~ /oid/i@ #                    ASN_OBJECT_ID
  77. @       include generic-get-oid.m2i@
  78. @    elsif $node.decl =~ /U64/i@ #                    ASN_COUNTER64
  79. @       include generic-get-U64.m2i@
  80. @    else@
  81. @        print ERROR: unknown node.decl: $node.decl@
  82. @        exit@
  83. @    end@
  84. ##   ------------------------------------------------------------------
  85. @    if ($m2c_node_skip_mapping != 1) && ("$m2c_data_context" ne "generated")@
  86. @        include generic-value-map.m2i@
  87. @    end@
  88. @    include generic-get-decl-bot.m2i@  // copy value out
  89. @end@ # no syntax include
  90.     return MFD_SUCCESS;
  91. } /* ${node}_get */
  92. ##
  93. ########################################################################
  94. @if $m2c_mark_boundary == 1@
  95. /** END code generated by $RCSfile: node-get.m2i,v $ $Revision: 1.14 $ */
  96. @end@