<> <> <> <> DIRECTORY CD, CDDesignCache, CDGenerate, CDGenerateRemote, CDRemote, Rope; CDRemoteImpl: CEDAR PROGRAM IMPORTS CDDesignCache, CDGenerateRemote EXPORTS CDRemote = BEGIN GetContext: PUBLIC PROC [remoteDesign: Rope.ROPE] RETURNS [context: CDGenerate.Context_NIL] = { context _ CDGenerateRemote.GetRemoteContext[remoteDesign]; }; Get: PUBLIC PROC [for: CD.Design, remoteDesign: Rope.ROPE, object: Rope.ROPE] RETURNS [ob: CD.Object] = { ob _ CDGenerateRemote.GetRemoteObject[for, remoteDesign, object]; }; DesignName: PUBLIC PROC [context: CDGenerate.Context] RETURNS [r: Rope.ROPE_NIL] = { r _ CDGenerateRemote.RemoteDesignName[context]; }; CacheDesign: PUBLIC PROC [for: CD.Design, remote: CD.Design] = { CDDesignCache.Set[for, remote]; }; FetchDesign: PUBLIC PROC [for: CD.Design, name: Rope.ROPE] RETURNS [remote: CD.Design _ NIL] = { remote _ CDDesignCache.Fetch[for, name]; }; IsCached: PUBLIC PROC [for: CD.Design, remoteDesign: Rope.ROPE] RETURNS [BOOL] = { RETURN [CDDesignCache.IsCached[for, remoteDesign]] }; ForgetCache: PUBLIC PROC [for: CD.Design, remoteDesign: Rope.ROPE] = { CDDesignCache.Forget[for, remoteDesign] }; LoadCache: PUBLIC PROC [for: CD.Design, remoteDesign: Rope.ROPE, remoteFile: Rope.ROPE _ NIL, reload: BOOL _ FALSE] RETURNS [loaded: BOOL] = { loaded _ CDDesignCache.GetOrRead[for: for, remoteName: remoteDesign, remoteFile: remoteFile, reload: reload, checkFile: TRUE].remote#NIL; }; MakupName: PUBLIC PROC [for: CD.Design, remoteDesign: Rope.ROPE] RETURNS [f: Rope.ROPE_NIL] = { f _ CDDesignCache.MakeUpFile[for, remoteDesign]; }; END.