Strophe 0.11
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 *ctx, int size, hash_free_func free_func)
 allocate and initialize a new hash table More...
 
hash_t * hash_clone (hash_t *table)
 obtain a new reference to an existing hash table More...
 
void hash_release (hash_t *table)
 release a hash table that is no longer needed More...
 
static int _hash_key (hash_t *table, const char *key)
 hash a key for our table lookup More...
 
hashentry_t * _hash_entry_find (hash_t *table, const char *key)
 
int hash_add (hash_t *table, const char *key, void *data)
 add a key, value pair to a hash table. More...
 
void * hash_get (hash_t *table, const char *key)
 look up a key in a hash table More...
 
int hash_drop (hash_t *table, const char *key)
 delete a key from a hash table More...
 
int hash_num_keys (hash_t *table)
 return the number of keys in a hash More...
 
hash_iterator_t * hash_iter_new (hash_t *table)
 allocate and initialize a new iterator More...
 
void hash_iter_release (hash_iterator_t *iter)
 release an iterator that is no longer needed More...
 
const char * hash_iter_next (hash_iterator_t *iter)
 return the next hash table key from the iterator. More...
 

Detailed Description

Hash tables.

Function Documentation

◆ hash_new()

hash_t * hash_new ( xmpp_ctx_t *  ctx,
int  size,
hash_free_func  free_func 
)

allocate and initialize a new hash table

◆ hash_clone()

hash_t * hash_clone ( hash_t *  table)

obtain a new reference to an existing hash table

allocate a new reference to an existing hash table

◆ hash_release()

void hash_release ( hash_t *  table)

release a hash table that is no longer needed

release a hash table when no longer needed

◆ _hash_key()

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

hash a key for our table lookup

◆ _hash_entry_find()

hashentry_t * _hash_entry_find ( hash_t *  table,
const char *  key 
)

◆ hash_add()

int hash_add ( hash_t *  table,
const char *  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

◆ hash_get()

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

look up a key in a hash table

◆ hash_drop()

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

delete a key from a hash table

◆ hash_num_keys()

int hash_num_keys ( hash_t *  table)

return the number of keys in a hash

◆ hash_iter_new()

hash_iterator_t * hash_iter_new ( hash_t *  table)

allocate and initialize a new iterator

◆ hash_iter_release()

void hash_iter_release ( hash_iterator_t *  iter)

release an iterator that is no longer needed

◆ hash_iter_next()

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