class STD_CHANS
****

________This_class_comprises_the_three_standard_program_import/export
___channels_--_stdin,_stdout,_stderr_in_C_parlance.

________Although_in_Sather_terms_it_does_not_derive_from_the_$FILES_abstract
___class,_it_bears_a_similar relationship_to_the_program,_being_used
___to_specify_operations_employed_in_the_three_subordinate_classes_--_IN,
___OUT_and_ERR!




Public


Readable Attributes
attr chan : REFERENCE ;
**** The channel identifier
attr read_line_mark : BOOL ;
**** for use by the IN class.

Writable Attributes
attr read_line_mark : BOOL ;
**** for use by the IN class.

Features
flush
****
________This_routine_ensures_that_any_buffering_of_the_operating_system
___channels_is_emptied_--_out_for_stdout_and_stderr_and_emptying_for
___stdin.
plus(item : CHAR)
****
________This_routine_appends_the_given_item_(taken_to_be_in_the_given
___repertoire_and_encoding)_to_the_current_channel.
plus(item : CHAR,lib : LIBCHARS)
****
________This_routine_appends_the_given_item_(taken_to_be_in_the_given
___repertoire_and_encoding)_to_the_current_channel.
plus(item : FSTR)
****
________This_routine_appends_the_given_item_to_the_current_channel.
___Note_the_special_handling_of_the_void_string_at_the_beginning!
plus(item : STR)
****
________This_routine_appends_the_given_item_to_the_current_channel.
___Note_the_special_handling_of_the_void_string_at_the_beginning!
stderr : SAME
****
________This_routine_creates_a_new_object_for_the_standard_error_channel.
stdin : SAME
****
________This_routine_creates_a_new_object_for_the_standard_input_channel.
stdout : SAME
****
________This_routine_creates_a_new_object_for_the_standard_output_channel.


Private

append(item : STR)
****
________This_routine_handles_both_the_FSTR_and_STR_cases_below
attr chan : REFERENCE ;
**** The channel identifier
attr chan_id : SYS_CHANS ;
attr chan_id : SYS_CHANS ;
stderr_macro : REFERENCE
stdin_macro : REFERENCE
stdout_macro : REFERENCE

The Sather Home Page