2023-02-11 20:49:42 +00:00
|
|
|
// This file Copyright © 2022-2023 Mnemosyne LLC.
|
2022-08-08 22:53:20 +00:00
|
|
|
// It may be used under GPLv2 (SPDX: GPL-2.0-only), GPLv3 (SPDX: GPL-3.0-only),
|
|
|
|
// or any future license endorsed by Mnemosyne LLC.
|
|
|
|
// License text can be found in the licenses/ folder.
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2022-08-17 16:08:36 +00:00
|
|
|
#include <memory>
|
|
|
|
|
2022-08-08 22:53:20 +00:00
|
|
|
#include "timer.h"
|
|
|
|
|
|
|
|
extern "C"
|
|
|
|
{
|
|
|
|
struct event_base;
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace libtransmission
|
|
|
|
{
|
|
|
|
|
|
|
|
class EvTimerMaker final : public TimerMaker
|
|
|
|
{
|
|
|
|
public:
|
2022-11-03 23:08:02 +00:00
|
|
|
explicit EvTimerMaker(event_base* base) noexcept
|
2022-08-08 22:53:20 +00:00
|
|
|
: event_base_{ base }
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
[[nodiscard]] std::unique_ptr<Timer> create() override;
|
|
|
|
|
|
|
|
private:
|
|
|
|
event_base* const event_base_;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace libtransmission
|