TimerSerenity.h 958 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/NonnullRefPtr.h>
  8. #include <LibCore/Forward.h>
  9. #include <LibWeb/Platform/Timer.h>
  10. namespace Web::Platform {
  11. class TimerSerenity final : public Timer {
  12. public:
  13. static NonnullRefPtr<TimerSerenity> create();
  14. virtual ~TimerSerenity();
  15. virtual void start() override;
  16. virtual void start(int interval_ms) override;
  17. virtual void restart() override;
  18. virtual void restart(int interval_ms) override;
  19. virtual void stop() override;
  20. virtual void set_active(bool) override;
  21. virtual bool is_active() const override;
  22. virtual int interval() const override;
  23. virtual void set_interval(int interval_ms) override;
  24. virtual bool is_single_shot() const override;
  25. virtual void set_single_shot(bool) override;
  26. private:
  27. TimerSerenity();
  28. NonnullRefPtr<Core::Timer> m_timer;
  29. };
  30. }