MulticastImportImpl.Mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Last modified by Swinehart, February 23, 1986 12:22:49 pm PST
DIRECTORY
Commander USING [ CommandProc, Register ],
CommandTool USING [ NextArgument ],
NamesGV USING [ GVGetAttribute ],
MulticastImp,
MulticastRpcControl USING [ ImportInterface ],
IO,
RPC USING [ ImportFailed, ShortROPE ],
VoiceUtils USING [ MakeRName, NetAddress, NetAddressFromRope, Problem, Report, ReportFR ]
;
MulticastImportImpl: CEDAR PROGRAM
IMPORTS Commander, CommandTool, IO, VoiceUtils, RPC, NamesGV, MulticastRpcControl
EXPORTS MulticastImp = {
OPEN IO;
Data
ROPE: TYPE= RPC.ShortROPE;
Import Procedure
MulticastImport: PUBLIC PROC [instance: ROPE] RETURNS [success: BOOLFALSE] = {
ENABLE RPC.ImportFailed => GOTO Failed;
hostHint: VoiceUtils.NetAddress;
IF instance=NIL THEN GOTO Failed; -- no defaulting.
instance ← VoiceUtils.MakeRName[instance, rName];
hostHint ← VoiceUtils.NetAddressFromRope[NamesGV.GVGetAttribute[instance,$connect,NIL]];
MulticastRpcControl.ImportInterface [
interfaceName: [
type: "Multicast.Lark",
instance: instance
],
hostHint: hostHint];
success ← TRUE;
EXITS
Failed => VoiceUtils.Problem["Couldn't import Multicast.Lark", $System];
};
User command
CmdMulticastImport: Commander.CommandProc = {
instance: ROPE = CommandTool.NextArgument[cmd];
IF instance=NIL THEN {
VoiceUtils.Report["Usage: MulticastImport <serverInstance>", $System]; RETURN; };
IF MulticastImport[instance] THEN
VoiceUtils.ReportFR["ImportInterface[Multicast.Lark, %s]", $System, NIL, rope[instance]];
};
Initialization
Commander.Register["MulticastImport", CmdMulticastImport,
"MulticastImport <serverInstance[Michaelson]>\nConnects to multicast forwarding server"];
}.
Swinehart, May 14, 1985 12:59:49 pm PDT
Cedar 6.0