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)
DIRECTORY
Basics USING [Comparison];
YggDID: CEDAR DEFINITIONS
~ BEGIN
Types
DID: TYPE ~ REF DIDRep;
DIDRep: TYPE;
document identifier (DID)
FirstDID: DID;
LastDID: DID;
Procedures
ValidateDID: PROC [did: DID] RETURNS [ok: BOOL];
Validate the did.
PermanentDID: PROC [did: DID] RETURNS [permanent: BOOL];
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.)
CompareDIDs: PROC [did: DID, stableDID: LONG POINTER] RETURNS [Basics.Comparison];
Compare the did and stableDID.
EqualDIDs: PROC [did1: DID, did2: DID] RETURNS [equal: BOOL];
Compare the dids.
SizeForDID: PROC [did: DID] RETURNS [bytes: INT];
Return the size of the did. The size in in bytes rounded up to the next word.
StabilizeDID: PROC [did: DID, buffer: LONG POINTER];
Take a DID and write it to a buffer.
VolatilizeDID: PROC [buffer: LONG POINTER] RETURNS [did: DID];
Take a buffer and construct a DID.
HashDID: PROC [did: DID] RETURNS [hash: CARD32];
A did always hashes to the same value for any given version of the software (this is only for volatile use!)
StableHashDID: PROC [did: DID] RETURNS [hash: CARD32];
A did always hashes to the same value for all versions of the software (this is for stable use)
END.