diff --git a/src/StateFile.cxx b/src/StateFile.cxx index fc858b332..ba2be8d14 100644 --- a/src/StateFile.cxx +++ b/src/StateFile.cxx @@ -42,9 +42,9 @@ constexpr std::chrono::steady_clock::duration StateFile::DEFAULT_INTERVAL; StateFile::StateFile(AllocatedPath &&_path, std::chrono::steady_clock::duration _interval, Partition &_partition, EventLoop &_loop) - :TimeoutMonitor(_loop), - path(std::move(_path)), path_utf8(path.ToUTF8()), + :path(std::move(_path)), path_utf8(path.ToUTF8()), interval(_interval), + timer_event(_loop, BIND_THIS_METHOD(OnTimeout)), partition(_partition) { } @@ -137,8 +137,8 @@ try { void StateFile::CheckModified() { - if (!IsActive() && IsModified()) - Schedule(interval); + if (!timer_event.IsActive() && IsModified()) + timer_event.Schedule(interval); } void diff --git a/src/StateFile.hxx b/src/StateFile.hxx index 342a20c22..3eba7f620 100644 --- a/src/StateFile.hxx +++ b/src/StateFile.hxx @@ -20,7 +20,7 @@ #ifndef MPD_STATE_FILE_HXX #define MPD_STATE_FILE_HXX -#include "event/TimeoutMonitor.hxx" +#include "event/TimerEvent.hxx" #include "fs/AllocatedPath.hxx" #include "Compiler.h" @@ -31,11 +31,12 @@ struct Partition; class OutputStream; class BufferedOutputStream; -class StateFile final : private TimeoutMonitor { +class StateFile final { const AllocatedPath path; const std::string path_utf8; const std::chrono::steady_clock::duration interval; + TimerEvent timer_event; Partition &partition; @@ -76,8 +77,8 @@ private: gcc_pure bool IsModified() const noexcept; - /* virtual methods from TimeoutMonitor */ - void OnTimeout() override; + /* callback for #timer_event */ + void OnTimeout(); }; #endif /* STATE_FILE_H */