XLE  v0.02.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Utility::SpanningHeap< Marker > Class Template Reference
Inheritance diagram for Utility::SpanningHeap< Marker >:
Inheritance graph
[legend]

Public Member Functions

unsigned Allocate (unsigned size)
 
bool Allocate (unsigned ptr, unsigned size)
 
bool Deallocate (unsigned ptr, unsigned size)
 
unsigned CalculateAvailableSpace () const
 
unsigned CalculateLargestFreeBlock () const
 
unsigned CalculateAllocatedSpace () const
 
unsigned CalculateHeapSize () const
 
uint64 CalculateHash () const
 
bool IsEmpty () const
 
unsigned AppendNewBlock (unsigned size)
 
std::vector< unsigned > CalculateMetrics () const
 
std::vector< DefragStepCalculateDefragSteps () const
 
void PerformDefrag (const std::vector< DefragStep > &defrag)
 
std::pair< std::unique_ptr< uint8[]>, size_t > Flatten () const
 
 SpanningHeap (unsigned size)
 
 SpanningHeap (const uint8 flattened[], size_t flattenedSize)
 
 SpanningHeap (SpanningHeap &&moveFrom) never_throws
 
const SpanningHeapoperator= (SpanningHeap &&moveFrom) never_throws
 
 SpanningHeap (const SpanningHeap &cloneFrom)
 
const SpanningHeapoperator= (const SpanningHeap &cloneFrom)
 

Protected Member Functions

Marker CalculateLargestFreeBlock_Internal () const
 
bool BlockAdjust_Internal (unsigned ptr, unsigned size, bool allocateOperation)
 

Protected Attributes

std::vector< Marker > _markers
 
Threading::Mutex _lock
 
bool _largestFreeBlockValid
 
Marker _largestFreeBlock
 

Additional Inherited Members

- Static Public Member Functions inherited from Utility::MarkerHeap< Marker >
static Marker ToInternalSize (unsigned size)
 
static unsigned ToExternalSize (Marker size)
 
static unsigned AlignSize (unsigned size)
 

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