file ///StdCell23/SCObjUtilImpl.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
Preas April 14, 1986 12:55:15 pm PST
object utility routines
DIRECTORY
SC,
SCObjUtil,
SCPrivate;
SCObjUtilImpl: CEDAR PROGRAM
EXPORTS SCObjUtil
SHARES SC =
BEGIN
EnumerateAllObjects: PUBLIC PROC [handle: SC.Handle, eachObject: SCObjUtil.EachObjectProc] RETURNS [quit: BOOL] = {
structureData: SCPrivate.StructureData ← NARROW[handle.structureData];
quit ← EnumerateObjects[handle, 1, structureData.objects.count, eachObject]};
EnumerateObjects: PUBLIC PROC [handle: SC.Handle, startObj, stopObj: SCPrivate.MaxObjectsSr, eachObject: SCObjUtil.EachObjectProc] RETURNS [quit: BOOLFALSE] = {
structureData: SCPrivate.StructureData ← NARROW[handle.structureData];
FOR obj: SCPrivate.MaxObjectsSr IN [startObj .. stopObj] WHILE ~quit DO
quit ← eachObject[structureData.objects.ob[obj]];
ENDLOOP};
EnumeratePinsOnObject: PUBLIC PROC [object: SCPrivate.Object, eachPin: SCObjUtil.EachPinProc] RETURNS [quit: BOOLFALSE] = {
FOR pin: NAT IN [0 .. object.pins.size) WHILE ~quit DO
quit ← eachPin[object, pin, object.pins.p[pin]];
ENDLOOP};
END.