ACE
6.3.3
|
ACE_Cached_Mem_Pool_Node keeps unused memory within a free list. More...
#include <Malloc_T.h>
Public Member Functions | |
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_ |
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 ACE_Cached_Allocator class but this can't be done due to C++ compiler portability problems.
|
inline |
Return the address of free memory.
|
inline |
Get the next ACE_Cached_Mem_Pool_Node in a list.
|
inline |
Set the next ACE_Cached_Mem_Pool_Node.
|
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.