Files
MuditaOS/module-apps/apps-common/widgets/TimerWithCallbacks.hpp
Lefucjusz 773f2c7eb1 [BH-2069] Update license URL in headers
Update outdated license file URL in
license headers across all project.
2024-09-18 11:53:01 +02:00

27 lines
1.1 KiB
C++

// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md
#pragma once
#include <chrono>
#include <functional>
namespace app
{
class TimerWithCallbacks
{
public:
virtual ~TimerWithCallbacks() = default;
[[nodiscard]] virtual auto isStopped() const noexcept -> bool = 0;
virtual void reset(std::chrono::seconds duration,
std::chrono::seconds interval = std::chrono::seconds::zero()) = 0;
virtual void start() = 0;
virtual void stop() = 0;
virtual std::chrono::milliseconds getElapsed() = 0;
virtual void registerOnFinishedCallback(std::function<void()> cb) = 0;
virtual void registerOnIntervalCallback(std::function<void()> cb) = 0;
};
} // namespace app