#pragma once

#include <yandex/maps/wiki/threadutils/thread_observer.h>
#include <maps/wikimap/mapspro/services/editor/src/execution_state.h>

namespace maps {
namespace wiki {
namespace approved_commits {

class Updater: public ThreadObserver<Updater>
{
public:
    Updater();
    ~Updater();

private:
    friend class ThreadObserver<Updater>;
    constexpr const std::string& name() const noexcept;
    void onStart() {}
    void doWork();
    void onStop() {}

    void cancel();

    ExecutionStatePtr executionState_;
};


} // namespace approved_commits
} // namespace wiki
} // namespace maps
