20 #ifndef HEDGEHOG_ABSTRACT_SCHEDULER_H 21 #define HEDGEHOG_ABSTRACT_SCHEDULER_H 25 #include "../../behavior/node.h" 26 #include "../../core/node/core_node.h" 39 [[nodiscard]]
virtual std::unique_ptr<AbstractScheduler>
create()
const = 0;
42 virtual void spawnThreads(std::vector<std::shared_ptr<core::CoreNode>> &) = 0;
48 #endif //HEDGEHOG_ABSTRACT_SCHEDULER_H
virtual void joinAll()=0
Join all the graph's thread.
AbstractScheduler()=default
Default constructor.
Abstract Hedgehog Scheduler interface, define per graph how the threads are bound to the nodes...
virtual std::unique_ptr< AbstractScheduler > create() const =0
Virtual constructor interface.
virtual void spawnThreads(std::vector< std::shared_ptr< core::CoreNode >> &)=0
Spawn the threads for the specific graph.
virtual ~AbstractScheduler()=default
Default destructor.