Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/cml/src/IO/prim-io-fn.sml
ViewVC logotype

Annotation of /sml/trunk/src/cml/src/IO/prim-io-fn.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1381 - (view) (download)

1 : monnier 2 (* prim-io-fn.sml
2 :     *
3 :     * COPYRIGHT (c) 1996 AT&T Research.
4 :     * COPYRIGHT (c) 1991 John H. Reppy.
5 :     *
6 :     *)
7 :    
8 :     functor PrimIO (
9 :    
10 :     structure Vector : MONO_VECTOR
11 :     structure Array : MONO_ARRAY
12 : mblume 1381 structure VectorSlice : MONO_VECTOR_SLICE
13 :     structure ArraySlice : MONO_ARRAY_SLICE
14 :     sharing type Vector.vector = Array.vector =
15 :     VectorSlice.vector = ArraySlice.vector
16 :     sharing type Vector.elem = Array.elem =
17 :     VectorSlice.elem = ArraySlice.elem
18 :     sharing type ArraySlice.vector_slice = VectorSlice.slice
19 : monnier 2 val someElem : Vector.elem
20 :     eqtype pos
21 :     val compare : (pos * pos) -> order
22 :    
23 :     ) : PRIM_IO = struct
24 :    
25 :     type 'a event = 'a CML.event
26 :    
27 :     structure A = Array
28 :     structure V = Vector
29 :    
30 :     type elem = A.elem
31 :     type vector = V.vector
32 :     type array = A.array
33 : mblume 1381 type array_slice = ArraySlice.slice
34 :     type vector_slice = VectorSlice.slice
35 : monnier 2 type pos = pos
36 :    
37 :     val compare = compare
38 :    
39 :     datatype reader = RD of {
40 :     name : string,
41 :     chunkSize : int,
42 :     readVec : int -> vector,
43 : mblume 1381 readArr : array_slice -> int,
44 : monnier 2 readVecEvt : int -> vector event,
45 : mblume 1381 readArrEvt : array_slice -> int event,
46 : monnier 2 avail : unit -> int option,
47 :     getPos : (unit -> pos) option,
48 :     setPos : (pos -> unit) option,
49 :     endPos : (unit -> pos) option,
50 :     verifyPos : (unit -> pos) option,
51 :     close : unit -> unit,
52 :     ioDesc : OS.IO.iodesc option
53 :     }
54 :    
55 :     datatype writer = WR of {
56 :     name : string,
57 :     chunkSize : int,
58 : mblume 1381 writeVec : vector_slice -> int,
59 :     writeArr : array_slice -> int,
60 :     writeVecEvt : vector_slice -> int event,
61 :     writeArrEvt : array_slice -> int event,
62 : monnier 2 getPos : (unit -> pos) option,
63 :     setPos : (pos -> unit) option,
64 :     endPos : (unit -> pos) option,
65 :     verifyPos : (unit -> pos) option,
66 :     close : unit -> unit,
67 :     ioDesc : OS.IO.iodesc option
68 :     }
69 :    
70 :     end (* PrimIO *)

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0