Provided by: ivtools-dev_2.0.11d.a1-3build1_amd64 bug

NAME

       RpcPeer - support bi-directional RPC between two services

SYNOPSIS

       #include <Dispatch/rpcpeer.h>

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.

CONSTRUCTOR

       RpcPeer(const char* lPath, int lPort = 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.

       void init(const char* 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.

PUBLIC OPERATIONS

       void run()
       void quitRunning()
              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.

PROTECTED OPERATIONS

       virtual boolean createReaderAndWriter(const char* rHost, int rPort) = 0
       virtual void createReaderAndWriter(int fd) = 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.

SEE ALSO

       Dispatcher(3I), RpcReader(3I), RpcRegistry(3I), RpcWriter(3I)

InterViews                                        27 March 1991                                      RpcPeer(3I)