RaftLib  0.3a
C++ Stream Processing Template Library
schedule.hpp
1 
20 #ifndef _SCHEDULE_HPP_
21 #define _SCHEDULE_HPP_ 1
22 #include "signalvars.hpp"
23 #include "systemsignalhandler.hpp"
24 #include "rafttypes.hpp"
25 
26 namespace raft {
27  class kernel;
28 }
29 class Map;
30 
31 class Schedule
32 {
33 public:
34 
35  Schedule( Map &map );
36  virtual ~Schedule();
37 
43  virtual void start() = 0;
44 
45 
50  virtual void init();
51 
52 
53  static bool isActive( raft::kernel const * const kernel );
54 
55  static void inactivate( raft::kernel * const kernel );
56 protected:
57 
68  static raft::kstatus checkSystemSignal( raft::kernel * const kernel,
69  void *data,
71 
81  static raft::kstatus quitHandler( FIFO &fifo,
82  raft::kernel *kernel,
83  const raft::signal signal,
84  void *data );
85 
86 
87  static void invalidateOutputPorts( raft::kernel *kernel );
97  virtual bool scheduleKernel( raft::kernel *kernel );
98 
106  static bool kernelHasInputData( raft::kernel *kernel );
107 
117  static bool kernelHasNoInputPorts( raft::kernel *kernel );
118 
128  static void kernelRun( raft::kernel * const kernel,
129  volatile bool &finished );
130 
131 
132 
137 
138 private:
139  Map &map_ref;
140 };
141 #endif /* END _SCHEDULE_HPP_ */
Definition: systemsignalhandler.hpp:46
static void kernelRun(raft::kernel *const kernel, volatile bool &finished)
Definition: schedule.cpp:137
virtual ~Schedule()
Definition: schedule.cpp:15
static raft::kstatus checkSystemSignal(raft::kernel *const kernel, void *data, SystemSignalHandler &handlers)
Definition: schedule.cpp:58
static bool kernelHasNoInputPorts(raft::kernel *kernel)
Definition: schedule.cpp:123
virtual void start()=0
Definition: map.hpp:39
virtual void init()
Definition: schedule.cpp:21
static raft::kstatus quitHandler(FIFO &fifo, raft::kernel *kernel, const raft::signal signal, void *data)
Definition: schedule.cpp:31
static bool kernelHasInputData(raft::kernel *kernel)
Definition: schedule.cpp:102
Definition: schedule.hpp:31
Definition: kernel.hpp:48
Definition: globalmap.cpp:3
SystemSignalHandler handlers
Definition: schedule.hpp:136
Definition: fifo.hpp:41
virtual bool scheduleKernel(raft::kernel *kernel)
Definition: schedule.cpp:94