signature PRIM_IO
structure BinPrimIO : PRIM_IO where type elem = Word8.t
and type vector = Word8Vector.t
and type array = Word8Array.t
and type vector_slice = Word8VectorSlice.t
and type array_slice = Word8ArraySlice.t
and type pos = Position.t
structure TextPrimIO : PRIM_IO where type elem = Char.t
and type vector = CharVector.t
and type array = CharArray.t
and type vector_slice = CharVectorSlice.t
and type array_slice = CharArraySlice.t
functor PrimIO (structure Vector : MONO_VECTOR
structure Array : MONO_ARRAY
where type elem = Vector.elem
and type vector = Vector.t
structure VectorSlice : MONO_VECTOR_SLICE
where type elem = Vector.elem
and type vector = Vector.t
structure ArraySlice : MONO_ARRAY_SLICE
where type elem = Vector.elem
and type vector = Vector.t
and type array = Array.t
and type vector_slice = VectorSlice.t
val someElem : Vector.elem
eqtype pos
val compare : pos * pos -> order) :
PRIM_IO where type elem = Vector.elem
and type vector = Vector.t
and type array = Array.t
and type vector_slice = VectorSlice.t
and type array_slice = ArraySlice.t
and type pos = pos
The Standard ML Basis' PRIM_IO signature and PrimIO functor.
See also: STREAM_IO, IMPERATIVE_IO, BinIO, TextIO
Imported implicitly.
signature PRIM_IO =
sig
type elem
type vector
type vector_slice
type array
type array_slice
eqtype pos
val compare : pos * pos -> order
datatype reader = RD of
{name : string,
chunkSize : int,
readVec : (int -> vector) option,
readArr : (array_slice -> int) option,
readVecNB : (int -> vector option) option,
readArrNB : (array_slice -> 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 : (vector_slice -> int) option,
writeArr : (array_slice -> int) option,
writeVecNB : (vector_slice -> int option) option,
writeArrNB : (array_slice -> 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 openVectorListRd : vector list -> reader
val openVectorListWr : unit -> vector list * writer
val nullRd : unit -> reader
val nullWr : unit -> writer
val augmentReader : reader -> reader
val augmentWriter : writer -> writer
end
Items not described here are as in the Standard ML Basis' PRIM_IO signature and PrimIO functor.
Creates a reader whose content is the concatenation of the elements from the list l. The list may contain futures, in which case reading will block as soon as the reader has moved to the future position.
Creates a list future l and a writer. The list behaves as a concurrent stream, that is, whenever data is passed to the writer, l is extended by one element containg the respective data as a vector. When the writer is closed, the list's tail will become nil.