aboutsummaryrefslogtreecommitdiff
path: root/src/SlaveIO.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/SlaveIO.hh')
-rw-r--r--src/SlaveIO.hh60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/SlaveIO.hh b/src/SlaveIO.hh
new file mode 100644
index 0000000..83665de
--- /dev/null
+++ b/src/SlaveIO.hh
@@ -0,0 +1,60 @@
+#ifndef __SLAVEIO_HH_
+#define __SLAVEIO_HH_
+#include <Arch.h>
+
+class SlaveIO {
+protected:
+ int fid;
+public:
+ SlaveIO();
+ SlaveIO(char *name);
+ virtual ~SlaveIO();
+ virtual int writeTo(void *data,Long8 len,Long8 offset);
+};
+
+#ifdef SGI
+class SGISlaveIO : public SlaveIO {
+public:
+ SGISlaveIO(char *name);
+ // use writepos elemental operation rather than separate lseek
+ virtual int writeTo(void *data,Long8 len,Long8 offset);
+};
+
+class AIOSlaveIO : public SlaveIO {
+ int write_complete;
+public:
+ AIOSlaveIO(char *name);
+ ~AIOSlaveIO();
+ virtual int writeTo(void *data,Long8 len, Long8 offset);
+ void sync();
+};
+
+#endif // SGI
+
+#ifdef T3E
+class FFSlaveIO : public SlaveIO {
+public:
+ FFSlaveIO(char *name,char *optionstring);
+ FFSlaveIO(char *name,int bufsize,int numbufs);
+ FFSlaveIO(char *name);
+ virtual ~FFSlaveIO();
+ virtual int writeTo(void *data,Long8 len,Long8 offset);
+};
+#endif // T3E
+
+#ifdef SGI
+
+class DirectSlaveIO : public SlaveIO {
+ int dfid;
+ int blocksize,maxiosize,memoryalignment;
+ char *diobuffer;
+ int diobuffersize;
+public:
+ DirectSlaveIO(char *name);
+ virtual ~DirectSlaveIO();
+ virtual int writeTo(void *data,Long8 len,Long8 offset);
+};
+
+#endif // SGI
+
+#endif