Static Public Member Functions |
static bool | CanAllocateItem (size_t n=1) |
| Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function()
|
static bool | CleaningPool () |
| Returns current state of pool cleaning - yes or no.
|
static bool | IsValidID (size_t index) |
| Tests whether given index can be used to get valid (non-NULL) Titem.
|
static Titem * | Get (size_t index) |
| Returns Titem with given index.
|
static Titem * | GetIfValid (size_t index) |
| Returns Titem with given index.
|
static size_t | GetPoolSize () |
| Returns first unused index.
|
static size_t | GetNumItems () |
| Returns number of valid items in the pool.
|
static void | PostDestructor (size_t index) |
| Dummy function called after destructor of each member.
|
template<class Titem, typename Tindex, size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >
Base class for all PoolItems.
- Template Parameters
-
Tpool | The pool this item is going to be part of |
Definition at line 146 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
static bool Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::CanAllocateItem |
( |
size_t |
n = 1 | ) |
|
|
inlinestatic |
Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function()
Tests whether we can allocate 'n' items
- Parameters
-
n | number of items we want to allocate |
- Returns
- true if 'n' items can be allocated
Definition at line 216 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
static bool Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::CleaningPool |
( |
| ) |
|
|
inlinestatic |
Returns current state of pool cleaning - yes or no.
- Returns
- true iff we are cleaning the pool now
Definition at line 225 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
static Titem* Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::Get |
( |
size_t |
index | ) |
|
|
inlinestatic |
Returns Titem with given index.
- Parameters
-
- Returns
- pointer to Titem
- Precondition
- index < this->first_unused
Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, SpecializedVehicle< RoadVehicle, Type >, SpecializedStation< T, Tis_waypoint >, SpecializedStation< Station, false >, and SpecializedStation< Waypoint, true >.
Definition at line 246 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
static Titem* Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::GetIfValid |
( |
size_t |
index | ) |
|
|
inlinestatic |
Returns Titem with given index.
- Parameters
-
- Returns
- pointer to Titem
- Note
- returns NULL for invalid index
Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, SpecializedVehicle< RoadVehicle, Type >, SpecializedStation< T, Tis_waypoint >, SpecializedStation< Station, false >, and SpecializedStation< Waypoint, true >.
Definition at line 257 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
static size_t Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::GetNumItems |
( |
| ) |
|
|
inlinestatic |
Returns number of valid items in the pool.
- Returns
- number of valid items in the pool
Definition at line 276 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
static size_t Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::GetPoolSize |
( |
| ) |
|
|
inlinestatic |
Returns first unused index.
Useful when iterating over all pool items.
- Returns
- first unused index
Definition at line 267 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
static bool Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::IsValidID |
( |
size_t |
index | ) |
|
|
inlinestatic |
Tests whether given index can be used to get valid (non-NULL) Titem.
- Parameters
-
- Returns
- true if PoolItem::Get(index) will return non-NULL pointer
Reimplemented in SpecializedVehicle< T, Type >, SpecializedVehicle< DisasterVehicle, VEH_DISASTER >, SpecializedVehicle< Ship, VEH_SHIP >, SpecializedVehicle< Train, Type >, SpecializedVehicle< Aircraft, VEH_AIRCRAFT >, SpecializedVehicle< EffectVehicle, VEH_EFFECT >, SpecializedVehicle< RoadVehicle, Type >, SpecializedStation< T, Tis_waypoint >, SpecializedStation< Station, false >, and SpecializedStation< Waypoint, true >.
Definition at line 235 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
void Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::operator delete |
( |
void * |
p | ) |
|
|
inline |
Marks Titem as free.
Its memory is released
- Parameters
-
- Note
- the item has to be allocated in the pool!
Definition at line 165 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
void* Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::operator new |
( |
size_t |
size | ) |
|
|
inline |
Allocates space for new Titem.
- Parameters
-
- Returns
- pointer to allocated memory
- Note
- can never fail (return NULL), use CanAllocate() to check first!
Definition at line 155 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
void* Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::operator new |
( |
size_t |
size, |
|
|
size_t |
index |
|
) |
| |
|
inline |
Allocates space for new Titem with given index.
- Parameters
-
size | size of Titem |
index | index of item |
- Returns
- pointer to allocated memory
- Note
- can never fail (return NULL), use CanAllocate() to check first!
- Precondition
- index has to be unused! Else it will crash
Definition at line 181 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
void* Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::operator new |
( |
size_t |
size, |
|
|
void * |
ptr |
|
) |
| |
|
inline |
Allocates space for new Titem at given memory address.
- Parameters
-
size | size of Titem |
ptr | where are we allocating the item? |
- Returns
- pointer to allocated memory (== ptr)
- Note
- use of this is strongly discouraged
- Precondition
- the memory must not be allocated in the Pool!
Definition at line 194 of file pool_type.hpp.
template<class Titem , typename Tindex , size_t Tgrowth_step, size_t Tmax_size, PoolType Tpool_type = PT_NORMAL, bool Tcache = false, bool Tzero = true>
template<struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > * Tpool>
static void Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::PostDestructor |
( |
size_t |
index | ) |
|
|
inlinestatic |
Dummy function called after destructor of each member.
If you want to use it, override it in PoolItem's subclass.
- Parameters
-
index | index of deleted item |
- Note
- when this function is called, PoolItem::Get(index) == NULL.
-
it's called only when !CleaningPool()
Reimplemented in Company, BaseStation, Town, and Industry.
Definition at line 288 of file pool_type.hpp.