Lumiera  0.pre.03
»edit your freedom«
ExitNode Class Reference

#include "steam/engine/exit-node.hpp"

Description

A top-level point in the render node network where data generation can be driven.

Todo:
6/2023 for the »Playback Vertical Slice« we need somehow to represent "the nodes", while the final solution how to hook up ProcNode and how to represent prerequisites remains still to be settled. So this is a placeholder to support mock testing for now.
Warning
ExitNode should ideally be NonCopyable, since it is referred by the JobTicket However, we need to clone-and-remould Segments (Split-Splice-Algo), and this implies that the render nodes can be shared among multiple Segments. If all these assessments are correct an only be decided when the actual memory management is settled.

Definition at line 72 of file exit-node.hpp.

Public Member Functions

 ExitNode (HashVal id, Duration jobRuntime, ExitNodes &&prereq=ExitNodes{}, JobFunctor *functor=nullptr)
 
 ExitNode (HashVal id, ExitNodes &&prereq=ExitNodes{})
 
bool empty () const
 
JobFunctorgetInvocationFunctor () const
 
HashVal getPipelineIdentity () const
 
auto getPrerequisites () const
 
Duration getUpperBoundRuntime () const
 
bool isValid () const
 

Static Public Attributes

static ExitNode NIL {}
 storage for the »inactive« ExitNode marker
 

Private Attributes

JobFunctoraction_ {nullptr}
 
HashVal pipelineIdentity_
 
ExitNodes prerequisites_
 
Duration runtimeBound_
 

Additional Inherited Members

- Private Member Functions inherited from Cloneable
 Cloneable (Cloneable &&)=default
 
 Cloneable (Cloneable const &)=default
 
Cloneableoperator= (Cloneable &&)=delete
 
Cloneableoperator= (Cloneable const &)=delete
 
+ Inheritance diagram for ExitNode:
+ Collaboration diagram for ExitNode:

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