![]() |
Typedefs | |
typedef enum _Itable_IndexTypes | Itable_IndexTypes |
typedef enum _Itable_Types | Itable_Types |
Enumerations | |
enum | _Itable_IndexTypes { IUPTABLE_POINTERINDEXED = 10, IUPTABLE_STRINGINDEXED } |
enum | _Itable_Types { IUPTABLE_POINTER, IUPTABLE_STRING, IUPTABLE_FUNCPOINTER } |
Functions | |
Itable * | iupTableCreate (Itable_IndexTypes indexType) |
Itable * | iupTableCreateSized (Itable_IndexTypes indexType, unsigned int initialSizeIndex) |
void | iupTableDestroy (Itable *it) |
void | iupTableClear (Itable *it) |
int | iupTableCount (Itable *it) |
void | iupTableSet (Itable *it, const char *key, void *value, Itable_Types itemType) |
void | iupTableSetFunc (Itable *it, const char *key, Ifunc func) |
void * | iupTableGet (Itable *it, const char *key) |
Ifunc | iupTableGetFunc (Itable *it, const char *key, void **value) |
void * | iupTableGetTyped (Itable *it, const char *key, Itable_Types *itemType) |
void | iupTableRemove (Itable *it, const char *key) |
char * | iupTableFirst (Itable *it) |
char * | iupTableNext (Itable *it) |
void * | iupTableGetCurr (Itable *it) |
char * | iupTableRemoveCurr (Itable *it) |
typedef enum _Itable_IndexTypes Itable_IndexTypes |
How the table key is interpreted.
typedef enum _Itable_Types Itable_Types |
How the value is interpreted.
enum _Itable_IndexTypes |
enum _Itable_Types |
Itable* iupTableCreate | ( | Itable_IndexTypes | indexType | ) |
Creates a hash table with an initial default size. This function is equivalent to iupTableCreateSized(0);
Itable* iupTableCreateSized | ( | Itable_IndexTypes | indexType, | |
unsigned int | initialSizeIndex | |||
) |
Creates a hash table with the specified initial size. Use this function if you expect the table to become very large. initialSizeIndex is an array into the (internal) list of possible hash table sizes. Currently only indexes from 0 to 8 are supported. If you specify a higher value here, the maximum allowed value will be used.
void iupTableDestroy | ( | Itable * | it | ) |
Destroys the Itable. Calls iupTableClear.
void iupTableClear | ( | Itable * | it | ) |
Removes all items in the table. This function does also free the memory of strings contained in the table!!!!
int iupTableCount | ( | Itable * | it | ) |
Returns the number of keys stored in the table.
void iupTableSet | ( | Itable * | it, | |
const char * | key, | |||
void * | value, | |||
Itable_Types | itemType | |||
) |
Store an element in the table.
void iupTableSetFunc | ( | Itable * | it, | |
const char * | key, | |||
Ifunc | func | |||
) |
Store a function pointer in the table. Type is set to IUPTABLE_FUNCPOINTER.
void* iupTableGet | ( | Itable * | it, | |
const char * | key | |||
) |
Retrieves an element from the table. Returns NULL if not found.
Ifunc iupTableGetFunc | ( | Itable * | it, | |
const char * | key, | |||
void ** | value | |||
) |
Retrieves a function pointer from the table. If not a function or not found returns NULL. value always contains the element pointer.
void* iupTableGetTyped | ( | Itable * | it, | |
const char * | key, | |||
Itable_Types * | itemType | |||
) |
Retrieves an element from the table and its type.
void iupTableRemove | ( | Itable * | it, | |
const char * | key | |||
) |
Removes the entry at the specified key from the hash table and frees the memory used by it if it is a string...
char* iupTableFirst | ( | Itable * | it | ) |
Key iteration function. Returns a key. To iterate over all keys call iupTableFirst at the first and call iupTableNext in a loop until 0 is returned... Do NOT change the content of the hash table during iteration. During an iteration you can use context with iupTableGetCurr() to access the value of the key very fast.
char* iupTableNext | ( | Itable * | it | ) |
Key iteration function. See iupTableNext.
void* iupTableGetCurr | ( | Itable * | it | ) |
Returns the value at the current position. The current context is an iterator that is filled by iupTableNext(). iupTableGetCur() is faster then iupTableGet(), so when you want to access an item stored at a key returned by iupTableNext(), use this function instead of iupTableGet().
char* iupTableRemoveCurr | ( | Itable * | it | ) |
Removes the current element and returns the next key. Use this function to remove an element during an iteration.