blob: 1d7255cb0d88e34fdf6cc80f18ee4163d80b50e3 [file] [log] [blame]
############################################################# -*- c -*-
## generic include for XXX. Do not use directly.
##
## $Id$
########################################################################
@if $m2c_mark_boundary == 1@
/** START code generated by $RCSfile$ $Revision$ */
@end@
########################################################################
##
@include m2c_setup_node.m2i@
@eval $m2c_node_realloc = 2@ // malloc
/**
* Extract the current value of the $node data.
*
* Set a value using the data context for the row.
*
@if $m2c_node_get_comments ne ""@
$m2c_node_get_comments
*
@end@
* @param rowreq_ctx
* Pointer to the row request context.
* @param $m2c_node_param_ref_name
* Pointer to storage for a $node.decl variable
@if $m2c_node_needlength == 1@
* @param $m2c_node_param_ref_lname
* Pointer to a size_t. On entry, it will contain the size (in bytes)
* pointed to by $node.
* On exit, this value should contain the data size (in bytes).
@end@
*
* @retval MFD_SUCCESS : success
* @retval MFD_SKIP : skip this node (no value for now)
* @retval MFD_ERROR : Any other error
@if $m2c_node_needlength == 1@
*
* @note If you need more than (*$m2c_node_param_ref_lname) bytes of memory,
* allocate it using malloc() and update $m2c_node_param_ref_name.
* <b>DO NOT</b> free the previous pointer.
* The MFD helper will release the memory you allocate.
*
* @remark If you call this function yourself, you are responsible
* for checking if the pointer changed, and freeing any
* previously allocated memory. (Not necessary if you pass
* in a pointer to static memory, obviously.)
@end@
*/
int
${node}_get( ${context}_rowreq_ctx *rowreq_ctx, $m2c_node_param_ref )
{
@ifconf syntax-$node.syntax-get.m2i@
@ include syntax-$node.syntax-get.m2i@
@else@
@ include generic-get-decl.m2i@
DEBUGMSGTL(("verbose:${context}:${node}_get","called\n"));
netsnmp_assert(NULL != rowreq_ctx);
/*
* TODO:231:o: |-> Extract the current value of the $node data.
@if $m2c_node_needlength == 0@
* copy $m2c_node_lh from $m2c_data_item_base
@else@
* copy $m2c_node_lh data and $m2c_node_lhs from $m2c_data_item_base
@end@
*/
@ if ("$m2c_data_context" eq "generated") && ($m2c_node_skip_get != 1)@
@ include generic-ctx-get.m2i@
@ else@
@ if ($m2c_node_skip_get != 1)@
/*
* TODO:235:M: |-> Remove log message/SKIP once you've set $node data
*/
snmp_log(LOG_ERR,"${context} node $node not implemented: skipping\n");
@ end@
return MFD_SKIP;
@ end@
## ------------------------------------------------------------------
@ if $node.decl =~ /long/i@ # ASN_INTEGER ASN_COUNTER ASN_GAUGE
@ include generic-get-long.m2i@
@ elsif $node.decl =~ /char/i@ # ASN_OCTET_STR ASN_OPAQUE
@ include generic-get-char.m2i@
@ elsif $node.decl =~ /oid/i@ # ASN_OBJECT_ID
@ include generic-get-oid.m2i@
@ elsif $node.decl =~ /U64/i@ # ASN_COUNTER64
@ include generic-get-U64.m2i@
@ else@
@ print ERROR: unknown node.decl: $node.decl@
@ exit@
@ end@
## ------------------------------------------------------------------
@ if ($m2c_node_skip_mapping != 1) && ("$m2c_data_context" ne "generated")@
@ include generic-value-map.m2i@
@ end@
@ include generic-get-decl-bot.m2i@ // copy value out
@end@ # no syntax include
return MFD_SUCCESS;
} /* ${node}_get */
##
########################################################################
@if $m2c_mark_boundary == 1@
/** END code generated by $RCSfile$ $Revision$ */
@end@