alice
library
manual.

Alice Project

The PRIM_IO signature


________ Synopsis ____________________________________________________

    signature PRIM_IO
    structure BinPrimIO : PRIM_IO where type array  = Word8Array.t
    				    and type vector = Word8Vector.t
				    and type elem   = Word8.t
				    and type pos    = Position.t
    structure TextPrimIO : PRIM_IO where type array = CharArray.t
    				    and type vector = CharVector.t
				    and type elem   = Char.t
    functor PrimIO (structure V :  MONO_VECTOR
                    structure A :  MONO_ARRAY where Vector = V
		    val someElem : V.elem
		    eqtype pos
		    val compare :  pos * pos -> order) :
	    PRIM_IO where type elem   = V.elem
	              and type vector = V.t
		      and type array  = A.t
		      and type pos    = pos
  

The Standard ML Basis' PRIM_IO signature and PrimIO functor.

See also: STREAM_IO, IMPERATIVE_IO, BinIO, TextIO


________ Import ______________________________________________________

Imported implicitly.


________ Interface ___________________________________________________

    signature PRIM_IO =
    sig
	type elem
	type vector
	type array

	eqtype pos
	val compare : pos * pos -> order

	datatype reader = RD of
	    {name :       string,
	     chunkSize :  int,
	     readVec :    (int -> vector) option,
	     readArr :    ({buf: array, i: int, sz: int option} -> int) option,
	     readVecNB :  (int -> vector option) option,
	     readArrNB :  ({buf: array, i: int, sz: int option} -> int option) option,
	     block :      (unit -> unit) option,
	     canInput :   (unit -> bool) option,
	     avail :      unit -> int option,
	     getPos :     (unit -> pos) option,
	     setPos :     (pos -> unit) option,
	     endPos :     (unit -> pos) option,
	     verifyPos :  (unit -> pos) option,
	     close :      unit -> unit,
	     ioDesc :     OS.IO.iodesc option}

	datatype writer = WR of
	    {name :       string,
	     chunkSize :  int,
	     writeVec :   ({buf: vector, i: int, sz: int option} -> int) option,
	     writeArr :   ({buf: array,  i: int, sz: int option} -> int) option,
	     writeVecNB : ({buf: vector, i: int, sz: int option} -> int option) option,
	     writeArrNB : ({buf: array,  i: int, sz: int option} -> int option) option,
	     block :      (unit -> unit) option,
	     canOutput :  (unit -> bool) option,
	     getPos :     (unit -> pos) option,
	     setPos :     (pos -> unit) option,
	     endPos :     (unit -> pos) option,
	     verifyPos :  (unit -> pos) option,
	     close :      unit -> unit,
	     ioDesc :     OS.IO.iodesc option}

	val openVector :    vector -> reader
	val nullRd :        unit -> reader
	val nullWr :        unit -> writer
	val augmentReader : reader -> reader
	val augmentWriter : writer -> writer
    end
  

________ Description _________________________________________________

Like the Standard ML Basis' PRIM_IO signature and PrimIO functor.



last modified 1970/01/01 01:00