module Netbuffer:A Netbuffer.t is a buffer that can grow and shrink dynamically.sig
..end
type
t
val create : int -> t
val contents : t -> string
val length : t -> int
val get : t -> int -> char
get nb pos
: Get the character at pos
val nth : t -> int -> char
get
val sub : t -> int -> int -> string
sub nb k n
: returns the n characters starting at position n
from
netbuffer nb
as fresh stringval blit_to_string : t -> int -> string -> int -> int -> unit
blit_to_string nb srcpos dest destpos len
: Copies the len
bytes at
position srcpos
from nb
to the string dest
at position destpos
.val blit : t -> int -> string -> int -> int -> unit
blit_to_string
, now deprecatedval add_string : t -> string -> unit
add_string nb s
: Adds a copy of the string s
to the logical end of
the netbuffer nb
. If necessary, nb
grows.val add_sub_string : t -> string -> int -> int -> unit
add_sub_string nb s k n
: Adds the substring of s
starting at position
k
with length n
to the logical end of the netbuffer nb
. If necessary,
nb
grows.
This is semantically the same as
add_string nb (String.sub s k n)
, but the extra copy is avoided.
val add_substring : t -> string -> int -> int -> unit
val add_char : t -> char -> unit
add_char nb c
: Adds a single char at the end of the bufferval add_char_2 : t -> char -> char -> unit
add_char_2 nb c1 c2
: Adds two chars at the end of the bufferval add_char_4 : t -> char -> char -> char -> char -> unit
add_char_4 nb c1 c2 c3 c4
: Adds four chars at the end of the bufferval add_inplace : ?len:int -> t -> (string -> int -> int -> int) -> int
add_inplace nb f
: Calls the function f
to add bytes to the
netbuffer nb
. The arguments of f
are the buffer, the position
in the buffer, and the maximum length. The function f
must return
the actual number of added bytes; this number is also returned by
add_inplace
.
Example: let n = add_inplace nb (Pervasives.input ch)
The argument len
is the number of bytes to add (second argument of
f
). It defaults to the number of free bytes in the buffer after space
for at least one byte has been allocated.
val add_buffer : t -> t -> unit
add_buffer nb1 nb2
: Adds the contents of nb2
to the end of nb1
val insert_string : t -> int -> string -> unit
insert_string nb p s
: Inserts the value of string s
at position
p
into the netbuffer nb
val insert_sub_string : t -> int -> string -> int -> int -> unit
insert_string nb p s k n
: Inserts a substring of string s
at position
p
into the netbuffer nb
. The substring is denoted by position k
and has length n
val insert_char : t -> int -> char -> unit
insert_char nb p c
: Inserts character c
at position p
into
the netbuffer nb
val set : t -> int -> char -> unit
set nb pos c
: Sets the character at pos
to c
val put_string : t -> int -> string -> unit
put_string nb pos s
: Copies the string s
to the position pos
of netbuffer nb
val blit_from_string : string -> int -> t -> int -> int -> unit
blit_from_string src srcpos dest destpos len
: Copies the len
bytes
at position srcpos
from the string src
to the netbuffer dest
at
position destpos
.
It is possible to copy the string beyond the end of the buffer. The
buffer is automatically enlarged in this case.
val delete : t -> int -> int -> unit
delete nb k n
: Deletes the n
bytes at position k
of netbuffer
nb
in-place.
The netbuffer does not shrink, however, i.e. the free space is not
given back to the memory manager.
val clear : t -> unit
delete
, the netbuffer does
not shrink.val reset : t -> unit
n
that was allocated by
Netbuffer.create
n
.val try_shrinking : t -> unit
try_shrinking nb
: If the length of the buffer is less than half of
the allocated space, the netbuffer is reallocated in order to save
memory.val index_from : t -> int -> char -> int
index_from nb k c
: Searches the character c
in the netbuffer beginning
at position k
. If found, the position of the left-most occurence is
returned. Otherwise, Not_found
is raised.val unsafe_buffer : t -> string
val print_buffer : t -> unit