OpenTTD Source
20241108-master-g80f628063a
|
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 | |
std::mutex & | GetMutex () |
Get the mutex. More... | |
Titem & | Get (Tindex index) |
Get the item at position index. More... | |
Tindex | Create () |
Create a new item and return its index. More... | |
void | Destroy (Tindex index) |
Destroy (or rather invalidate) the item at the given index. More... | |
Private Member Functions | |
Tindex | FindFirstFree () |
Private Attributes | |
Tindex | first_unused |
Tindex | first_free |
std::mutex | mutex |
std::vector< SimplePoolPoolItem > | 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 21 of file smallstack_type.hpp.
|
inline |
Create a new item and return its index.
Definition at line 42 of file smallstack_type.hpp.
Referenced by SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Push().
|
inline |
Destroy (or rather invalidate) the item at the given index.
index | Index of item to be destroyed. |
Definition at line 57 of file smallstack_type.hpp.
Referenced by SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Pop().
|
inline |
Get the item at position index.
Definition at line 36 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().
|
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 30 of file smallstack_type.hpp.