deferred class BINARY_OUTPUT_STREAM
Summary
A binary output stream is an output stream that is binary safe (meaning that, except for failure modes, you can read back the very same sequence of bytes you wrote to that stream)
Direct parents
Inherit list: OUTPUT_STREAM
Known children
Inherit list: BINARY_FILE_WRITE
Overview
Features
{ANY}
{ANY}
{FILTER_OUTPUT_STREAM}
{FILTER}
{ANY}
{}
{ANY}
{}
{STREAM_HANDLER}
{FILTER}
{ANY}
{}
{RECYCLING_POOL}
  • recycle
    Do whatever needs to be done to free resources or recycle other objects when recycling this one
{}
  • dispose
    Action to be executed just before garbage collection reclaims an object.
{}
{ANY}
{ABSTRACT_STRING}
{ANY}
To write a number:
{ANY}
Other features:
{ANY}
{}
{}
{FILTER}
put_byte (byte: INTEGER_32)
deferred procedure
{ANY}
require
put_integer_16_native_endian (i: INTEGER_16)
deferred procedure
{ANY}
Write in the same order as the machine running this code.
The result is machine dependant.
require
put_integer_16_big_endian (i: INTEGER_16)
deferred procedure
{ANY}
Write i in big endian mode.
The result is machine independent.
require
put_integer_16_little_endian (i: INTEGER_16)
deferred procedure
{ANY}
Write i in little endian mode.
The result is machine independent.
require
put_integer_32_native_endian (i: INTEGER_32)
deferred procedure
{ANY}
Write in the same order as the machine running this code.
The result is machine dependant.
require
put_integer_32_big_endian (i: INTEGER_32)
deferred procedure
{ANY}
Write i in big endian mode.
The result is machine independent.
require
put_integer_32_little_endian (i: INTEGER_32)
deferred procedure
{ANY}
Write i in little endian mode.
The result is machine independent.
require
put_character (c: CHARACTER)
effective procedure
{ANY}
require
  • is_connected
  • not is_filtered and then can_put_character(c)
flush
effective procedure
{ANY}
Flushes the pipe.
If is_filtered, calls the filter's flush instead.
require
  • is_connected
can_put_character (c: CHARACTER): BOOLEAN
deferred function
{ANY}
detach
effective procedure
{ANY}
Shake off the filter.
ensure
  • not is_filtered
filtered_put_character (c: CHARACTER)
deferred procedure
filtered_flush
deferred procedure
require
writable attribute
The filter that uses this stream as backend
event_can_write: EVENT_DESCRIPTOR
effective function
{ANY}
writable attribute
{}
new_url: URL
effective function
{}
ensure
  • Result /= Void
as_output_stream: OUTPUT_STREAM
effective function
{}
ensure
  • yes_indeed_it_is_the_same_object: Result.to_pointer = to_pointer
is_connected: BOOLEAN
deferred function
{ANY}
True if the stream is connected.
Only in that case can data be transferred via this stream.
disconnect
deferred procedure
{ANY}
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
descriptor: INTEGER_32
effective function
{ANY}
Some OS-dependent descriptor.
Mainly used by the sequencer library (see READY_CONDITION).
require
has_descriptor: BOOLEAN
effective function
{ANY}
True if that stream can be associated to some OS-meaningful descriptor.
require
can_disconnect: BOOLEAN
deferred function
{ANY}
True if the stream can be safely disconnected (without data loss, etc.)
require
url: URL
frozen
effective function
{ANY}
The URL to this stream as resource
ensure
  • not_void: Result /= Void
  • always_the_same: Result = url
url_memory: URL
writable attribute
{}
stream_pointer: POINTER
effective function
Some Back-end-dependent pointer (FILE* in C, InputStream or OutputStream in Java)
has_stream_pointer: BOOLEAN
effective function
True if that stream can be associated to some Back-end-meaningful stream pointer.
require
filtered_descriptor: INTEGER_32
deferred function
Find the descriptor of the terminal stream...
Filters do not have descriptors of their own
require
filtered_has_descriptor: BOOLEAN
deferred function
True if the underlying terminal stream has a descriptor
require
filtered_stream_pointer: POINTER
deferred function
Find the pointer of the terminal stream...
Filters do not have pointers of their own
require
filtered_has_stream_pointer: BOOLEAN
deferred function
True if the underlying terminal stream has a pointer
require
event_exception: EVENT_DESCRIPTOR
effective function
{ANY}
stream_exception: STREAM_EXCEPTION
writable attribute
{}
recycle
effective procedure
Do whatever needs to be done to free resources or recycle other objects when recycling this one
dispose
effective procedure
{}
Action to be executed just before garbage collection reclaims an object.
sequencer_descriptor (file: POINTER): INTEGER_32
{}
is_filtered: BOOLEAN
deferred function
{ANY}
put_natively_stored_string (s: NATIVELY_STORED_STRING)
effective procedure
require
  • s /= Void
put_abstract_string (s: ABSTRACT_STRING)
effective procedure
require
  • s /= Void
put_string (s: ABSTRACT_STRING)
effective procedure
{ANY}
Output s to current output device.
require
put_unicode_string (unicode_string: UNICODE_STRING)
effective procedure
{ANY}
Output the UTF-8 encoding of the unicode_string.
require
put_line (s: ABSTRACT_STRING)
effective procedure
{ANY}
Output the string followed by a '%N'.
%
put_integer (i: INTEGER_64)
frozen
effective procedure
{ANY}
Output i to current output device.
put_integer_format (i: INTEGER_64, s: INTEGER_32)
frozen
effective procedure
{ANY}
Output i to current output device using at most s character.
put_natural_8 (n: NATURAL_8)
frozen
effective procedure
{ANY}
Output n to current output device.
put_natural_8_format (n: NATURAL_8, s: INTEGER_32)
frozen
effective procedure
{ANY}
Output n to current output device using at most s character.
put_natural_16 (n: NATURAL_16)
frozen
effective procedure
{ANY}
Output n to current output device.
put_natural_16_format (n: NATURAL_16, s: INTEGER_32)
frozen
effective procedure
{ANY}
Output n to current output device using at most s character.
put_natural_32 (n: NATURAL_32)
frozen
effective procedure
{ANY}
Output n to current output device.
put_natural_32_format (n: NATURAL_32, s: INTEGER_32)
frozen
effective procedure
{ANY}
Output n to current output device using at most s character.
put_natural_64 (n: NATURAL_64)
frozen
effective procedure
{ANY}
Output n to current output device.
put_natural_64_format (n: NATURAL_64, s: INTEGER_32)
frozen
effective procedure
{ANY}
Output n to current output device using at most s character.
put_real (r: REAL_64)
effective procedure
{ANY}
Output r to current output device.
put_real_format (r: REAL_64, f: INTEGER_32)
effective procedure
{ANY}
Output r with only f digit for the fractional part.
Examples:
   put_real(3.519,2) print "3.51".
require
put_real_scientific (r: REAL_64, f: INTEGER_32)
effective procedure
{ANY}
Output r using the scientific notation with only f digit for the fractional part.
Examples:
   put_real_scientific(3.519,2) print "3.16e+00".
require
put_number (number: NUMBER)
effective procedure
{ANY}
Output the number.
require
put_boolean (b: BOOLEAN)
effective procedure
{ANY}
Output b to current output device according to the Eiffel format.
put_pointer (p: POINTER)
effective procedure
{ANY}
Output a viewable version of p.
put_new_line
effective procedure
{ANY}
Output a newline character.
put_spaces (nb: INTEGER_32)
effective procedure
{ANY}
Output nb spaces character.
require
append_file (file_name: STRING)
effective procedure
{ANY}
require
tmp_file_read: TEXT_FILE_READ
once function
{}
tmp_string: STRING
once function
{}
io_putc (byte: CHARACTER, stream: POINTER)
{}
io_fwrite (buf: NATIVE_ARRAY[CHARACTER], size: INTEGER_32, stream: POINTER): INTEGER_32
{}
io_flush (stream: POINTER)
{}
set_filter (a_filter: FILTER)
effective procedure
Used by the filter itself to get attached
require
  • a_filter /= Void
ensure