LRT14  1.0
 All Classes Namespaces Functions Variables Enumerations Enumerator
ActionManager.h
1 #ifndef RHESUS_ACTION_MANAGER_H_
2 #define RHESUS_ACTION_MANAGER_H_
3 
4 #include "IRobotAction.h"
5 #include "../Tasks/BinarySemaphore.h"
6 #include "../Tasks/lock_on.h"
7 #include "../Tasks/Mutex.h"
8 #include <Task.h>
9 
10 #include <queue>
11 
12 namespace Rhesus
13 {
14 namespace Toolkit
15 {
16 namespace Action
17 {
23  {
24  public:
25 
29  static void Start();
30 
35  static void Add(IRobotAction* act);
36 
40  static void Clear();
41 
45  static bool isDone();
46 
47  private:
48 
49  static void RunAll();
50 
51  static std::queue<IRobotAction*> s_actionQueue;
52 
53  static Rhesus::Toolkit::Tasks::Mutex s_so;
54 
55  static Task* s_task;
56 
58 
59  };
60 
61 }
62 }
63 }
64 
65 #endif