DIRECTORY Commander USING [ CommandProc, Register ], CommandTool USING [ NextArgument ], NamesGV USING [ GVGetAttribute ], MulticastImp, MulticastRpcControl USING [ ImportInterface ], IO, RPC USING [ ImportFailed, ShortROPE ], VoiceUtils USING [ Problem, Report, ReportFR ] ; MulticastImportImpl: CEDAR PROGRAM IMPORTS Commander, CommandTool, IO, VoiceUtils, RPC, NamesGV, MulticastRpcControl EXPORTS MulticastImp = { OPEN IO; ROPE: TYPE= RPC.ShortROPE; importInstanceName: ROPE_NIL; importInstanceValue: ROPE_NIL; MulticastImport: PUBLIC PROC [instance: ROPE] RETURNS [success: BOOL_FALSE] = { ENABLE RPC.ImportFailed => GOTO Failed; importInstanceValue: ROPE; IF instance=NIL THEN GOTO Failed; -- no defaulting. importInstanceValue _ NamesGV.GVGetAttribute[instance, $connect, NIL]; IF importInstanceValue=NIL THEN GOTO Failed; -- no binding found. success _ TRUE; MulticastRpcControl.ImportInterface [[ -- try with real name or explicit instance value type: "Multicast.Lark", instance: importInstanceValue ]!RPC.ImportFailed => { success _ FALSE; CONTINUE; }]; IF ~success THEN MulticastRpcControl.ImportInterface [[ -- try with real name or explicit instance value type: "Multicast.Lark", instance: instance ]]; success _ TRUE; EXITS Failed => VoiceUtils.Problem["Couldn't import Multicast.Lark", $System]; }; CmdMulticastImport: Commander.CommandProc = { instance: ROPE = CommandTool.NextArgument[cmd]; IF instance=NIL THEN { VoiceUtils.Report["Usage: MulticastImport ", $System]; RETURN; }; IF MulticastImport[instance] THEN VoiceUtils.ReportFR["ImportInterface[Multicast.Lark, %s]", $System, NIL, rope[instance]]; }; Commander.Register["MulticastImport", CmdMulticastImport, "MulticastImport to connect to multicast forwarding server"]; }. MulticastImportImpl.Mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Last modified by Swinehart, December 3, 1985 9:55:29 am PST Data Import Procedure User command Initialization Swinehart, May 14, 1985 12:59:49 pm PDT Cedar 6.0 Κ~˜šœ™Icodešœ Οmœ1™