WalnutDefs.mesa
Copyright Ó 1984, 1987, 1988, 1992 by Xerox Corporation. All rights reserved.
Willie-Sue, June 13, 1988 2:09:28 pm PDT
Doug Terry, January 3, 1992 1:54 pm PST
Definitions used by WalnutOps, seen by the outside world
Willie-s, April 30, 1992 10:58 am PDT
DIRECTORY
IO USING [Value],
LoganBerry USING [nullDB, OpenDB],
Rope USING [ROPE],
TapFilter USING [Agent],
TapMsgQueue USING [MsgQueue];
WalnutDefs: CEDAR DEFINITIONS
= BEGIN
ROPE: TYPE = Rope.ROPE;
Types
Defining separate walnut worlds
RootHandle: TYPE = REF RootHandleRec; -- see WalnutRoot
RootHandleRec: TYPE;
LogHandle: TYPE = REF LogHandleRec; -- see WalnutLog
LogHandleRec: TYPE;
ExpungeHandle: TYPE = REF ExpungeHandleRec; -- see WalnutLogExpunge
ExpungeHandleRec: TYPE;
SchemaHandle: TYPE = REF SchemaHandleRec; -- see WalnutSchema
SchemaHandleRec: TYPE;
KernelHandle: TYPE = REF KernelHandleRec; -- see WalnutOpsInternal
KernelHandleRec: TYPE;
WalnutOpsHandle: TYPE = REF WalnutOpsHandleRec;
WalnutOpsHandleRec: TYPE = RECORD[
rootName: ROPE,
readOnly: BOOL ¬ FALSE,
mailFor: ROPE ¬ NIL,
dbName: ROPE ¬ NIL,
key: ROPE ¬ NIL,
completeSchema: BOOL ¬ TRUE,
db: LoganBerry.OpenDB ¬ LoganBerry.nullDB,
filterAgent: TapFilter.Agent ¬ NIL,
filterFeeder: TapMsgQueue.MsgQueue ¬ NIL,
rootHandle: RootHandle,
logHandle: LogHandle,
expungeHandle: ExpungeHandle,
schemaHandle: SchemaHandle,
kernelHandle: KernelHandle
];
Relating to MsgSet Entites
dontCareMsgSetVersion: INT = -1;
dontCareDomainVersion: INT = -1;
MsgSet: TYPE = RECORD[name: ROPE, version: INT ¬ dontCareMsgSetVersion];
Log things
LogInfo: TYPE = RECORD[name: ROPE, logicalStartPos, length: INT];
info returned by call to WalnutLog
for the last log (the one being written on) length = -1
DBLogInfo: TYPE = RECORD[name: ROPE, logicalStartPos, length, firstDestroyedMsgPos, bytesInDestroyedMsgs: INT];
info returned by call to WalnutDB
for the last log (the one being written on) length = -1
Server things
ServerInfo: TYPE = RECORD[server: ROPE, num: INT];
RetrieveState: TYPE = ATOM;
-- {OK, communicationFailure, noSuchServer, connectionRejected, badCredentials, didNotRespond, noMailboxes, noServers, unknownFailure, unknownError};
ServerResponse: TYPE = RECORD[server: ROPE, state: RetrieveState, num: INT];
Enumerator things
GeneralEnumerator: TYPE = REF GeneralEnumeratorRec;
GeneralEnumeratorRec: TYPE;
SeFromToCcSuDaMid: TYPE = RECORD [
sender: ROPE,
from, to, cc, keyword: LIST OF ROPE,
subject, fullSubjectText: ROPE,
date, msgID: ROPE
];
Useful proc
CheckReportProc: TYPE = PROC[
opsH: WalnutOpsHandle, format: ROPE ¬ NIL, v1, v2, v3: IO.Value ¬ [null[]] ];
Signals
SchemaMismatch: SIGNAL[explanation: ROPE ¬ NIL];
VersionMismatch: SIGNAL[explanation: ROPE ¬ NIL];
Error: SIGNAL[who, code: ATOM, explanation: ROPE ¬ NIL];
END.