RPCLupineExtras.mesa
RPC: Interface between stubs and runtime, extension thereof
Copyright © 1985, 1986 by Xerox Corporation. All rights reserved.
Last Edited by:
Hal Murray, May 9, 1986 2:28:05 pm PDT
Swinehart, February 21, 1986 1:08:32 pm PST
DIRECTORY
Pup USING [Address, nullAddress],
RPC USING [InterfaceName, VersionRange],
RPCLupine USING [ImportHandle];
RPCLupineExtras: DEFINITIONS = {
-- Binding primitives for use by stubs --
Importer specifies required interface type and instance, and version range. The stub should default the interface type to the timestamp of the definitions file bcd. Interface instance defaults to "any". The version range defaults to "any".
Importer can specify a host value as a hint for where to find the interface. It defaults to "no hint", whence this function reverts to RPCLupine.ImportInterface. If the hint is present and if it works, binding can occur much faster than if the database must be consulted.
Searches binding database for exporter of specified interface. If localOnly=TRUE then the import will succeed only if the exporter is on this host. May raise RPC.ImportFailed --
The stubProtocol in imports and exports is used to check compatability of stub protocol versions.
RPCHost: TYPE = Pup.Address;
noHost: RPCHost = Pup.nullAddress;
ImportInterfaceWithHost: PROC [
interface: RPC.InterfaceName,
stubProtocol: RPC.VersionRange,
hostHint: RPCHost ← noHost,
localOnly: BOOLEANFALSE]
RETURNS [handle: RPCLupine.ImportHandle];
}.