OpenDDS  Snapshot(2023/04/07-19:43)
Public Member Functions | Private Attributes | List of all members
OpenDDS::DCPS::FreeIndexNode Class Reference

#include <MemoryPool.h>

Collaboration diagram for OpenDDS::DCPS::FreeIndexNode:
Collaboration graph
[legend]

Public Member Functions

 FreeIndexNode ()
 
void set_ptr (FreeHeader *ptr)
 
void set_sizes (size_t size, size_t limit)
 
bool contains (size_t size)
 
FreeHeaderptr ()
 
unsigned int size () const
 

Private Attributes

size_t size_
 size of buffer More...
 
size_t limit_
 upper_limit of buffer size (one too large) More...
 
FreeHeaderptr_
 points to smallest free alloc of size_ or larger More...
 

Detailed Description

Node of free index. Should point to smallest free block of the range from size (inclusive) to limit (non inclusive). If multiple free allocations of the smallest size in range exist, should point to the one which is the "smallest" (in free list order).

Definition at line 94 of file MemoryPool.h.

Constructor & Destructor Documentation

◆ FreeIndexNode()

OpenDDS::DCPS::FreeIndexNode::FreeIndexNode ( )

Definition at line 147 of file MemoryPool.cpp.

148 : size_(0)
149 , limit_(0)
150 , ptr_(0)
151 {
152 }
FreeHeader * ptr_
points to smallest free alloc of size_ or larger
Definition: MemoryPool.h:113
size_t size_
size of buffer
Definition: MemoryPool.h:111
size_t limit_
upper_limit of buffer size (one too large)
Definition: MemoryPool.h:112

Member Function Documentation

◆ contains()

bool OpenDDS::DCPS::FreeIndexNode::contains ( size_t  size)
inline

Does this node contain a given size

Definition at line 103 of file MemoryPool.h.

References size_.

103 { return ((size >= size_) && (size < limit_)); }
size_t size_
size of buffer
Definition: MemoryPool.h:111
unsigned int size() const
Definition: MemoryPool.h:108
size_t limit_
upper_limit of buffer size (one too large)
Definition: MemoryPool.h:112

◆ ptr()

FreeHeader* OpenDDS::DCPS::FreeIndexNode::ptr ( void  )
inline

Get this node's free block

Definition at line 106 of file MemoryPool.h.

Referenced by OpenDDS::DCPS::FreeIndex::find(), and OpenDDS::DCPS::FreeIndex::node_index().

106 { return ptr_; }
FreeHeader * ptr_
points to smallest free alloc of size_ or larger
Definition: MemoryPool.h:113

◆ set_ptr()

void OpenDDS::DCPS::FreeIndexNode::set_ptr ( FreeHeader ptr)
inline

Set the free alloc this node points to

Definition at line 98 of file MemoryPool.h.

Referenced by OpenDDS::DCPS::FreeIndex::add(), and OpenDDS::DCPS::FreeIndex::remove().

98 { ptr_ = ptr; }
FreeHeader * ptr_
points to smallest free alloc of size_ or larger
Definition: MemoryPool.h:113

◆ set_sizes()

void OpenDDS::DCPS::FreeIndexNode::set_sizes ( size_t  size,
size_t  limit 
)

Set the sizes for this node

Definition at line 155 of file MemoryPool.cpp.

References limit_, size(), and size_.

Referenced by OpenDDS::DCPS::FreeIndex::init().

156 {
157  size_ = size;
158  limit_ = limit;
159 }
size_t size_
size of buffer
Definition: MemoryPool.h:111
unsigned int size() const
Definition: MemoryPool.h:108
size_t limit_
upper_limit of buffer size (one too large)
Definition: MemoryPool.h:112

◆ size()

unsigned int OpenDDS::DCPS::FreeIndexNode::size ( void  ) const
inline

Get this node's minimum size

Definition at line 108 of file MemoryPool.h.

References size_.

Referenced by OpenDDS::DCPS::FreeIndex::node_index(), and set_sizes().

108 { return static_cast<unsigned int>(size_); }
size_t size_
size of buffer
Definition: MemoryPool.h:111

Member Data Documentation

◆ limit_

size_t OpenDDS::DCPS::FreeIndexNode::limit_
private

upper_limit of buffer size (one too large)

Definition at line 112 of file MemoryPool.h.

Referenced by set_sizes().

◆ ptr_

FreeHeader* OpenDDS::DCPS::FreeIndexNode::ptr_
private

points to smallest free alloc of size_ or larger

Definition at line 113 of file MemoryPool.h.

◆ size_

size_t OpenDDS::DCPS::FreeIndexNode::size_
private

size of buffer

Definition at line 111 of file MemoryPool.h.

Referenced by set_sizes().


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