19#ifndef HEDGEHOG_ABSTRACT_EXECUTION_PIPELINE_H_ 
   20#define HEDGEHOG_ABSTRACT_EXECUTION_PIPELINE_H_ 
   22#include "../graph/graph.h" 
   23#include "../../behavior/copyable.h" 
   24#include "../../core/nodes/core_execution_pipeline.h" 
   25#include "../../behavior/switch/multi_switch_rules.h" 
   88template<
size_t Separator, 
class ...AllTypes>
 
   92      public tool::BehaviorMultiReceiversTypeDeducer_t<tool::Inputs<Separator, AllTypes...>>,
 
   93      public tool::BehaviorMultiSwitchRulesTypeDeducer_t<tool::Inputs<Separator, AllTypes...>>,
 
   94      public tool::BehaviorMultiSendersTypeDeducer_t<tool::Outputs<Separator, AllTypes...>> {
 
   95#ifndef DOXYGEN_SHOULD_SKIP_THIS 
  100  std::shared_ptr<
Graph<Separator, AllTypes...>>
 
  113      size_t const &numberGraphs,
 
  114      std::string 
const name = 
"Execution pipeline")
 
  116      static_cast<std::shared_ptr<
core::abstraction::NodeAbstraction>>(
 
  117          static_cast<std::shared_ptr<
core::abstraction::NodeAbstraction> const>(
 
  118              std::make_shared<
core::CoreExecutionPipeline<Separator, AllTypes...>>(
 
  119                  this, 
graph->coreGraph_, numberGraphs, 
name)))
 
  124                                                                                     AllTypes...>>(this->
core())) {}
 
  134      std::vector<int> 
const &deviceIds,
 
  135      std::string 
const name = 
"Execution pipeline")
 
  137      std::make_shared<
core::CoreExecutionPipeline<Separator, AllTypes...>>(this, 
graph->coreGraph_, deviceIds, 
name)
 
  142                                                                                     AllTypes...>>(this->
core())) {}
 
  150  std::shared_ptr<
Graph<Separator, AllTypes...>> 
const &
graph()
 const {
 
Execution pipeline abstraction.
std::shared_ptr< core::CoreExecutionPipeline< Separator, AllTypes... > > const coreExecutionPipeline_
Execution Pipeline core.
void graph(std::shared_ptr< Graph< Separator, AllTypes... > > graph)
Base graph setter.
~AbstractExecutionPipeline() override=default
Default destructor.
AbstractExecutionPipeline(std::shared_ptr< Graph< Separator, AllTypes... > > const graph, size_t const &numberGraphs, std::string const name="Execution pipeline")
Create an execution pipeline that duplicates a graph, numberGraphs - 1 times. The graph id and the de...
std::shared_ptr< Graph< Separator, AllTypes... > > graph_
Original Graph that will be duplicated.
std::shared_ptr< Graph< Separator, AllTypes... > > const & graph() const
Accessor top the base graph.
AbstractExecutionPipeline(std::shared_ptr< Graph< Separator, AllTypes... > > const graph, std::vector< int > const &deviceIds, std::string const name="Execution pipeline")
Create an execution pipeline from a graph and the given device ids. If there are n device ids given,...
Hedgehog graph abstraction.
Copy interface used to copy a node when either a group of nodes is created or a node is duplicated wh...
Copyable(size_t const numberThreads)
Copyable constructor, set the number of threads for a node.
Behavior abstraction for the base node.
std::string name() const
Node's name accessor.
Node(std::shared_ptr< hh::core::abstraction::NodeAbstraction > core)
Constructor's node.
std::shared_ptr< hh::core::abstraction::NodeAbstraction > const & core() const
Core accessor.