diff options
Diffstat (limited to 'src/SlaveIO.hh')
-rw-r--r-- | src/SlaveIO.hh | 60 |
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 |