19#ifndef HEDGEHOG_EXECUTION_PIPELINE_NODE_ABSTRACTION_H_ 
   20#define HEDGEHOG_EXECUTION_PIPELINE_NODE_ABSTRACTION_H_ 
   29namespace abstraction {
 
   47  [[nodiscard]] std::vector<std::pair<std::string const, std::string const>> 
ids()
 const override {
 
   48    return {{this->
id(), this->
id()}};
 
   57  [[nodiscard]] std::shared_ptr<AbstractMemoryManager> 
memoryManager()
 const override { 
return nullptr; }
 
   68  [[nodiscard]] 
virtual std::pair<std::chrono::nanoseconds, std::chrono::nanoseconds> 
minMaxWaitDuration() 
const  = 0;
 
Behavior abstraction for the base node.
Abstraction specialized for the execution pipeline.
virtual std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > minMaxExecutionDuration() const =0
Getter to the min max execution duration from the nodes inside the graphs in the execution pipeline.
virtual std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > minMaxWaitDuration() const =0
Getter to the min max wait duration from the nodes inside the graphs in the execution pipeline.
virtual void launchGraphThreads(bool waitForInitialization)=0
Launch the graphs inside of the execution pipeline, called when the outer graph is executed.
std::vector< std::pair< std::string const, std::string const > > ids() const override
Node ids [nodeId, nodeGroupId] accessor.
ExecutionPipelineNodeAbstraction(std::string const &name, behavior::Node *node)
Constructor using the node name.
std::shared_ptr< AbstractMemoryManager > memoryManager() const override
Accessor to memory manager, an execution pipeline has no memory manager.
~ExecutionPipelineNodeAbstraction() override=default
Default destructor.
bool hasMemoryManagerAttached() const override
Test if a node has a memory attached, an execution pipeline can't have a memory manager.
virtual std::string id() const
Core's id ('x' + address of abstraction) as string.
std::string const & name() const
Accessor to the core's name.
Task core abstraction used to define some method for task-like behaving cores like CoreExecutionPipel...
behavior::Node * node() const override
Node accessor.
tool::PrintOptions const & printOptions() const
Print options const accessor.
Color background() const
Background color accessor.