IdleDeadline.h 819 B

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/StdLibExtras.h>
  8. #include <LibWeb/Bindings/Wrappable.h>
  9. namespace Web::RequestIdleCallback {
  10. class IdleDeadline final
  11. : public RefCounted<IdleDeadline>
  12. , public Bindings::Wrappable {
  13. public:
  14. using WrapperType = Bindings::IdleDeadlineWrapper;
  15. using AllowOwnPtr = TrueType;
  16. static NonnullRefPtr<IdleDeadline> create(double time_remaining, bool did_timeout);
  17. virtual ~IdleDeadline() override;
  18. double time_remaining() const { return m_time_remaining; }
  19. bool did_timeout() const { return m_did_timeout; }
  20. private:
  21. IdleDeadline(double time_remaining, bool did_timeout);
  22. double m_time_remaining { 0 };
  23. bool m_did_timeout { false };
  24. };
  25. }