KiCad PCB EDA Suite
Loading...
Searching...
No Matches
SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS > Class Template Reference

Versioned value table. More...

#include <conn_cache.h>

Classes

struct  ENTRY
 

Public Member Functions

 CACHE_TABLE (CACHE_VERSIONS &aVersions, LESS aLess={})
 
 CACHE_TABLE (const CACHE_TABLE &)=delete
 
CACHE_TABLEoperator= (const CACHE_TABLE &)=delete
 
const ENTRYFind (const KEY &aKey) const
 Entry references survive unchanged writes, but not replacement or erasure of their key.
 
template<typename LOOKUP_KEY>
const ENTRYFind (const LOOKUP_KEY &aKey) const
 
const ENTRYSet (const KEY &aKey, VALUE aValue)
 
void Erase (const KEY &aKey)
 
void Clear ()
 
const auto & Entries () const
 

Private Attributes

CACHE_VERSIONSm_versions
 
std::map< KEY, std::unique_ptr< const ENTRY >, LESSm_entries
 

Detailed Description

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
class SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >

Versioned value table.

Set() keeps the old version for an equal value, which stops change propagation.

Definition at line 60 of file conn_cache.h.

Constructor & Destructor Documentation

◆ CACHE_TABLE() [1/2]

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::CACHE_TABLE ( CACHE_VERSIONS & aVersions,
LESS aLess = {} )
inlineexplicit

Definition at line 69 of file conn_cache.h.

◆ CACHE_TABLE() [2/2]

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::CACHE_TABLE ( const CACHE_TABLE< KEY, VALUE, LESS > & )
delete

Member Function Documentation

◆ Clear()

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
void SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::Clear ( )
inline

Definition at line 103 of file conn_cache.h.

◆ Entries()

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
const auto & SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::Entries ( ) const
inline

◆ Erase()

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
void SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::Erase ( const KEY & aKey)
inline

Definition at line 102 of file conn_cache.h.

◆ Find() [1/2]

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
const ENTRY * SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::Find ( const KEY & aKey) const
inline

Entry references survive unchanged writes, but not replacement or erasure of their key.

Definition at line 80 of file conn_cache.h.

Referenced by SCH_CONNECTIVITY::DeriveSignal(), SCH_CONNECTIVITY::CACHE_TABLE< SLOT_KEY, SLOT_INPUT, KEY_LESS >::Find(), SCH_CONNECTIVITY::PrepareBundle(), and SCH_CONNECTIVITY::PUBLICATION::PrepareRows().

◆ Find() [2/2]

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
template<typename LOOKUP_KEY>
const ENTRY * SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::Find ( const LOOKUP_KEY & aKey) const
inline

Definition at line 83 of file conn_cache.h.

◆ operator=()

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
CACHE_TABLE & SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::operator= ( const CACHE_TABLE< KEY, VALUE, LESS > & )
delete

◆ Set()

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
const ENTRY & SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::Set ( const KEY & aKey,
VALUE aValue )
inline

Definition at line 89 of file conn_cache.h.

Member Data Documentation

◆ m_entries

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
std::map<KEY, std::unique_ptr<const ENTRY>, LESS> SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::m_entries
private

Definition at line 109 of file conn_cache.h.

◆ m_versions

template<typename KEY, typename VALUE, typename LESS = std::less<KEY>>
CACHE_VERSIONS& SCH_CONNECTIVITY::CACHE_TABLE< KEY, VALUE, LESS >::m_versions
private

Definition at line 108 of file conn_cache.h.


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