38 #ifndef GRID_CONTAINER_H
39 #define GRID_CONTAINER_H
87 ValuePosition valuePos)
113 const int* blockSize,
114 unsigned int cacheSize,
116 unsigned int level) = 0;
131 assert(n < MAX_DIMENSIONS);
141 assert(n < MAX_DIMENSIONS);
149 virtual double getDelta(
unsigned int n,
unsigned int level)
const = 0;
154 virtual void getByte(
unsigned char* buf,
const double* pos,
unsigned int level = 0) = 0;
159 virtual void getInt(
int* buf,
const double* pos,
unsigned int level = 0) = 0;
164 virtual void getLong(
long* buf,
const double* pos,
unsigned int level = 0) = 0;
169 virtual void getFloat(
float* buf,
const double* pos,
unsigned int level = 0) = 0;
174 virtual void getDouble(
double* buf,
const double* pos,
unsigned int level = 0) = 0;
183 virtual void getBuf(
void* buf,
const double* pos,
unsigned int level = 0) = 0;
189 unsigned int level = 0)
const = 0;
235 #define CONTAINER_GETVAR_FUNC(N, T) \
236 void get##N(T* buf, const double* pos, unsigned int level = 0) \
238 getAt(buf, pos, level); \
242 #define CONTAINER_GETVAR \
243 CONTAINER_GETVAR_FUNC(Byte, unsigned char) \
244 CONTAINER_GETVAR_FUNC(Int, int) \
245 CONTAINER_GETVAR_FUNC(Long, long) \
246 CONTAINER_GETVAR_FUNC(Float, float) \
247 CONTAINER_GETVAR_FUNC(Double, double) \
248 CONTAINER_GETVAR_FUNC(Buf, void)
251 #endif // GRID_CONTAINER_H
const ValuePosition m_valuePos
virtual void getInt(int *buf, const double *pos, unsigned int level=0)=0
double getMax(unsigned int n) const
unsigned int m_dimensions
virtual unsigned long getCounter(perf::Counter::CounterType type, unsigned int level=0) const =0
double m_max[MAX_DIMENSIONS]
virtual void getByte(unsigned char *buf, const double *pos, unsigned int level=0)=0
double m_min[MAX_DIMENSIONS]
virtual void getDouble(double *buf, const double *pos, unsigned int level=0)=0
const mpi::MPIComm & comm() const
Include file for C and C++ API.
const numa::Numa & m_numa
virtual void getLong(long *buf, const double *pos, unsigned int level=0)=0
const int m_timeDimension
virtual void getBuf(void *buf, const double *pos, unsigned int level=0)=0
int timeDimension() const
virtual void getFloat(float *buf, const double *pos, unsigned int level=0)=0
unsigned int getDimensions() const
ValuePosition valuePosition() const
virtual asagi::Grid::Error init(const char *filename, const char *varname, const int *blockSize, unsigned int cacheSize, int cacheHandSpread, unsigned int level)=0
Initialize a level of the container.
double getMin(unsigned int n) const
virtual double getDelta(unsigned int n, unsigned int level) const =0
const numa::Numa & numa() const
Container(mpi::MPIComm &comm, const numa::Numa &numa, int timeDimension, ValuePosition valuePos)