OpenTTD
Data Structures | Public Member Functions | Private Member Functions | Private Attributes
SimplePool< Titem, Tindex, Tgrowth_step, Tmax_size > Class Template Reference

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

ThreadMutexGetMutex ()
 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
ThreadMutexmutex
SmallVector
< SimplePoolPoolItem,
Tgrowth_step > 
data

Detailed Description

template<typename Titem, typename Tindex, Tindex Tgrowth_step, Tindex Tmax_size>
class SimplePool< Titem, Tindex, Tgrowth_step, Tmax_size >

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.

Member Function Documentation

template<typename Titem , typename Tindex , Tindex Tgrowth_step, Tindex Tmax_size>
Tindex SimplePool< Titem, Tindex, Tgrowth_step, Tmax_size >::Create ( )
inline

Create a new item and return its index.

Returns
Index of new item.

Definition at line 46 of file smallstack_type.hpp.

References max().

Referenced by SmallStack< Titem, Tindex, Tinvalid, Tgrowth_step, Tmax_size >::Push().

template<typename Titem , typename Tindex , Tindex Tgrowth_step, Tindex Tmax_size>
void SimplePool< Titem, Tindex, Tgrowth_step, Tmax_size >::Destroy ( Tindex  index)
inline

Destroy (or rather invalidate) the item at the given index.

Parameters
indexIndex 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().

template<typename Titem , typename Tindex , Tindex Tgrowth_step, Tindex Tmax_size>
Titem& SimplePool< Titem, Tindex, Tgrowth_step, Tmax_size >::Get ( Tindex  index)
inline
template<typename Titem , typename Tindex , Tindex Tgrowth_step, Tindex Tmax_size>
ThreadMutex* SimplePool< Titem, Tindex, Tgrowth_step, Tmax_size >::GetMutex ( )
inline

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