cache_callbacks(3) | Library Functions Manual | cache_callbacks(3) |
cache_callbacks
—
Pre-defined cache callbacks used to configure a
cache
#include <cache.h>
#include
<cache_callbacks.h>
uintptr_t
cache_key_hash_cb_cstring
(void *key,
void *unused);
uintptr_t
cache_key_hash_cb_integer
(void *key,
void *unused);
bool
cache_key_is_equal_cb_cstring
(void
*key1, void *key2, void *unused);
bool
cache_key_is_equal_cb_integer
(void
*key1, void *key2, void *unused);
void
cache_release_cb_free
(void
*key_or_value, void *unused);
void
cache_value_make_purgeable_cb
(void
*value, void *unused);
bool
cache_value_make_nonpurgeable_cb
(void
*value, void *unused);
uintptr_t
cache_hash_byte_string
(const char
*data, size_t bytes);
These functions are intended to be used as callbacks to configure how a cache functions. They should be set in the cache_attributes_t passed into cache_create. They support common key types and offer support for using purgeable memory to allocate cache values.
cache_key_hash_cb_cstring
()
A
key_hash_cb
()
function for NULL-terminated cstring keys.
cache_key_hash_cb_integer
()
A
key_hash_cb
()
function for integer keys.
cache_key_is_equal_cb_cstring
()
A
key_is_equal_cb
()
function for cstring keys.
cache_key_is_equal_cb_integer
()
A
key_is_equal_cb
()
function for integer keys.
cache_release_cb_free
()
Can be used for
key_release_cb
()
or
value_release_cb
()
for keys/values allocated from malloc and family.
cache_value_make_purgeable_cb
()
Can be used for
value_make_purgeable_cb
()
with values allocated from the purgeable malloc zone (see malloc/malloc.h).
Calls
malloc_make_purgeable
()
on value when it is unreferenced in order to reduce
paging under memory pressure.
cache_value_make_nonpurgeable_cb
()
Can be used for
value_make_nonpurgeable_cb
()
with values allocated from the purgeable malloc zone (see malloc/malloc.h).
Calls
malloc_make_nonpurgeable
()
on value when it is referenced in order to make a
value nonpurgeable.
cache_hash_byte_string
()
Calculates a hash from a bytes string data of length
bytes.
May 7, 2009 | Darwin |