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.