Module Lwt_bytesSource

Byte arrays

Type of array of bytes.

Sourceval create : int -> t

Creates a new byte array of the given size.

Sourceval length : t -> int

Returns the length of the given byte array.

Access

Sourceval get : t -> int -> char

get buffer offset returns the byte at offset offset in buffer.

Sourceval set : t -> int -> char -> unit

get buffer offset value changes the value of the byte at offset offset in buffer to value.

Sourceval unsafe_get : t -> int -> char

Same as get but without bounds checking.

Sourceval unsafe_set : t -> int -> char -> unit

Same as set but without bounds checking.

Conversions

Sourceval of_bytes : bytes -> t

of_bytes buf returns a newly allocated byte array with the same contents as buf.

Sourceval of_string : string -> t

of_string buf returns a newly allocated byte array with the same contents as buf.

Sourceval to_bytes : t -> bytes

to_bytes buf returns newly allocated bytes with the same contents as buf.

Sourceval to_string : t -> string

to_string buf returns a newly allocated string with the same contents as buf.

Copying

Sourceval blit : t -> int -> t -> int -> int -> unit

blit buf1 ofs1 buf2 ofs2 len copies len bytes from buf1 starting at offset ofs1 to buf2 starting at offset ofs2.

Sourceval 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.

Sourceval 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.

Sourceval 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.

Sourceval unsafe_blit : t -> int -> t -> int -> int -> unit

Same as blit but without bound checking.

Sourceval unsafe_blit_from_bytes : bytes -> int -> t -> int -> int -> unit

Same as Lwt_bytes.blit_from_bytes but without bounds checking.

Sourceval unsafe_blit_from_string : string -> int -> t -> int -> int -> unit

Same as Lwt_bytes.blit_from_string but without bounds checking.

Sourceval unsafe_blit_to_bytes : t -> int -> bytes -> int -> int -> unit

Same as Lwt_bytes.blit_to_bytes but without bounds checking.

Sourceval proxy : t -> int -> int -> t

proxy buffer offset length creates a ``proxy''. The returned byte array share the data of buffer but with different bounds.

Sourceval extract : t -> int -> int -> t

extract buffer offset length creates a new byte array of length length and copy the length bytes of buffer at offset into it.

Sourceval copy : t -> t

copy buffer creates a copy of the given byte array.

Filling

Sourceval fill : t -> int -> int -> char -> unit

fill buffer offset length value puts value in all length bytes of buffer starting at offset offset.

Sourceval unsafe_fill : t -> int -> int -> char -> unit

Same as fill but without bounds checking.

IOs

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.

Sourceval read : Lwt_unix.file_descr -> t -> int -> int -> int Lwt.t
Sourceval write : Lwt_unix.file_descr -> t -> int -> int -> int Lwt.t
Sourceval recv : Lwt_unix.file_descr -> t -> int -> int -> Unix.msg_flag list -> int Lwt.t

Not implemented on Windows.

Sourceval send : Lwt_unix.file_descr -> t -> int -> int -> Unix.msg_flag list -> int Lwt.t

Not implemented on Windows.

Sourceval recvfrom : Lwt_unix.file_descr -> t -> int -> int -> Unix.msg_flag list -> (int * Unix.sockaddr) Lwt.t

Not implemented on Windows.

Sourceval sendto : Lwt_unix.file_descr -> t -> int -> int -> Unix.msg_flag list -> Unix.sockaddr -> int Lwt.t

Not implemented on Windows.

Sourcetype io_vector = {
  1. iov_buffer : t;
  2. iov_offset : int;
  3. iov_length : int;
}
Sourceval io_vector : buffer:t -> offset:int -> length:int -> io_vector
Sourceval recv_msg : socket:Lwt_unix.file_descr -> io_vectors:io_vector list -> (int * Unix.file_descr list) Lwt.t

Not implemented on Windows.

Sourceval send_msg : socket:Lwt_unix.file_descr -> io_vectors:io_vector list -> fds:Unix.file_descr list -> int Lwt.t

Not implemented on Windows.

Memory mapped files

Sourceval 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.

Sourceval mapped : t -> bool

mapped buffer returns true iff buffer is a memory mapped file.

Sourcetype advice =
  1. | MADV_NORMAL
  2. | MADV_RANDOM
  3. | MADV_SEQUENTIAL
  4. | MADV_WILLNEED
  5. | MADV_DONTNEED
  6. | MADV_MERGEABLE
  7. | MADV_UNMERGEABLE
  8. | MADV_HUGEPAGE
  9. | MADV_NOHUGEPAGE

Type of advise that can be sent to the kernel by the program. See the manual madvise(2) for a description of each.

Sourceval madvise : t -> int -> int -> advice -> unit

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.

Sourceval page_size : int

Size of pages.

Sourceval 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.

Sourceval wait_mincore : t -> int -> unit Lwt.t

wait_mincore buffer offset waits until the page containing the byte at offset offset is in RAM.

This functions is not available on windows and cygwin.