2011-04-18 02:56:10 +08:00
|
|
|
/*********************************************************************
|
2018-12-07 05:21:03 +08:00
|
|
|
* Copyright 2018, UCAR/Unidata
|
2011-04-18 02:56:10 +08:00
|
|
|
* See netcdf/COPYRIGHT file for copying and redistribution conditions.
|
|
|
|
*********************************************************************/
|
|
|
|
|
|
|
|
#ifndef DAPODOM_H
|
|
|
|
#define DAPODOM_H 1
|
|
|
|
|
|
|
|
typedef struct Dapodometer {
|
|
|
|
int rank;
|
|
|
|
size_t index[NC_MAX_VAR_DIMS];
|
2012-08-01 04:34:13 +08:00
|
|
|
size_t start[NC_MAX_VAR_DIMS];
|
2013-04-24 04:18:16 +08:00
|
|
|
#if 0
|
2012-08-01 04:34:13 +08:00
|
|
|
size_t count[NC_MAX_VAR_DIMS];
|
2013-04-24 04:18:16 +08:00
|
|
|
#endif
|
2012-08-01 04:34:13 +08:00
|
|
|
size_t stride[NC_MAX_VAR_DIMS];
|
|
|
|
size_t stop[NC_MAX_VAR_DIMS];
|
|
|
|
size_t declsize[NC_MAX_VAR_DIMS];
|
2011-04-18 02:56:10 +08:00
|
|
|
} Dapodometer;
|
|
|
|
|
2013-05-12 03:34:54 +08:00
|
|
|
#ifndef TESTING
|
2012-08-01 04:34:13 +08:00
|
|
|
extern Dapodometer* dapodom_fromsegment(DCEsegment* segment, size_t start, size_t stop);
|
2013-05-12 03:34:54 +08:00
|
|
|
#endif
|
2011-04-18 02:56:10 +08:00
|
|
|
|
2012-08-01 04:34:13 +08:00
|
|
|
extern Dapodometer* dapodom_new(size_t rank,
|
|
|
|
const size_t* start, const size_t* count,
|
|
|
|
const ptrdiff_t* stride, const size_t* size);
|
2011-04-18 02:56:10 +08:00
|
|
|
|
2012-08-01 04:34:13 +08:00
|
|
|
extern void dapodom_free(Dapodometer*);
|
2011-04-18 02:56:10 +08:00
|
|
|
|
2012-08-01 04:34:13 +08:00
|
|
|
extern int dapodom_more(Dapodometer* odom);
|
|
|
|
extern int dapodom_next(Dapodometer* odo);
|
2011-04-18 02:56:10 +08:00
|
|
|
|
2012-08-01 04:34:13 +08:00
|
|
|
extern off_t dapodom_count(Dapodometer* odo);
|
2011-04-18 02:56:10 +08:00
|
|
|
|
2012-08-01 04:34:13 +08:00
|
|
|
extern size_t dapodom_varmcount(Dapodometer*, const ptrdiff_t*, const size_t*);
|
2011-04-18 02:56:10 +08:00
|
|
|
|
|
|
|
#endif /*DAPODOM_H*/
|