-- This file is free software, which comes along with SmartEiffel. This -- software is distributed in the hope that it will be useful, but WITHOUT -- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -- FITNESS FOR A PARTICULAR PURPOSE. You can modify it as you want, provided -- this header is kept unaltered, and a notification of the changes is added. -- You are allowed to redistribute it and sell it, alone or as a part of -- another product. -- Copyright (C) 1994-2002 LORIA - INRIA - U.H.P. Nancy 1 - FRANCE -- Dominique COLNET and Suzanne COLLIN - SmartEiffel@loria.fr -- http://SmartEiffel.loria.fr -- class STD_OUTPUT -- -- To use the standard output file. As for UNIX, the default standard -- output is the screen. -- -- Notes: - the predefined `std_output' should be use to have only one instance -- of the class STD_OUTPUT, -- - to do reading or writing at the same time on the screen, -- see STD_INPUT_OUTPUT, -- inherit OUTPUT_STREAM creation make feature is_connected: BOOLEAN is true feature make is do buffer := buffer.calloc(4096) capacity := 4096 end feature put_character(c: CHARACTER) is do if buffer_position >= 4096 then write_buffer end buffer.put(c, buffer_position) buffer_position := buffer_position + 1 if c = '%N' then write_buffer end end flush is do if buffer_position > 0 then write_buffer end basic_io_flush(basic_io_stdout) end feature {STD_INPUT} buffer_position: INTEGER feature {NONE} buffer: NATIVE_ARRAY[CHARACTER] capacity: INTEGER write_buffer is do if buffer_position > 0 then basic_io_fwrite(buffer, buffer_position, basic_io_stdout) buffer_position := 0 end end basic_io_stdout: POINTER is external "SmartEiffel" end end -- STD_OUTPUT