Re: Exceptions in IPC::Open2
[p5sagit/p5-mst-13.2.git] / ipstdio.h
1 /*
2
3     ipstdio.h
4     Interface for perl stdio functions
5
6 */
7
8 #ifndef __Inc__IPerlStdIO___
9 #define __Inc__IPerlStdIO___
10
11 #ifndef PerlIO
12 typedef struct _PerlIO PerlIO;
13 #endif
14
15 class IPerlStdIO
16 {
17 public:
18     virtual PerlIO* Stdin(void) = 0;
19     virtual PerlIO* Stdout(void) = 0;
20     virtual PerlIO* Stderr(void) = 0;
21     virtual PerlIO* Open(const char *, const char *, int &err) = 0;
22     virtual int Close(PerlIO*, int &err) = 0;
23     virtual int Eof(PerlIO*, int &err) = 0;
24     virtual int Error(PerlIO*, int &err) = 0;
25     virtual void Clearerr(PerlIO*, int &err) = 0;
26     virtual int Getc(PerlIO*, int &err) = 0;
27     virtual char* GetBase(PerlIO *, int &err) = 0;
28     virtual int GetBufsiz(PerlIO *, int &err) = 0;
29     virtual int GetCnt(PerlIO *, int &err) = 0;
30     virtual char* GetPtr(PerlIO *, int &err) = 0;
31     virtual char* Gets(PerlIO*, char*, int, int& err) = 0;
32     virtual int Putc(PerlIO*, int, int &err) = 0;
33     virtual int Puts(PerlIO*, const char *, int &err) = 0;
34     virtual int Flush(PerlIO*, int &err) = 0;
35     virtual int Ungetc(PerlIO*,int, int &err) = 0;
36     virtual int Fileno(PerlIO*, int &err) = 0;
37     virtual PerlIO* Fdopen(int, const char *, int &err) = 0;
38     virtual PerlIO* Reopen(const char*, const char*, PerlIO*, int &err) = 0;
39     virtual SSize_t Read(PerlIO*,void *,Size_t, int &err) = 0;
40     virtual SSize_t Write(PerlIO*,const void *,Size_t, int &err) = 0;
41     virtual void SetBuf(PerlIO *, char*, int &err) = 0;
42     virtual int SetVBuf(PerlIO *, char*, int, Size_t, int &err) = 0;
43     virtual void SetCnt(PerlIO *, int, int &err) = 0;
44     virtual void SetPtrCnt(PerlIO *, char *, int, int& err) = 0;
45     virtual void Setlinebuf(PerlIO*, int &err) = 0;
46     virtual int Printf(PerlIO*, int &err, const char *,...) = 0;
47     virtual int Vprintf(PerlIO*, int &err, const char *, va_list) = 0;
48     virtual long Tell(PerlIO*, int &err) = 0;
49     virtual int Seek(PerlIO*, off_t, int, int &err) = 0;
50     virtual void Rewind(PerlIO*, int &err) = 0;
51     virtual PerlIO* Tmpfile(int &err) = 0;
52     virtual int Getpos(PerlIO*, Fpos_t *, int &err) = 0;
53     virtual int Setpos(PerlIO*, const Fpos_t *, int &err) = 0;
54     virtual void Init(int &err) = 0;
55     virtual void InitOSExtras(void* p) = 0;
56 #ifdef WIN32
57     virtual int OpenOSfhandle(long osfhandle, int flags) = 0;
58     virtual int GetOSfhandle(int filenum) = 0;
59 #endif
60 };
61
62 #endif  /* __Inc__IPerlStdIO___ */
63