KiCad PCB EDA Suite
Loading...
Searching...
No Matches
ALLEGRO::TYPED_LL_WALKER< T > Class Template Reference

Range-for-compatible walker that yields only typed data from a linked list. More...

#include <allegro_db_utils.h>

Classes

class  ITERATOR
 

Public Member Functions

 TYPED_LL_WALKER (uint32_t aHead, uint32_t aTail, const BRD_DB &aBoard, MISMATCH_POLICY aPolicy=MISMATCH_POLICY::SKIP, LL_WALKER::NEXT_FUNC_T aNextFunc=GetPrimaryNext)
 
 TYPED_LL_WALKER (const FILE_HEADER::LINKED_LIST &aList, const BRD_DB &aBoard, MISMATCH_POLICY aPolicy=MISMATCH_POLICY::SKIP, LL_WALKER::NEXT_FUNC_T aNextFunc=GetPrimaryNext)
 
void SetMismatchReporter (MISMATCH_REPORTER aReporter)
 
ITERATOR begin () const
 
ITERATOR end () const
 

Private Attributes

LL_WALKER m_walker
 
MISMATCH_POLICY m_policy
 
MISMATCH_REPORTER m_mismatchReporter
 

Detailed Description

template<ALLEGRO_BLOCK_DATA T>
class ALLEGRO::TYPED_LL_WALKER< T >

Range-for-compatible walker that yields only typed data from a linked list.

Wraps LL_WALKER and applies a MISMATCH_POLICY to blocks whose type code does not match T. Dereferences yield const T& directly, avoiding repeated checks/casts in loop bodies.

Definition at line 303 of file allegro_db_utils.h.

Constructor & Destructor Documentation

◆ TYPED_LL_WALKER() [1/2]

template<ALLEGRO_BLOCK_DATA T>
ALLEGRO::TYPED_LL_WALKER< T >::TYPED_LL_WALKER ( uint32_t aHead,
uint32_t aTail,
const BRD_DB & aBoard,
MISMATCH_POLICY aPolicy = MISMATCH_POLICY::SKIP,
LL_WALKER::NEXT_FUNC_T aNextFunc = GetPrimaryNext )
inline

Definition at line 382 of file allegro_db_utils.h.

References ALLEGRO::GetPrimaryNext(), m_policy, m_walker, move, and ALLEGRO::SKIP.

Referenced by TYPED_LL_WALKER().

◆ TYPED_LL_WALKER() [2/2]

template<ALLEGRO_BLOCK_DATA T>
ALLEGRO::TYPED_LL_WALKER< T >::TYPED_LL_WALKER ( const FILE_HEADER::LINKED_LIST & aList,
const BRD_DB & aBoard,
MISMATCH_POLICY aPolicy = MISMATCH_POLICY::SKIP,
LL_WALKER::NEXT_FUNC_T aNextFunc = GetPrimaryNext )
inline

Definition at line 390 of file allegro_db_utils.h.

References ALLEGRO::GetPrimaryNext(), move, ALLEGRO::SKIP, and TYPED_LL_WALKER().

Member Function Documentation

◆ begin()

template<ALLEGRO_BLOCK_DATA T>
ITERATOR ALLEGRO::TYPED_LL_WALKER< T >::begin ( ) const
inline

Definition at line 402 of file allegro_db_utils.h.

References m_mismatchReporter, m_policy, and m_walker.

◆ end()

template<ALLEGRO_BLOCK_DATA T>
ITERATOR ALLEGRO::TYPED_LL_WALKER< T >::end ( ) const
inline

Definition at line 407 of file allegro_db_utils.h.

◆ SetMismatchReporter()

template<ALLEGRO_BLOCK_DATA T>
void ALLEGRO::TYPED_LL_WALKER< T >::SetMismatchReporter ( MISMATCH_REPORTER aReporter)
inline

Member Data Documentation

◆ m_mismatchReporter

template<ALLEGRO_BLOCK_DATA T>
MISMATCH_REPORTER ALLEGRO::TYPED_LL_WALKER< T >::m_mismatchReporter
private

Definition at line 415 of file allegro_db_utils.h.

Referenced by begin(), and SetMismatchReporter().

◆ m_policy

template<ALLEGRO_BLOCK_DATA T>
MISMATCH_POLICY ALLEGRO::TYPED_LL_WALKER< T >::m_policy
private

Definition at line 414 of file allegro_db_utils.h.

Referenced by begin(), and TYPED_LL_WALKER().

◆ m_walker

template<ALLEGRO_BLOCK_DATA T>
LL_WALKER ALLEGRO::TYPED_LL_WALKER< T >::m_walker
private

Definition at line 413 of file allegro_db_utils.h.

Referenced by begin(), and TYPED_LL_WALKER().


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