ncdf4a13/ncgen/getfill.c File Reference

#include "netcdf.h"
#include "generic.h"
#include "ncgen.h"
#include "genlib.h"

Include dependency graph for getfill.c:

Go to the source code of this file.

Functions

void nc_getfill (nc_type type, union generic *gval)
void nc_fill (nc_type type, size_t num, void *datp, union generic fill_val)
void nc_putfill (nc_type type, void *val, union generic *gval)


Function Documentation

void nc_fill nc_type  type,
size_t  num,
void *  datp,
union generic  fill_val
 

Definition at line 48 of file getfill.c.

References char_valp, generic::charv, double_valp, generic::doublev, float_valp, generic::floatv, generic::intv, NC_BYTE, NC_CHAR, NC_DOUBLE, NC_FLOAT, NC_INT, NC_SHORT, short_valp, and generic::shortv.

Referenced by yyparse().

00053 {
00054     char *char_valp;            /* pointers used to accumulate data values */
00055     short *short_valp;
00056     int *long_valp;
00057     float *float_valp;
00058     double *double_valp;
00059 
00060     switch (type) {
00061       case NC_CHAR:
00062       case NC_BYTE:
00063         char_valp = (char *) datp;
00064         break;
00065       case NC_SHORT:
00066         short_valp = (short *) datp;
00067         break;
00068       case NC_INT:
00069         long_valp = (int *) datp;
00070         break;
00071       case NC_FLOAT:
00072         float_valp = (float *) datp;
00073         break;
00074       case NC_DOUBLE:
00075         double_valp = (double *) datp;
00076         break;
00077     }
00078     while (num--) {
00079         switch (type) {
00080           case NC_CHAR:
00081           case NC_BYTE:
00082             *char_valp++ = fill_val.charv;
00083             break;
00084           case NC_SHORT:
00085             *short_valp++ = fill_val.shortv;
00086             break;
00087           case NC_INT:
00088             *long_valp++ = fill_val.intv;
00089             break;
00090           case NC_FLOAT:
00091             *float_valp++ = fill_val.floatv;
00092             break;
00093           case NC_DOUBLE:
00094             *double_valp++ = fill_val.doublev;
00095             break;
00096         }
00097     }
00098 }

void nc_getfill nc_type  type,
union generic gval
 

Definition at line 18 of file getfill.c.

References generic::charv, derror(), generic::doublev, generic::floatv, generic::intv, NC_BYTE, NC_CHAR, NC_DOUBLE, NC_FILL_BYTE, NC_FILL_CHAR, NC_FILL_DOUBLE, NC_FILL_FLOAT, NC_FILL_INT, NC_FILL_SHORT, NC_FLOAT, NC_INT, NC_SHORT, and generic::shortv.

Referenced by yyparse().

00021 {
00022     switch(type) {
00023       case NC_CHAR:
00024         gval->charv = NC_FILL_CHAR;
00025         return;
00026       case NC_BYTE:
00027         gval->charv = NC_FILL_BYTE;
00028         return;
00029       case NC_SHORT:
00030         gval->shortv = NC_FILL_SHORT;
00031         return;
00032       case NC_INT:
00033         gval->intv = NC_FILL_INT;
00034         return;
00035       case NC_FLOAT:
00036         gval->floatv = NC_FILL_FLOAT;
00037         return;
00038       case NC_DOUBLE:
00039         gval->doublev = NC_FILL_DOUBLE;
00040         return;
00041       default:
00042         derror("nc_getfill: unrecognized type");
00043     }
00044 }

void nc_putfill nc_type  type,
void *  val,
union generic gval
 

Definition at line 105 of file getfill.c.

References generic::charv, derror(), generic::doublev, generic::floatv, generic::intv, NC_BYTE, NC_CHAR, NC_DOUBLE, NC_FLOAT, NC_INT, NC_SHORT, and generic::shortv.

Referenced by yyparse().

00109 {
00110     switch(type) {
00111       case NC_CHAR:
00112       case NC_BYTE:
00113         gval->charv = *(char *)val;
00114         return;
00115       case NC_SHORT:
00116         gval->shortv = *(short *)val;
00117         return;
00118       case NC_INT:
00119         gval->intv = *(int *)val;
00120         return;
00121       case NC_FLOAT:
00122         gval->floatv = *(float *)val;
00123         return;
00124       case NC_DOUBLE:
00125         gval->doublev = *(double *)val;
00126         return;
00127       default:
00128         derror("nc_putfill: unrecognized type");
00129     }
00130 }


Generated on Thu Mar 16 18:12:20 2006 for nco by  doxygen 1.4.4