PreviousUpNext

15.3.472  src/lib/std/src/io/threadkit-imperative-io.api

## threadkit-imperative-io.api

# Compiled by:
#     src/lib/std/standard.lib



# This extends the SMLBL Imperative_IO interface with mailop-valued operations.

api Threadkit_Imperative_Io {

    #  include 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:  Threadkit_Pure_Io;                # Threadkit_Pure_Io     is from   src/lib/std/src/io/threadkit-pure-io.api
      sharing Vector == pure_io::Vector;
      sharing Element == pure_io::Element;

/*
    get_pos_in:     Input_Stream -> pure_io::in_pos
    set_pos_in:     (Input_Stream * pure_io::in_pos) -> Void
*/
    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;

    input1evt:    Input_Stream -> threadkit::Mailop( Null_Or( Element ) );
    input_nevt:    ((Input_Stream, Int)) -> threadkit::Mailop( Vector );
    input_mailop:     Input_Stream -> threadkit::Mailop( Vector );
    input_all_mailop:  Input_Stream -> threadkit::Mailop( Vector );

};


## COPYRIGHT (c) 1991 John H. Reppy.
## COPYRIGHT (c) 1996 AT&T Research.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2011,
## released under Gnu Public Licence version 3.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext