Added flag to Server class to indicate if protocol verify has been done.
[dyninst.git] / pdutil / h / rpcUtil.h
1
2 #ifndef RPC_UTIL
3 #define RPC_UTIL
4
5 #include <rpc/xdr.h>
6
7 #define xdr_Boolean     xdr_bool
8 typedef XDR *XDRptr;
9 typedef int (*xdrIOFunc)(int handle, char *buf, unsigned int len);
10
11 typedef int Boolean;
12 typedef char *String;
13
14 //
15 // Functions common to server and client side.
16 //
17 class XDRrpc {
18   public:
19     XDRrpc(char *m, char *u, char *p, xdrIOFunc, xdrIOFunc);
20     XDRrpc(int fd, xdrIOFunc readRoutine, xdrIOFunc writeRoutine);
21     XDR *__xdrs__;
22     int fd;
23     int pid;            // pid of child;
24 };
25
26 class THREADrpc {
27   public:
28     THREADrpc(int tid);
29   protected:
30     int tid;
31     // this are only to be used by implmentors of thread RPCs.
32     //   the value is only valid during a thread RPC.
33     unsigned int requestingThread;
34     unsigned int getRequestingThread()  { return requestingThread; }
35 };
36
37 //
38 // client side common routines that are transport independent.
39 //
40 class RPCUser {
41   public:
42     void awaitResponce(int tag);
43     void verifyProtocolAndVersion();
44 };
45
46 //
47 // server side routines that are transport independent.
48 //
49 class RPCServer {
50   public:
51         int __versionVerifyDone__;
52 };
53
54 extern int xdr_String(XDR*, String*);
55 extern int RPCprocessCreate(int *pid, char *hostName, char *userName, char *commandLine);
56
57 #endif