First real version of utility library.
[dyninst.git] / common / 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 };
24
25 class THREADrpc {
26   public:
27     THREADrpc(int tid);
28   protected:
29     int tid;
30     // this are only to be used by implmentors of thread RPCs.
31     //   the value is only valid during a thread RPC.
32     unsigned int requestingThread;
33     unsigned int getRequestingThread()  { return requestingThread; }
34 };
35
36 //
37 // client side common routines that are transport independent.
38 //
39 class RPCUser {
40   public:
41     void awaitResponce(int tag);
42     void verifyProtocolAndVersion();
43 };
44
45 //
46 // server side routines that are transport independent.
47 //
48 class RPCServer {
49 };
50
51 extern int xdr_String(XDR*, String*);
52 extern int RPCprocessCreate(char *hostName, char *userName, char *commandLine);
53
54 #endif