DIRECTORY IO, NetworkStream, Rope ; NetworkStreamSupportTCP: CEDAR DEFINITIONS ~ { ROPE: TYPE ~ Rope.ROPE; Milliseconds: TYPE ~ NetworkStream.Milliseconds; AttnType: TYPE ~ NetworkStream.AttentionType; CompletionCode: TYPE ~ INT; successCC: CompletionCode ~ 0; StreamDescriptor: TYPE ~ REF StreamDescriptorObject; StreamDescriptorObject: TYPE; ListenerDescriptor: TYPE ~ REF ListenerDescriptorObject; ListenerDescriptorObject: TYPE; RopeFromCC: PROC [cc: CompletionCode] RETURNS [ROPE]; AtomFromCC: PROC [cc: CompletionCode] RETURNS [ATOM]; FailureCC: PROC [cc: CompletionCode] RETURNS [BOOL] ~ INLINE { RETURN [cc # 0] }; CreateStreamDescriptor: PROC [remote: ROPE, timeout: Milliseconds] RETURNS [cc: CompletionCode, sd: StreamDescriptor]; DestroyStreamDescriptor: PROC [sd: StreamDescriptor, abort: BOOL] RETURNS [cc: CompletionCode]; AddressesFromStreamDescriptor: PROC [sd: StreamDescriptor] RETURNS [cc: CompletionCode, local: ROPE ¬ NIL, remote: ROPE ¬ NIL]; Send: PROC [sd: StreamDescriptor, block: IO.UnsafeBlock] RETURNS [cc: CompletionCode]; SetPutTimeout: PROC [sd: StreamDescriptor, timeout: Milliseconds] RETURNS [cc: CompletionCode]; GetPutTimeout: PROC [sd: StreamDescriptor] RETURNS [cc: CompletionCode, timeout: Milliseconds]; SendAttn: PROC [sd: StreamDescriptor, attnType: AttnType] RETURNS [cc: CompletionCode]; Receive: UNSAFE PROC [sd: StreamDescriptor, block: IO.UnsafeBlock] RETURNS [cc: CompletionCode, nBytesReceived: INT]; SetGetTimeout: PROC [sd: StreamDescriptor, timeout: Milliseconds] RETURNS [cc: CompletionCode]; GetGetTimeout: PROC [sd: StreamDescriptor] RETURNS [cc: CompletionCode, timeout: Milliseconds]; InputReady: PROC [sd: StreamDescriptor, wait: BOOL ¬ FALSE] RETURNS [cc: CompletionCode, inputReady: BOOL]; WaitOOBAttn: PROC [sd: StreamDescriptor, timeout: Milliseconds] RETURNS [cc: CompletionCode, attnType: AttnType]; AtIBAttn: PROC [sd: StreamDescriptor] RETURNS [cc: CompletionCode, atIBAttn: BOOL]; CreateListenerDescriptor: PROC [local: ROPE ¬ NIL] RETURNS [cc: CompletionCode, ld: ListenerDescriptor]; DestroyListenerDescriptor: PROC [ld: ListenerDescriptor] RETURNS [cc: CompletionCode]; AddressFromListenerDescriptor: PROC [ld: ListenerDescriptor] RETURNS [cc: CompletionCode, local: ROPE]; AcceptConnection: PROC [ld: ListenerDescriptor] RETURNS [cc: CompletionCode, sd: StreamDescriptor]; }. Έ NetworkStreamSupportTCP.mesa Copyright Σ 1989, 1991 by Xerox Corporation. All rights reserved. Demers, September 20, 1989 7:28:30 am PDT Types CC Utilities Stream Operations Send blocks until all data has been written, or until timeout. Receive blocks until it can return at least one byte of data, or until timeout. A single receive won't cross an in-band attention that has been waited for using WaitOOBAttn. Listener Operations Κ•NewlineDelimiter –(cedarcode) style™codešœ™Kšœ Οeœ7™BK™)K™—šΟk ˜ Kšžœ˜K˜K˜K˜K˜—šΟnœžœž ˜*K˜head™šžœžœžœ˜K˜—Kšœžœ˜0šœ žœ˜-K˜—Kšœžœžœ˜Kšœ˜K˜Kšœžœžœ˜4Kšœžœ˜K˜Kšœžœžœ˜8Kšœžœ˜—™ KšŸ œžœžœžœ˜5KšŸ œžœžœžœ˜5Kš Ÿ œžœžœžœžœžœ ˜Q—™KšŸœžœ žœžœ,˜všŸœžœžœžœ˜_K˜—šŸœžœžœžœžœ žœžœ˜K˜—KšŸœžœžœžœ˜VKšŸ œžœ/žœ˜_šŸ œžœžœ-˜_K™>K˜—KšŸœžœ,žœ˜WK˜Kš Ÿœžœžœžœžœ&žœ˜uKšŸ œžœ/žœ˜_šŸ œžœžœ-˜_K™OK™]—K˜š Ÿ œžœžœžœžœ"žœ˜kK˜—šŸ œžœ/žœ*˜qK˜—KšŸœžœžœ žœ˜S—™š Ÿœžœ žœžœžœ.˜hK˜—šŸœžœžœ˜VK˜—KšŸœžœžœžœ˜gK˜KšŸœžœžœ,˜c—K˜——…— < ψ