diff options
Diffstat (limited to 'src/Writer.hh')
-rw-r--r-- | src/Writer.hh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/Writer.hh b/src/Writer.hh new file mode 100644 index 0000000..94f2a70 --- /dev/null +++ b/src/Writer.hh @@ -0,0 +1,37 @@ +#ifndef __UNIWRITER_HH_ +#define __UNIWRITER_HH_ + +#include "IO.hh" + +class Writer { +protected: + IObase &file; + int drank; + //int *ddims; + int ddims[5]; + IObase::DataType dtypeID; + // double *ddelta,*dorigin,*dext; + double ddelta[5],dorigin[5],dext[5]; + int extsize; + virtual void writeBounds(); +public: + Writer(IObase &outfile); + virtual ~Writer(); + virtual void setRank(int rank); // more efficient to set rank once for all + virtual void setDims(int *dims);//only if rank has been set(should have flag) + virtual void setDims(int rank,int *dims); + virtual void setType(IObase::DataType typeID); + virtual void setOrigin(double *origin); + virtual void setDelta(double *delta); + virtual void setParams(int rank,int *dims,IObase::DataType typeID, + double *origin,double *delta); + virtual void write(void *data); + virtual void reserveChunk(); + virtual void writeChunk(int *chunkdims,int *chunkorigin,void *data); +}; + +extern "C" { +#include "Writer.h" +} + +#endif |