Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ RpcPeer(3I) — Lucid Energize 2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Dispatcher(3I)

RpcReader(3I)

RpcRegistry(3I)

RpcWriter(3I)

RpcPeer(3I)  —  InterViews Reference Manual

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  —  Last change: 27 March 1991

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026