com.sun.rpc
Class Rpc
public class Rpc
extends java.lang.Object
This class transmits and receives RPC calls to an RPC service
at a specific host and port.
Rpc(String server, int port, int prog, int vers, String proto, int maxReply) - Construct a new Rpc object - equivalent to a "client handle"
|
Rpc(Connection conn, int prog, int vers) - Construct a new Rpc object - equivalent to a "client handle"
using an AUTH_NONE cred handle.
|
Rpc(Connection conn, int prog, int vers, Cred cr) - Construct a new Rpc object - equivalent to a "client handle"
using a given cred handle "cr"
|
void | delCred() - Delete the RPC credential data and destroy its security
context with the server.
|
Cred | getCred() - Return the RPC credential
|
InetAddress | getPeer() - Since this returns the address of the server it may
seem redundant - but if you receive a reply to a
broadcast RPC you need to know who is replying.
|
Xdr | rpc_call(Xdr call, int timeout, int retries) - Make an RPC call but retry if necessary
Retries use exponential backoff up to MAX_TIMEOUT ms.
|
Xdr | rpc_call_one(Xdr call, byte[] arg, int timeout) - Transmit the XDR call buffer containing an RPC header
followed by a protocol header and receive the
reply.
|
void | rpc_header(Xdr call, int proc) - Construct an RPC header in the XDR buffer
|
void | setCred(Cred c) - Set the RPC credential
|
void | setRpcHandler(RpcHandler r)
|
Rpc
public Rpc(String server,
int port,
int prog,
int vers,
String proto,
int maxReply)
throws IOException
Construct a new Rpc object - equivalent to a "client handle"
server
- The hostname of the serverport
- The port number for the serviceprog
- The program number of the servicevers
- The version number of the serviceproto
- The protocol to be used: "tcp" or "udp"maxReply
- The maximum size of the RPC reply
Rpc
public Rpc(Connection conn,
int prog,
int vers)
Construct a new Rpc object - equivalent to a "client handle"
using an AUTH_NONE cred handle.
conn
- A connection to the serverprog
- The program number of the servicevers
- The version number of the service
Rpc
public Rpc(Connection conn,
int prog,
int vers,
Cred cr)
Construct a new Rpc object - equivalent to a "client handle"
using a given cred handle "cr"
conn
- A connection to the serverprog
- The program number of the servicevers
- The version number of the servicecr
- The cred to be used: CredUnix or CredGss
delCred
public void delCred()
throws RpcException
Delete the RPC credential data and destroy its security
context with the server.
getCred
public Cred getCred()
Return the RPC credential
getPeer
public InetAddress getPeer()
Since this returns the address of the server it may
seem redundant - but if you receive a reply to a
broadcast RPC you need to know who is replying.
rpc_call
public Xdr rpc_call(Xdr call,
int timeout,
int retries)
throws IOException
Make an RPC call but retry if necessary
Retries use exponential backoff up to MAX_TIMEOUT ms.
Note that we handle TCP connections differently: there is
no timeout, and retransmission is used only when reconnecting.
call
- XDR buffer containing RPC call to transmittimeout
- for the initial callretries
- the number of times to retry the call.
A value of zero implies forever.
- Xdr the XDR buffer for the reply
rpc_call_one
public Xdr rpc_call_one(Xdr call,
byte[] arg,
int timeout)
throws IOException,
RpcException
Transmit the XDR call buffer containing an RPC header
followed by a protocol header and receive the
reply.
call
- XDR buffer containing RPC call to transmitarg
- (seq_num + RPC argument) if wraptimeout
- after this number of milliseconds
- Xdr the XDR buffer for the reply
rpc_header
public void rpc_header(Xdr call,
int proc)
throws RpcException
Construct an RPC header in the XDR buffer
call
- The XDR buffer for the headerproc
- The service procedure to be called
setRpcHandler
public void setRpcHandler(RpcHandler r)