Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
_TurnoutDiagnostic< PAT > Class Template Reference

#include "steam/engine/turnout.hpp"

Description

template<class PAT>
class steam::engine::_TurnoutDiagnostic< PAT >

»Backdoor« for diagnostic

Warning
must be kept layout compatible with Turnout

Definition at line 154 of file turnout.hpp.

Static Public Member Functions

static auto accessInternal (Port &port)
 Access to internals of the Weaving Pattern bypassing the VTable.
 

Private Member Functions

BuffHandle weave (TurnoutSystem &, OptionalBuff=std::nullopt) override
 

Additional Inherited Members

- Public Attributes inherited from Port
ProcIDprocID
 
- Public Member Functions inherited from Port
virtual ~Port ()
 this is an interface
 
 Port (ProcID &id)
 

Member Function Documentation

◆ weave()

template<class PAT >
BuffHandle weave ( TurnoutSystem ,
OptionalBuff  = std::nullopt 
)
inlineoverrideprivatevirtual

Implements Port.

Definition at line 159 of file turnout.hpp.

◆ accessInternal()

template<class PAT >
static auto accessInternal ( Port port)
inlinestatic

Access to internals of the Weaving Pattern bypassing the VTable.

Remarks
a huge number of different Weaving Pattern instances will be created, as result of implementing render functionality by delegating to some external media processing library. Each time, a highly optimised and tailored instance of Turnout::weave() is generated. However, by all means we must avoid generating additional repetitive generic code, which is only used occasionally and for unit-testing. Rather, with the help of this »backdoor«, diagnostic code can exploit the similar basic layout of weaving pattern templates to gain access to some common infrastructure, notably the predecessor ports.

Definition at line 178 of file turnout.hpp.

+ Inheritance diagram for _TurnoutDiagnostic< PAT >:
+ Collaboration diagram for _TurnoutDiagnostic< PAT >:

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