OpenTTD Source 20241224-master-gee860a5c8e
|
CSegmentCostCacheT - template class providing hash-map and storage (heap) of Tsegment structures. More...
#include <yapf_costcache.hpp>
Public Types | |
using | Key = typename Tsegment::Key |
key to hash table | |
Public Member Functions | |
void | Flush () |
flush (clear) the cache | |
Tsegment & | Get (Key &key, bool *found) |
Data Fields | |
HashTable< Tsegment, HASH_BITS > | map |
std::deque< Tsegment > | heap |
Static Public Attributes | |
static constexpr int | HASH_BITS = 14 |
Static Public Attributes inherited from CSegmentCostCacheBase | |
static int | s_rail_change_counter = 0 |
if any track changes, this counter is incremented - that will invalidate segment cost cache | |
Additional Inherited Members | |
Static Public Member Functions inherited from CSegmentCostCacheBase | |
static void | NotifyTrackLayoutChange (TileIndex, Track) |
CSegmentCostCacheT - template class providing hash-map and storage (heap) of Tsegment structures.
Each rail node contains pointer to the segment that contains cached (or non-cached) segment cost information. Nodes can differ by key type, but they use the same segment type. Segment key should be always the same (TileIndex + DiagDirection) that represent the beginning of the segment (origin tile and exit-dir from this tile). Different CYapfCachedCostT types can share the same type of CSegmentCostCacheT. Look at CYapfRailSegment (yapf_node_rail.hpp) for the segment example
Definition at line 68 of file yapf_costcache.hpp.
using CSegmentCostCacheT< Tsegment >::Key = typename Tsegment::Key |
key to hash table
Definition at line 71 of file yapf_costcache.hpp.
|
inline |
Definition at line 76 of file yapf_costcache.hpp.
|
inline |
flush (clear) the cache
Definition at line 79 of file yapf_costcache.hpp.
References HashTable< Titem, Thash_bits_ >::Clear().
|
inline |
Definition at line 85 of file yapf_costcache.hpp.
|
staticconstexpr |
Definition at line 69 of file yapf_costcache.hpp.
std::deque<Tsegment> CSegmentCostCacheT< Tsegment >::heap |
Definition at line 74 of file yapf_costcache.hpp.
HashTable<Tsegment, HASH_BITS> CSegmentCostCacheT< Tsegment >::map |
Definition at line 73 of file yapf_costcache.hpp.