-- Copyright (C) 1981, 1982  by Xerox Corporation. All rights reserved. 
-- Slosh.Mesa, HGM, 22-Nov-81 18:50:02

DIRECTORY
  Stream USING [Handle],
  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: LONG STRING, file: Stream.Handle,
    me: PupAddress, ask: PROCEDURE] RETURNS [RecvStatus];

  SendStatus: TYPE = {ok, neverStarted, troubles};

  SendFile: PROCEDURE [
    who: Window.Handle, fileName: LONG STRING, file: Stream.Handle,
    him: PupAddress] RETURNS [SendStatus];

  RetransmissionInterval: PROCEDURE RETURNS [seconds: CARDINAL];

  END.