OldMemoryPoolBase Struct Reference

Stuff for dynamic vehicles. More...

#include <oldpool.h>

Inherited by OldMemoryPool< T >.


Public Member Functions

void CleanPool ()
 Clean a pool in a safe way (does free all blocks).
bool AddBlockToPool ()
 This function tries to increase the size of array by adding 1 block too it.
bool AddBlockIfNeeded (uint index)
 Adds blocks to the pool if needed (and possible) till index fits inside the pool.
void UpdateFirstFreeIndex (uint index)
 Check if the index of pool item being deleted is lower than cached first_free_index.
uint GetSize () const
 Get the size of this pool, i.e.
bool CanAllocateMoreBlocks () const
 Can this pool allocate more blocks, i.e.
uint GetBlockCount () const
 Get the maximum number of allocable blocks.
const char * GetName () const
 Get the name of this pool.
bool CleaningPool () const
 Is the pool in the cleaning phase?

Data Fields

const uint item_size
 How many bytes one block is.
uint first_free_index
 The index of the first free pool item in this pool.
byte ** blocks
 An array of blocks (one block hold all the items).

Protected Member Functions

 OldMemoryPoolBase (const char *name, uint max_blocks, uint block_size_bits, uint item_size, OldMemoryPoolNewBlock *new_block_proc, OldMemoryPoolCleanBlock *clean_block_proc)

Protected Attributes

const char * name
 Name of the pool (just for debugging).
const uint max_blocks
 The max amount of blocks this pool can have.
const uint block_size_bits
 The size of each block in bits.
OldMemoryPoolNewBlock * new_block_proc
 Pointer to a function that is called after a new block is added.
OldMemoryPoolCleanBlock * clean_block_proc
 Pointer to a function that is called to clean a block.
uint current_blocks
 How many blocks we have in our pool.
uint total_items
 How many items we now have in this pool.
bool cleaning_pool
 Are we currently cleaning the pool?


Detailed Description

Stuff for dynamic vehicles.

Use the wrappers to access the OldMemoryPool please try to avoid manual calls!

Definition at line 20 of file oldpool.h.


Member Function Documentation

bool OldMemoryPoolBase::AddBlockToPool (  ) 

This function tries to increase the size of array by adding 1 block too it.

Returns:
Returns false if the pool could not be increased

Definition at line 45 of file oldpool.cpp.

References block_size_bits, blocks, current_blocks, item_size, max_blocks, name, new_block_proc, ReallocT(), and total_items.

Referenced by AddBlockIfNeeded().

bool OldMemoryPoolBase::AddBlockIfNeeded ( uint  index  ) 

Adds blocks to the pool if needed (and possible) till index fits inside the pool.

Returns:
Returns false if adding failed

Definition at line 74 of file oldpool.cpp.

References AddBlockToPool(), and total_items.

void OldMemoryPoolBase::UpdateFirstFreeIndex ( uint  index  )  [inline]

Check if the index of pool item being deleted is lower than cached first_free_index.

Parameters:
index index of pool item
Note:
usage of min() will result in better code on some architectures

Definition at line 56 of file oldpool.h.

References first_free_index, and min().

uint OldMemoryPoolBase::GetSize (  )  const [inline]

Get the size of this pool, i.e.

the total number of items you can put into it at the current moment; the pool might still be able to increase the size of the pool.

Returns:
the size of the pool

Definition at line 67 of file oldpool.h.

References total_items.

bool OldMemoryPoolBase::CanAllocateMoreBlocks (  )  const [inline]

Can this pool allocate more blocks, i.e.

is the maximum amount of allocated blocks not yet reached?

Returns:
the if and only if the amount of allocable blocks is less than the amount of allocated blocks.

Definition at line 78 of file oldpool.h.

References current_blocks.

uint OldMemoryPoolBase::GetBlockCount (  )  const [inline]

Get the maximum number of allocable blocks.

Returns:
the numebr of blocks

Definition at line 87 of file oldpool.h.

References current_blocks.

const char* OldMemoryPoolBase::GetName (  )  const [inline]

Get the name of this pool.

Returns:
the name

Definition at line 96 of file oldpool.h.

bool OldMemoryPoolBase::CleaningPool (  )  const [inline]

Is the pool in the cleaning phase?

Returns:
true if it is

Definition at line 105 of file oldpool.h.

References cleaning_pool.


The documentation for this struct was generated from the following files:

Generated on Wed Apr 1 14:38:38 2009 for OpenTTD by  doxygen 1.5.6