class['a]
input_engine :(Unix.file_descr -> 'a) -> Unix.file_descr -> float -> Unixqueue.event_system ->
['a]
engine
Generic input engine for reading from a file descriptor:
let e = new input_engine f fd tmo
- Waits until the file descriptor
becomes readable, and calls then let x = f fd
to read from the
descriptor. The result x
is the result of the engine.
If the file descriptor does not become readable within tmo
seconds,
the resulting engine transitions to `Error Timeout
.
Use this class to construct engines reading via Unix.read
or
comparable I/O functions:
let read_engine fd tmo esys =
new input_engine (fun fd ->
let buf = String.create 4096 in
let n = Unix.read fd buf 0 (String.length buf) in
String.sub buf 0 n
)
fd tmo esys
This engine returns the read data as string.
See also Uq_io.input_e
for a more generic way of reading with
engines.