PreviousUpNext

15.4.1073  src/lib/std/src/io/threadkit-base-io-g.pkg

## threadkit-base-io-g.pkg

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



# This generic is invoked (only) in:
#
#     src/lib/std/src/io/threadkit-binary-base-io.pkg
#     src/lib/std/src/io/threadkit-text-base-io.pkg
#
generic package   threadkit_base_io_g   (
    #             ===================
    #
    package vector:           Typelocked_Vector;                # Typelocked_Vector             is from   src/lib/std/src/typelocked-vector.api
    package rw_vector:        Typelocked_Rw_Vector;             # Typelocked_Rw_Vector          is from   src/lib/std/src/typelocked-rw-vector.api
    package vector_slice:     Typelocked_Vector_Slice;          # Typelocked_Vector_Slice       is from   src/lib/std/src/typelocked-vector-slice.api
    package rw_vector_slice:  Typelocked_Rw_Vector_Slice;       # Typelocked_Rw_Vector_Slice    is from   src/lib/std/src/typelocked-rw-vector-slice.api

    sharing vector::Vector == rw_vector::Vector ==
                   vector_slice::Vector == rw_vector_slice::Vector;

    sharing vector::Element == rw_vector::Element ==
                   vector_slice::Element == rw_vector_slice::Element;

    sharing rw_vector_slice::Vector_Slice == vector_slice::Slice;

    some_element:  vector::Element;

     eqtype File_Position;

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

  )

: (weak)  Threadkit_Base_Io                     # Threadkit_Base_Io     is from   src/lib/std/src/io/threadkit-base-io.api

{
    Mailop(X)
        =
        threadkit::Mailop(X);

    package a = rw_vector;                      # rw_vector     is from   src/lib/std/src/rw-vector.pkg
    package v =    vector;                      # vector        is from   src/lib/std/src/vector.pkg

    Element = a::Element;
    Vector  = v::Vector;
    Rw_Vector       = a::Rw_Vector;
    Rw_Vector_Slice = rw_vector_slice::Slice;
    Vector_Slice    = vector_slice::Slice;
    File_Position   = File_Position;

    compare = compare;

    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 ),

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

          close:              Void -> Void,
          io_descriptor:      Null_Or( winix::io::Io_Descriptor )
        };

};              #  base_io 



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