<<>> <> <> <> <> <> <> <<>> <> <<>> <<(Added NewMail and Archive log position info for restart)>> <<(Changed mDAInfo to be mInfo and changed mAccepted to be mShow -- in multiple log case, this attribute will be used for both Active and Deleted message set enumerations)>> <<>> <> <<>> <> <<>> DIRECTORY BasicTime USING [GMT], LoganBerry USING [Entry, AttributeType], RefTab USING [Ref], Rope USING [ROPE], WalnutDefs USING [MsgSet, WalnutOpsHandle]; WalnutSchema: CEDAR DEFINITIONS = BEGIN <<>> <> ROPE: TYPE = Rope.ROPE; AttributeType: TYPE = LoganBerry.AttributeType; MsgSet: TYPE = WalnutDefs.MsgSet; WalnutOpsHandle: TYPE = WalnutDefs.WalnutOpsHandle; <<>> <> <> SchemaHandle: TYPE = REF SchemaHandleRec; SchemaHandleRec: TYPE = RECORD[ <<>> <> gRootInfo: ROPE, -- primary key for root info gRootFileStamp: AttributeType, -- rootFile create date for this db (gmt) gRootFileKey: AttributeType, -- key from rootFile for this db (rope) gMailFor: AttributeType, -- RName (rope) gLogInfo: ROPE, gLogFileID: AttributeType, -- int gOpInProgressPos: AttributeType, -- int - long running operation Pos gFirstDestroyedMsgPos: AttributeType, -- int gBytesInDestroyedMsgs: AttributeType, -- int gTimeOfLastScavenge: AttributeType, -- gmt gParseLogInfo: ROPE, gParseLogInProgress: AttributeType, -- bool gParseLogPos: AttributeType, -- int gExpungeInfo: ROPE, gLogExpungePhase: AttributeType, -- int gExpungeFileID: AttributeType, -- int gCurrentLogPos: AttributeType, -- int gExpungeLogPos: AttributeType, -- int gTimeOfLastExpunge: AttributeType, -- gmt gNewMailInfo: ROPE, gNewMailLogLength: AttributeType, -- int gCopyNewMailLogPos: AttributeType, -- int gAcceptNewMailLogPos: AttributeType, -- int gAddingServerMsgs: AttributeType, -- bool gLastNewMailTimeStamp: AttributeType, -- time gReadArchiveInfo: ROPE, gReadArchiveLogPos: AttributeType, -- int gCopyReadArchiveLogPos: AttributeType, -- int gVersionInfo: ROPE, gMsgCount: AttributeType, -- int (number of msgs) gMsgSetCount: AttributeType, -- int (number of msgSets) gMsgSetsVersion: AttributeType, -- int (version number for msgSets) <<>> <> <<>> sBasicInfo: ROPE, -- One per Server sBIOf: AttributeType, -- Server sBINum: AttributeType, -- int (number of msgs) <<>> <<>> <> msBasicInfo: ROPE, -- One per MsgSet msBIOf: AttributeType, -- MsgSet msBICount: AttributeType, -- int (number of member msgs) msBIVersion: AttributeType, -- int msPrintNameIs: AttributeType, -- rope <<>> <> mMsgInfo: ROPE, -- One per Msg mMIOf: AttributeType, -- Msg mMIHerald: AttributeType, -- rope mMIShortNameLen: AttributeType, -- int (for icon label, etc) mMIEntryStart: AttributeType, -- int (start of entry in log) mMITextOffset: AttributeType, -- int (offset for text) mMITextLen: AttributeType, -- int (length of text) mMIFormatLen: AttributeType, -- int (length of formatting) mMIDate: AttributeType, -- time mMISubject: AttributeType, -- Subject (truncated to 20 chars) mMISubjectText: AttributeType, -- rope (up to 99 chars) mMIIsInReplyTo: AttributeType, -- bool mMISender: AttributeType, -- Address (only one allowed) <<>> <> mDisplayInfo: ROPE, -- One per Msg mDIOf: AttributeType, -- Msg mDITOCHeadEntry: AttributeType, -- rope mDIHasBeenRead: AttributeType, -- bool <<>> <> mInfo: ROPE, -- One per Msg mInfoOf: AttributeType, -- Msg mDateIs: AttributeType, -- time mShowIs: AttributeType, -- Unaccepted <<>> <> cdRelation: ROPE, -- One per Msg cdMsg: AttributeType, -- Msg cdMsgSet: AttributeType, -- MsgSet (multiple allowed) cdDate: AttributeType, -- time (of the Msg) <> toRelation: ROPE, -- One per Msg toMsg: AttributeType, -- Msg toAddress: AttributeType, -- Address (multiple allowed) toDate: AttributeType, -- time (of the Msg) <> ccRelation: ROPE, -- One per Msg ccMsg: AttributeType, -- Msg ccAddress: AttributeType, -- Address (multiple allowed) ccDate: AttributeType, -- time (of the Msg) <> fromRelation: ROPE, -- One per Msg fromMsg: AttributeType, -- Msg fromAddress: AttributeType, -- Address (multiple allowed) fromDate: AttributeType, -- time (of the Msg) <> lastMsgEntity: LoganBerry.Entry, -- used only during expunge activeEntity: ROPE, deletedEntity: ROPE, activeMsgSet: ROPE, deletedMsgSet: ROPE, unacceptedEntity: ROPE, msgSetsTable: RefTab.Ref ]; <<>> <> <<>> <> <> <> <> <> <> <> Initialize: PROC [opsH: WalnutOpsHandle] RETURNS[ok: BOOL]; <> <<>> <> <<>> SetSchemaVersion: PROC[opsH: WalnutOpsHandle]; <<>> <> <<>> GetSchemaVersion: PROC[opsH: WalnutOpsHandle] RETURNS[actual, shouldBe: BasicTime.GMT] <<>> <> <<>> END.