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-sig.sml
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (view) (download)

1 : monnier 2 (* prim-io-sig.sml
2 :     *
3 :     * COPYRIGHT (c) 1996 AT&T Research.
4 :     * COPYRIGHT (c) 1991 John H. Reppy.
5 :     *
6 :     * This is the CML equivalent of the SMLBL's PRIM_IO signature. The
7 :     * differences are that we use event-valued interfaces instead of
8 :     * non-blocking operations, and that the operations are not optional.
9 :     *)
10 :    
11 :     signature PRIM_IO =
12 :     sig
13 :    
14 :     type 'a event = 'a CML.event
15 :    
16 :     type array
17 :     type vector
18 :     type elem
19 :     eqtype pos
20 :    
21 :     val compare : (pos * pos) -> order
22 :    
23 :     datatype reader = RD of {
24 :     name : string,
25 :     chunkSize : int,
26 :     readVec : int -> vector,
27 :     readArr : {buf : array, i : int, sz : int option} -> int,
28 :     readVecEvt : int -> vector event,
29 :     readArrEvt : {buf : array, i : int, sz : int option} -> int event,
30 :     avail : unit -> int option,
31 :     getPos : (unit -> pos) option,
32 :     setPos : (pos -> unit) option,
33 :     endPos : (unit -> pos) option,
34 :     verifyPos : (unit -> pos) option,
35 :     close : unit -> unit,
36 :     ioDesc : OS.IO.iodesc option
37 :     }
38 :    
39 :     datatype writer = WR of {
40 :     name : string,
41 :     chunkSize : int,
42 :     writeVec : {buf : vector, i : int, sz : int option} -> int,
43 :     writeArr : {buf : array, i : int, sz : int option} -> int,
44 :     writeVecEvt : {buf : vector, i : int, sz : int option} -> int event,
45 :     writeArrEvt : {buf : array, i : int, sz : int option} -> int event,
46 :     getPos : (unit -> pos) option,
47 :     setPos : (pos -> unit) option,
48 :     endPos : (unit -> pos) option,
49 :     verifyPos : (unit -> pos) option,
50 :     close : unit -> unit,
51 :     ioDesc : OS.IO.iodesc option
52 :     }
53 :    
54 :     end;
55 :    

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