DIRECTORY Basics USING [Comparison], IO USING [STREAM], Rope USING [ROPE]; YggDID: CEDAR DEFINITIONS ~ BEGIN DID: TYPE ~ REF DIDRep; DIDRep: TYPE; FirstDID: DID; LastDID: DID; RootPath: Rope.ROPE; RootPathToRoots: Rope.ROPE; StreamsForDID: PROC [did: DID] RETURNS [contents, attributes, links: IO.STREAM]; ValidateDID: PROC [did: DID] RETURNS [ok: BOOL]; CompareDIDs: PROC [did: DID, stableDID: LONG POINTER] RETURNS [Basics.Comparison]; EqualDIDs: PROC [did1: DID, did2: DID] RETURNS [equal: BOOL]; SizeForDID: PROC [did: DID] RETURNS [bytes: INT]; StabilizeDID: PROC [did: DID, buffer: LONG POINTER]; VolatilizeDID: PROC [buffer: LONG POINTER] RETURNS [did: DID]; END. ΰYggDID.mesa Copyright Σ 1988 by Xerox Corporation. All rights reserved. Bob Hagmann May 9, 1988 4:25:42 pm PDT Definition of the document identifier (DID) Types document identifier (DID) Roots Procedures Get streams for the DID. Any or all of these objects may be NIL. For objects with few links, the links are stored in the attributes. For objects with small contents, the contents are stored in the attributes. If there are no attributes, there is no file for them. Compare the did and stableDID. Compare the did and stableDID. Compare the did and stableDID. Return the size of the did. The size in in bytes rounded up to the next word. Take a DID and write it to a buffer. Take a buffer and construct a DID. ΚW˜code•Mark outsideHeaderšœ ™ Kšœ<™Kšœœ™"K™K™——K˜Kšœ˜—…—€Ϋ