| 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
 1.8.1.2