[asperl] added AS patch#12 with minor changes
[p5sagit/p5-mst-13.2.git] / iplio.h
1 /*
2
3     iplio.h
4     Interface for perl Low IO functions
5
6 */
7
8 #ifndef __Inc__IPerlLIO___
9 #define __Inc__IPerlLIO___
10
11 class IPerlLIO
12 {
13 public:
14     virtual int Access(const char *path, int mode, int &err) = 0;
15     virtual int Chmod(const char *filename, int pmode, int &err) = 0;
16     virtual int Chown(const char *filename, uid_t owner, gid_t group, int &err) = 0;
17     virtual int Chsize(int handle, long size, int &err) = 0;
18     virtual int Close(int handle, int &err) = 0;
19     virtual int Dup(int handle, int &err) = 0;
20     virtual int Dup2(int handle1, int handle2, int &err) = 0;
21     virtual int Flock(int fd, int oper, int &err) = 0;
22     virtual int FileStat(int handle, struct stat *buffer, int &err) = 0;
23     virtual int IOCtl(int i, unsigned int u, char *data, int &err) = 0;
24     virtual int Isatty(int handle, int &err) = 0;
25     virtual long Lseek(int handle, long offset, int origin, int &err) = 0;
26     virtual int Lstat(const char *path, struct stat *buffer, int &err) = 0;
27     virtual char *Mktemp(char *Template, int &err) = 0;
28     virtual int Open(const char *filename, int oflag, int &err) = 0;    
29     virtual int Open(const char *filename, int oflag, int pmode, int &err) = 0; 
30     virtual int Read(int handle, void *buffer, unsigned int count, int &err) = 0;
31     virtual int Rename(const char *oldname, const char *newname, int &err) = 0;
32     virtual int Setmode(int handle, int mode, int &err) = 0;
33     virtual int NameStat(const char *path, struct stat *buffer, int &err) = 0;
34     virtual char *Tmpnam(char *string, int &err) = 0;
35     virtual int Umask(int pmode, int &err) = 0;
36     virtual int Unlink(const char *filename, int &err) = 0;
37     virtual int Utime(char *filename, struct utimbuf *times, int &err) = 0;
38     virtual int Write(int handle, const void *buffer, unsigned int count, int &err) = 0;
39 };
40
41 #endif  /* __Inc__IPerlLIO___ */