RTSchedulable.hh 509 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef RTSCHEDULABLE_HH
  2. #define RTSCHEDULABLE_HH
  3. #include <cstdint>
  4. namespace openmsx {
  5. class RTScheduler;
  6. class RTSchedulable
  7. {
  8. public:
  9. RTSchedulable(const RTSchedulable&) = delete;
  10. RTSchedulable& operator=(const RTSchedulable&) = delete;
  11. virtual void executeRT() = 0;
  12. void scheduleRT(uint64_t delta);
  13. bool cancelRT();
  14. bool isPendingRT() const;
  15. protected:
  16. explicit RTSchedulable(RTScheduler& scheduler);
  17. ~RTSchedulable();
  18. private:
  19. RTScheduler& scheduler;
  20. };
  21. } // namespace openmsx
  22. #endif