-- File: EFTPDefs.mesa, Last Edit: HGM September 29, 1980 12:49 AM
DIRECTORY
Rope USING [ROPE],
PupTypes USING [PupAddress];
EFTPDefs: DEFINITIONS =
BEGIN OPEN PupTypes;
-- several places
EFTPTimeOut: SIGNAL; -- RESUME to keep trying
-- send half
EFTPOpenForSending: PROCEDURE [who: PupAddress, waitForAck: BOOLEAN ← TRUE];
EFTPAlreadySending: ERROR;
EFTPSendBlock: PROCEDURE [LONG POINTER, CARDINAL];
EFTPNotSending: ERROR;
EFTPTroubleSending: ERROR [e: EFTPAbortCode, s: Rope.ROPE];
EFTPAbortSending: PROCEDURE [STRING];
EFTPFinishSending: PROCEDURE;
-- receive half
EFTPOpenForReceiving: PROCEDURE [PupAddress] RETURNS [PupAddress];
EFTPAlreadyReceiving: ERROR;
EFTPGetBlock: PROCEDURE [LONG POINTER, CARDINAL] RETURNS [CARDINAL];
EFTPNotReceiving: ERROR;
EFTPTroubleReceiving: ERROR [e: EFTPAbortCode, s: Rope.ROPE];
EFTPEndReceiving: ERROR;
EFTPAbortReceiving: PROCEDURE [STRING];
EFTPFinishReceiving: PROCEDURE;
EFTPSetRecvTimeout: PROCEDURE [ms: CARDINAL];
EFTPSetSendTimeout: PROCEDURE [ms, tries: CARDINAL];
EFTPAbortCode: TYPE = MACHINE DEPENDENT{
eftpOK(0), -- pseudo code
eftpExternalSenderAbort(1), eftpExternalReceiverAbort(2),
eftpReceiverBusyAbort(3), eftpOutOfSyncAbort(4), eftpRejected(1001)};
-- pseudo code
END.