Lwt_bytes
Byte arrays
type t =
(char, Stdlib.Bigarray.int8_unsigned_elt, Stdlib.Bigarray.c_layout)
Stdlib.Bigarray.Array1.t
Type of array of bytes.
val create : int -> t
Creates a new byte array of the given size.
val length : t -> int
Returns the length of the given byte array.
val get : t -> int -> char
get buffer offset
returns the byte at offset offset
in buffer
.
val set : t -> int -> char -> unit
get buffer offset value
changes the value of the byte at offset offset
in buffer
to value
.
val of_bytes : bytes -> t
of_bytes buf
returns a newly allocated byte array with the same contents as buf
.
val of_string : string -> t
of_string buf
returns a newly allocated byte array with the same contents as buf
.
val to_bytes : t -> bytes
to_bytes buf
returns newly allocated bytes with the same contents as buf
.
val to_string : t -> string
to_string buf
returns a newly allocated string with the same contents as buf
.
blit buf1 ofs1 buf2 ofs2 len
copies len
bytes from buf1
starting at offset ofs1
to buf2
starting at offset ofs2
.
val blit_from_string : string -> int -> t -> int -> int -> unit
Same as blit
but the first buffer is a String.t
instead of a byte array.
val blit_from_bytes : bytes -> int -> t -> int -> int -> unit
Same as blit
but the first buffer is a Bytes.t
instead of a byte array.
val blit_to_bytes : t -> int -> bytes -> int -> int -> unit
Same as blit
but the second buffer is a Bytes.t
instead of a byte array.
val unsafe_blit_from_bytes : bytes -> int -> t -> int -> int -> unit
Same as Lwt_bytes.blit_from_bytes
but without bounds checking.
val unsafe_blit_from_string : string -> int -> t -> int -> int -> unit
Same as Lwt_bytes.blit_from_string
but without bounds checking.
val unsafe_blit_to_bytes : t -> int -> bytes -> int -> int -> unit
Same 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.
val fill : t -> int -> int -> char -> unit
fill buffer offset length value
puts value
in all length
bytes of buffer
starting at offset offset
.
The following functions behave similarly to the ones in Lwt_unix
, except they use byte arrays instead of Bytes.t
, and they never perform extra copies of the data.
val read : Lwt_unix.file_descr -> t -> int -> int -> int Lwt.t
val write : Lwt_unix.file_descr -> t -> int -> int -> int Lwt.t
val recv :
Lwt_unix.file_descr ->
t ->
int ->
int ->
Unix.msg_flag list ->
int Lwt.t
Not implemented on Windows.
val send :
Lwt_unix.file_descr ->
t ->
int ->
int ->
Unix.msg_flag list ->
int Lwt.t
Not implemented on Windows.
val recvfrom :
Lwt_unix.file_descr ->
t ->
int ->
int ->
Unix.msg_flag list ->
(int * Unix.sockaddr) Lwt.t
Not implemented on Windows.
val sendto :
Lwt_unix.file_descr ->
t ->
int ->
int ->
Unix.msg_flag list ->
Unix.sockaddr ->
int Lwt.t
Not implemented on Windows.
val recv_msg :
socket:Lwt_unix.file_descr ->
io_vectors:io_vector list ->
(int * Unix.file_descr list) Lwt.t
Not implemented on Windows.
val send_msg :
socket:Lwt_unix.file_descr ->
io_vectors:io_vector list ->
fds:Unix.file_descr list ->
int Lwt.t
Not implemented on Windows.
val map_file :
fd:Unix.file_descr ->
?pos:int64 ->
shared:bool ->
?size:int ->
unit ->
t
map_file ~fd ?pos ~shared ?size ()
maps the file descriptor fd
to an array of bytes.
val mapped : t -> bool
mapped 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 -> unit
mincore 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.