Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# ACE_Cached_Mem_Pool_Node Class Template Reference

<ACE_Cached_Mem_Pool_Node> keeps unused memory within a free list. More...

`#include <Malloc_T.h>`

Inheritance diagram for ACE_Cached_Mem_Pool_Node:

[legend]
Collaboration diagram for ACE_Cached_Mem_Pool_Node:

[legend]
List of all members.

## Public Methods
T * | addr (void)
| Return the address of free memory. More...
ACE_Cached_Mem_Pool_Node< T > * | get_next (void)
| Get the next ACE_Cached_Mem_Pool_Node in a list. More...
void | set_next (ACE_Cached_Mem_Pool_Node< T > *ptr)
| Set the next ACE_Cached_Mem_Pool_Node. More...
## Private Attributes
ACE_Cached_Mem_Pool_Node< T > * | next_
| Since memory is not used when placed in a free list, we can use it to maintain the structure of free list. More...

## Detailed Description

### template<class T>
class ACE_Cached_Mem_Pool_Node< T >

<ACE_Cached_Mem_Pool_Node> keeps unused memory within a free list.

The length of a piece of unused memory must be greater than sizeof (void*). This makes sense because we'll waste even more memory if we keep them in a separate data structure. This class should really be placed within the next class <ACE_Cached_Allocator>. But this can't be done due to C++ compiler portability problems.

## Member Function Documentation

template<class T>
ACE_INLINE T * ACE_Cached_Mem_Pool_Node< T >::addr | ( | void |  | ) |

| Return the address of free memory.

template<class T>
ACE_INLINE ACE_Cached_Mem_Pool_Node< T > * ACE_Cached_Mem_Pool_Node< T >::get_next | ( | void |  | ) |

| Get the next ACE_Cached_Mem_Pool_Node in a list.

template<class T>
ACE_INLINE void ACE_Cached_Mem_Pool_Node< T >::set_next | ( | ACE_Cached_Mem_Pool_Node< T > * | ptr | ) |

| Set the next ACE_Cached_Mem_Pool_Node.

## Member Data Documentation

template<class T>
ACE_Cached_Mem_Pool_Node<T>* ACE_Cached_Mem_Pool_Node::next_`[private]`

| Since memory is not used when placed in a free list, we can use it to maintain the structure of free list. I was using union to hide the fact of overlapping memory usage. However, that cause problem on MSVC. So, I now turn back to hack this with casting.

The documentation for this class was generated from the following files:

- Malloc_T.h
- Malloc_T.i