<> <> <<>> DIRECTORY ChipTestRemote, ChipTestRemoteRpcControl USING [ExportInterface], Commander USING [CommandProc, Register], IO USING [PutF, rope], PupDefs USING [GetMyName], Rope USING [ROPE], RPC USING [MakeKey], SystemVersion USING [machineType]; ChipTestServerImpl: CEDAR MONITOR IMPORTS ChipTestRemoteRpcControl, Commander, IO, PupDefs, RPC, SystemVersion = BEGIN started: BOOL _ FALSE; Server: Commander.CommandProc = BEGIN SELECT TRUE FROM SystemVersion.machineType # dolphin => cmd.out.PutF["I can't be a Dolphin functional test server because I'm not a Dolphin.\n"]; started => cmd.out.PutF["Dolphin functional test server has already been started.\n"]; ENDCASE => BEGIN me: Rope.ROPE = PupDefs.GetMyName[]; ChipTestRemoteRpcControl.ExportInterface[interfaceName: [instance: me], user: "Ugh", password: RPC.MakeKey["ugh"]]; cmd.out.PutF["Started Dolphin functional test server ""%g"".\n", IO.rope[me]]; started _ TRUE; END; END; Commander.Register[key: "ChipTestServer", proc: Server, doc: "Starts a functional tester server"]; END.