-- File: Slosh.Mesa, Last Edit: HGM December 20, 1980 12:25 PM
DIRECTORY
File USING [Capability],
Window USING [Handle],
PupTypes USING [PupAddress];
Slosh: DEFINITIONS =
BEGIN
PupAddress: TYPE = PupTypes.PupAddress;
RecvStatus: TYPE = MACHINE DEPENDENT{
-- strange values used by GateControl
statusFileNameRejected(2), statusContentsRejected(4),
-- by a local checker procedure
statusFileClobbered(6), -- ran out of disk space on copy
statusDiskFull(8), -- disk full before copy
statusEFTPFailed(177775B), statusStoreInProgress(177776B),
statusStoreOk(177777B)};
-- Other values are ok too. ERROR codes are convient for uniqueness.
RecvFile: PROCEDURE [
who: Window.Handle, fileName, scratch: STRING, file: File.Capability,
-- NIL if new
me: PupAddress, ask: PROCEDURE] RETURNS [RecvStatus];
SendStatus: TYPE = {ok, neverStarted, troubles};
SendFile: PROCEDURE [
who: Window.Handle, fileName: STRING, file: File.Capability, him: PupAddress]
RETURNS [SendStatus];
Why: TYPE = {check, release, arrived, failed};
AddProcs: PROCEDURE [proc: PROCEDURE [Why, STRING, File.Capability]];
Check: PROCEDURE [STRING, File.Capability];
RejectThisTrash: ERROR [text: STRING];
Release: PROCEDURE [STRING, File.Capability];
Arrived: PROCEDURE [STRING, File.Capability];
Failed: PROCEDURE [STRING, File.Capability];
CopyFile: PROCEDURE [to, from: File.Capability] RETURNS [result: RecvStatus];
RetransmissionInterval: PROCEDURE RETURNS [seconds: CARDINAL];
END.