<<>> <> <> <> <> <<>> <> <<>> DIRECTORY BasicTime USING [GMT, nullGMT], IO USING [STREAM], Rope USING [ROPE], MailBasics; MailUtils: CEDAR DEFINITIONS ~ BEGIN STREAM: TYPE ~ IO.STREAM; ROPE: TYPE ~ Rope.ROPE; Credentials: TYPE ~ REF CredentialsRec; CredentialsRec: TYPE ~ RECORD [ rName: MailBasics.RName, password: ROPE ]; UserCredentialsProc: TYPE = PROC RETURNS[creds: Credentials]; LoggedInUserProc: TYPE = PROC[creds: Credentials] RETURNS[yes: BOOL]; <> LocalNameProc: TYPE = PROC[rName: MailBasics.RName] RETURNS[local: ROPE]; <> WhoIsLoggedInProc: TYPE = PROC RETURNS[who: Rope.ROPE]; <> RegisterUserCredentialsProc: PROC[which: ATOM, proc: UserCredentialsProc, loggedIn: LoggedInUserProc, local: LocalNameProc, who: WhoIsLoggedInProc]; GetUserCredentials: PROC [which: ATOM ¬ NIL] RETURNS [creds: LIST OF Credentials]; <> <<>> GetLoggedInUser: PROC[which: ATOM] RETURNS[Rope.ROPE]; IsThisTheLoggedInUser: PROC [cdL: LIST OF Credentials] RETURNS [yes: BOOL]; <> <<>> LocalNameFromRName: LocalNameProc; <> <<>> GeneratePostmark: PROC[gmt: BasicTime.GMT ¬ BasicTime.nullGMT, machine: ROPE] RETURNS [ts: MailBasics.Postmark]; <> <<>> GetTimeFromPostmark: PROC [ts: MailBasics.Postmark] RETURNS [gmt: BasicTime.GMT]; <> <<>> IsThisAPostmark: PROC [r: ROPE] RETURNS [yes: BOOL]; <> RopeFromItemType: PROC [itemType: MailBasics.ItemType] RETURNS [rope: ROPE]; <> <<>> RopeFromStream: PROC [s: STREAM, maxTextRun: INT ¬ 2048] RETURNS [contents: ROPE]; END.