|
OpenTTD
|
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.
|
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().
|
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().
|
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().
|
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().
1.8.1.2