#############################################################  -*- c -*-
## generic include for XXX. Do not use directly.
##
## $Id: generic-data-context.m2i,v 1.11 2004/10/08 23:39:17 rstory Exp $
########################################################################
@if $m2c_mark_boundary == 1@
/** START code generated by $RCSfile: generic-data-context.m2i,v $ $Revision: 1.11 $ */
@end@
########################################################################
##
/**********************************************************************/
/*
 * TODO:110:r: |-> Review ${context} data context structure.
 * This structure is used to represent the data for $context.
 */
##
@if "$m2c_data_context" eq "generated"@
/*
 * This structure contains storage for all the columns defined in the
 * $context.
 */
typedef struct ${context}_data_s {
    
@    foreach $node nonindex@
@        include m2c_setup_node.m2i@
        /*
         * $m2c_node_summary
         */
@        if $m2c_node_needlength == 0@
   $m2c_decl   $node;
@        else@
   $m2c_decl   $node[$m2c_node_maxlen];
size_t      ${node}_len; /* # of $m2c_decl elements, not bytes */
@        end@
    
@    end@ # foreach nonindex
} ${context}_data;
@elsif "$m2c_data_context" eq "unknown"@
    /*
     * update typedef to correct pointer type.
     * (or add @eval $@m2c_data_context = "TYPE"@ and regenerate code) */
typedef void ${context}_data;
@else@
typedef $m2c_data_context ${context}_data;
@end@

##
########################################################################
@if $m2c_mark_boundary == 1@
/** END code generated by $RCSfile: generic-data-context.m2i,v $ $Revision: 1.11 $ */
@end@
