# CSegmentCostCacheT< Tsegment > Struct Template Reference

CSegmentCostCacheT - template class providing hash-map and storage (heap) of Tsegment structures. More...

`#include <yapf_costcache.hpp>`

Inheritance diagram for CSegmentCostCacheT< Tsegment >:

## Public Types
typedef CHashTableT< Tsegment, C_HASH_BITS > | HashTable
typedef SmallArray< Tsegment > | Heap
typedef Tsegment::Key | Key
| key to hash table
## Public Member Functions
FORCEINLINE void | Flush ()
| flush (clear) the cache
FORCEINLINE Tsegment & | Get (Key &key, bool *found)
## Data Fields
HashTable | m_map
Heap | m_heap
## Static Public Attributes
static const int | C_HASH_BITS = 14

## Detailed Description

### template<class Tsegment>
struct CSegmentCostCacheT< Tsegment >

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 124 of file yapf_costcache.hpp.

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

- src/pathfinder/yapf/yapf_costcache.hpp