MT Showcase SDK
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
ScheduleManager.hpp
1 #pragma once
2 
3 #include "Export.hpp"
4 #include "ScheduledEvent.hpp"
5 
6 #include <Radiant/BGThread.hpp>
7 
8 namespace Showcase
9 {
10  class SHOWCASE_API ScheduleManager : public Radiant::Task
11  {
12  public:
13  ScheduleManager();
14  virtual ~ScheduleManager();
15 
16  virtual void doTask() override;
17 
18  void subscribe(ScheduledEventPtr event, const QDateTime & eventTime);
19 
20  private:
21  QDateTime m_nextCheck;
22 
23  typedef std::vector<ScheduledEventWeakPtr> Events;
24  std::map<QDateTime, Events> m_events;
25 
26  std::mutex m_eventMutex;
27  };
28  typedef std::shared_ptr<ScheduleManager> ScheduleManagerPtr;
29 }