Pyrogenesis  trunk
Public Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
SegregatedRangeLists Class Reference
Collaboration diagram for SegregatedRangeLists:
Collaboration graph
[legend]

Public Member Functions

 SegregatedRangeLists ()
 
void Reset ()
 
void Insert (FreedBlock *freedBlock)
 
FreedBlockFind (size_t minSize)
 
void Remove (FreedBlock *freedBlock)
 
void Validate (uintptr_t id) const
 
size_t FreeBlocks () const
 
size_t FreeBytes () const
 

Static Private Member Functions

static size_t SizeClass (size_t size)
 
static uintptr_t ValueOfLeastSignificantOneBit (uintptr_t x)
 

Private Attributes

RangeList m_rangeLists [numRangeLists]
 
uintptr_t m_bitmap
 

Static Private Attributes

static const size_t numRangeLists = sizeof(uintptr_t)*CHAR_BIT
 

Constructor & Destructor Documentation

SegregatedRangeLists::SegregatedRangeLists ( )
inline

Member Function Documentation

FreedBlock* SegregatedRangeLists::Find ( size_t  minSize)
inline
Returns
the first freed block of size >= minSize or 0 if none exists.
size_t SegregatedRangeLists::FreeBlocks ( ) const
inline
size_t SegregatedRangeLists::FreeBytes ( ) const
inline
void SegregatedRangeLists::Insert ( FreedBlock freedBlock)
inline
void SegregatedRangeLists::Remove ( FreedBlock freedBlock)
inline
void SegregatedRangeLists::Reset ( )
inline
static size_t SegregatedRangeLists::SizeClass ( size_t  size)
inlinestaticprivate
Returns
"size class" of a given size. class i > 0 contains blocks of size (2**(i-1), 2**i].
void SegregatedRangeLists::Validate ( uintptr_t  id) const
inline
static uintptr_t SegregatedRangeLists::ValueOfLeastSignificantOneBit ( uintptr_t  x)
inlinestaticprivate

Member Data Documentation

uintptr_t SegregatedRangeLists::m_bitmap
private
RangeList SegregatedRangeLists::m_rangeLists[numRangeLists]
private
const size_t SegregatedRangeLists::numRangeLists = sizeof(uintptr_t)*CHAR_BIT
staticprivate

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