OpenDaVINCI  4.15.3
AbstractModule.h
Go to the documentation of this file.
1 
20 #ifndef OPENDAVINCI_CORE_BASE_MODULE_ABSTRACTMODULE_H_
21 #define OPENDAVINCI_CORE_BASE_MODULE_ABSTRACTMODULE_H_
22 
23 #include <vector>
24 
27 #include "opendavinci/generated/odcore/data/dmcp/ModuleStateMessage.h"
28 
29 namespace odcore {
30  namespace base {
31  namespace module {
32 
33  using namespace std;
34 
42  protected:
47 
48  private:
55 
61  AbstractModule& operator=(const AbstractModule&);
62 
63  public:
64  virtual ~AbstractModule();
65 
71  void setModuleState(const odcore::data::dmcp::ModuleStateMessage::ModuleState &s);
72 
78  odcore::data::dmcp::ModuleStateMessage::ModuleState getModuleState();
79 
87  odcore::data::dmcp::ModuleStateMessage::ModuleState getModuleStateAndWaitForRemainingTimeInTimeslice();
88 
95  virtual void waitForNextFullSecond(const uint32_t &secondsIncrement) = 0;
96 
102  static vector<AbstractModule*>& getListOfModules();
103 
104  protected:
108  virtual void wait();
109 
117  virtual void calledGetModuleState();
118 
119  private:
120  static vector<AbstractModule*> m_listOfModules;
121 
122  Mutex m_moduleStateMutex;
123  odcore::data::dmcp::ModuleStateMessage::ModuleState m_moduleState;
124  };
125 
126  }
127  }
128 } // odcore::base::module
129 
130 #endif /*OPENDAVINCI_CORE_BASE_MODULE_ABSTRACTMODULE_H_*/
Definition: base/Mutex.h:49
#define OPENDAVINCI_API
Definition: opendavinci.h:67
Definition: AbstractModule.h:41