module Common: sig
.. end
Common definitions used by binary protocol converters
Buffers
type
pos = int
Position within buffers
type
pos_ref = pos Pervasives.ref
Reference to a position within buffers
type
buf = (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
Buffers
val create_buf : int -> buf
create_buf n
creates a buffer of size n
.
val assert_pos : pos -> unit
assert_pos pos
Raises Invalid_argument
if position pos
is negative.
val check_pos : buf -> pos -> unit
check_pos buf pos
Raises Buffer_short
if position pos
exceeds
the length of buffer buf
.
val check_next : buf -> pos -> unit
check_next buf pos
Raises Buffer_short
if the next position after
pos
exceeds the length of buffer buf
.
val safe_get_pos : buf -> pos_ref -> pos
safe_get_pos buf pos_ref
Raises Buffer_short
if the position
exceeds the length of the buffer.
Returns the position referenced by
pos_ref
within buffer buf
.
val blit_string_buf : ?src_pos:int -> string -> ?dst_pos:int -> buf -> len:int -> unit
blit_string_buf ?src_pos src ?dst_pos dst ~len
blits len
bytes of the source string src
starting at position src_pos
to buffer dst
starting at position dst_pos
.
Raises Invalid_argument
if the designated ranges are invalid.
val blit_buf_string : ?src_pos:int -> buf -> ?dst_pos:int -> string -> len:int -> unit
blit_buf_string ?src_pos src ?dst_pos dst ~len
blits len
bytes of the source buffer src
starting at position src_pos
to string dst
starting at position dst_pos
.
Raises Invalid_argument
if the designated ranges are invalid.
val blit_buf : ?src_pos:int ->
src:buf -> ?dst_pos:int -> dst:buf -> int -> unit
blit_buf ?src_pos ~src ?dst_pos ~dst len
blits len
bytes of the
source buffer src
starting at position src_pos
to destination
buffer dst
starting at position dst_pos
.
Raises Invalid_argument
if the designated ranges are invalid.
Errors and exceptions
exception Buffer_short
Buffer too short for read/write operation
exception No_variant_match
Used internally for backtracking
module ReadError: sig
.. end
exception Read_error of ReadError.t * pos
ReadError (err, err_pos)
exception Poly_rec_write of string
PolyRecWrite type
gets raised when the user attempts to write or
estimate the size of a value of a type that is bound through a
polymorphic record field in type definition type
.
exception Empty_type of string
EmptyType
gets raised when the user attempts to write or estimate
the size of a value of an empty type, which would not make sense.
val raise_read_error : ReadError.t -> pos -> 'a
raise_read_error err pos
val raise_variant_wrong_type : string -> pos -> 'a
raise_variant_wrong_type name pos
val raise_concurrent_modification : string -> 'a
raise_concurrent_modification loc
Raises Failure
if a binary writer
detects a concurrent change to the underlying data structure.
val array_bound_error : unit -> 'a
array_bound_error ()
Bigarrays
type
vec32 = (float, Bigarray.float32_elt, Bigarray.fortran_layout) Bigarray.Array1.t
type
vec64 = (float, Bigarray.float64_elt, Bigarray.fortran_layout) Bigarray.Array1.t
type
vec = vec64
type
mat32 = (float, Bigarray.float32_elt, Bigarray.fortran_layout) Bigarray.Array2.t
type
mat64 = (float, Bigarray.float64_elt, Bigarray.fortran_layout) Bigarray.Array2.t
type
mat = mat64
Miscellaneous
val copy_htbl_list : ('a, 'b) Hashtbl.t -> ('a * 'b) list -> ('a, 'b) Hashtbl.t
copy_htbl_list htbl lst
adds all (key, value)
pairs in lst
to hash table htbl
.
val variant_of_int : int -> [> ]
NOTE: unsafe functions!!!
val unsafe_blit_buf : src_pos:int ->
src:buf -> dst_pos:int -> dst:buf -> len:int -> unit
val unsafe_blit_string_buf : src_pos:int -> string -> dst_pos:int -> buf -> len:int -> unit
val unsafe_blit_buf_string : src_pos:int -> buf -> dst_pos:int -> string -> len:int -> unit
val unsafe_blit_float_array_buf : src_pos:int -> float array -> dst_pos:int -> buf -> len:int -> unit
val unsafe_blit_buf_float_array : src_pos:int -> buf -> dst_pos:int -> float array -> len:int -> unit