#include "nsd.h"Functions | |
| void | Ns_IndexInit (Ns_Index *indexPtr, int inc, int(*CmpEls)(const void *, const void *), int(*CmpKeyWithEl)(const void *, const void *)) |
| void | Ns_IndexTrunc (Ns_Index *indexPtr) |
| void | Ns_IndexDestroy (Ns_Index *indexPtr) |
| Ns_Index * | Ns_IndexDup (Ns_Index *indexPtr) |
| void * | Ns_IndexFind (Ns_Index *indexPtr, void *key) |
| void * | Ns_IndexFindInf (Ns_Index *indexPtr, void *key) |
| void ** | Ns_IndexFindMultiple (Ns_Index *indexPtr, void *key) |
| void | Ns_IndexAdd (Ns_Index *indexPtr, void *el) |
| void | Ns_IndexDel (Ns_Index *indexPtr, void *el) |
| void * | Ns_IndexEl (Ns_Index *indexPtr, int i) |
| void | Ns_IndexStringInit (Ns_Index *indexPtr, int inc) |
| Ns_Index * | Ns_IndexStringDup (Ns_Index *indexPtr) |
| void | Ns_IndexStringAppend (Ns_Index *addtoPtr, Ns_Index *addfromPtr) |
| void | Ns_IndexStringDestroy (Ns_Index *indexPtr) |
| void | Ns_IndexStringTrunc (Ns_Index *indexPtr) |
| void | Ns_IndexIntInit (Ns_Index *indexPtr, int inc) |
| void Ns_IndexAdd | ( | Ns_Index * | indexPtr, | |
| void * | el | |||
| ) |
----------------------------------------------------------------------
Ns_IndexAdd --
Add an element to an index.
Results: None.
Side effects: May allocate extra element memory.
----------------------------------------------------------------------
| void Ns_IndexDel | ( | Ns_Index * | indexPtr, | |
| void * | el | |||
| ) |
----------------------------------------------------------------------
Ns_IndexDel --
Remove an element from an index.
Results: None.
Side effects: None.
----------------------------------------------------------------------
| void Ns_IndexDestroy | ( | Ns_Index * | indexPtr | ) |
----------------------------------------------------------------------
Ns_IndexDestroy --
Release all of an index's memory.
Results: None.
Side effects: Frees elements.
----------------------------------------------------------------------
| Ns_Index* Ns_IndexDup | ( | Ns_Index * | indexPtr | ) |
----------------------------------------------------------------------
Ns_IndexDup --
Make a copy of an index.
Results: A pointer to a copy of the index.
Side effects: Mallocs memory for index and elements.
----------------------------------------------------------------------
| void* Ns_IndexEl | ( | Ns_Index * | indexPtr, | |
| int | i | |||
| ) |
----------------------------------------------------------------------
Ns_IndexEl --
Find the i'th element of an index.
Results: Element.
Side effects: None.
----------------------------------------------------------------------
| void* Ns_IndexFind | ( | Ns_Index * | indexPtr, | |
| void * | key | |||
| ) |
----------------------------------------------------------------------
Ns_IndexFind --
Find a key in an index.
Results: A pointer to the element, or NULL if none found.
Side effects: None.
----------------------------------------------------------------------
| void* Ns_IndexFindInf | ( | Ns_Index * | indexPtr, | |
| void * | key | |||
| ) |
----------------------------------------------------------------------
Ns_IndexFindInf --
Find the elment with the key, or if none exists, the element before which the key would appear.
Results: An element, or NULL if the key is not there AND would be the last element in the list.
Side effects: None.
----------------------------------------------------------------------
| void** Ns_IndexFindMultiple | ( | Ns_Index * | indexPtr, | |
| void * | key | |||
| ) |
----------------------------------------------------------------------
Ns_IndexFindMultiple --
Find all elements that match key.
Results: An array of pointers to matching elements, termianted with a null poitner.
Side effects: Will allocate memory for the return result.
----------------------------------------------------------------------
Find a place in the array that matches the key
Search linearly back to make sure we've got the first one
Search linearly forward to find out how many there are
Build array of values to return
| void Ns_IndexInit | ( | Ns_Index * | indexPtr, | |
| int | inc, | |||
| int(*)(const void *, const void *) | CmpEls, | |||
| int(*)(const void *, const void *) | CmpKeyWithEl | |||
| ) |
----------------------------------------------------------------------
Ns_IndexInit --
Initialize a new index.
Results: None.
Side effects: Will allocate space for the index elements from the heap.
----------------------------------------------------------------------
| void Ns_IndexIntInit | ( | Ns_Index * | indexPtr, | |
| int | inc | |||
| ) |
----------------------------------------------------------------------
Ns_IndexIntInit --
Initialize an index whose elements will be integers.
Results: None.
Side effects: See Ns_IndexInit.
----------------------------------------------------------------------
| void Ns_IndexStringAppend | ( | Ns_Index * | addtoPtr, | |
| Ns_Index * | addfromPtr | |||
| ) |
----------------------------------------------------------------------
Ns_IndexStringAppend --
Append one index of strings to another.
Results: None.
Side effects: Will append to the first index.
----------------------------------------------------------------------
| void Ns_IndexStringDestroy | ( | Ns_Index * | indexPtr | ) |
----------------------------------------------------------------------
Ns_IndexStringDestroy --
Free an index of strings.
Results: None.
Side effects: See Ns_IndexDestroy.
----------------------------------------------------------------------
| Ns_Index* Ns_IndexStringDup | ( | Ns_Index * | indexPtr | ) |
----------------------------------------------------------------------
Ns_IndexStringDup --
Make a copy of an index, using ns_strdup to duplicate the keys.
Results: A new index.
Side effects: Wil make memory copies of the elements.
----------------------------------------------------------------------
| void Ns_IndexStringInit | ( | Ns_Index * | indexPtr, | |
| int | inc | |||
| ) |
----------------------------------------------------------------------
Ns_IndexStringInit --
Initialize an index where the elements themselves are strings.
Results: None.
Side effects: See Ns_IndexInit.
----------------------------------------------------------------------
| void Ns_IndexStringTrunc | ( | Ns_Index * | indexPtr | ) |
----------------------------------------------------------------------
Ns_IndexStringTrunc --
Remove all elements from an index of strings.
Results: None.
Side effects: See Ns_IndexTrunc.
----------------------------------------------------------------------
| void Ns_IndexTrunc | ( | Ns_Index * | indexPtr | ) |
----------------------------------------------------------------------
Ns_IndexTrunc --
Remove all elements from an index.
Results: None.
Side effects: Frees and mallocs element memory.
----------------------------------------------------------------------
1.5.1