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 after all can only be decided once actual memory management is settled.

Definition at line 63 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 NonAssign
 NonAssign (NonAssign &&)=default
 
 NonAssign (NonAssign const &)=default
 
NonAssignoperator= (NonAssign &&)=delete
 
NonAssignoperator= (NonAssign const &)=delete
 
+ Inheritance diagram for ExitNode:
+ Collaboration diagram for ExitNode:

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