Re: Exceptions in IPC::Open2
[p5sagit/p5-mst-13.2.git] / ipproc.h
1 /*
2
3     ipproc.h
4     Interface for perl process functions
5
6 */
7
8 #ifndef __Inc__IPerlProc___
9 #define __Inc__IPerlProc___
10
11 #ifndef Sighandler_t
12 typedef Signal_t (*Sighandler_t) _((int));
13 #endif
14 #ifndef jmp_buf
15 #include <setjmp.h>
16 #endif
17
18 class IPerlProc
19 {
20 public:
21     virtual void Abort(void) = 0;
22     virtual void Exit(int status) = 0;
23     virtual void _Exit(int status) = 0;
24     virtual int Execl(const char *cmdname, const char *arg0, const char *arg1, const char *arg2, const char *arg3) = 0;
25     virtual int Execv(const char *cmdname, const char *const *argv) = 0;
26     virtual int Execvp(const char *cmdname, const char *const *argv) = 0;
27     virtual uid_t Getuid(void) = 0;
28     virtual uid_t Geteuid(void) = 0;
29     virtual gid_t Getgid(void) = 0;
30     virtual gid_t Getegid(void) = 0;
31     virtual char *Getlogin(void) = 0;
32     virtual int Kill(int pid, int sig) = 0;
33     virtual int Killpg(int pid, int sig) = 0;
34     virtual int PauseProc(void) = 0;
35     virtual PerlIO* Popen(const char *command, const char *mode) = 0;
36     virtual int Pclose(PerlIO *stream) = 0;
37     virtual int Pipe(int *phandles) = 0;
38     virtual int Setuid(uid_t uid) = 0;
39     virtual int Setgid(gid_t gid) = 0;
40     virtual int Sleep(unsigned int) = 0;
41     virtual int Times(struct tms *timebuf) = 0;
42     virtual int Wait(int *status) = 0;
43     virtual Sighandler_t Signal(int sig, Sighandler_t subcode) = 0;
44 #ifdef WIN32
45     virtual void GetSysMsg(char*& msg, DWORD& dwLen, DWORD dwErr) = 0;
46     virtual void FreeBuf(char* msg) = 0;
47     virtual BOOL DoCmd(char *cmd) = 0;
48     virtual int Spawn(char*cmds) = 0;
49     virtual int Spawnvp(int mode, const char *cmdname, const char *const *argv) = 0;
50     virtual int ASpawn(void *vreally, void **vmark, void **vsp) = 0;
51 #endif
52 };
53
54 #endif  /* __Inc__IPerlProc___ */
55