Provided by: libck-dev_0.7.1-13build1_amd64 bug

NAME

       ck_rhs_init — initialize a hash set

LIBRARY

       Concurrency Kit (libck, -lck)

SYNOPSIS

       #include <ck_rhs.h>

       typedef unsigned long
       ck_rhs_hash_cb_t(const void *key, unsigned long seed);

       typedef bool
       ck_rhs_compare_cb_t(const void *c1, const void *c2);

       bool
       ck_rhs_init(ck_rhs_t      *hs,      unsigned      int      mode,     ck_rhs_hash_cb_t     *hash_function,
           ck_rhs_compare_cb_t   *compare,   struct    ck_malloc    *allocator,    unsigned    long    capacity,
           unsigned long seed);

DESCRIPTION

       The ck_rhs_init() function initializes the hash set pointed to by the hs pointer.

       The  argument  mode  specifies  the  type  of key-value pairs to be stored in the hash set as well as the
       expected concurrent access model.  The value of mode consists of a bitfield of one of the following:

       CK_RHS_MODE_OBJECT
               The hash set is meant to store pointers to objects. This provides a hint that only CK_MD_VMA_BITS
               are necessary to encode the key argument. Any unused pointer  bits  are  leveraged  for  internal
               optimizations.

       CK_RHS_MODE_DIRECT
               The  hash  set  is  meant  to  directly store key values and that all bits of the key are used to
               encode values.

       CK_RHS_MODE_READ_MOSTLY
               Optimize read operations over put/delete.

       The concurrent access model is specified by:

       CK_RHS_MODE_SPMC
               The hash set should allow for concurrent readers in the presence of a single writer.

       CK_RHS_MODE_MPMC
               The hash set should allow for concurrent readers in the presence of concurrent writers.  This  is
               currently unsupported.

       The developer is free to specify additional workload hints.  These hints are one of:

The  argument  hash_function  is  a  mandatory pointer to a user-specified hash function.  A user-specified hash
function takes two arguments. The key argument is a pointer to a key. The seed  argument  is  the  initial  seed
associated with the hash set.  This initial seed is specified by the user in ck_rhs_init(3).

The compare argument is an optional pointer to a user-specified key comparison function. If NULL is specified in
The allocator argument is a  pointer  to  a  structure  containing  malloc  and  free  function  pointers  which
initialized.

The argument capacity represents the initial number of keys the hash set is expected to contain.  This  argument
contain the number of entries capacity specifies.

The argument seed specifies the initial seed used by the underlying hash function.  The user is free to choose a

RETURN VALUES

       Upon successful completion ck_rhs_init() returns a value of true and otherwise returns a value  of  false
       to indicate an error.

ERRORS

       The behavior of ck_rhs_init() is undefined if hs is not a pointer to a ck_rhs_t object.

SEE ALSO

       ck_rhs_move(3),     ck_rhs_destroy(3),     CK_RHS_HASH(3),    ck_rhs_iterator_init(3),    ck_rhs_next(3),
       ck_rhs_get(3),  ck_rhs_put(3),  ck_rhs_put_unique(3),  ck_rhs_set(3),  ck_rhs_fas(3),   ck_rhs_remove(3),
       ck_rhs_grow(3),  ck_rhs_rebuild(3), ck_rhs_gc(3), ck_rhs_count(3), ck_rhs_reset(3), ck_rhs_reset_size(3),
       ck_rhs_stat(3)

       Additional information available at http://concurrencykit.org/

                                               September 17, 2012                                 CK_RHS_INIT(3)