1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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
|