<> <> <> <> <<>> <> <> <> DIRECTORY BasicTime USING [GMT], IO USING [STREAM], Rope USING [ROPE], ViewerTools USING [TiogaContents], WalnutKernelDefs USING [LogEntry, WhichTempLog]; WalnutLog: CEDAR DEFINITIONS = BEGIN <> GMT: TYPE = BasicTime.GMT; ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; LogEntry: TYPE = WalnutKernelDefs.LogEntry; WhichTempLog: TYPE = WalnutKernelDefs.WhichTempLog; TiogaContents: TYPE = ViewerTools.TiogaContents; <> ExpungeMsgs: PROC RETURNS[at, next: INT]; WriteExpungeLog: PROC RETURNS[at, next: INT]; <<>> CreateMsgSet: PROC[name: ROPE] RETURNS[at, next: INT]; EmptyMsgSet: PROC[msgSet: ROPE] RETURNS[at, next: INT]; DestroyMsgSet: PROC[msgSet: ROPE] RETURNS[at, next: INT]; AddMsg: PROC[msg: ROPE, to: ROPE] RETURNS[at, next: INT]; RemoveMsg: PROC[msg: ROPE, from: ROPE] RETURNS[at, next: INT]; MoveMsg: PROC[msg: ROPE, from, to: ROPE] RETURNS[at, next: INT]; DestroyMsg: PROC[msg: ROPE] RETURNS[at, next: INT]; HasBeenRead: PROC[msg: ROPE] RETURNS[at, next: INT]; RecordNewMailInfo: PROC[logLen: INT, when: GMT, server: ROPE, num: INT] RETURNS[at, next: INT]; StartCopyNewMail: PROC RETURNS[at, next: INT]; -- endCopy written by WalnutLogImpl AcceptNewMail: PROC RETURNS[at, next: INT]; StartReadArchiveFile: PROC[file: ROPE, msgSet: ROPE] RETURNS[at, next: INT]; EndReadArchiveFile: PROC RETURNS[at, next: INT]; StartCopyReadArchive: PROC RETURNS[at, next: INT]; -- endCopy written by WalnutLogImpl <> WriteMessage: PROC [msg: ROPE, body: TiogaContents] RETURNS[at: INT]; <> <> SetPosition: PROC[startPos: INT] RETURNS[charsSkipped: INT]; <> SetIndex: PROC[pos: INT]; <> NextAt: PROC RETURNS[at: INT]; <> NextEntry: PROC RETURNS[le: LogEntry, at: INT]; <> <<>> <> <<>> QuickScan: PUBLIC PROC RETURNS[le: LogEntry, at: INT]; <> <<>> ArchiveEntry: PUBLIC PROC[to: IO.STREAM] RETURNS[ok: BOOL]; <> <<>> CopyBytesToArchive: PROC[to: IO.STREAM, startPos, num: INT]; <> <> AcquireWriteLock: PROC; <> ForgetLogStreams: PROC; <> CloseLogStreams: PROC; <> LogLength: PROC RETURNS[length: INT]; <> <<>> OpenLogStreams: PROC; ReleaseWriteLock: PROC; <> ResetLog: PROC[newLength: INT]; ReturnCurrentLogStreams: PROC; <> ShutdownLog: PROC; <> <<>> <> PrepareToCopyTempLog: PROC[which: WhichTempLog, pagesAlreadyCopied: INT, reportProc: PROC[msg1, msg2, msg3: ROPE _ NIL] ] RETURNS[ok: BOOL]; <> <<>> CopyTempLog: PROC[ which: WhichTempLog, startCopyPos, fromPos: INT, reportProc: PROC[msg1, msg2, msg3: ROPE _ NIL] ]; <> FinishTempLogCopy: PROC[which: WhichTempLog]; <> CreateArchiveLog: PROC[ fileToRead: STREAM, msgSet: ROPE, reportProc: PROC[msg1, msg2, msg3: ROPE_ NIL]] RETURNS[ok: BOOL]; <> <> GetTiogaContents: PROC[textStart, textLen, formatLen: INT] RETURNS[contents: TiogaContents]; <> <<>> GetRefTextFromLog: PROC[startPos, length: INT, text: REF TEXT]; <> <<>> END.