PreviousUpNext

15.3.464  src/lib/std/src/io/imperative-io.api

## imperative-io.api

# Compiled by:
#     src/lib/std/src/standard-core.sublib

# Included by:
#     src/lib/std/src/io/binary-io.api


api   Imperative_Io {
    #
    Vector;
    Element;

    Input_Stream;
    Output_Stream;

    read:            Input_Stream -> Vector;
    read_one:        Input_Stream -> Null_Or( Element );
    read_n:         (Input_Stream, Int) -> Vector;
    read_all:        Input_Stream -> Vector;
    can_read:       (Input_Stream, Int) -> Null_Or( Int );
    lookahead:       Input_Stream -> Null_Or( Element );
    close_input:     Input_Stream -> Void;
    end_of_stream:   Input_Stream -> Bool;

    write:           (Output_Stream, Vector ) -> Void;
    write_one:       (Output_Stream, Element) -> Void;
    flush:            Output_Stream -> Void;
    close_output:     Output_Stream -> Void;

    package pure_io:  Pure_Io;                                  # Pure_Io       is from   src/lib/std/src/io/pure-io.api
      sharing Vector  == pure_io::Vector;
      sharing Element == pure_io::Element;

    make_instream:     pure_io::Input_Stream -> Input_Stream;
    get_instream:               Input_Stream -> pure_io::Input_Stream;
    set_instream:              (Input_Stream, pure_io::Input_Stream) -> Void;

    get_output_position:         Output_Stream -> pure_io::Out_Position;
    set_output_position:        (Output_Stream, pure_io::Out_Position) -> Void;
    make_outstream:     pure_io::Output_Stream -> Output_Stream;
    get_outstream:               Output_Stream -> pure_io::Output_Stream;
    set_outstream:              (Output_Stream, pure_io::Output_Stream) -> Void;
};



## COPYRIGHT (c) 1995 AT&T Bell Laboratories.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2011,
## released under Gnu Public Licence version 3.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext