<<>> <> <> <> <<>> <> DIRECTORY IO USING [STREAM], MailRetrieve USING [Handle, MBXState], MailUtils USING [Credentials], Rope USING [ROPE], ViewerClasses USING [Viewer], WalnutDefs USING [CheckReportProc, MsgSet, WalnutOpsHandle], WalnutOps USING [ServerInfo]; WalnutOpsInternal: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; WalnutOpsHandle: TYPE = WalnutDefs.WalnutOpsHandle; KernelHandle: TYPE = REF KernelHandleRec; KernelHandleRec: TYPE = RECORD[ mailStream: STREAM, newMailSomewhere: BOOL, mailHandle: MailHandle, errorInProgress: BOOL, recentActivity: BOOL, started: BOOL, isShutdown: BOOL, reporterList: LIST OF STREAM, statsStream, statsProgressStream: STREAM, statsProgressTS: ViewerClasses.Viewer ]; MailHandle: TYPE = REF MailHandleObject; MailHandleObject: TYPE = RECORD[ procForReporting, procForProgress: WalnutDefs.CheckReportProc, notifyProc: PROC[opsHandle: WalnutOpsHandle, ok: BOOL, someMail: BOOL], registeredUsers: LIST OF MailUtils.Credentials ¬ NIL, lastStateReported: MailRetrieve.MBXState ¬ unknown, lastStatus: ROPE ¬ NIL, tryForNewMail: BOOL ¬ FALSE, mailInProgress: BOOL ¬ FALSE, getMailLogProc: PROC[opsHandle: WalnutOpsHandle] RETURNS[STREAM] ¬ NIL, recordMailInfoProc: PROC[opsHandle: WalnutOpsHandle, logLen: INT, server: ROPE, num: INT] RETURNS[BOOL] ¬ NIL, needsClosing, hasBeenClosed: BOOL ¬ FALSE, mrHandle: MailRetrieve.Handle ¬ NIL ]; <<>> <> CarefullyApply: PROC[opsH: WalnutOpsHandle, proc: PROC[], didUpdate: BOOL]; LongRunningApply: PROC[opsH: WalnutOpsHandle, proc: PROC[inProgress: BOOL]]; <> StartStatsReporting: PROC[opsH: WalnutOpsHandle]; StatsReport: WalnutDefs.CheckReportProc; Restart: PROC[opsH: WalnutOpsHandle]; InternalShutdown: PROC[opsH: WalnutOpsHandle]; ParseLog: PROC[opsH: WalnutOpsHandle, doingScavenge: BOOL ¬ FALSE] RETURNS[numNew: INT]; <> <<>> DoStartNewMail: PROC[opsH: WalnutOpsHandle] RETURNS[STREAM]; DoNewMail: PROC[opsH: WalnutOpsHandle, activeVersion: INT, proc: PROC[msg, tocEntry: ROPE, startOfSubject: INT]] RETURNS[responses: LIST OF WalnutOps.ServerInfo, complete: BOOL]; <> <<>> DoAcceptNewMail: PROC[opsH: WalnutOpsHandle, activeVersion: INT]; DoReadArchiveFile: PROC[opsH: WalnutOpsHandle, file: ROPE, msgSet: WalnutDefs.MsgSet] RETURNS[numNew: INT]; DoWriteArchiveFile: PROC[ opsH: WalnutOpsHandle, file: ROPE, msgSetList: LIST OF WalnutDefs.MsgSet, append: BOOL] RETURNS[ok: BOOL]; CheckInProgress: PROC[opsH: WalnutOpsHandle]; CheckReport: WalnutDefs.CheckReportProc; ComputeMaxExpungeLogPages: PROC[opsH: WalnutOpsHandle] RETURNS[INT]; DoLogExpunge: PROC[opsH: WalnutOpsHandle]; END.