21 #define _KERNEL_HPP_ 1
29 #include "signalvars.hpp"
30 #include "rafttypes.hpp"
46 virtual raft::kernel* clone()\
49 new typename std::remove_reference< decltype( *this ) >::type( ( *(\
50 (typename std::decay< decltype( *this ) >::type * ) \
65 const std::size_t nbytes );
77 virtual raft::kstatus
run() = 0;
82 static kernel* make( Args&&... params )
84 return(
new T( std::forward< Args >( params )... ) );
103 std::size_t get_id();
108 virtual std::size_t addPort();
118 Port output = {
this };
121 friend class ::MapBase;
123 friend class ::Schedule;
124 friend class ::GraphTools;
125 friend class ::kernel_container;
126 friend class ::basic_parallel;
137 bool dup_enabled =
false;
138 bool dup_candidate =
false;
139 const std::size_t kernel_id;
Port input
Definition: kernel.hpp:117
Definition: basicparallel.hpp:48
kernel()
Definition: kernel.cpp:11
Definition: mapbase.hpp:100
virtual void unlock()
Definition: kernel.cpp:51
virtual raft::kstatus run()=0
virtual raft::kernel * clone()
Definition: kernel.hpp:96
virtual void lock()
Definition: kernel.cpp:44
Definition: schedule.hpp:34
Definition: kernel.hpp:57
Definition: globalmap.cpp:3
Definition: kernelcontainer.hpp:36
static std::size_t kernel_count
Definition: kernel.hpp:133