<> <> <> <<>> <> <<>> DIRECTORY BTree USING [UpdateType], Rope USING [ROPE], YggDID USING [DID], YggEnvironment USING [TransID]; YggNaming: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; <> <<>> ErrorDesc: TYPE = RECORD [code: ATOM, explanation: ROPE] _ [NIL, NIL]; <<>> <> <<>> Error: ERROR [error: ErrorDesc]; <> MkDir: PROC [trans: YggEnvironment.TransID, did: YggDID.DID] RETURNS [directoryAlreadyExists: BOOL]; < bug; should always commit.>> <> <<>> RmDir: PROC [trans: YggEnvironment.TransID, did: YggDID.DID] RETURNS [directoryDoesNotExist: BOOL]; < RmDir needs a real transaction>> < could not get write lock; retry might work>> <> <<>> <> UpdateItem: PROC [trans: YggEnvironment.TransID, directoryDid: YggDID.DID, name: ROPE, version: ROPE, did: YggDID.DID, updateType: BTree.UpdateType _ insertOrReplace] RETURNS [notADirectory: BOOL, nameFound: BOOL]; < UpdateItem needs a real transaction>> < could not get write lock; retry might work>> < version specification is bogus>> <> <<>> DeleteItem: PROC [trans: YggEnvironment.TransID, directoryDid: YggDID.DID, name: ROPE, version: ROPE] RETURNS [found: BOOLEAN]; < UpdateItem needs a real transaction>> < could not get write lock; retry might work>> < version specification is bogus>> <> <<>> Lookup: PROC [trans: YggEnvironment.TransID, directoryDid: YggDID.DID, namePattern: ROPE, version: ROPE] RETURNS [nameFound: BOOL, moreThanOneMatch: BOOL, didFound: YggDID.DID, nameMatched: ROPE, versionMatched: ROPE]; <> <<>> Version: TYPE = RECORD [CARDINAL]; EnumProc: TYPE = PROC [name: REF TEXT, version: Version, did: YggDID.DID] RETURNS [stop: BOOL _ FALSE]; EnumerateEntries: PROC [trans: YggEnvironment.TransID, directoryDid: YggDID.DID, namePattern: ROPE, version: ROPE, nameToStart: ROPE, nameToStartVersion: ROPE, proc: EnumProc] RETURNS [notADirectory: BOOL, completedEnumerate: BOOL]; < could not get read lock; retry might work>> <> <<>> <<>> HasDirectory: PROC [trans: YggEnvironment.TransID, directoryDid: YggDID.DID] RETURNS [isDirectory: BOOL]; <> <> PreCommit: PROC[tid: YggEnvironment.TransID]; Commit: PROC[tid: YggEnvironment.TransID]; Abort: PROC[tid: YggEnvironment.TransID]; <<>> END.