HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap > Class Template Reference

#include <segheap.h>

Inheritance diagram for HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >:
HL::StrictSegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >

List of all members.

Public Member Functions

 SegHeap (void)
 ~SegHeap (void)
size_t getMemoryHeld (void) const
size_t getSize (void *ptr)
void * malloc (const size_t sz)
void free (void *ptr)
void clear (void)

Protected Types

enum  { NUM_ULONGS = MAX_BITS / BITS_PER_ULONG }

Protected Member Functions

int get_binmap (int i) const
void mark_bin (int i)
void unmark_bin (int i)

Protected Attributes

BigHeap bigheap
unsigned long binmap [NUM_ULONGS]
size_t memoryHeld
const size_t maxObjectSize
LittleHeap myLittleHeap [NumBins]

Private Types

enum  { BITS_PER_ULONG = 32 }
enum  { SHIFTS_PER_ULONG = 5 }
enum  { MAX_BITS = (NumBins + BITS_PER_ULONG - 1) & ~(BITS_PER_ULONG - 1) }
typedef int(* scFunction )(const size_t)
typedef size_t(* csFunction )(const int)

Static Private Member Functions

static int idx2block (int i)
static unsigned long idx2bit (int i)

template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
class HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >


Member Typedef Documentation

template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
typedef size_t(* HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::csFunction)(const int) [private]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
typedef int(* HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::scFunction)(const size_t) [private]

Member Enumeration Documentation

template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
anonymous enum [private]
Enumerator:
BITS_PER_ULONG 
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
anonymous enum [private]
Enumerator:
SHIFTS_PER_ULONG 
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
anonymous enum [private]
Enumerator:
MAX_BITS 
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
anonymous enum [protected]
Enumerator:
NUM_ULONGS 

Constructor & Destructor Documentation

template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::SegHeap ( void   )  [inline]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::~SegHeap ( void   )  [inline]

Member Function Documentation

template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
void HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::clear ( void   )  [inline]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
void HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::free ( void *  ptr  )  [inline]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
int HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::get_binmap ( int  i  )  const [inline, protected]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
size_t HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::getMemoryHeld ( void   )  const [inline]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
size_t HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::getSize ( void *  ptr  )  [inline]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
static unsigned long HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::idx2bit ( int  i  )  [inline, static, private]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
static int HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::idx2block ( int  i  )  [inline, static, private]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
void* HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::malloc ( const size_t  sz  )  [inline]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
void HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::mark_bin ( int  i  )  [inline, protected]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
void HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::unmark_bin ( int  i  )  [inline, protected]

Member Data Documentation

template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
BigHeap HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::bigheap [protected]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
unsigned long HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::binmap[NUM_ULONGS] [protected]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
const size_t HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::maxObjectSize [protected]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
size_t HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::memoryHeld [protected]
template<int NumBins, int(*)(const size_t) getSizeClass, size_t(*)(const int) getClassMaxSize, class LittleHeap, class BigHeap>
LittleHeap HL::SegHeap< NumBins, getSizeClass, getClassMaxSize, LittleHeap, BigHeap >::myLittleHeap[NumBins] [protected]

The documentation for this class was generated from the following file:
Generated on Tue Aug 2 11:51:31 2011 for Galois by  doxygen 1.6.3