)
#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. |
pool_clear | ( | HyPool * | aPool | ) |
Clear the contents of a pool but not delete it.
[in] | aPool | The pool to clear |
pool_do | ( | HyPool * | aPool, | |
void(*)(void *anElement, void *userData) | aFunction, | |||
void * | userData | |||
) |
Calls a user provided function for each element in the list.
[in] | aPool | The pool to "do" things to |
[in] | aFunction | Pointer to function which will "do" things to the elements of aPool |
[in] | userData | Pointer to data to be passed to "do" function, along with each pool-element |
pool_forPortLib | ( | U_32 | structSize, | |
HyPortLibrary * | portLibrary | |||
) |
Shortcut for pool_new, using the default malloc/free from the portLibrary.
[in] | structSize | size of pool-element |
[in] | portLibrary |
pool_kill | ( | HyPool * | aPool | ) |
Deallocates all memory associated with a pool.
[in] | aPool | Pool to be deallocated |
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 | |||
) |
[in] | structSize | Size of the pool-elements |
[in] | minNumberElements | If zero, will default to 1 |
[in] | elementAlignment | If zero will default to MIN_GRANULARITY |
[in] | poolFlags | |
[in] | memAlloc | Allocate function pointer |
[in] | memFree | Free function pointer |
[in] | userData |
pool_newElement | ( | HyPool * | aPool | ) |
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.
[in] | aPool |
pointer to a new element otherwise
pool_nextDo | ( | pool_state * | lastHandle | ) |
[in] | lastHandle | pointer for current iteration state |
pointer to next element to be processed otherwise
pool_numElements | ( | HyPool * | aPool | ) |
Returns the number of elements in a given pool.
[in] | aPool |
the number of elements in the pool otherwise
pool_removeElement | ( | HyPool * | aPool, | |
void * | anElement | |||
) |
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.
[in] | aPool | |
[in] | anElement | Pointer to the element to be removed |
pool_sortFree | ( | HyPool * | aPool | ) |
Sorts the free list of the current pool.
(ie: does not follow nextPool pointers...) This is a O(n) most of the time.
[in] | aPool | The pool to be sorted |
pool_startDo | ( | HyPool * | aPool, | |
pool_state * | lastHandle | |||
) |
[in] | aPool | The pool to "do" things to |
[in] | lastHandle |
pointer to element otherwise
Genereated on Tue Dec 9 14:12:59 2008 by Doxygen.
(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.