A simplified pool which stores values instead of pointers and doesn't redefine operator new/delete. More...
#include <smallstack_type.hpp>
Data Structures | |
struct | SimplePoolPoolItem |
Public Member Functions | |
ThreadMutex * | GetMutex () |
Get the mutex. | |
Titem & | Get (Tindex index) |
Get the item at position index. | |
Tindex | Create () |
Create a new item and return its index. | |
void | Destroy (Tindex index) |
Destroy (or rather invalidate) the item at the given index. | |
Private Member Functions | |
Tindex | FindFirstFree () |
Private Attributes | |
Tindex | first_unused |
Tindex | first_free |
ThreadMutex * | mutex |
SmallVector < SimplePoolPoolItem, Tgrowth_step > | data |
A simplified pool which stores values instead of pointers and doesn't redefine operator new/delete.
It also never zeroes memory and always reuses it.
Definition at line 24 of file smallstack_type.hpp.
Tindex SimplePool< Titem, Tindex, Tgrowth_step, Tmax_size >::Create | ( | ) | [inline] |
Create a new item and return its index.
Definition at line 46 of file smallstack_type.hpp.
References max().
Referenced by SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Push().
void SimplePool< Titem, Tindex, Tgrowth_step, Tmax_size >::Destroy | ( | Tindex | index | ) | [inline] |
Destroy (or rather invalidate) the item at the given index.
index | Index of item to be destroyed. |
Definition at line 61 of file smallstack_type.hpp.
References min().
Referenced by SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Pop().
Titem& SimplePool< Titem, Tindex, Tgrowth_step, Tmax_size >::Get | ( | Tindex | index | ) | [inline] |
Get the item at position index.
Definition at line 40 of file smallstack_type.hpp.
Referenced by SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Branch(), SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Contains(), SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Pop(), and SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Push().
ThreadMutex* SimplePool< Titem, Tindex, Tgrowth_step, Tmax_size >::GetMutex | ( | ) | [inline] |
Get the mutex.
We don't lock the mutex in the pool methods as the SmallStack isn't necessarily in a consistent state after each method.
Definition at line 34 of file smallstack_type.hpp.
Referenced by SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Branch(), SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Contains(), SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Pop(), and SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Push().