LRT14  1.0
 All Classes Namespaces Functions Variables Enumerations Enumerator
Component.h
1 #ifndef COMPONENT_H_
2 #define COMPONENT_H_
3 
4 #include <vector>
5 #include <string>
6 
10 class Component
11 {
12 public:
13 
17  Component(const char* name, int driverStationDigitalIn);
18 
22  virtual ~Component();
23 
27  static void CreateComponents();
28 
32  static void DestroyComponents();
33 
37  static void UpdateAll();
38 
42  void Update();
43 
48  bool EnableRequired();
49 
54  int GetDigitalIn();
55 
60  const char* GetName();
61 
62 protected:
66  virtual void UpdateEnabled() = 0;
67 
71  virtual void UpdateDisabled() = 0;
72 
76  virtual void OnEnabled() = 0;
77 
81  virtual void OnDisabled() = 0;
82 
83 private:
84  static std::vector<Component*> component_vector;
85 
86  const char* m_name;
87  int m_digitalIn;
88  bool m_lastEnabled;
89 };
90 
91 #endif //COMPONENT_H_