RaftLib  0.3a
C++ Stream Processing Template Library
parallelk.hpp
1 
20 #ifndef _PARALLELK_HPP_
21 #define _PARALLELK_HPP_ 1
22 #include <raft>
23 #include <cstddef>
24 
25 class Map;
26 class Schedule;
27 
28 namespace raft{
29 
30 class parallel_k : public raft::kernel
31 {
32 public:
33  parallel_k() = default;
34  parallel_k( void * const ptr,
35  const std::size_t nbytes ) : kernel( ptr, nbytes )
36  {}
37 
38  virtual ~parallel_k() = default;
39 
40 protected:
45  template < class T >
46  void addPortTo( Port &port )
47  {
48  port.addPort< T >( std::to_string( port_name_index++ ) );
49  }
50 
56  virtual void addPort() = 0;
57 
58  std::size_t port_name_index = 0;
59  friend class ::Schedule;
60  friend class ::Map;
61 };
62 
63 }
64 #endif /* END _PARALLELK_HPP_ */
void addPortTo(Port &port)
Definition: parallelk.hpp:46
kernel()
Definition: kernel.cpp:11
Definition: parallelk.hpp:30
virtual void addPort()=0
Definition: map.hpp:39
Definition: port.hpp:50
Definition: schedule.hpp:31
Definition: kernel.hpp:48
bool addPort(const std::string port_name)
Definition: port.hpp:85
Definition: globalmap.cpp:3