<> <> DIRECTORY Commander USING [ CommandProc, Register ], CommandToolExtras USING [ NumArgs, ArgN ], NamesGVImpExp, NamesGVRpcControl USING [ ImportInterface ], IO, Log USING [ Problem, Report ], Names USING [ ROPE ], RPC USING [ ImportFailed ], UserProfile USING [ Token ] ; NamesGVImportImpl: CEDAR PROGRAM IMPORTS Commander, CommandToolExtras, IO, Log, RPC, NamesGVRpcControl, UserProfile EXPORTS NamesGVImpExp = { OPEN IO; <> ROPE: TYPE= Names.ROPE; imported: BOOL_FALSE; <> GVImport: PUBLIC PROC [instance: ROPE_NIL] RETURNS [success: BOOL] = { ENABLE RPC.ImportFailed => { Log.Problem["Couldn't import NamesGV.Lark"]; CONTINUE; }; IF instance=NIL THEN instance _ UserProfile.Token[key: "ThrushClientServerInstance", default: "Morley.Lark"]; IF ~imported THEN NamesGVRpcControl.ImportInterface [[ type: "NamesGV.Lark", instance: instance ]]; imported _ TRUE; Log.Report[IO.PutFR["ImportInterface[NamesGV.Lark, %s]", rope[instance]], $System]; }; <> CmdGVImport: Commander.CommandProc = { []_GVImport[IF CommandToolExtras.NumArgs[cmd]#0 THEN CommandToolExtras.ArgN[cmd,1] ELSE NIL]; }; <> <<>> Commander.Register["GVImport", CmdGVImport, "Connect to remote NamesGV."]; }.