DIRECTORY ComputeServerClient, IO, Rope; ComputeServerClientStubImpl: CEDAR MONITOR EXPORTS ComputeServerClient = BEGIN ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; RealStartServiceProc: ComputeServerClient.StartServiceProc _ NIL; RealBestServerStatsProc: ComputeServerClient.BestServerStatsProc _ NIL; BestServerStats: PUBLIC PROC RETURNS[success: ComputeServerClient.RemoteSuccess _ false, selfIsBest: BOOL_ TRUE, FOM: REAL _ 1.0] = { IF RealBestServerStatsProc = NIL THEN RETURN [false, FALSE, 0.0] ELSE { [success, selfIsBest, FOM] _ RealBestServerStatsProc[]; }; }; StartService: PUBLIC PROC [service: ROPE, version: ROPE, cmdLine: ROPE, in, out: STREAM, queueService: BOOL _ FALSE, timeToWait: INT _ 3600, retries: NAT _ 3] RETURNS [found: BOOL _ TRUE, success: ComputeServerClient.RemoteSuccess _ false, remoteMsg: ROPE _ NIL, serverInstance: ROPE _ NIL] = { IF RealStartServiceProc = NIL THEN RETURN [FALSE, false, NIL, NIL] ELSE { [found, success, remoteMsg, serverInstance] _ RealStartServiceProc[service, version, cmdLine, in, out, queueService, timeToWait, retries]; }; }; RegisterProcs: PUBLIC PROC [StartService: ComputeServerClient.StartServiceProc, BestServerStats: ComputeServerClient.BestServerStatsProc ] = { RealStartServiceProc _ StartService; RealBestServerStatsProc _ BestServerStats; }; END. fComputeServerClientStubImpl.mesa Stub for calls from Clients into the Compute Server. The real procedures in the Client support code on the workstation are registered, and used via this code. We do it this way to allow user interfaces to call into ComputeServerClient and hence into this module without fear that the Client support code has not been run, and hence the interface procedures have not been bound. Last Edited by: Bob Hagmann, May 13, 1985 3:36:49 pm PDT Copyright c 1984 by Xerox Corporation. All rights reserved. Declarations Service Initialization and Status Registration Initialization Κ– "Cedar" style˜headšœ ™ Ibodyšœϋ™ϋ™8Jšœ Οmœ1™