aboutsummaryrefslogtreecommitdiff
path: root/src/SlaveIO.hh
blob: 83665de7c9a02a76cc0570b14f86fc9448448333 (plain)
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