Up

module Netshm_array

: sig

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

end