Files
MuditaOS/module-sys/Service/include/Timers/Timer.hpp
Marcin Smoczyński 57874cab33 [BH-912] Improve sys module structure
Improve structure of the module sys. Problems within this module
prevents from linking others.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-09-24 10:01:19 +02:00

33 lines
982 B
C++

// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
#include <chrono>
#include <functional>
namespace sys
{
class Timer; // Forward declaration
namespace timer
{
using TimerCallback = std::function<void(Timer &)>;
inline constexpr auto InfiniteTimeout = std::chrono::milliseconds::max();
enum class Type
{
Periodic,
SingleShot
};
} // namespace timer
class Timer
{
public:
virtual ~Timer() noexcept = default;
virtual void start() = 0;
virtual void restart(std::chrono::milliseconds newInterval) = 0;
virtual void stop() = 0;
virtual bool isActive() const noexcept = 0;
};
} // namespace sys