DIRECTORY Rope USING [ROPE], IO USING [STREAM]; Archives: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE ~ IO.STREAM; Handle: TYPE = REF HandleRecord; OpenDirectory: PROC [directory: ROPE ¬ NIL, msg: STREAM ¬ NIL] RETURNS [h: Handle]; CloseDirectory: PROC [h: Handle]; ArchiveConsumer: TYPE ~ PROC[ line: ROPE ] RETURNS [ continue: BOOL ¬ TRUE ]; EnumerateDirectory: PROC [h: Handle, pattern: ROPE, consumer: ArchiveConsumer]; Parameters: TYPE = REF ParametersRecord; ParametersRecord: TYPE = RECORD [fileName: ROPE ¬ NIL]; GetParameters: PROC RETURNS [Parameters]; HandleRecord: PRIVATE TYPE = RECORD [ fileName: ROPE, msg: STREAM, lastSegCount: CARD, nSegments: CARD, starts: Starts, compressedInput: STREAM ] ¬ [NIL, NIL, 0, 0, NIL, NIL]; Starts: PRIVATE TYPE ~ REF StartSequence; StartSequence: PRIVATE TYPE ~ RECORD [ SEQUENCE len: CARD OF StartRecord ]; StartRecord: PRIVATE TYPE ~ RECORD [ keyPos, segPos: CARD, key: ROPE ]; END.  Archives.mesa Copyright Σ 1990, 1992 by Xerox Corporation. All rights reserved. Chauser, December 3, 1990 2:06 pm PST Opening is unreasonably expensive; if possible, use a single handle for many operations. The line returned consists of: the file name, the file date, information about where in the archives the file is stored, and the file state (which should always be "completed"). The fields are separated by '\t (tab) characters. Enumerate files matching pattern, passing the line for each to the consumer. The filename is taken from the user profile entry "Archives.DirectoryName" if any, otherwise defaults to a value given in the implementation. Tells various information about why Archives behave as they do. Currently, just tells which file is being used as the directory. Κ–"cedarcode" style•NewlineDelimiter ™™ Jšœ Οeœ7™BJ™%J™—codešΟk ˜ Kšœžœžœ˜Kšžœžœžœ˜—K˜KšΠlnœžœž ˜šœž˜K˜Kšžœžœžœ˜Kšžœžœžœžœ˜K˜Kšœžœžœ˜ K˜šΟn œžœ žœžœžœžœžœ ˜SK™X—K˜Kš œžœ ˜!K˜š œžœžœžœžœ žœžœ˜MK™δ—K˜š œžœžœ˜OK™L—K˜Kšœ žœžœ˜(š œžœžœ žœžœ˜7KšœŽ™Ž—K˜š  œžœžœ˜)K™—K˜šœžœžœžœ˜%Kšœ žœ˜Kšœžœ˜ Kšœžœ˜Kšœ žœ˜K˜Kšœž˜Kš œžœžœžœžœ˜K˜—Kšœž œžœ˜)šœž œžœ˜&Kšžœžœžœ ˜!Kšœ˜—šœ ž œžœ˜$Kšœžœ˜Kšœž˜ Kšœ˜—K˜K˜—K˜Kšžœ˜—…—Θ c