2005-06-19 18:31:02 -04:00
|
|
|
! Combine an input and output stream into one, and flush the
|
|
|
|
! stream more often.
|
|
|
|
USING: io kernel ;
|
|
|
|
|
2005-12-16 21:12:35 -05:00
|
|
|
TUPLE: duplex-stream in out ;
|
2005-06-19 18:31:02 -04:00
|
|
|
|
|
|
|
M: duplex-stream stream-flush
|
|
|
|
duplex-stream-out stream-flush ;
|
|
|
|
|
|
|
|
M: duplex-stream stream-readln
|
|
|
|
duplex-stream-in stream-readln ;
|
|
|
|
|
2005-07-17 14:48:55 -04:00
|
|
|
M: duplex-stream stream-read1
|
|
|
|
duplex-stream-in stream-read1 ;
|
|
|
|
|
2005-06-19 18:31:02 -04:00
|
|
|
M: duplex-stream stream-read
|
|
|
|
duplex-stream-in stream-read ;
|
|
|
|
|
2005-07-17 14:48:55 -04:00
|
|
|
M: duplex-stream stream-write1
|
|
|
|
duplex-stream-out stream-write1 ;
|
2005-06-19 18:31:02 -04:00
|
|
|
|
2005-12-16 21:12:35 -05:00
|
|
|
M: duplex-stream stream-write
|
|
|
|
duplex-stream-out stream-write ;
|
|
|
|
|
|
|
|
M: duplex-stream stream-terpri
|
|
|
|
duplex-stream-out stream-terpri ;
|
|
|
|
|
2005-12-19 23:18:15 -05:00
|
|
|
M: duplex-stream stream-terpri*
|
|
|
|
duplex-stream-out stream-terpri* ;
|
|
|
|
|
2005-07-21 21:43:37 -04:00
|
|
|
M: duplex-stream stream-format
|
|
|
|
duplex-stream-out stream-format ;
|
2005-06-19 18:31:02 -04:00
|
|
|
|
2005-12-16 21:12:35 -05:00
|
|
|
M: duplex-stream with-nested-stream
|
|
|
|
duplex-stream-out with-nested-stream ;
|
|
|
|
|
2005-06-19 18:31:02 -04:00
|
|
|
M: duplex-stream stream-close
|
2005-06-23 22:35:41 -04:00
|
|
|
#! The output stream is closed first, in case both streams
|
|
|
|
#! are attached to the same file descriptor, the output
|
|
|
|
#! buffer needs to be flushed before we close the fd.
|
2005-06-23 15:55:17 -04:00
|
|
|
dup
|
2005-06-23 22:35:41 -04:00
|
|
|
duplex-stream-out stream-close
|
|
|
|
duplex-stream-in stream-close ;
|
2005-06-19 18:31:02 -04:00
|
|
|
|
|
|
|
M: duplex-stream set-timeout
|
|
|
|
2dup
|
|
|
|
duplex-stream-in set-timeout
|
|
|
|
duplex-stream-out set-timeout ;
|