GCSIM
Public Member Functions | Private Attributes | List of all members
heap Class Reference

implementation of the segmented heap. More...

#include <heap.hpp>

Public Member Functions

 heap ()=default
 creates the instance of the heap.
 
 ~heap ()=default
 deletes the heap object.
 
 heap (const heap &)=delete
 deleted copy constructor.
 
heapoperator= (const heap &)=delete
 deleted assignment operator.
 
 heap (heap &&)=delete
 deleted move constructor.
 
heapoperator= (heap &&)=delete
 deleted move assignment operator.
 
segmentget_small_object_segment (size_t index)
 getter for small object segments.
 
const segmentget_small_object_segment (size_t index) const
 getter for small object segments.
 
segmentget_medium_object_segment (size_t index)
 getter for medium object segments.
 
const segmentget_medium_object_segment (size_t index) const
 getter for medium object segments.
 
segmentget_large_object_segment (size_t index)
 getter for large object segments.
 
const segmentget_large_object_segment (size_t index) const
 getter for large object segments.
 

Private Attributes

segment small_object_segments [SMALL_OBJECT_SEGMENTS]
 segments for small object allocation.
 
segment medium_object_segments [MEDIUM_OBJECT_SEGMENTS]
 segments for medium object allocation.
 
segment large_object_segments [LARGE_OBJECT_SEGMENTS]
 segments for large object allocation.
 

Detailed Description

implementation of the segmented heap.

Constructor & Destructor Documentation

◆ heap() [1/3]

heap::heap ( )
default

creates the instance of the heap.

initializes all segments.

◆ ~heap()

heap::~heap ( )
default

deletes the heap object.

frees all segments.

◆ heap() [2/3]

heap::heap ( const heap )
delete

deleted copy constructor.

◆ heap() [3/3]

heap::heap ( heap &&  )
delete

deleted move constructor.

Member Function Documentation

◆ get_large_object_segment() [1/2]

segment & heap::get_large_object_segment ( size_t  index)

getter for large object segments.

Parameters
index- index of the large object segment.
Returns
reference to a large object segment.

◆ get_large_object_segment() [2/2]

const segment & heap::get_large_object_segment ( size_t  index) const

getter for large object segments.

Parameters
index- index of the large object segment.
Returns
const reference to a large object segment.

◆ get_medium_object_segment() [1/2]

segment & heap::get_medium_object_segment ( size_t  index)

getter for medium object segments.

Parameters
index- index of the medium object segment.
Returns
reference to a medium object segment.

◆ get_medium_object_segment() [2/2]

const segment & heap::get_medium_object_segment ( size_t  index) const

getter for medium object segments.

Parameters
index- index of the medium object segment.
Returns
const reference to a medium object segment.

◆ get_small_object_segment() [1/2]

segment & heap::get_small_object_segment ( size_t  index)

getter for small object segments.

Parameters
index- index of the small object segment.
Returns
reference to a small object segment.

◆ get_small_object_segment() [2/2]

const segment & heap::get_small_object_segment ( size_t  index) const

getter for small object segments.

Parameters
index- index of the small object segment.
Returns
const reference to a small object segment.

◆ operator=() [1/2]

heap & heap::operator= ( const heap )
delete

deleted assignment operator.

◆ operator=() [2/2]

heap & heap::operator= ( heap &&  )
delete

deleted move assignment operator.

Member Data Documentation

◆ large_object_segments

segment heap::large_object_segments[LARGE_OBJECT_SEGMENTS]
private

segments for large object allocation.

◆ medium_object_segments

segment heap::medium_object_segments[MEDIUM_OBJECT_SEGMENTS]
private

segments for medium object allocation.

◆ small_object_segments

segment heap::small_object_segments[SMALL_OBJECT_SEGMENTS]
private

segments for small object allocation.


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