CUBRID Engine  latest
HL::ZoneHeap< SuperHeap, ChunkSize > Class Template Reference

#include <zoneheap.h>

Inheritance diagram for HL::ZoneHeap< SuperHeap, ChunkSize >:
Inheritance graph
Collaboration diagram for HL::ZoneHeap< SuperHeap, ChunkSize >:
Collaboration graph

Classes

class  Arena
 

Public Types

enum  { Alignment = SuperHeap::Alignment }
 

Public Member Functions

 ZoneHeap ()
 
 ~ZoneHeap ()
 
void reset (const int chkSize)
 
void * malloc (size_t sz)
 
void free (void *)
 Free in a zone allocator is a no-op. More...
 
int remove (void *)
 Remove in a zone allocator is a no-op. More...
 

Private Member Functions

 ZoneHeap (const ZoneHeap &)
 
ZoneHeapoperator= (const ZoneHeap &)
 
void * zoneMalloc (size_t sz)
 

Private Attributes

int m_chkSize
 
size_t _sizeRemaining
 Space left in the current arena. More...
 
Arena_currentArena
 The current arena. More...
 
Arena_pastArenas
 A linked list of past arenas. More...
 

Detailed Description

template<class SuperHeap, size_t ChunkSize>
class HL::ZoneHeap< SuperHeap, ChunkSize >

Definition at line 39 of file zoneheap.h.

Member Enumeration Documentation

template<class SuperHeap, size_t ChunkSize>
anonymous enum
Enumerator
Alignment 

Definition at line 42 of file zoneheap.h.

Constructor & Destructor Documentation

template<class SuperHeap, size_t ChunkSize>
HL::ZoneHeap< SuperHeap, ChunkSize >::ZoneHeap ( )
inline

Definition at line 44 of file zoneheap.h.

template<class SuperHeap, size_t ChunkSize>
HL::ZoneHeap< SuperHeap, ChunkSize >::~ZoneHeap ( )
inline

Definition at line 52 of file zoneheap.h.

template<class SuperHeap, size_t ChunkSize>
HL::ZoneHeap< SuperHeap, ChunkSize >::ZoneHeap ( const ZoneHeap< SuperHeap, ChunkSize > &  )
private

Member Function Documentation

template<class SuperHeap, size_t ChunkSize>
void HL::ZoneHeap< SuperHeap, ChunkSize >::free ( void *  )
inline

Free in a zone allocator is a no-op.

Definition at line 80 of file zoneheap.h.

template<class SuperHeap, size_t ChunkSize>
void* HL::ZoneHeap< SuperHeap, ChunkSize >::malloc ( size_t  sz)
inline

Definition at line 73 of file zoneheap.h.

template<class SuperHeap, size_t ChunkSize>
ZoneHeap& HL::ZoneHeap< SuperHeap, ChunkSize >::operator= ( const ZoneHeap< SuperHeap, ChunkSize > &  )
private
template<class SuperHeap, size_t ChunkSize>
int HL::ZoneHeap< SuperHeap, ChunkSize >::remove ( void *  )
inline

Remove in a zone allocator is a no-op.

Definition at line 83 of file zoneheap.h.

template<class SuperHeap, size_t ChunkSize>
void HL::ZoneHeap< SuperHeap, ChunkSize >::reset ( const int  chkSize)
inline

Definition at line 68 of file zoneheap.h.

Referenced by hl_register_fixed_heap().

Here is the caller graph for this function:

template<class SuperHeap, size_t ChunkSize>
void* HL::ZoneHeap< SuperHeap, ChunkSize >::zoneMalloc ( size_t  sz)
inlineprivate

Definition at line 93 of file zoneheap.h.

Referenced by HL::ZoneHeap< MallocHeap, 0 >::malloc().

Here is the caller graph for this function:

Member Data Documentation

template<class SuperHeap, size_t ChunkSize>
Arena* HL::ZoneHeap< SuperHeap, ChunkSize >::_currentArena
private

The current arena.

Definition at line 142 of file zoneheap.h.

Referenced by HL::ZoneHeap< MallocHeap, 0 >::zoneMalloc(), and HL::ZoneHeap< MallocHeap, 0 >::~ZoneHeap().

template<class SuperHeap, size_t ChunkSize>
Arena* HL::ZoneHeap< SuperHeap, ChunkSize >::_pastArenas
private

A linked list of past arenas.

Definition at line 145 of file zoneheap.h.

Referenced by HL::ZoneHeap< MallocHeap, 0 >::zoneMalloc(), and HL::ZoneHeap< MallocHeap, 0 >::~ZoneHeap().

template<class SuperHeap, size_t ChunkSize>
size_t HL::ZoneHeap< SuperHeap, ChunkSize >::_sizeRemaining
private

Space left in the current arena.

Definition at line 139 of file zoneheap.h.

Referenced by HL::ZoneHeap< MallocHeap, 0 >::zoneMalloc().

template<class SuperHeap, size_t ChunkSize>
int HL::ZoneHeap< SuperHeap, ChunkSize >::m_chkSize
private

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