<> <> <> <> DIRECTORY Rope, WalnutParseMsg, WalnutWindow; WalnutQuery: CEDAR DEFINITIONS = BEGIN LORA: TYPE = LIST OF REF ANY; ROPE: TYPE = Rope.ROPE; REFTEXT: TYPE = REF TEXT; LOR: TYPE = LIST OF ROPE; FilterToMsgSet: PROC [filter: REF ANY, msgSetName: ROPE, status: Status _ NIL] RETURNS [WalnutWindow.OutCome]; Status: TYPE = REF StatusRec; StatusRec: TYPE = RECORD [ phase: Phase _ idle, msgSet: ROPE _ NIL, total, enumerated, accepted, added: NAT _ 0]; Phase: TYPE = {idle, preparing, enumerating, adding}; NewViewedStatus: PROC [name: ROPE _ NIL] RETURNS [status: Status --with a RecordViewer on it--]; Test: TYPE = REF TestRep; TestRep: TYPE = RECORD [ Eval: PROC [msg: Message, data: REF ANY] RETURNS [BOOL], data: REF ANY, msgSet: ROPE _ NIL]; -- enumerate this message set, or all if NIL Message: TYPE = REF MessageRep; MessageRep: TYPE = RECORD [ msgID: ROPE, msList: LOR, headers: Headers]; Headers: TYPE = WalnutParseMsg.MsgHeaders; END.