DIRECTORY CD, CDSequencer, Rope USING [ROPE]; CDCommandOps: CEDAR DEFINITIONS = BEGIN TheInstance: PROC[comm: CDSequencer.Command, text: Rope.ROPE_NIL] RETURNS [inst: CD.Instance]; BoundingBox: PROC [design: CD.Design, onlySelected: BOOL _ FALSE] RETURNS [CD.Rect]; LambdaRope: PROC [n: CD.Number, lambda: CD.Number_1] RETURNS [Rope.ROPE]; InstRope: PROC[inst: CD.Instance, verbosity: INT_1] RETURNS [Rope.ROPE]; ToRope: PROC [x: REF, whenFailed: REF_NIL] RETURNS [Rope.ROPE]; ImplementSpecificCommand: PROC [specificAtom: ATOM, text: Rope.ROPE_NIL, tipBase: Rope.ROPE_NIL, useFor: Rope.ROPE_NIL, x: REF_NIL, technology: CD.Technology_NIL]; CallWithResource: PROC [proc: PROC[CDSequencer.Command], comm: CDSequencer.Command, resource: REF, abortFlag: REF BOOL_NIL, waitIfBusy: BOOL _ FALSE] RETURNS [skipped: BOOL]; END. ˜CDCommandOps.mesa (part of ChipNDale) Copyright c 1984, 1985 by Xerox Corporation. All rights reserved. by Christian Jacobi, July 12, 1984 3:46:45 pm PDT last edited by Christian Jacobi, March 17, 1986 9:15:58 pm PST Various procedures to ease implementing commands --extracts the application given a command --if returned application is nil, all the messages are made and caller should return quiet; --if returned application is not nil; text line is written and object is there --bounding box of whole design --empty for empty design --Implements a command which is executed by using CDCallSpecific --specificAtom: handled through to select CDCallSpecific command --text: logged; defaults to tipBase --tipBase: How command is called in tiptable; defaults to specificAtom --useFor: Suffix letters appended to tipBase getting the tip table entry --x: handled through to CDCallSpecific --technology: NIL => all technologies --command will be queued and changeflag will be set --Monitoring commands using global resources --proc will be called with comm as parameter, but is skipped if resource is already in use --resource: typically atom; every resource is called only once at a time --abortFlag: will be set to TRUE if an abort event occurs while execution of proc --the procedure message on Terminal if it skipped the call, or, if abortFlag is true on return --waitIfBusy: waits if resource is occupied Ê>˜codešœ,™,Kšœ Ïmœ7™BKšœ2™2Kšœ>™>K˜—šÏk ˜ Kšžœ˜Kšœ ˜ Kšœžœžœ˜—K˜KšÐbl œžœž œ˜!Kšž˜K™Kšœ0™0K˜š Ïn œžœ'žœžœžœžœ ˜^K™*Kšœ[™[KšœN™NK˜—š  œžœ žœžœžœžœžœ˜TKšœ™Kšœ™K˜—Kš   œžœžœžœ žœžœ˜IK˜Kš  œžœžœžœžœžœ˜HK˜š œžœžœžœžœžœžœ˜?K˜—š œžœžœ žœžœžœžœžœžœžœžœžœ žœ˜£Kšœ@™@Kšœ@™@Kšœ#™#KšœF™FKšœH™HKšœ&™&Kšœ%™%K™3K˜—š œžœžœ<žœ žœžœžœžœžœžœ žœ˜®Kšœ.™.Kšœ\™\KšœH™HKšœQ™QKšœa™aKšœ.™.—K˜Kšžœ˜K˜—…—B