<> <> <> <> <<>> <> DIRECTORY Camelot USING [segmentIdT, tidT], YggDID USING [DID], YggInternal USING[Document, FileHandle], Rope USING[ROPE]; YggDIDMap: CEDAR DEFINITIONS = BEGIN <> Document: TYPE = YggInternal.Document; Run: TYPE = RECORD [ segmentId: Camelot.segmentIdT, -- segment for fragment segmentPage: CARD, -- offset in segment in pages firstPage: INT, -- page number in file of first byte (-1 for leader) pages: INT, -- for non-leader, number of pages (0 for leader) leader: BOOL -- flag for leader (leaders, if used, are 256 bytes long and are not allocated with the rest of the document) ]; NullRun: Run = [[0], 0, 0, 0, FALSE]; RunList: TYPE = LIST OF Run; <> OpenDocumentFromDID: PROC [did: YggDID.DID, tid: Camelot.tidT] RETURNS [doc: Document]; <> <> GetDID: PROC [doc: Document] RETURNS [did: YggDID.DID]; <> GetLinkInfo: PROC [doc: Document] RETURNS [fromDID, toDID: YggDID.DID, linkType: Rope.ROPE]; <> SwapLinkInfo: PROC [doc: Document, newFromDID, newToDID: YggDID.DID, newLinkType: Rope.ROPE] RETURNS [oldFromDID, oldToDID: YggDID.DID, oldLinkType: Rope.ROPE]; <> GetComponentFiles: PROC [doc: Document] RETURNS [componentFiles: LIST OF YggInternal.FileHandle]; <> AddComponentFile: PROC [doc: Document, componentFile: YggInternal.FileHandle, tid: Camelot.tidT]; <> RemoveComponentFile: PROC [doc: Document, componentFile: YggInternal.FileHandle, tid: Camelot.tidT]; <> GetName: PROC [doc: Document] RETURNS [Rope.ROPE]; <> CreateNewDID: PROC [tid: Camelot.tidT] RETURNS [did: YggDID.DID]; DestroyDID: PROC [tid: Camelot.tidT, did: YggDID.DID]; <> <<>> GetRootDIDs: PROC RETURNS [dids: LIST OF YggDID.DID]; AddRootDID: PROC [did: YggDID.DID] RETURNS [ok: BOOL]; RemoveRootDID: PROC [did: YggDID.DID] RETURNS [ok: BOOL]; <> RemoveRuns: PROC [did: YggDID.DID, tid: Camelot.tidT, runList: RunList]; <> AddRuns: PROC [did: YggDID.DID, tid: Camelot.tidT, fileUse: ATOM, runList: RunList]; <> <<>> SetByteSize: PROC [did: YggDID.DID, tid: Camelot.tidT, fileUse: ATOM, bytes: INT]; <> <> PreCommit: PROC [tid: Camelot.tidT]; <> Commit: PROC [tid: Camelot.tidT]; <> Abort: PROC [tid: Camelot.tidT]; <> <> InitDIDMap: PROC [firstTime: BOOL]; <> END.