ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/netproc.h
Revision: 2.8
Committed: Fri Mar 26 21:36:19 2004 UTC (20 years ago) by schorsch
Content type: text/plain
Branch: MAIN
CVS Tags: rad5R4, rad5R2, rad4R2P2, rad5R0, rad5R1, rad3R7P2, rad3R7P1, rad4R2, rad4R1, rad4R0, rad3R6, rad3R6P1, rad3R8, rad3R9, rad4R2P1, rad5R3, HEAD
Changes since 2.7: +5 -2 lines
Log Message:
Continued ANSIfication.

File Contents

# Content
1 /* RCSid $Id: netproc.h,v 2.7 2003/10/27 10:32:06 schorsch Exp $ */
2 /*
3 * Header file for network processing routines
4 */
5 #ifndef _RAD_NETPROC_H_
6 #define _RAD_NETPROC_H_
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11
12 typedef struct {
13 char *com; /* command (stored on client side) */
14 int pid; /* process ID */
15 int efd; /* standard error file descriptor */
16 char *errs; /* error output */
17 int elen; /* error output length */
18 int (*cf)(); /* completion callback function */
19 } NETPROC; /* process slot (name PROC conflicts with Windows) */
20
21 /* Callback function cf above passed process server, slot number and status */
22
23 typedef struct pserver {
24 struct pserver *next; /* next process server in main list */
25 char hostname[64]; /* remote host ID */
26 char directory[128]; /* remote execution directory */
27 char username[32]; /* remote user ID */
28 short nprocs; /* number of allocated process slots */
29 NETPROC proc[1]; /* process slot(s) (must be last in struct) */
30 } PSERVER; /* process server */
31
32 extern PSERVER *pslist; /* global process server list */
33
34 extern PSERVER *addpserver(char *host, char *dir, char *usr, int np);
35 extern void delpserver(PSERVER *ps);
36 extern PSERVER *findjob(int *pnp);
37 typedef int pscompfunc(PSERVER *ps, int pn, int status);
38 extern int startjob(PSERVER *ps, char *command, pscompfunc *compf);
39 extern int wait4job(PSERVER *ps, int pid);
40
41
42 #define LHOSTNAME "localhost" /* accepted name for local host */
43
44 #define pserverOK(ps) (wait4job(ps, startjob(ps, "true", NULL)) == 0)
45
46
47 #ifdef __cplusplus
48 }
49 #endif
50 #endif /* _RAD_NETPROC_H_ */
51