#ifndef FORTUNA_SEED_FILE_MANAGER_H #define FORTUNA_SEED_FILE_MANAGER_H #include "accumulator.h" #include "do_task.h" #include #include namespace fortuna { class SeedFileManager { public: struct conf { // std::chrono::minutes write_interval{10}; // 10 minutes (as the standard recommends) is a lot, go with 120s std::chrono::seconds write_interval{120}; std::string seed_f_path = "./.fortuna.seed"; std::size_t seed_f_length = 64; conf(){}; }; static auto is_job_running() -> bool; auto do_stuff() -> void; explicit SeedFileManager( const fortuna::accumulator::Accumulator& accumulator) noexcept; ~SeedFileManager() noexcept; protected: static auto set_job_running(bool) -> void; private: const conf config; static constinit bool RUNNING; DoTask do_task; fortuna::accumulator::Accumulator accumulator; auto write_seed_file() -> void; auto update_seed_file() -> void; }; // class SeedFileManager } // namespace fortuna #endif // FORTUNA_SEED_FILE_MANAGER_H