<> <> <> <> DIRECTORY CD, CDGenerate, Rope; CDRemote: CEDAR DEFINITIONS = BEGIN <> <> GetContext: PROC [remoteDesign: Rope.ROPE] RETURNS [CDGenerate.Context]; <<--Creates a generator context, "generating" = fetching an object from the remote design. >> <<--Generating objects with the context will cause reading remoteDesign if it >> <<--is not loaded; the design read will then be cached for the destination design. >> DesignName: PROC [context: CDGenerate.Context] RETURNS [Rope.ROPE]; <<--Returns design name of remote design, if context was generated using GetContext>> Get: PROC [for: CD.Design, remoteDesign: Rope.ROPE, object: Rope.ROPE] RETURNS [CD.Object]; <<--Transferes object (and its children) from other remoteDesign.>> <<--Reads remoteDesign if necessary. >> <<--Returns NIL if object not found.>> IsCached: PROC [for: CD.Design, remoteDesign: Rope.ROPE] RETURNS [BOOL]; <<--returns whether a version of remoteDesign is cached for "for">> ForgetCache: PROC [for: CD.Design, remoteDesign: Rope.ROPE]; <<--forgets cacheing of remoteDesign>> LoadCache: PROC [for: CD.Design, remoteDesign: Rope.ROPE, remoteFile: Rope.ROPE _ NIL, reload: BOOL _ FALSE] RETURNS [loaded: BOOL]; <<--loads remoteDesign into cache>> <<--remoteFilefile name; make up name if NIL >> <<--reload >> <<-- if true: discards previous cache contents >> <<-- if false: skips loading if remoteDesign is already cached >> MakupName: PROC [for: CD.Design, remoteDesign: Rope.ROPE] RETURNS [Rope.ROPE]; <<--checks whether for wants a special file name to be used for remoteDesign>> <<--returns remoteDesign if no file name could be made up >> <<--might use properties, user profile, or magic to find a name >> CacheDesign: PROC [for: CD.Design, remote: CD.Design]; <<--for MUST be readonly and therefore will never be changed>> <<-- (but a different design with the same name might be cached later...)>> FetchDesign: PROC [for: CD.Design, name: Rope.ROPE] RETURNS [remote: CD.Design]; <<--NIL if no design cached>> <<--remote will be readonly and therefore will never be changed>> <<-- (but a different design with the same name might be cached later...)>> END.