DIRECTORY Basics USING [Comparison]; YggDID: CEDAR DEFINITIONS ~ BEGIN DID: TYPE ~ REF DIDRep; DIDRep: TYPE; FirstDID: DID; LastDID: DID; ValidateDID: PROC [did: DID] RETURNS [ok: BOOL]; PermanentDID: PROC [did: DID] RETURNS [permanent: 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]; HashDID: PROC [did: DID] RETURNS [hash: CARD32]; StableHashDID: PROC [did: DID] RETURNS [hash: CARD32]; END. YggDID.mesa Copyright Σ 1988 by Xerox Corporation. All rights reserved. Bob Hagmann July 15, 1988 8:28:44 am PDT Definition of the document identifier (DID) Types document identifier (DID) Procedures Validate the did. Return TRUE if this DID is one that is permanent. (Transient DID's are only promised to be valid one day after their last use.) Compare the did and stableDID. Compare the dids. 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. A did always hashes to the same value for any given version of the software (this is only for volatile use!) A did always hashes to the same value for all versions of the software (this is for stable use) ΚM˜code•Mark outsideHeaderšœ ™ Kšœ<™Kšœœ™"K™—š Ÿœœœœœ˜0K™lK™—š Ÿ œœœœœ˜6K™_K™K™——K˜Kšœ˜—…—žρ