home
wiki
classes/clusters list
class information
+
Point of view
WEAK_ARRAY
ANY
FILTER_OUTPUT_STREAM
FILTER
STREAM_HANDLER
WEAK_ARRAY
INTERNALS_HANDLER
All features
deferred class OUTPUT_STREAM
Summary
top
An output stream is a flow of characters that can be written to some destination (be it an Eiffel object or an external object)
Direct parents
inherit list:
STREAM
insert list:
FILTERABLE
,
OUTPUT_STREAM_TOOLS
Known children
inherit list:
FILTER_OUTPUT_STREAM
,
TERMINAL_OUTPUT_STREAM
Overview
top
exported features
put_character
(c:
CHARACTER
)
flush
Flushes the pipe.
can_put_character
(c:
CHARACTER
):
BOOLEAN
detach
Shake off the filter.
event_can_write
:
EVENT_DESCRIPTOR
is_connected
:
BOOLEAN
True if the stream is connected.
disconnect
Try to disconnect the stream.
descriptor
:
INTEGER_32
Some OS-dependent descriptor.
has_descriptor
:
BOOLEAN
True if that stream can be associated to some OS-meaningful descriptor.
can_disconnect
:
BOOLEAN
True if the stream can be safely disconnected (without data loss, etc.)
recycle
Do whatever needs to be done to free resources or recycle other objects when recycling this one
is_filtered
:
BOOLEAN
put_string
(s:
STRING
)
Output
s
to current output device.
put_unicode_string
(unicode_string:
UNICODE_STRING
)
Output the UTF-8 encoding of the
unicode_string
.
put_line
(s:
STRING
)
Output the string followed by a
'%N'
.
To write a number:
put_integer
(i:
INTEGER_64
)
Output
i
to current output device.
put_integer_format
(i:
INTEGER_64
, s:
INTEGER_32
)
Output
i
to current output device using at most
s
character.
put_real
(r:
REAL_64
)
Output
r
to current output device.
put_real_format
(r:
REAL_64
, f:
INTEGER_32
)
Output
r
with only
f
digit for the fractionnal part.
put_real_scientific
(r:
REAL_64
, f:
INTEGER_32
)
Output
r
using the scientific notation with only
f
digit for the fractionnal part.
put_number
(number:
NUMBER
)
Output the
number
.
Other features:
put_boolean
(b:
BOOLEAN
)
Output
b
to current output device according to the Eiffel format.
put_pointer
(p:
POINTER
)
Output a viewable version of
p
.
put_new_line
Output a newline character.
put_spaces
(nb:
INTEGER_32
)
Output
nb
spaces character.
append_file
(file_name:
STRING
)
put_character
(c:
CHARACTER
)
effective procedure
top
require
is_connected
not is_filtered and then can_put_character(c)
flush
effective procedure
top
Flushes the pipe.
If
is_filtered
, calls the filter's
flush
instead.
require
is_connected
can_put_character
(c:
CHARACTER
):
BOOLEAN
deferred function
top
detach
effective procedure
top
Shake off the filter.
ensure
not is_filtered
event_can_write
:
EVENT_DESCRIPTOR
effective function
top
is_connected
:
BOOLEAN
deferred function
top
True if the stream is connected.
Only in that case can data be transfered via this stream.
disconnect
deferred procedure
top
Try to disconnect the stream.
Note that it *does not* ensure that the stream will effectively be disconnected (some terminal streams, for instance, are always connected) but the feature can be used to
"shake off"
filters.
require
is_connected
can_disconnect
descriptor
:
INTEGER_32
effective function
top
Some OS-dependent descriptor.
Mainly used by the sequencer library (see READY_CONDITION).
require
is_connected
has_descriptor
has_descriptor
:
BOOLEAN
effective function
top
True if that stream can be associated to some OS-meaningful descriptor.
require
is_connected
can_disconnect
:
BOOLEAN
deferred function
top
True if the stream can be safely disconnected (without data loss, etc.)
require
is_connected
recycle
effective procedure
top
Do whatever needs to be done to free resources or recycle other objects when recycling this one
require
disconnect_file_after_use:
not
is_connected
ensure
not
is_connected
is_filtered
:
BOOLEAN
deferred function
top
put_string
(s:
STRING
)
effective procedure
top
Output
s
to current output device.
require
is_connected
not
is_filtered
s /= Void
put_unicode_string
(unicode_string:
UNICODE_STRING
)
effective procedure
top
Output the UTF-8 encoding of the
unicode_string
.
require
is_connected
not
is_filtered
unicode_string /= Void
put_line
(s:
STRING
)
effective procedure
top
Output the string followed by a
'%N'
.
%
put_integer
(i:
INTEGER_64
)
frozen
effective procedure
top
Output
i
to current output device.
require
is_connected
not
is_filtered
put_integer_format
(i:
INTEGER_64
, s:
INTEGER_32
)
frozen
effective procedure
top
Output
i
to current output device using at most
s
character.
require
is_connected
not
is_filtered
put_real
(r:
REAL_64
)
effective procedure
top
Output
r
to current output device.
require
is_connected
not
is_filtered
put_real_format
(r:
REAL_64
, f:
INTEGER_32
)
effective procedure
top
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_real_scientific
(r:
REAL_64
, f:
INTEGER_32
)
effective procedure
top
Output
r
using the scientific notation with only
f
digit for the fractionnal part.
Examples:
put_real_scientific(3.519,2) print
"3.16e+00"
.
require
is_connected
not
is_filtered
f >= 0
put_number
(number:
NUMBER
)
effective procedure
top
Output the
number
.
require
is_connected
not
is_filtered
number /= Void
put_boolean
(b:
BOOLEAN
)
effective procedure
top
Output
b
to current output device according to the Eiffel format.
require
is_connected
not
is_filtered
put_pointer
(p:
POINTER
)
effective procedure
top
Output a viewable version of
p
.
require
is_connected
not
is_filtered
put_new_line
effective procedure
top
Output a newline character.
require
is_connected
not
is_filtered
put_spaces
(nb:
INTEGER_32
)
effective procedure
top
Output
nb
spaces character.
require
is_connected
not
is_filtered
nb >= 0
append_file
(file_name:
STRING
)
effective procedure
top
require
is_connected
not
is_filtered
(create {
FILE_TOOLS
}).is_readable(file_name)