NAME¶
ck_ht_get_spmc
—
load a key-value pair from a hash table
LIBRARY¶
Concurrency Kit (libck, -lck)
SYNOPSIS¶
#include
<ck_ht.h>
bool
ck_ht_get_spmc
(
ck_ht_t
*ht,
ck_ht_hash_t h,
ck_ht_entry_t
*entry);
DESCRIPTION¶
The
ck_ht_get_spmc
() function will return the
value associated with the key specified in the
entry argument in the hash table pointed to
by the
ht argument. The key specified in
entry is expected to have the hash value
specified by the
h argument.
If
ht was created with CK_HT_MODE_BYTESTRING
then
entry must have been initialized with
the
ck_ht_entry_set_key(3) or
ck_ht_entry_set(3) functions. If
ht was created with CK_HT_MODE_DIRECT then
entry must have been initialized with the
ck_ht_entry_key_set_direct(3) or
ck_ht_entry_set_direct(3) functions.
It is expected that
h was initialized with
ck_ht_hash(3) if
ht was created with CK_HT_MODE_BYTESTRING. If
ht was initialized with CK_HT_MODE_DIRECT
then it is expected that
h was initialized
with the
ck_ht_hash_direct(3) function.
If the call to
ck_ht_get_spmc
() was
successful then the key-value pair in
entry
was successfully found in the hash table pointed to by
h and will fail if the key specified in
entry does not exist in the hash table. If
successful
entry will contain the key-value
pair found in the hash table pointed to by the
ht argument.
If
ht was initialized with
CK_HT_MODE_BYTESTRING then the key/value pair in
entry may be extracted using the
ck_ht_entry_key(3) and
ck_ht_entry_value(3) functions. The length of the
key may be extracted using the
ck_ht_entry_key_length(3) function.
If
ht was initialized with CK_HT_MODE_DIRECT
then the key/value pair in
entry may be
extracted using the
ck_ht_entry_key_direct(3) and
ck_ht_entry_value_direct(3) functions.
This function is safe to call in the presence of a concurrent writer.
RETURN VALUES¶
Upon successful completion
ck_ht_get_spmc
()
returns
true.
If successful,
entry will contain the key/value pair as
found in the hash table. Otherwise the function returns
false
on failure.
ERRORS¶
Behavior is undefined if
entry or
ht are uninitialized. The function will
return
false
if the key as specified in
entry was not found in the hash table.
SEE ALSO¶
ck_ht_stat(3),
ck_ht_init(3),
ck_ht_destroy(3),
ck_ht_hash(3),
ck_ht_hash_direct(3),
ck_ht_set_spmc(3),
ck_ht_put_spmc(3),
ck_ht_gc(3),
ck_ht_grow_spmc(3),
ck_ht_remove_spmc(3),
ck_ht_reset_spmc(3),
ck_ht_reset_size_spmc(3),
ck_ht_count(3),
ck_ht_entry_empty(3),
ck_ht_entry_key_set(3),
ck_ht_entry_key_set_direct(3),
ck_ht_entry_key(3),
ck_ht_entry_key_length(3),
ck_ht_entry_value(3),
ck_ht_entry_set(3),
ck_ht_entry_set_direct(3),
ck_ht_entry_key_direct(3),
ck_ht_entry_value_direct(3),
ck_ht_iterator_init(3),
ck_ht_next(3)
Additional information available at
http://concurrencykit.org/