LRT14  1.0
 All Classes Namespaces Functions Variables Enumerations Enumerator
Brain.h
1 #ifndef BRAIN_H_
2 #define BRAIN_H_
3 
4 #include <string>
5 #include <WPILib.h>
6 #include "Automation/Automation.h"
7 #include "InputProcessor/InputProcessor.h"
8 #include <list>
9 #include "../Logging/Loggable.h"
10 
14 class Brain : public Loggable
15 {
16 public:
17  static Brain* Instance();
18  static void Initialize();
19  static void Finalize();
20 
21  ~Brain();
22 
23  void Update();
24 
25  void Log();
26 
27 private:
28  Brain();
29 
30  void ProcessAutomationTasks();
31  void ProcessInputs();
32 
33  static Brain* m_instance;
34 
35  std::vector<InputProcessor*> m_inputs;
36  std::vector<Automation*> m_automation;
37 
38  std::list<Automation*> m_runningTasks;
39  std::map<Automation*, Event*> m_waitingTasks;
40 
41  DISALLOW_COPY_AND_ASSIGN(Brain);
42 };
43 
44 #endif