<> <> <> <> DIRECTORY DFOperations USING [BringOverAction, BringOverFilter, InteractionProc, SModelAction], IO USING [STREAM], Process USING [Priority, priorityBackground], Rope USING [ROPE]; DFOperationsQueue: CEDAR DEFINITIONS = BEGIN OPEN IO, Rope; <> Queue: TYPE = REF QueueObject; QueueObject: TYPE; RequestedOp: TYPE = {bringOver, sModel, verify}; Request: TYPE = REF RequestRecord; RequestRecord: TYPE = RECORD [ dfFile: ROPE, wDir: ROPE, -- established for the duration of the operation only interact: DFOperations.InteractionProc, log: STREAM, clientData: REF ANY, opSpecific: SELECT op: RequestedOp FROM bringOver => [filter: DFOperations.BringOverFilter, action: DFOperations.BringOverAction], sModel => [action: DFOperations.SModelAction], verify => NULL, ENDCASE ]; NotifierProc: TYPE = PROC [queue: Queue, pending: LIST OF Request, clientData: REF ANY]; Create: PROC [priority: Process.Priority _ Process.priorityBackground, idleNotifier: NotifierProc _ NIL, clientData: REF ANY _ NIL] RETURNS [Queue]; <> Empty: PROC [queue: Queue] RETURNS [BOOL]; <> <<>> Abort: PROC [queue: Queue]; <> Enqueue: PROC [queue: Queue, request: Request]; <> <> OpTerminationInteraction: TYPE = RECORD [ op: RequestedOp, dfFile: ROPE, filesActedUpon: INT, errors: INT, warnings: INT ]; <> END.