#ifndef HASHER_HH #define HASHER_HH #include #include #include class Logger; class TaskRunner; class Hasher { public: virtual ~Hasher() = default; static std::unique_ptr create(std::shared_ptr logger, std::shared_ptr runner, size_t threads = 1); virtual void hash(std::filesystem::path path, std::function callback) = 0; protected: Hasher() = default; Hasher(Hasher const&) = delete; Hasher& operator=(Hasher const&) = delete; }; #endif // HASHER_HH