1251881Speter#ifndef APE_IO_H
2251881Speter#define APE_IO_H
3251881Speter
4251881Speter#ifndef FILE_BEGIN
5251881Speter    #define FILE_BEGIN        0
6251881Speter#endif
7251881Speter
8251881Speter#ifndef FILE_CURRENT
9251881Speter    #define FILE_CURRENT    1
10251881Speter#endif
11251881Speter
12251881Speter#ifndef FILE_END
13251881Speter    #define FILE_END        2
14251881Speter#endif
15251881Speter
16251881Speterclass CIO
17251881Speter{
18251881Speter
19251881Speterpublic:
20251881Speter
21251881Speter    //construction / destruction
22251881Speter    CIO() { }
23251881Speter    virtual ~CIO() { };
24251881Speter
25251881Speter    // open / close
26251881Speter    virtual int Open(const char* pName) = 0;
27251881Speter    virtual int Close() = 0;
28251881Speter
29251881Speter    // read / write
30251881Speter    virtual int Read(void * pBuffer, unsigned int nBytesToRead, unsigned int * pBytesRead) = 0;
31251881Speter    virtual int Write(const void * pBuffer, unsigned int nBytesToWrite, unsigned int * pBytesWritten) = 0;
32251881Speter
33251881Speter    // seek
34251881Speter    virtual int Seek(int nDistance, unsigned int nMoveMode) = 0;
35251881Speter
36251881Speter    // creation / destruction
37251881Speter    virtual int Create(const char* pName) = 0;
38251881Speter    virtual int Delete() = 0;
39251881Speter
40251881Speter    // other functions
41251881Speter    virtual int SetEOF() = 0;
42251881Speter
43251881Speter    // attributes
44251881Speter    virtual int GetPosition() = 0;
45251881Speter    virtual int GetSize() = 0;
46251881Speter    virtual int GetName(char* pBuffer) = 0;
47251881Speter};
48251881Speter
49251881Speter#endif // #ifndef APE_IO_H
50251881Speter