summaryrefslogtreecommitdiff
path: root/local/mib2c-conf.d/generic-table-indexes-set.m2i
diff options
context:
space:
mode:
Diffstat (limited to 'local/mib2c-conf.d/generic-table-indexes-set.m2i')
-rw-r--r--local/mib2c-conf.d/generic-table-indexes-set.m2i123
1 files changed, 123 insertions, 0 deletions
diff --git a/local/mib2c-conf.d/generic-table-indexes-set.m2i b/local/mib2c-conf.d/generic-table-indexes-set.m2i
new file mode 100644
index 0000000..34f9c7d
--- /dev/null
+++ b/local/mib2c-conf.d/generic-table-indexes-set.m2i
@@ -0,0 +1,123 @@
+############################################################# -*- c -*-
+## generic include for XXX. Do not use directly.
+##
+## $Id$
+########################################################################
+@if $m2c_mark_boundary == 1@
+/** START code generated by $RCSfile$ $Revision$ */
+@end@
+########################################################################
+##
+@eval $gtis_tmp=""@
+@foreach $node index@
+@ include m2c_setup_node.m2i@
+@ eval $gtis_tmp="$gtis_tmp, $m2c_node_param_val"@
+@end@ # for each index
+########################################################################
+##//####################################################################
+##//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+##//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@if $m2c_processing_type eq 'h'@
+
+int ${context}_indexes_set_tbl_idx(${context}_mib_index *tbl_idx$gtis_tmp);
+int ${context}_indexes_set(${context}_rowreq_ctx *rowreq_ctx$gtis_tmp);
+
+@end@ // m2c_processing_type eq 'h'
+########################################################################
+##//####################################################################
+##//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+##//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@if $m2c_processing_type eq 'c'@
+/**
+ * set mib index(es)
+ *
+ * @param tbl_idx mib index structure
+@foreach $node index@
+@ if $node.needlength == 1@
+ * @param ${node}_ptr
+ * @param ${node}_ptr_len
+@else@
+ * @param ${node}_val
+@end@
+@end@
+ *
+ * @retval MFD_SUCCESS : success.
+ * @retval MFD_ERROR : other error.
+ *
+ * @remark
+ * This convenience function is useful for setting all the MIB index
+ * components with a single function call. It is assume that the C values
+ * have already been mapped from their native/rawformat to the MIB format.
+ */
+int
+${context}_indexes_set_tbl_idx(${context}_mib_index *tbl_idx$gtis_tmp)
+{
+ DEBUGMSGTL(("verbose:${context}:${context}_indexes_set_tbl_idx","called\n"));
+
+@foreach $node index@
+@ include m2c_setup_node.m2i@
+## table indexes are not allocated pointers, so do not allow realloc here
+@eval $m2c_node_realloc = 0@ // fail
+ /* $m2c_node_summary */
+@ eval $m2c_ctx_lh = "tbl_idx->$node"@
+@ eval $m2c_ctx_lhs = "tbl_idx->${node}_len"@
+@ eval $m2c_ctx_lhu="elements"@
+@ eval $m2c_ctx_rh = "$m2c_node_param_val_name"@
+@ eval $m2c_ctx_rhs = "$m2c_node_param_val_lname"@
+@ eval $m2c_ctx_rhu="elements"@
+@ if $m2c_node_needlength == 1@
+ $m2c_ctx_lhs = sizeof($m2c_ctx_lh)/sizeof($m2c_ctx_lh[0]); /* max length */
+@ end@
+## also, assume mapping already done
+@ include generic-ctx-get.m2i@
+##@ include generic-value-map.m2i@
+
+@end@ // for each column
+
+ return MFD_SUCCESS;
+} /* ${context}_indexes_set_tbl_idx */
+
+/**
+ * @internal
+ * set row context indexes
+ *
+ * @param reqreq_ctx the row context that needs updated indexes
+ *
+ * @retval MFD_SUCCESS : success.
+ * @retval MFD_ERROR : other error.
+ *
+ * @remark
+ * This function sets the mib indexs, then updates the oid indexs
+ * from the mib index.
+ */
+int
+${context}_indexes_set(${context}_rowreq_ctx *rowreq_ctx$gtis_tmp)
+{
+ DEBUGMSGTL(("verbose:${context}:${context}_indexes_set","called\n"));
+
+ if(MFD_SUCCESS != ${context}_indexes_set_tbl_idx(&rowreq_ctx->tbl_idx
+@foreach $node index@
+@ include m2c_setup_node.m2i@
+ , $m2c_node_param_val_call
+@end@ # for each index
+ ))
+ return MFD_ERROR;
+
+ /*
+ * convert mib index to oid index
+ */
+ rowreq_ctx->oid_idx.len = sizeof(rowreq_ctx->oid_tmp) / sizeof(oid);
+ if(0 != ${context}_index_to_oid(&rowreq_ctx->oid_idx,
+ &rowreq_ctx->tbl_idx)) {
+ return MFD_ERROR;
+ }
+
+ return MFD_SUCCESS;
+} /* ${context}_indexes_set */
+
+@end@ // m2c_processing_type eq 'c'
+##
+########################################################################
+@if $m2c_mark_boundary == 1@
+/** END code generated by $RCSfile$ $Revision$ */
+@end@