Pyrogenesis  13997
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
SegregatedRangeLists Class Reference

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
 

Detailed Description

Definition at line 269 of file headerless.cpp.

Constructor & Destructor Documentation

SegregatedRangeLists::SegregatedRangeLists ( )
inline

Definition at line 272 of file headerless.cpp.

Member Function Documentation

FreedBlock* SegregatedRangeLists::Find ( size_t  minSize)
inline
Returns
the first freed block of size >= minSize or 0 if none exists.

Definition at line 295 of file headerless.cpp.

size_t SegregatedRangeLists::FreeBlocks ( ) const
inline

Definition at line 339 of file headerless.cpp.

size_t SegregatedRangeLists::FreeBytes ( ) const
inline

Definition at line 347 of file headerless.cpp.

void SegregatedRangeLists::Insert ( FreedBlock freedBlock)
inline

Definition at line 284 of file headerless.cpp.

void SegregatedRangeLists::Remove ( FreedBlock freedBlock)
inline

Definition at line 318 of file headerless.cpp.

void SegregatedRangeLists::Reset ( )
inline

Definition at line 277 of file headerless.cpp.

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].

Definition at line 360 of file headerless.cpp.

void SegregatedRangeLists::Validate ( uintptr_t  id) const
inline

Definition at line 328 of file headerless.cpp.

static uintptr_t SegregatedRangeLists::ValueOfLeastSignificantOneBit ( uintptr_t  x)
inlinestaticprivate

Definition at line 365 of file headerless.cpp.

Member Data Documentation

uintptr_t SegregatedRangeLists::m_bitmap
private

Definition at line 376 of file headerless.cpp.

RangeList SegregatedRangeLists::m_rangeLists[numRangeLists]
private

Definition at line 372 of file headerless.cpp.

const size_t SegregatedRangeLists::numRangeLists = sizeof(uintptr_t)*CHAR_BIT
staticprivate

Definition at line 371 of file headerless.cpp.


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