Strophe  0.8
XMPP client library
Data Structures | Functions
hash.c File Reference

Hash tables. More...

Data Structures

struct  hashentry_t
struct  hash_t
struct  hash_iterator_t
 hash key iterator functions More...

Functions

hash_t * hash_new (xmpp_ctx_t *const ctx, const int size, hash_free_func free)
 allocate and initialize a new hash table
hash_t * hash_clone (hash_t *const table)
 obtain a new reference to an existing hash table
void hash_release (hash_t *const table)
 release a hash table that is no longer needed
static int _hash_key (hash_t *table, const char *key)
 hash a key for our table lookup
int hash_add (hash_t *table, const char *const key, void *data)
 add a key, value pair to a hash table.
void * hash_get (hash_t *table, const char *key)
 look up a key in a hash table
int hash_drop (hash_t *table, const char *key)
 delete a key from a hash table
int hash_num_keys (hash_t *table)
 return the number of keys in a hash
hash_iterator_t * hash_iter_new (hash_t *table)
 allocate and initialize a new iterator
void hash_iter_release (hash_iterator_t *iter)
 release an iterator that is no longer needed
const char * hash_iter_next (hash_iterator_t *iter)
 return the next hash table key from the iterator.

Detailed Description

Hash tables.


Function Documentation

hash_t* hash_new ( xmpp_ctx_t *const  ctx,
const int  size,
hash_free_func  free 
)

allocate and initialize a new hash table

hash_t* hash_clone ( hash_t *const  table)

obtain a new reference to an existing hash table

allocate a new reference to an existing hash table

void hash_release ( hash_t *const  table)

release a hash table that is no longer needed

release a hash table when no longer needed

static int _hash_key ( hash_t *  table,
const char *  key 
) [static]

hash a key for our table lookup

int hash_add ( hash_t *  table,
const char *const  key,
void *  data 
)

add a key, value pair to a hash table.

each key can appear only once; the value of any identical key will be replaced

void* hash_get ( hash_t *  table,
const char *  key 
)

look up a key in a hash table

int hash_drop ( hash_t *  table,
const char *  key 
)

delete a key from a hash table

int hash_num_keys ( hash_t *  table)

return the number of keys in a hash

hash_iterator_t* hash_iter_new ( hash_t *  table)

allocate and initialize a new iterator

void hash_iter_release ( hash_iterator_t *  iter)

release an iterator that is no longer needed

const char* hash_iter_next ( hash_iterator_t *  iter)

return the next hash table key from the iterator.

the returned key should not be freed