<> <> <> <> <<>> <> <> <<>> DIRECTORY BasicTime USING [GMT], IO USING [STREAM], Rope USING [ROPE], WalnutKernelDefs USING [Segment, WhichTempLog]; WalnutRoot: CEDAR DEFINITIONS = BEGIN <> GMT: TYPE = BasicTime.GMT; ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; WhichTempLog: TYPE = WalnutKernelDefs.WhichTempLog; <> Open: PROC[rootName: ROPE, readOnly: BOOL _ FALSE, newSegmentOk: BOOL _ FALSE] RETURNS [ key, mailFor: ROPE, rootFileCreateDate: GMT, segment: WalnutKernelDefs.Segment, isReadOnly: BOOL]; <> Shutdown: PROC; <> <<>> KeyIs: PROC RETURNS[ROPE]; Mailfor: PROC RETURNS[ROPE]; DBName: PROC RETURNS[ROPE]; GetRootFileStamp: PROC RETURNS[rootFileStamp: GMT]; <> <<>> GetExpungeID: PROC RETURNS[expungeFileID: INT]; <> <> StartTransaction: PROC[openDB: BOOL _ TRUE] RETURNS[schemaInvalid: BOOL]; <> <<>> CloseTransaction: PROC; <> <<>> CommitAndContinue: PROC; <> AbortTransaction: PROC; <> FlushAndContinue: PROC[strm: STREAM]; <> <<>> EraseDB: PROC; <> <> AcquireWriteLock: PROC; <> GetCurrentLogStreams: PROC RETURNS[readStream, writeStream: STREAM]; ReleaseWriteLock: PROC RETURNS[readStream, writeStream: STREAM]; <> <<>> ReturnCurrentLogStreams: PROC; <> <> GetStreamsForExpunge: PROC RETURNS[ currentStream, expungeStream: STREAM, keyIs: ROPE, expungeFileID, logSeqNo: INT]; SwapLogs: PROC[expungeFileID: INT, newRootStamp: GMT] RETURNS[newLogLen: INT]; <> <> <<>> ReturnExpungeStreams: PROC; <> <> PrepareToCopyTempLog: PROC[which: WhichTempLog, pagesAlreadyCopied: INT, reportProc: PROC[msg1, msg2, msg3: ROPE _ NIL]] RETURNS[currentStream, tempStream: STREAM]; <> <<>> GetStreamsForCopy: PROC[which: WhichTempLog] RETURNS[currentStream, tempStream: STREAM]; <> FinishCopy: PROC[which: WhichTempLog]; <> <<>> AbortTempCopy: PROC[which: WhichTempLog, strm: STREAM]; <> <> GetNewMailStream: PROC[lengthRequired: INT, pagesWanted: INT _ 100] RETURNS[strm: STREAM, actualLen: INT]; <> ReturnNewMailStream: PROC[mStream: STREAM]; <> <<>> GetReadArchiveStream: PROC[pagesWanted: INT _ -1] RETURNS[STREAM]; <> ReturnReadArchiveStream: PROC[aStream: STREAM]; StreamToWhich: PROC[stream: STREAM] RETURNS[ROPE]; <> RegisterStatsProc: PROC[proc: PROC[ROPE]]; UnregisterStatsProc: PROC[proc: PROC[ROPE]]; StatsReport: PROC[ROPE]; END.