RaftLib  0.3a
C++ Stream Processing Template Library
kernelcontainer.hpp
1 
22 #ifndef _KERNELCONTAINER_HPP_
23 #define _KERNELCONTAINER_HPP_ 1
24 #include <mutex>
25 #include <set>
26 #include <cstddef>
27 #include "kernel.hpp"
28 #include "kerneliterator.tcc"
29 
31 {
32 private:
33  std::set< raft::kernel * > list;
34 
35  std::mutex access;
36  friend class KernelIterator< decltype( list.begin() ) >;
37 
38 public:
43  virtual ~KernelContainer();
44 
50  auto size() -> decltype( list.size() );
59  bool removeKernel( raft::kernel *kernel );
66  void addKernel( raft::kernel *kernel );
74  auto begin() -> KernelIterator< decltype( list.begin() ) >;
83  auto end() -> KernelIterator< decltype( list.end() ) >;
84 
85  void lock();
86  void unlock();
87  void clear();
88 };
89 #endif /* END _KERNELCONTAINER_HPP_ */
void addKernel(raft::kernel *kernel)
Definition: kernelcontainer.cpp:34
auto end() -> KernelIterator< decltype(list.end()) >
Definition: kernelcontainer.cpp:70
auto begin() -> KernelIterator< decltype(list.begin()) >
Definition: kernelcontainer.cpp:64
auto size() -> decltype(list.size())
Definition: kernelcontainer.cpp:58
bool removeKernel(raft::kernel *kernel)
Definition: kernelcontainer.cpp:42
Definition: kernelcontainer.hpp:30
Definition: kernel.hpp:48
KernelContainer()
Definition: kernelcontainer.cpp:25