X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=doc%2Fhtml%2Flinkhash_8h.html;h=772ea22bf2c11619d21abd98aa63d753f15641bd;hb=bc5c17d2ffbbbafa4acc7390f3a0a960b3efb29c;hp=45569a76181761917d5aa8f3738856b52f2e4398;hpb=4596746bf7d656206a824f7e7ec629152773fd6c;p=platform%2Fupstream%2Fjson-c.git diff --git a/doc/html/linkhash_8h.html b/doc/html/linkhash_8h.html index 45569a7..772ea22 100644 --- a/doc/html/linkhash_8h.html +++ b/doc/html/linkhash_8h.html @@ -1,740 +1,1155 @@ - -
+ + + + +
+ json-c
+ 0.17
+
+ |
+
Data Structures | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
struct | lh_entry | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
struct | lh_table | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defines | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define | LH_PRIME 0x9e370001UL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define | LH_EMPTY (void*)-1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define | LH_FREED (void*)-2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define | lh_foreach(table, entry) for(entry = table->head; entry; entry = entry->next) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define | lh_foreach_safe(table, entry, tmp) for(entry = table->head; entry && ((tmp = entry->next) || 1); entry = tmp) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Typedefs | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
typedef void( | lh_entry_free_fn )(struct lh_entry *e) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
typedef unsigned long( | lh_hash_fn )(const void *k) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
typedef int( | lh_equal_fn )(const void *k1, const void *k2) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
unsigned long | lh_ptr_hash (const void *k) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
int | lh_ptr_equal (const void *k1, const void *k2) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
unsigned long | lh_char_hash (const void *k) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
int | lh_char_equal (const void *k1, const void *k2) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
struct lh_table * | lh_table_new (int size, const char *name, lh_entry_free_fn *free_fn, lh_hash_fn *hash_fn, lh_equal_fn *equal_fn) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
struct lh_table * | lh_kchar_table_new (int size, const char *name, lh_entry_free_fn *free_fn) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
struct lh_table * | lh_kptr_table_new (int size, const char *name, lh_entry_free_fn *free_fn) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
void | lh_table_free (struct lh_table *t) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
int | lh_table_insert (struct lh_table *t, void *k, const void *v) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
struct lh_entry * | lh_table_lookup_entry (struct lh_table *t, const void *k) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
const void * | lh_table_lookup (struct lh_table *t, const void *k) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
int | lh_table_delete_entry (struct lh_table *t, struct lh_entry *e) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
int | lh_table_delete (struct lh_table *t, const void *k) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
void | lh_abort (const char *msg,...) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
void | lh_table_resize (struct lh_table *t, int new_size) |
+Data Structures | |
struct | lh_entry |
struct | lh_table |
+Macros | |
#define | LH_PRIME 0x9e370001UL |
#define | LH_LOAD_FACTOR 0.66 |
#define | LH_EMPTY (void *)-1 |
#define | LH_FREED (void *)-2 |
#define | JSON_C_STR_HASH_DFLT 0 |
#define | JSON_C_STR_HASH_PERLLIKE 1 |
#define | lh_foreach(table, entry) for (entry = lh_table_head(table); entry; entry = lh_entry_next(entry)) |
#define | lh_foreach_safe(table, entry, tmp) for (entry = lh_table_head(table); entry && ((tmp = lh_entry_next(entry)) || 1); entry = tmp) |
+Typedefs | |
typedef void( | lh_entry_free_fn )(struct lh_entry *e) |
typedef unsigned long( | lh_hash_fn )(const void *k) |
typedef int( | lh_equal_fn )(const void *k1, const void *k2) |
typedef struct lh_table | lh_table |
+Functions | |
int | json_global_set_string_hash (const int h) |
struct lh_table * | lh_table_new (int size, lh_entry_free_fn *free_fn, lh_hash_fn *hash_fn, lh_equal_fn *equal_fn) |
struct lh_table * | lh_kchar_table_new (int size, lh_entry_free_fn *free_fn) |
struct lh_table * | lh_kptr_table_new (int size, lh_entry_free_fn *free_fn) |
void | lh_table_free (struct lh_table *t) |
int | lh_table_insert (struct lh_table *t, const void *k, const void *v) |
int | lh_table_insert_w_hash (struct lh_table *t, const void *k, const void *v, const unsigned long h, const unsigned opts) |
struct lh_entry * | lh_table_lookup_entry (struct lh_table *t, const void *k) |
struct lh_entry * | lh_table_lookup_entry_w_hash (struct lh_table *t, const void *k, const unsigned long h) |
json_bool | lh_table_lookup_ex (struct lh_table *t, const void *k, void **v) |
int | lh_table_delete_entry (struct lh_table *t, struct lh_entry *e) |
int | lh_table_delete (struct lh_table *t, const void *k) |
int | lh_table_length (struct lh_table *t) |
int | lh_table_resize (struct lh_table *t, int new_size) |
static struct lh_entry * | lh_table_head (const lh_table *t) |
static unsigned long | lh_get_hash (const struct lh_table *t, const void *k) |
static void * | lh_entry_k (const struct lh_entry *e) |
static int | lh_entry_k_is_constant (const struct lh_entry *e) |
static void * | lh_entry_v (const struct lh_entry *e) |
static void | lh_entry_set_val (struct lh_entry *e, void *newval) |
static struct lh_entry * | lh_entry_next (const struct lh_entry *e) |
static struct lh_entry * | lh_entry_prev (const struct lh_entry *e) |
Internal methods for working with json_type_object objects. Although this is exposed by the json_object_get_object() function and within the json_object_iter type, it is not recommended for direct use.
+#define JSON_C_STR_HASH_DFLT 0 | +
default string hash function
+ +#define LH_EMPTY (void*)-1 | +#define JSON_C_STR_HASH_PERLLIKE 1 |
perl-like string hash function
+#define LH_EMPTY (void *)-1 | +
sentinel pointer value for empty slots
--sentinel pointer value for empty slots
#define lh_foreach | +#define lh_foreach | ( | -table, | ||||
+ | table, | +||||||
- | entry | -- | ) | -for(entry = table->head; entry; entry = entry->next) | ++ | entry | +|
+ | ) | +for (entry = lh_table_head(table); entry; entry = lh_entry_next(entry)) |
Convenience list iterator.
--Convenience list iterator.
#define lh_foreach_safe | +#define lh_foreach_safe | ( | -table, | ||||
+ | table, | +||||||
- | entry, | ||||||
+ | entry, | +||||||
- | tmp | -- | ) | -for(entry = table->head; entry && ((tmp = entry->next) || 1); entry = tmp) | ++ | tmp | +|
+ | ) | +for (entry = lh_table_head(table); entry && ((tmp = lh_entry_next(entry)) || 1); entry = tmp) |
lh_foreach_safe allows calling of deletion routine while iterating.
+table | a struct lh_table * to iterate over |
entry | a struct lh_entry * variable to hold each element |
tmp | a struct lh_entry * variable to hold a temporary pointer to the next element |
-lh_foreach_safe allows calling of deletion routine while iterating.
#define LH_FREED (void*)-2 | +#define LH_FREED (void *)-2 |
sentinel pointer value for freed slots
--sentinel pointer value for freed slots
#define LH_PRIME 0x9e370001UL | +#define LH_LOAD_FACTOR 0.66 |
The fraction of filled hash buckets until an insert will cause the table to be resized. This can range from just above 0 up to 1.0.
--golden prime used in hash functions
-
typedef void( lh_entry_free_fn)(struct lh_entry *e) | +#define LH_PRIME 0x9e370001UL |
golden prime used in hash functions
+ +typedef void( lh_entry_free_fn)(struct lh_entry *e) | +
callback function prototypes
--callback function prototypes
typedef int( lh_equal_fn)(const void *k1, const void *k2) | +typedef int( lh_equal_fn)(const void *k1, const void *k2) |
callback function prototypes
+typedef unsigned long( lh_hash_fn)(const void *k) | +
callback function prototypes
--callback function prototypes
typedef unsigned long( lh_hash_fn)(const void *k) | +typedef struct lh_table lh_table |
int json_global_set_string_hash | +( | +const int | +h | ) | ++ |
This function sets the hash function to be used for strings. Must be one of the JSON_C_STR_HASH_* values.
+-callback function prototypes
-
|
+ +inlinestatic | +
Return a non-const version of lh_entry.k.
+lh_entry.k is const to indicate and help ensure that linkhash itself doesn't modify it, but callers are allowed to do what they want with it.
+References lh_entry::k.
+ +
+
|
+ +inlinestatic | +
Returns 1 if the key for the given entry is constant, and thus does not need to be freed when the lh_entry is freed.
+References lh_entry::k_is_constant.
+ +
+
|
+ +staticread | +
Return the next element, or NULL if there is no next element.
+References lh_entry::next.
+ +
+
|
+ +staticread | +
Return the previous element, or NULL if there is no previous element.
++
References lh_entry::prev.
+ |
+ +inlinestatic | +
Change the value for an entry. The caller is responsible for freeing the previous value.
-+
References lh_entry::v.
+ |
+ +inlinestatic | +
Return a non-const version of lh_entry.v.
+v is const to indicate and help ensure that linkhash itself doesn't modify it, but callers are allowed to do what they want with it.
-+
References lh_entry::v.
|
+ +inlinestatic | +
Calculate the hash of a key for a given table.
+This is an extension to support functions that need to calculate the hash several times and allows them to do it just once and then pass in the hash to all utility functions. Depending on use case, this can be a considerable performance improvement.
+t | the table (used to obtain hash function) |
k | a pointer to the key to lookup |
References lh_table::hash_fn.
+ +
+
-
- -Convenience function to create a new linkhash table with char keys.
+
-Convenience function to create a new linkhash table with char keys. +
+
+
+Convenience function to create a new linkhash table with ptr keys. +
+
+
-
-
- -Convenience function to create a new linkhash table with ptr keys.
|