PeanutRetrieve.mesa
Copyright Ó 1985, 1989, 1992 by Xerox Corporation. All rights reserved.
March 4, 1983 10:54 am
Doug Wyatt, March 7, 1985 11:26:18 am PST
Willie-Sue, April 24, 1989 3:29:55 pm PDT
Jules Bloomenthal June 30, 1992 9:51 pm PDT
DIRECTORY
BasicTime USING [GMT],
MailBasics USING [RName],
PeanutParse USING [ParseStatus],
Rope USING [ROPE];
PeanutRetrieve: CEDAR DEFINITIONS
= BEGIN
RName: TYPE = MailBasics.RName;
ROPE: TYPE = Rope.ROPE;
MsgRec: TYPE = REF MessageRecObject;
MessageRecObject: TYPE = RECORD[
fullText: ROPE, -- The text for sending, or what came from Grapevine
dateCode: BasicTime.GMT, -- date in msg
gvSender: RName, -- The sender as given by Grapevine
gvID: ROPE, -- Rope.Cat[gvSender, " $ ", gvTimeStamp]
categories: LIST OF ROPE, -- categories & keywords, from prefix
The following items are parsed out of the fullText:
date: ROPE, -- The date.
inMsgSender: ROPE, -- non-NIL iff msg contains sender: field
from: ROPE, -- The From: field (may be freeform)
to: LIST OF RName, -- The To: field
subject: ROPE, -- The subject.
inReplyTo: ROPE, -- The In-Reply-To: field.
cc: LIST OF RName, -- The cc: field
replyTo: ROPE, -- the ReplyTo: field (may be freeform)
unrecognized: LIST OF ROPE, -- Other header items.
hasBeenRead: BOOL¬ FALSE, -- has this message been displayed or not
headersText: ROPE, -- Just the headers
bodyText: ROPE -- The body of the message without header lines.
];
Operations for retrieving messages [PeanutRetrieveImpl]
OpenConnection: PROC[user: LIST OF RName];
Establish a connection for this user.
CloseConnection: PROC;
NewUser: PROC[user: LIST OF RName];
Establish a new user on this connection.
GetNewMsgs: PROC [open: BOOL ¬ TRUE];
Operations for parsing new messages [PeanutRetrieveParseImpl]
ParseMsgIntoFields: PROC[msg: MsgRec] RETURNS[s: PeanutParse.ParseStatus, sPos, mPos: INT];
END.