RaftLib  0.3a
C++ Stream Processing Template Library
kernelcontainer.hpp
1 
20 #ifndef _KERNELCONTAINER_HPP_
21 #define _KERNELCONTAINER_HPP_ 1
22 #include <queue>
23 #include <type_traits>
24 #include "sched_cmd_t.hpp"
25 #ifndef NOPREEMPT
26 #define NOPREEMPT 1
27 #endif
28 #include "ringbuffer.tcc"
29 #include "ringbuffertypes.hpp"
30 
31 
32 namespace raft{
33  class kernel;
34 }
35 
37 {
38 public:
39 
40  using buffer = RingBuffer< sched_cmd_t ,
41  Type::RingBufferType::Heap ,
42  false >;
47 
52  kernel_container( const std::size_t N );
53 
58 
63  buffer& getInputQueue();
64 
69  buffer& getOutputQueue();
70 
76  std::size_t size();
77 
84  static void container_run( kernel_container &container );
85 private:
86  using kernel_container_t = std::queue< raft::kernel* >;
87 
88  kernel_container_t preempted_kernel_pool;
89  buffer *input_buff = nullptr;
90  buffer *output_buff = nullptr;
91 };
92 
93 
94 #endif /* END _KERNELCONTAINER_HPP_ */
std::size_t size()
buffer & getInputQueue()
Definition: kernelcontainer.cpp:48
static void container_run(kernel_container &container)
Definition: kernelcontainer.cpp:62
Definition: sched_cmd_t.hpp:52
kernel_container()
Definition: kernelcontainer.cpp:27
~kernel_container()
Definition: kernelcontainer.cpp:40
Definition: globalmap.cpp:3
Definition: kernelcontainer.hpp:36
buffer & getOutputQueue()
Definition: kernelcontainer.cpp:55