<> <> <> DIRECTORY PupStream USING [PupOpenMode], PupDefs USING [Byte, PupBuffer, Tocks], PupTypes USING [Pair, PupAddress, PupSocketID], Rope USING [ROPE]; PupPktDefs: DEFINITIONS = BEGIN PupPktStream: TYPE = REF PupPktStreamObject; PupPktStreamObject: TYPE; PupPktStreamMake: PROCEDURE [ local: PupTypes.PupSocketID, remote: PupTypes.PupAddress, ticks: PupDefs.Tocks, mode: PupStream.PupOpenMode, id: PupTypes.Pair] RETURNS [PupPktStream]; PupPktStreamDestroy: PROCEDURE [PupPktStream]; PupPktStreamAbort: PROCEDURE [PupPktStream,Rope.ROPE]; Put: PROCEDURE [PupPktStream, PupDefs.PupBuffer]; PutMark: PROCEDURE [PupPktStream, PupDefs.Byte]; Get: PROCEDURE[PupPktStream] RETURNS [PupDefs.PupBuffer];-- if none, wait then return NIL PktsAvailable: PROCEDURE[PupPktStream] RETURNS [BOOLEAN];-- whether "get" wouldn't wait SendAttention: PROCEDURE[PupPktStream]; WaitForAttention: PROCEDURE[PupPktStream]; GetSenderSizeLimit: PROCEDURE[PupPktStream] RETURNS [CARDINAL]; GetLocalAddress: PROCEDURE[PupPktStream] RETURNS [PupTypes.PupAddress]; END.