module Netshm_array:sig
..end
Arrays in shared memory
type 'a
t
val manage : ?pagesize:int ->
?init:int ->
'a ->
'a Netshm_data.data_manager ->
Netshm.locking_method -> Netshm.shm_descr -> 'a t
Manages a shared memory object as an array,
including the representation of arbitrary O'Caml values.
The first argument of type 'a
is the default value of the
array elements.
This bases on Netshm.manage
, and the arguments pagesize
,
locking_method
and shm_descr
are documented there.
If an empty memory object is managed, it is initialized as array with zero elements. If a non-empty memory object is managed, it must contain a valid array structure. The size of the array is then the same as when the array was managed the last time.
By passing init
with argument n
, the array is reinitialized as
array with n
elements containing the default value.
It is essential that the same data managers are passed as at the time when the array was initialized.
Arrays are implemented as (int32, 'a) Netshm_hashtbl.t
.
val length : 'a t -> int
Returns the length of the array
val get : 'a t -> int -> 'a
get a k
: Returns the contents of the array element number k
where
0 <= k < length a
.
If you do module Array = Netshm_array
in your code you can also
use the notation a.(k)
.
val set : 'a t -> int -> 'a -> unit
set a k x
: Sets the contents of the array element number k
to x
where 0 <= k < length a
.
If you do module Array = Netshm_array
in your code you can also
use the notation a.(k) <- x
.
val resize : 'a t -> int -> unit
resize a n
: Resizes the array to length n
. If the array is enlarged
the new elements will be initialized to the default value.
val default_value : 'a t -> 'a
Returns the default value
val shm_table : 'a t -> Netshm.shm_table
Returns the underlying shared memory table used to implement hash tables