OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

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

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

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

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

Titem& SimplePool< Titem, Tindex, Tgrowth_step, Tmax_size >::Get | ( | Tindex | index | ) |
| inline

Get the item at position index.

Returns
  Item at 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().

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

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.

Returns
  Mutex.

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

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

- src/core/smallstack_type.hpp