package lwt
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=699af62f5ae7d0c19d0b9cc453937e08bc04853e2ff0895e15e86eb3df32d23d
md5=1a72b5ae4245707c12656632a25fc18c
doc/lwt.unix/Lwt_bytes/index.html
Module Lwt_bytes
Byte arrays
type t =
(char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.tType of array of bytes.
val create : int -> tCreates a new byte array of the given size.
val length : t -> intReturns the length of the given byte array.
Access
val get : t -> int -> charget buffer offset returns the byte at offset offset in buffer.
val set : t -> int -> char -> unitget buffer offset value changes the value of the byte at offset offset in buffer to value.
Conversions
val of_bytes : bytes -> tof_bytes buf returns a newly allocated byte array with the same contents as buf.
val of_string : string -> tof_string buf returns a newly allocated byte array with the same contents as buf.
val to_bytes : t -> bytesto_bytes buf returns newly allocated bytes with the same contents as buf.
val to_string : t -> stringto_string buf returns a newly allocated string with the same contents as buf.
Copying
blit buf1 ofs1 buf2 ofs2 len copies len bytes from buf1 starting at offset ofs1 to buf2 starting at offset ofs2.
val blit_from_bytes : bytes -> int -> t -> int -> int -> unitSame as blit but the first buffer is a string instead of a byte array.
val blit_to_bytes : t -> int -> bytes -> int -> int -> unitSame as blit but the second buffer is a string instead of a byte array.
val unsafe_blit_from_bytes : bytes -> int -> t -> int -> int -> unitSame as Lwt_bytes.blit_from_bytes but without bounds checking.
val unsafe_blit_to_bytes : t -> int -> bytes -> int -> int -> unitSame as Lwt_bytes.blit_to_bytes but without bounds checking.
proxy buffer offset length creates a ``proxy''. The returned byte array share the data of buffer but with different bounds.
extract buffer offset length creates a new byte array of length length and copy the length bytes of buffer at offset into it.
Filling
val fill : t -> int -> int -> char -> unitfill buffer offset length value puts value in all length bytes of buffer starting at offset offset.
IOs
The following functions behave similarly to the ones in Lwt_unix, except they use byte arrays instead of strings, and they never perform extra copies of the data.
val read : Lwt_unix.file_descr -> t -> int -> int -> int Lwt.tval write : Lwt_unix.file_descr -> t -> int -> int -> int Lwt.tval recv :
Lwt_unix.file_descr ->
t ->
int ->
int ->
Unix.msg_flag list ->
int Lwt.tNot implemented on Windows.
val send :
Lwt_unix.file_descr ->
t ->
int ->
int ->
Unix.msg_flag list ->
int Lwt.tNot implemented on Windows.
val recvfrom :
Lwt_unix.file_descr ->
t ->
int ->
int ->
Unix.msg_flag list ->
(int * Unix.sockaddr) Lwt.tNot implemented on Windows.
val sendto :
Lwt_unix.file_descr ->
t ->
int ->
int ->
Unix.msg_flag list ->
Unix.sockaddr ->
int Lwt.tNot implemented on Windows.
val recv_msg :
socket:Lwt_unix.file_descr ->
io_vectors:io_vector list ->
(int * Unix.file_descr list) Lwt.tNot implemented on Windows.
val send_msg :
socket:Lwt_unix.file_descr ->
io_vectors:io_vector list ->
fds:Unix.file_descr list ->
int Lwt.tNot implemented on Windows.
Memory mapped files
val map_file :
fd:Unix.file_descr ->
?pos:int64 ->
shared:bool ->
?size:int ->
unit ->
tmap_file ~fd ?pos ~shared ?size () maps the file descriptor fd to an array of bytes.
val mapped : t -> boolmapped buffer returns true iff buffer is a memory mapped file.
Type of advise that can be sent to the kernel by the program. See the manual madvise(2) for a description of each.
madvise buffer pos len advice advises the kernel how the program will use the memory mapped file between pos and pos + len.
This call is not available on windows.
val mincore : t -> int -> bool array -> unitmincore buffer offset states tests whether the given pages are in the system memory (the RAM). The offset argument must be a multiple of page_size. states is used to store the result; each cases is true if the corresponding page is in RAM and false otherwise.
This call is not available on windows and cygwin.