Internal Memory Allocation
[Apache Portability Runtime library]

Data Structures

struct  apr_memnode_t

Defines

#define APR_MEMNODE_T_SIZE   APR_ALIGN_DEFAULT(sizeof(apr_memnode_t))
#define APR_ALLOCATOR_MAX_FREE_UNLIMITED   0

Typedefs

typedef struct apr_allocator_t apr_allocator_t
typedef struct apr_memnode_t apr_memnode_t

Functions

apr_status_t apr_allocator_create (apr_allocator_t **allocator)
void apr_allocator_destroy (apr_allocator_t *allocator)
apr_memnode_tapr_allocator_alloc (apr_allocator_t *allocator, apr_size_t size)
void apr_allocator_free (apr_allocator_t *allocator, apr_memnode_t *memnode)
void apr_allocator_owner_set (apr_allocator_t *allocator, apr_pool_t *pool)
apr_pool_tapr_allocator_owner_get (apr_allocator_t *allocator)
void apr_allocator_max_free_set (apr_allocator_t *allocator, apr_size_t size)
void apr_allocator_mutex_set (apr_allocator_t *allocator, apr_thread_mutex_t *mutex)
apr_thread_mutex_tapr_allocator_mutex_get (apr_allocator_t *allocator)

Define Documentation

#define APR_ALLOCATOR_MAX_FREE_UNLIMITED   0

Symbolic constants

#define APR_MEMNODE_T_SIZE   APR_ALIGN_DEFAULT(sizeof(apr_memnode_t))

The base size of a memory node - aligned.


Typedef Documentation

the allocator structure

typedef struct apr_memnode_t apr_memnode_t

the structure which holds information about the allocation


Function Documentation

apr_memnode_t* apr_allocator_alloc ( apr_allocator_t allocator,
apr_size_t  size 
)

Allocate a block of mem from the allocator

Parameters:
allocator The allocator to allocate from
size The size of the mem to allocate (excluding the memnode structure)
apr_status_t apr_allocator_create ( apr_allocator_t **  allocator  ) 

Create a new allocator

Parameters:
allocator The allocator we have just created.
void apr_allocator_destroy ( apr_allocator_t allocator  ) 

Destroy an allocator

Parameters:
allocator The allocator to be destroyed
Remarks:
Any memnodes not given back to the allocator prior to destroying will _not_ be free()d.
void apr_allocator_free ( apr_allocator_t allocator,
apr_memnode_t memnode 
)

Free a list of blocks of mem, giving them back to the allocator. The list is typically terminated by a memnode with its next field set to NULL.

Parameters:
allocator The allocator to give the mem back to
memnode The memory node to return
void apr_allocator_max_free_set ( apr_allocator_t allocator,
apr_size_t  size 
)

Set the current threshold at which the allocator should start giving blocks back to the system.

Parameters:
allocator The allocator to set the threshold on
size The threshold. 0 == unlimited.
apr_thread_mutex_t* apr_allocator_mutex_get ( apr_allocator_t allocator  ) 

Get the mutex currently set for the allocator

Parameters:
allocator The allocator
void apr_allocator_mutex_set ( apr_allocator_t allocator,
apr_thread_mutex_t mutex 
)

Set a mutex for the allocator to use

Parameters:
allocator The allocator to set the mutex for
mutex The mutex
apr_pool_t* apr_allocator_owner_get ( apr_allocator_t allocator  ) 

Get the current owner of the allocator

Parameters:
allocator The allocator to get the owner from
void apr_allocator_owner_set ( apr_allocator_t allocator,
apr_pool_t pool 
)

Set the owner of the allocator

Parameters:
allocator The allocator to set the owner for
pool The pool that is to own the allocator
Remarks:
Typically pool is the highest level pool using the allocator
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on 19 Jun 2014 for Apache Portable Runtime by  doxygen 1.6.1