)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "hypool.h"
Functions | |
HyPool *VMCALL | pool_new (U_32 structSize, U_32 minNumberElements, U_32 elementAlignment, UDATA poolFlags, void *(VMCALL *memAlloc)(void *, U_32), void(VMCALL *memFree)(void *, void *), void *userData) |
void VMCALL | pool_kill (HyPool *aPool) |
Deallocates all memory associated with a pool. | |
void *VMCALL | pool_newElement (HyPool *aPool) |
Asks for the address of a new pool element. | |
void VMCALL | pool_removeElement (HyPool *aPool, void *anElement) |
Deallocates an element from a pool. | |
void VMCALL | pool_do (HyPool *aPool, void(*aFunction)(void *anElement, void *userData), void *userData) |
Calls a user provided function for each element in the list. | |
UDATA VMCALL | pool_numElements (HyPool *aPool) |
Returns the number of elements in a given pool. | |
void *VMCALL | pool_startDo (HyPool *aPool, pool_state *lastHandle) |
void *VMCALL | pool_nextDo (pool_state *lastHandle) |
void VMCALL | pool_sortFree (HyPool *aPool) |
Sorts the free list of the current pool. | |
HyPool *VMCALL | pool_forPortLib (U_32 structSize, HyPortLibrary *portLibrary) |
Shortcut for pool_new, using the default malloc/free from the portLibrary. | |
void VMCALL | pool_clear (HyPool *aPool) |
Clear the contents of a pool but not delete it. |
|
Clear the contents of a pool but not delete it.
|
|
Calls a user provided function for each element in the list.
|
|
Shortcut for pool_new, using the default malloc/free from the portLibrary.
|
|
Deallocates all memory associated with a pool.
|
|
pool_newReturns a handle to a variable sized pool of structures. This handle should be passed into all other pool functions.
|
|
Asks for the address of a new pool element. If it succeeds, the address returned will have space for one element of the correct structure size. The contents of the element are undefined. If the current pool is full, a new one will be grafted onto the end of the pool chain and memory from there will be used.
|
|
pool_nextDoContinue an iteration based on state passed in by lastHandle. It is safe to stop an iteration midway through.
|
|
Returns the number of elements in a given pool.
|
|
Deallocates an element from a pool. It is safe to call pool_removeElement() while looping over the pool with pool_startDo / pool_nextDo on the element returned by those calls. This is because the free element is always inserted at either the head of the free list or before the nextFree element in the pool_state.
|
|
Sorts the free list of the current pool. (ie: does not follow nextPool pointers...) This is a O(n) most of the time.
|
|
pool_startDoStart of an iteration set that will return when code is to be executed. This is based strongly on pool_sortFreeAndIterateUsed. Pass in a pointer to an empty pool_state and it will be filled in.
|