aboutsummaryrefslogtreecommitdiff
path: root/src/Writer.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/Writer.hh')
-rw-r--r--src/Writer.hh37
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