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.