RpcPeer - support bi-directional RPC between two services
Contents
Constructor
RpcPeer(constchar*lPath,intlPort=0)
Store the arguments for later use since a base constructor can't call a derived class's virtual
function. The derived class's constructor should call ``init'', described below.
voidinit(constchar*rPath)
Find the host name and port number registered by the other RpcPeer and try to open a connection to
it. If it's not running, create our own port and wait for the other RpcPeer to open a connection.
Description
An RpcPeer (actually, an instance of a derived class) tries to open a connection to another RpcPeer. If
the other RpcPeer is not yet running, the RpcPeer will create its own port and wait for the other RpcPeer
to open a connection. When either RpcPeer opens a connection, each RpcPeer will create both a reader and
a writer so each RpcPeer can send RPC requests to its opposite over the same connection.
Name
RpcPeer - support bi-directional RPC between two services
Protected Operations
virtualbooleancreateReaderAndWriter(constchar*rHost,intrPort)=0virtualvoidcreateReaderAndWriter(intfd)=0
You must define both functions in a derived class in order to start reading and writing RPC
requests over the connection. Typically both functions would create a writer using the given
parameters and then attach a reader to the writer's rpcstream.
Public Operations
voidrun()voidquitRunning()
Read RPC requests continuously until ``quitRunning()'' terminates the loop. If you're using
InterViews, you don't have to call ``run()'' since the InterViews event-reading code will also
read RPC requests.
See Also
Dispatcher(3I), RpcReader(3I), RpcRegistry(3I), RpcWriter(3I) InterViews 27 March 1991 RpcPeer(3I)
Synopsis
#include<Dispatch/rpcpeer.h>
