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 2 - (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 :     sharing type Vector.vector = Array.vector
13 :     sharing type Vector.elem = Array.elem
14 :     val someElem : Vector.elem
15 :     eqtype pos
16 :     val compare : (pos * pos) -> order
17 :    
18 :     ) : PRIM_IO = struct
19 :    
20 :     type 'a event = 'a CML.event
21 :    
22 :     structure A = Array
23 :     structure V = Vector
24 :    
25 :     type elem = A.elem
26 :     type vector = V.vector
27 :     type array = A.array
28 :     type pos = pos
29 :    
30 :     val compare = compare
31 :    
32 :     datatype reader = RD of {
33 :     name : string,
34 :     chunkSize : int,
35 :     readVec : int -> vector,
36 :     readArr : {buf : array, i : int, sz : int option} -> int,
37 :     readVecEvt : int -> vector event,
38 :     readArrEvt : {buf : array, i : int, sz : int option} -> int event,
39 :     avail : unit -> int option,
40 :     getPos : (unit -> pos) option,
41 :     setPos : (pos -> unit) option,
42 :     endPos : (unit -> pos) option,
43 :     verifyPos : (unit -> pos) option,
44 :     close : unit -> unit,
45 :     ioDesc : OS.IO.iodesc option
46 :     }
47 :    
48 :     datatype writer = WR of {
49 :     name : string,
50 :     chunkSize : int,
51 :     writeVec : {buf : vector, i : int, sz : int option} -> int,
52 :     writeArr : {buf : array, i : int, sz : int option} -> int,
53 :     writeVecEvt : {buf : vector, i : int, sz : int option} -> int event,
54 :     writeArrEvt : {buf : array, i : int, sz : int option} -> int event,
55 :     getPos : (unit -> pos) option,
56 :     setPos : (pos -> unit) option,
57 :     endPos : (unit -> pos) option,
58 :     verifyPos : (unit -> pos) option,
59 :     close : unit -> unit,
60 :     ioDesc : OS.IO.iodesc option
61 :     }
62 :    
63 :     end (* PrimIO *)

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