NAME
ACE_Cached_Mem_Pool_Node - 
ACE_Cached_Mem_Pool_Node keeps unused memory within a free
list.
SYNOPSIS
#include <ace/Malloc_T.h>
template<class T>
class ACE_Cached_Mem_Pool_Node
{
  public:
    T *addr (void);
    ACE_Cached_Mem_Pool_Node<T> *get_next (void);
    void set_next (ACE_Cached_Mem_Pool_Node<T> *ptr);
  private:
    ACE_Cached_Mem_Pool_Node<T> *next_;
};
DESCRIPTION
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.
PUBLIC MEMBERS
T *addr (void);
return the address of free memory.
ACE_Cached_Mem_Pool_Node<T> *get_next (void);
get the next ACE_Cached_Mem_Pool_Node in a list.
void set_next (ACE_Cached_Mem_Pool_Node<T> *ptr);
set the next ACE_Cached_Mem_Pool_Node.
PRIVATE MEMBERS
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.
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.
AUTHOR
Doug Schmidt and Irfan Pyarali
LIBRARY
ace