PreviousUpNext

15.3.470  src/lib/std/src/io/threadkit-base-io.api

## threadkit-base-io.api

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


# This is the threadkit equivalent of the
# SML basis library's Base_Io api.
#
# The differences are that we use mailop-valued
# interfaces instead of non-blocking operations,
# and that the operations are not optional.


api Threadkit_Base_Io {
    #
    Mailop(X)   = threadkit::Mailop(X);

    Rw_Vector;
    Vector;
    Element;
    Vector_Slice;
    Rw_Vector_Slice;
    eqtype File_Position;

    compare:  ((File_Position, File_Position)) -> Order;

    Reader = READER  {
        name:              String, 
        chunk_size:        Int,

        read_vector:       Int -> Vector,
        read_rw_vector:    Rw_Vector_Slice -> Int,

        read_vec_mailop:  Int -> Mailop( Vector ),
        read_arr_mailop:  Rw_Vector_Slice -> Mailop( Int ),

        avail:             Void -> Null_Or( Int ),

        get_position:      Null_Or( Void -> File_Position ),
        set_position:      Null_Or( File_Position -> Void ),
        end_position:      Null_Or( Void -> File_Position ),

        verify_position:   Null_Or( Void -> File_Position ),

        close:             Void -> Void,

        io_descriptor:     Null_Or( winix::io::Io_Descriptor )
      };

    Writer = WRITER  {
        name:               String,
        chunk_size:         Int,

        write_vector:       Vector_Slice -> Int,
        write_rw_vector:    Rw_Vector_Slice -> Int,

        write_vec_mailop:     Vector_Slice -> Mailop( Int ),
        write_arr_mailop:  Rw_Vector_Slice -> Mailop( Int ),

        get_position:       Null_Or( Void -> File_Position ),
        set_position:       Null_Or( File_Position -> Void ),
        end_position:       Null_Or( Void -> File_Position ),

        verify_position:    Null_Or( Void -> File_Position ),

        close:              Void -> Void,

        io_descriptor:       Null_Or( winix::io::Io_Descriptor )
      };

};



## 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