Defining separate walnut worlds
RootHandle: TYPE = REF RootHandleRec; -- see WalnutRoot
LogHandle: TYPE = REF LogHandleRec; -- see WalnutLog
ExpungeHandle: TYPE = REF ExpungeHandleRec; -- see WalnutLogExpunge
SchemaHandle: TYPE = REF SchemaHandleRec; -- see WalnutSchema
KernelHandle: TYPE = REF KernelHandleRec; -- see WalnutOpsInternal
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
];