ProcsObject:
TYPE ~
RECORD [
destroy: PROC [h: Handle],
sendCallAndReceiveReply: PROC [h: Handle, timeoutMsec: CARD, retries: CARD] ,
receiveAnotherReply: PROC [h: Handle, timeoutMsec: CARD],
releaseReply: PROC [h: Handle],
bytesRemaining: PROC [h: Handle] RETURNS [bytes: CARDINAL],
getByte: PROC [h: Handle] RETURNS [byte: BYTE],
skipBytes: PROC [h: Handle, bytes: CARDINAL],
getAlign: PROC [h: Handle],
getH: PROC [h: Handle] RETURNS [hword: Basics.HWORD],
getF: PROC [h: Handle] RETURNS [fword: Basics.FWORD],
unsafeGetBlock: UNSAFE PROC [h: Handle, block: UnsafeBlock],
getBlock: PROC [h: Handle, block: REF TEXT, startIndex: CARDINAL ¬ 0, count: CARDINAL ¬ CARDINAL.LAST],
putByte: PROC [h: Handle, byte: BYTE],
putAlign: PROC [h: Handle, padValue: BYTE ¬ 0],
putH: PROC [h: Handle, hword: Basics.HWORD],
putF: PROC [h: Handle, fword: Basics.FWORD],
unsafePutBlock: UNSAFE PROC [h: Handle, block: UnsafeBlock],
putBlock: PROC [h: Handle, block: REF READONLY TEXT, startIndex: CARDINAL ¬ 0, count: CARDINAL ¬ CARDINAL.LAST],
prepareForMessage: PROC [h: Handle] -- called from class implementations
];