#############################################################  -*- c -*-
## generic include for XXX. Do not use directly.
##
########################################################################
## lower conf files get confused with multiple processing types, so
## set single options
@eval $mfd_data_set_processing_type_save = "$m2c_processing_type"@
@if "$mfd_processing_types" =~ /h/@
@eval $m2c_processing_type = 'h'@
@if $m2c_create_fewer_files != 1@
@open ${name}_data_set.h@
/*
 * Note: this file originally auto-generated by mib2c
 * using mfd-data-set.m2c
 */
@eval $m2c_save = "$name"@
@eval $name = "${name}_DATA_SET"@
@include generic-header-top.m2i@
@eval $name = "$m2c_save"@
@end@ // m2c_create_fewer_files
########################################################################
@if $m2c_mark_boundary == 1@
/** START header generated by mfd-data-set.m2c */
@end@
##
/* *********************************************************************
 * SET function declarations
 */

/* *********************************************************************
 * SET Table declarations
 */
@foreach $table table@
@    include m2c_setup_table.m2i@
@    if $m2c_table_settable == 0@
@        next@ # skip to next table
@    end@
@    include details-table.m2i@

@    include parent-set.m2i@

@    foreach $node nonindex@
@        include m2c_setup_node.m2i@
int ${node}_check_value( ${context}_rowreq_ctx *rowreq_ctx, $m2c_node_param_val);
int ${node}_undo_setup( ${context}_rowreq_ctx *rowreq_ctx );
int ${node}_set( ${context}_rowreq_ctx *rowreq_ctx, $m2c_node_param_val );
int ${node}_undo( ${context}_rowreq_ctx *rowreq_ctx );

@    end@ # foreach nonindex

int ${context}_check_dependencies(${context}_rowreq_ctx *ctx);
@end@ # foreach table

@if $m2c_mark_boundary == 1@
/** END header generated by mfd-data-set.m2c */
@end@
@if $m2c_create_fewer_files != 1@
@eval $m2c_save = "$name"@
@eval $name = "${name}_DATA_SET"@
@include generic-header-bottom.m2i@
@eval $name = "$m2c_save"@
@end@ // m2c_create_fewer_files
######################################################################
@end@ // mfd_processing_types =~ /h/
######################################################################
######################################################################
######################################################################
##//####################################################################
##//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
##//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@if "$mfd_processing_types" =~ /c/@
@eval $m2c_processing_type = 'c'@
@if $m2c_create_fewer_files != 1@
@open ${name}_data_set.c@
/*
 * Note: this file originally auto-generated by mib2c
 * using mfd-data-set.m2c
 *
 */
@include generic-source-includes.m2i@

/** @defgroup data_set data_set: Routines to set data
 *
 * These routines are used to set the value for individual objects. The
 * row context is passed, along with the new value.
 * 
 * @{
 */
@end@ // m2c_create_fewer_files
@if $m2c_mark_boundary == 1@
/** START code generated by mfd-data-set.m2c */
@end@
########################################################################
@foreach $table table@
@    include m2c_setup_table.m2i@
@    if $m2c_table_settable == 0@
@        next@ # skip to next table
@    end@
@    include details-table.m2i@
########################################################################
@        include parent-set.m2i@
########################################################################
########################################################################
/*
 * TODO:440:M: Implement $context node value checks.
 * TODO:450:M: Implement $context undo functions.
 * TODO:460:M: Implement $context set functions.
 * TODO:480:M: Implement $context commit functions.
 */
@    foreach $node nonindex@
@        include m2c_setup_node.m2i@
@        if $node.settable == 0@
@            next@ # skip to next column
@        end@
@        if $m2c_report_progress == 1@
@           print | |   +-> Processing nonindex $node@
@        end@
@        include details-node.m2i@
@        include node-set.m2i@
@    end@ # foreach column
########################################################################
@    if $m2c_table_dependencies == 1@
@        include parent-dependencies.m2i@
@    end@
########################################################################
@end@ # foreach table
##
########################################################################
/** @} */
@if $m2c_mark_boundary == 1@
/** END code generated by mfd-data-set.m2c */
@end@
########################################################################
@end@ // mfd_processing_type =~ /c/
## restore original processing types
@eval $m2c_processing_type = "$mfd_data_set_processing_type_save"@
