Plasma GitLab Archive
Projects Blog Knowledge

Class Uq_engines.input_engine

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.


This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml