RaftLib  0.3a
C++ Stream Processing Template Library
allocate.hpp
1 
25 #ifndef _ALLOCATE_HPP_
26 #define _ALLOCATE_HPP_ 1
27 
28 
29 #include "kernel.hpp"
30 #include "port_info.hpp"
31 #include "fifo.hpp"
32 #include <set>
33 
34 class Map;
35 
36 class Allocate
37 {
38 public:
48  Allocate( Map &map, volatile bool &exit_alloc );
49 
53  virtual ~Allocate();
54 
60  virtual void run() = 0;
61 
66  void waitTillReady();
67 
68 
69 protected:
81  void initialize( PortInfo *src, PortInfo *dst, FIFO *fifo );
82 
87  void setReady();
88 
90  std::set< raft::kernel* > &source_kernels;
91  std::set< raft::kernel* > &all_kernels;
92 
97  std::set< FIFO* > allocated_fifo;
98 
104  volatile bool &exit_alloc;
105 private:
106  volatile bool ready = false;
107 };
108 #endif /* END _ALLOCATE_HPP_ */
volatile bool & exit_alloc
Definition: allocate.hpp:104
void setReady()
Definition: allocate.cpp:52
std::set< raft::kernel * > & source_kernels
Definition: allocate.hpp:90
void waitTillReady()
Definition: allocate.cpp:46
virtual ~Allocate()
Definition: allocate.cpp:37
std::set< FIFO * > allocated_fifo
Definition: allocate.hpp:97
virtual void run()=0
void initialize(PortInfo *src, PortInfo *dst, FIFO *fifo)
Definition: allocate.cpp:58
Definition: map.hpp:39
Definition: allocate.hpp:36
Allocate(Map &map, volatile bool &exit_alloc)
Definition: allocate.cpp:30
Definition: port_info.hpp:39
Definition: fifo.hpp:41