6 #ifndef TW_C_SDK_TWDICT_H
7 #define TW_C_SDK_TWDICT_H
9 #define TW_DICT_MISSING -3
10 #define TW_DICT_FULL -2
11 #define TW_DICT_OMEM -1
14 #ifndef TW_FOREACH_CONTINUE
15 #define TW_FOREACH_CONTINUE 0
16 #define TW_FOREACH_EXIT 1
19 #define TW_DICTIONARY_LIST 1
20 #define TW_DICTIONARY_MAP 2
21 typedef int twDictionaryMode;
24 typedef void (*dict_del_func) (
void * item);
25 typedef const char* (*dict_key_parse_func) (
void * item);
26 typedef int (*twDict_foreach_fn)(
void *key,
size_t key_size,
void *data,
size_t data_size,
void *arg);
33 int twDict_Cleanup ();
51 twDict * twDict_Create(dict_del_func delete_function,dict_key_parse_func parse_func);
62 int twDict_Delete(twDict* in);
73 int twDict_Clear(twDict* in);
85 int twDict_Add(twDict* in,
void *value);
103 int twDict_Remove(twDict* in,
void * item,
char deleteValue);
123 size_t twDict_Foreach(twDict* in, twDict_foreach_fn listHandler,
void *userData);
139 int twDict_Find(twDict* in,
void* query,
void** results);
149 int twDict_GetCount(twDict* in);
161 int twDict_ReplaceValue(twDict* in,
void * value,
void * new_value,
char dispose);