deferred class interface TERMINAL_OUTPUT_STREAM
--
-- A "terminal" output stream is an output stream connected to a "real" character flow. There are many kinds
-- of "real" data flows:
-- + a file
-- + a string
-- + a virtual flow, such as a null-provider
-- + . . .
--
feature(s) from STREAM
is_connected: BOOLEAN
disconnect
require
is_connected
ensure
filter = Void
is_filtered: BOOLEAN
detach
ensure
not is_filtered
feature(s) from OUTPUT_STREAM
put_character (c: CHARACTER)
require
is_connected;
not is_filtered and then can_put_character(c)
flush
-- Flushes the pipe. If is_filtered, calls the filter's
-- flush instead.
require
is_connected
can_put_character (c: CHARACTER): BOOLEAN
feature(s) from OUTPUT_STREAM
put_string (s: STRING)
-- Output s to current output device.
require
is_connected;
not is_filtered;
s /= Void
put_unicode_string (unicode_string: UNICODE_STRING)
-- Output the UTF-8 encoding of the unicode_string.
require
is_connected;
not is_filtered;
unicode_string /= Void
feature(s) from OUTPUT_STREAM
-- To write a number:
put_integer (i: INTEGER_64)
-- Output i to current output device.
require
is_connected;
not is_filtered
put_integer_format (i: INTEGER_64; s: INTEGER)
-- Output i to current output device using at most s character.
require
is_connected;
not is_filtered
put_real (r: REAL)
-- Output r to current output device.
require
is_connected;
not is_filtered
put_real_format (r: REAL; f: INTEGER)
-- Output r with only f digit for the fractionnal part.
-- Examples:
-- put_real(3.519,2) print "3.51".
require
is_connected;
not is_filtered;
f >= 0
put_double (d: DOUBLE)
-- Output d to current output device.
require
is_connected;
not is_filtered
put_double_format (d: DOUBLE; f: INTEGER)
-- Output d with only f digit for the fractionnal part.
-- Examples:
-- put_double(3.519,2) print "3.51".
require
is_connected;
not is_filtered;
f >= 0
put_number (number: NUMBER)
-- Output the number.
require
is_connected;
not is_filtered;
number /= Void
feature(s) from OUTPUT_STREAM
-- Other features:
put_boolean (b: BOOLEAN)
-- Output b to current output device according
-- to the Eiffel format.
require
is_connected;
not is_filtered
put_pointer (p: POINTER)
-- Output a viewable version of p.
require
is_connected;
not is_filtered
put_new_line
-- Output a newline character.
require
is_connected;
not is_filtered
put_spaces (nb: INTEGER)
-- Output nb spaces character.
require
is_connected;
not is_filtered;
nb >= 0
append_file (file_name: STRING)
require
is_connected;
not is_filtered;
file_exists(file_name)
end of deferred TERMINAL_OUTPUT_STREAM