<> <> <> <<>> <> <<>> DIRECTORY BTree USING [Tree], BTreeVM USING [CacheSize, Handle], IO USING [STREAM], Rope USING [ROPE], YggDID USING [DID], YggEnvironment USING [nullTransID, TransID], YggRep USING [TypedPrimitiveElement, unknown]; YggIndex: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; <> <> Index: TYPE = REF IndexRep; IndexRep: TYPE = RECORD [ backingStream: IO.STREAM, realStream: IO.STREAM, btreevmHandle: BTreeVM.Handle, tree: BTree.Tree, unused: BOOL _ FALSE ]; <<>> <> <> <<>> <> <<>> Cursor: TYPE = REF CursorRep; CursorRep: TYPE = RECORD [ ]; <> Open: PROC [did: YggDID.DID, fileUse: ATOM, cacheSize: BTreeVM.CacheSize, initialize: BOOL _ FALSE, trans: YggEnvironment.TransID _ YggEnvironment.nullTransID] RETURNS [index: Index]; <> EntryProc: TYPE = PROC [value: YggRep.TypedPrimitiveElement, did: YggDID.DID] RETURNS [continue: BOOL]; EnumerateEntries: PROC [index: Index, start: YggRep.TypedPrimitiveElement _ [YggRep.unknown, NIL], end: YggRep.TypedPrimitiveElement _ [YggRep.unknown, NIL], proc: EntryProc]; <> GenerateEntries: PROC [index: Index, start: YggRep.TypedPrimitiveElement _ [YggRep.unknown, NIL], end: YggRep.TypedPrimitiveElement _ [YggRep.unknown, NIL]] RETURNS [cursor: Cursor]; <> <<>> NextEntry: PROC [cursor: Cursor] RETURNS [value: YggRep.TypedPrimitiveElement, did: YggDID.DID]; <> EndGenerate: PROC [cursor: Cursor]; <> WriteEntry: PROC [index: Index, value: YggRep.TypedPrimitiveElement, did: YggDID.DID, replace: BOOLEAN _ FALSE, trans: YggEnvironment.TransID] RETURNS [indexFound: BOOL]; <> DeleteEntry: PROC [index: Index, value: YggRep.TypedPrimitiveElement, did: YggDID.DID, trans: YggEnvironment.TransID] RETURNS [found: BOOLEAN]; <> Close: PROC [index: Index]; <> END.