-
Notifications
You must be signed in to change notification settings - Fork 15
/
channel.mli
150 lines (139 loc) · 5.19 KB
/
channel.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
(***********************************************************************)
(* channel.mli - A generic, object-based channel interface for binary *)
(* input/output *)
(* *)
(* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, *)
(* 2011, 2012, 2013 Yaron Minsky and Contributors *)
(* *)
(* This file is part of SKS. SKS is free software; you can *)
(* redistribute it and/or modify it under the terms of the GNU General *)
(* Public License as published by the Free Software Foundation; either *)
(* version 2 of the License, or (at your option) any later version. *)
(* *)
(* This program is distributed in the hope that it will be useful, but *)
(* WITHOUT ANY WARRANTY; without even the implied warranty of *)
(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *)
(* General Public License for more details. *)
(* *)
(* You should have received a copy of the GNU General Public License *)
(* along with this program; if not, write to the Free Software *)
(* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *)
(* USA or see <http://www.gnu.org/licenses/>. *)
(***********************************************************************)
class virtual out_channel_obj :
object
method upcast : out_channel_obj
method virtual write_byte : int -> unit
method virtual write_char : char -> unit
method write_float : float -> unit
method write_int : int -> unit
method write_int32 : int32 -> unit
method write_int64 : int64 -> unit
method virtual write_string : string -> unit
method virtual write_string_pos :
buf:string -> pos:int -> len:int -> unit
end
class virtual in_channel_obj :
object
method virtual read_byte : int
method virtual read_char : char
method read_float : float
method read_int : int
method read_int32 : int32
method read_int64 : int64
method read_int64_size : int -> int64
method read_int_size : int -> int
method virtual read_string : int -> string
method virtual read_string_pos : buf:bytes -> pos:int -> len:int -> unit
method upcast : in_channel_obj
end
(******************************************************************)
class sys_out_channel :
out_channel ->
object
method close : unit
method fd : Unix.file_descr
method flush : unit
method outchan : out_channel
method skip : int -> unit
method upcast : out_channel_obj
method write_buf : Buffer.t -> unit
method write_byte : int -> unit
method write_char : char -> unit
method write_float : float -> unit
method write_int : int -> unit
method write_int32 : int32 -> unit
method write_int64 : int64 -> unit
method write_string : string -> unit
method write_string_pos : buf:string -> pos:int -> len:int -> unit
end
class sys_in_channel :
in_channel ->
object
method close : unit
method fd : Unix.file_descr
method inchan : in_channel
method read_all : string
method read_byte : int
method read_char : char
method read_float : float
method read_int : int
method read_int32 : int32
method read_int64 : int64
method read_int64_size : int -> int64
method read_int_size : int -> int
method read_string : int -> string
method read_string_pos : buf:bytes -> pos:int -> len:int -> unit
method upcast : in_channel_obj
end
class buffer_out_channel :
Buffer.t ->
object
method buffer_nocopy : Buffer.t
method contents : string
method upcast : out_channel_obj
method write_byte : int -> unit
method write_char : char -> unit
method write_float : float -> unit
method write_int : int -> unit
method write_int32 : int32 -> unit
method write_int64 : int64 -> unit
method write_string : string -> unit
method write_string_pos : buf:string -> pos:int -> len:int -> unit
end
class string_in_channel :
string ->
int ->
object
method read_byte : int
method read_char : char
method read_float : float
method read_int : int
method read_int32 : int32
method read_int64 : int64
method read_int64_size : int -> int64
method read_int_size : int -> int
method read_string : int -> string
method read_string_pos : buf:bytes -> pos:int -> len:int -> unit
method read_rest : string
method skip : int -> unit
method upcast : in_channel_obj
val mutable pos : int
end
(*******************************************************************)
val new_buffer_outc : int -> buffer_out_channel
val sys_out_from_fd : Unix.file_descr -> sys_out_channel
val sys_in_from_fd : Unix.file_descr -> sys_in_channel
(*
class nonblocking_reader :
Unix.file_descr ->
object
method read : string_in_channel option
end
class nonblocking_writer :
Unix.file_descr ->
object
method set_data : string -> unit
method write : bool
end
*)