package duppy
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Module Duppy.IoSource
Type for markers. * * Split s recognizes all regexp allowed by the * Pcre module.
Type of Bigarray used here.
Different types of failure. * * Io_error is raised when reading or writing * returned 0. This usually means that the socket * was closed.
val read :
?recursive:bool ->
?init:string ->
?on_error:((string * failure) -> unit) ->
?timeout:float ->
priority:'a ->
'a scheduler ->
socket ->
marker ->
((string * string option) -> unit) ->
unitWrapper to perform a read on a socket and trigger a function when * a marker has been detected, or enough data has been read. * It reads recursively on a socket, splitting into strings seperated * by the marker (if any) and calls the given function on the list of strings. * * Can be used recursively or not, depending on the way you process strings. * Because of Unix's semantic, it is not possible to stop reading * at first marker, so there can be a remaining string. If not used * recursively, the second optional argument may contain a remaining * string. You should then initiate the next read with this value. * * The on_error function is used when reading failed on the socket. * Depending on your usage, it can be a hard failure, or simply a lost client. * The string passed to on_error contains data read before error * occured. *
val write :
?exec:(unit -> unit) ->
?on_error:(failure -> unit) ->
?bigarray:bigarray ->
?offset:int ->
?length:int ->
?string:Bytes.t ->
?timeout:float ->
priority:'a ->
'a scheduler ->
socket ->
unitSimilar to read but less complex. * write ?exec ?on_error ?string ?bigarray ~priority scheduler socket * write data from string, or from bigarray if no string is given, * to socket, and executes exec or on_error if errors occured. * * Caveat: on Win32, all file descriptors are expected to be in blocking * mode before being passed to this call due to limitations in the emulation * of the unix/posix API. See code comments for more details. * *