DIRECTORY CD, CDGenerate, Rope; CDRemote: CEDAR DEFINITIONS = BEGIN GetContext: PROC [remoteDesign: Rope.ROPE] RETURNS [CDGenerate.Context]; DesignName: PROC [context: CDGenerate.Context] RETURNS [Rope.ROPE]; Get: PROC [for: CD.Design, remoteDesign: Rope.ROPE, object: Rope.ROPE] RETURNS [CD.Object]; IsCached: PROC [for: CD.Design, remoteDesign: Rope.ROPE] RETURNS [BOOL]; ForgetCache: PROC [for: CD.Design, remoteDesign: Rope.ROPE]; LoadCache: PROC [for: CD.Design, remoteDesign: Rope.ROPE, remoteFile: Rope.ROPE _ NIL, reload: BOOL _ FALSE] RETURNS [loaded: BOOL]; MakupName: PROC [for: CD.Design, remoteDesign: Rope.ROPE] RETURNS [Rope.ROPE]; CacheDesign: PROC [for: CD.Design, remote: CD.Design]; FetchDesign: PROC [for: CD.Design, name: Rope.ROPE] RETURNS [remote: CD.Design]; END. RCDRemote.mesa (part of ChipNDale) Copyright c 1985, 1986 by Xerox Corporation. All rights reserved. Created by Christian Jacobi, June 5, 1985 8:02:35 pm PDT Last edited by: Christian Jacobi, October 20, 1986 12:51:12 pm PDT This module implements transfering (copying) objects from one design into an other. Transfered objects are cached; Transfering two objects in the same ChipNDale session (while the design stays in memory) will not create duplicate copies of the children objects. To guarantee correct cacheing, a copy of the source design is needed and the source design is specified with its name only. --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. --Returns design name of remote design, if context was generated using GetContext --Transferes object (and its children) from other remoteDesign. --Reads remoteDesign if necessary. --Returns NIL if object not found. --returns whether a version of remoteDesign is cached for "for" --forgets cacheing of remoteDesign --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 --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 --for MUST be readonly and therefore will never be changed -- (but a different design with the same name might be cached later...) --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...) Ê^˜codešœ!™!Kšœ Ïmœ7™BKšœ8™8K™BK˜—šÏk œ˜ Kšžœ˜Kšœ ˜ Kšœ˜—K˜KšÏnœžœž œ˜Kšž˜K˜šœ#Ïi œ'™SK™®—K˜šŸ œžœžœžœ˜HKšœY™YKšœL™LKšœR™RK˜—šŸ œžœžœžœ˜CKšœQ™Q—K˜šŸœžœžœžœžœžœžœ ˜[Kšœ?™?Kšœ#™#Kšœ"™"K˜—K˜K˜š Ÿœžœžœžœžœžœ˜HKšœ?™?—K˜šŸ œžœžœžœ˜™>—K˜šŸ œžœžœžœ ˜6Kšœ:™:KšœH™HK˜—š Ÿ œžœžœžœžœ žœ ˜PKšœ™Kšœ=™=KšœH™H—K˜Kšžœ˜K˜—…—( Ø