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

table containing the information of all segments. More...

#include <segment-free-memory-table.hpp>

Public Member Functions

 segment_free_memory_table ()=default
 creates the instance of the segment free memory table.
 
 ~segment_free_memory_table ()=default
 deletes the segment free memory table.
 
 segment_free_memory_table (const segment_free_memory_table &)=delete
 deleted copy constructor.
 
segment_free_memory_tableoperator= (const segment_free_memory_table &)=delete
 deleted assignment operator.
 
 segment_free_memory_table (segment_free_memory_table &&other) noexcept=default
 creates the instance of the segment free memory table from an existing one
 
segment_free_memory_tableoperator= (segment_free_memory_table &&other) noexcept=default
 assigns the instance of the segment free memory table from an existing one
 
void update_segment (size_t segment_index, header *free_list_head, uint32_t free_bytes)
 inserts or updates a segment.
 
segment_infoget_segment_info (size_t segment_index) noexcept
 getter for the info of the specific segment.
 
const segment_infoget_segment_info (size_t segment_index) const noexcept
 getter for the info of the specific segment.
 
void remove_segment (size_t segment_index)
 removes the segment from the table.
 
void clear_segments () noexcept
 removes all segments from the table.
 
size_t segment_count () const noexcept
 getter for the number of segments in the table.
 

Private Attributes

hash_map< size_t, segment_infofree_mem_table
 maps id of the segment to its information.
 

Detailed Description

table containing the information of all segments.

Constructor & Destructor Documentation

◆ segment_free_memory_table() [1/3]

segment_free_memory_table::segment_free_memory_table ( )
default

creates the instance of the segment free memory table.

◆ ~segment_free_memory_table()

segment_free_memory_table::~segment_free_memory_table ( )
default

deletes the segment free memory table.

◆ segment_free_memory_table() [2/3]

segment_free_memory_table::segment_free_memory_table ( const segment_free_memory_table )
delete

deleted copy constructor.

◆ segment_free_memory_table() [3/3]

segment_free_memory_table::segment_free_memory_table ( segment_free_memory_table &&  other)
defaultnoexcept

creates the instance of the segment free memory table from an existing one

Parameters
other- rvalue of the segment free memory table.

Member Function Documentation

◆ clear_segments()

void segment_free_memory_table::clear_segments ( )
noexcept

removes all segments from the table.

◆ get_segment_info() [1/2]

const segment_info * segment_free_memory_table::get_segment_info ( size_t  segment_index) const
noexcept

getter for the info of the specific segment.

Parameters
segment_index- index of the segment.
Returns
const pointer to a segment info.

◆ get_segment_info() [2/2]

segment_info * segment_free_memory_table::get_segment_info ( size_t  segment_index)
noexcept

getter for the info of the specific segment.

Parameters
segment_index- index of the segment.
Returns
pointer to a segment info.

◆ operator=() [1/2]

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

deleted assignment operator.

◆ operator=() [2/2]

segment_free_memory_table & segment_free_memory_table::operator= ( segment_free_memory_table &&  other)
defaultnoexcept

assigns the instance of the segment free memory table from an existing one

Parameters
other- rvalue of the segment free memory table.

◆ remove_segment()

void segment_free_memory_table::remove_segment ( size_t  segment_index)

removes the segment from the table.

Parameters
segment_index- index of the segment.

◆ segment_count()

size_t segment_free_memory_table::segment_count ( ) const
noexcept

getter for the number of segments in the table.

Returns
number of segments in the table.

◆ update_segment()

void segment_free_memory_table::update_segment ( size_t  segment_index,
header free_list_head,
uint32_t  free_bytes 
)

inserts or updates a segment.

Parameters
segment_index- index of the segment.
free_bytes- free bytes in a segment.
free_list_head- pointer to a head of the free list.

Member Data Documentation

◆ free_mem_table

hash_map<size_t, segment_info> segment_free_memory_table::free_mem_table
private

maps id of the segment to its information.


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