<> <> <> <> <<>> <> <> <<>> DIRECTORY Rope, SC, RefTab; SCStats: CEDAR DEFINITIONS = BEGIN Table: TYPE = RefTab.Ref; Key: TYPE = REF; NetStat: TYPE = REF NetStatRec; Int0: TYPE = INT _ 0; Real0: TYPE = REAL _ 0.0; VecSeqN: TYPE = RECORD[SEQUENCE ncols: INTEGER OF Int0]; RowN: TYPE = REF VecSeqN; VecSeqR: TYPE = RECORD[SEQUENCE ncols: INTEGER OF Real0]; RowR: TYPE = REF VecSeqR; Span: TYPE = RECORD [ min, max: INT ]; NetStatRec: TYPE = RECORD [ name: Rope.ROPE _ NIL, numPins: INT _ 0, xSpan: Span _ [0, 0], ySpan: Span _ [0, 0], trackLength: INT _ 0, ftHeight: INT _ 0, netStatDat: REF ANY _ NIL ]; CreateForRopes: PROC [mod: NAT _ 17] RETURNS [Table]; <> Fetch: PROC [table: Table, key: Key] RETURNS [found: BOOL, netStat: NetStat]; <> <> <> Store: PROC [table: Table, key: Key, netStat: NetStat] RETURNS [BOOL]; <> <> EnumerateNetStats: PROC [table: Table, action: EachNetStatAction] RETURNS [quit: BOOL]; <> <> <> <> EachNetStatAction: TYPE = PROC [key: Key, netStat: NetStat] RETURNS [quit: BOOL _ FALSE]; WriteSummaryStats: PROC [result: SC.Result]; WriteDetailStats: PROC [result: SC.Result]; CreateNetStats: PROC [result: SC.Result] RETURNS [table: Table]; WriteDetailNetStats: PROC [table: Table]; WriteSummaryNetStats: PROC [result: SC.Result, table: Table]; ReadStats: PROC [fileName: Rope.ROPE] RETURNS [stats: LIST OF SC.ChannelStats]; END.