StateFile: migrate from TimeoutMonitor to TimerEvent

This commit is contained in:
Max Kellermann 2017-08-29 16:52:02 +02:00
parent dc531b64ae
commit 598bb93cc2
2 changed files with 9 additions and 8 deletions

View File

@ -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

View File

@ -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 */