From 40e35cb2ee38d9892ef6b1cc7af9b19419145c01 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 5 Dec 2024 14:17:06 +0100 Subject: [PATCH] WalkHandler: move std::string&& to OnWalkAncient() Needed if the implementation wants to cull asynchronously. --- src/Cull.cxx | 2 +- src/Cull.hxx | 2 +- src/WHandler.hxx | 4 ++-- src/Walk.cxx | 2 +- test/RunWalk.cxx | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Cull.cxx b/src/Cull.cxx index 4605481..53c0b93 100644 --- a/src/Cull.cxx +++ b/src/Cull.cxx @@ -99,7 +99,7 @@ Cull::Start(FileDescriptor root_fd) void Cull::OnWalkAncient(WalkDirectory &directory, - std::string_view filename) noexcept + std::string &&filename) noexcept { CullFile(dev_cachefiles, directory.fd, filename); } diff --git a/src/Cull.hxx b/src/Cull.hxx index 2aa41a5..b188632 100644 --- a/src/Cull.hxx +++ b/src/Cull.hxx @@ -57,6 +57,6 @@ private: // virtual methods from WalkHandler void OnWalkAncient(WalkDirectory &directory, - std::string_view filename) noexcept override; + std::string &&filename) noexcept override; void OnWalkFinished(WalkResult &&result) noexcept override; }; diff --git a/src/WHandler.hxx b/src/WHandler.hxx index 3ef9377..33e4d7c 100644 --- a/src/WHandler.hxx +++ b/src/WHandler.hxx @@ -4,7 +4,7 @@ #pragma once -#include +#include class FileDescriptor; struct WalkDirectory; @@ -20,7 +20,7 @@ public: * unconditionally). */ virtual void OnWalkAncient(WalkDirectory &directory, - std::string_view filename) noexcept = 0; + std::string &&filename) noexcept = 0; /** * The #Walk has finished completely. This method is allowed diff --git a/src/Walk.cxx b/src/Walk.cxx index 2f4484a..3bc9ba8 100644 --- a/src/Walk.cxx +++ b/src/Walk.cxx @@ -110,7 +110,7 @@ Walk::AddFile(WalkDirectory &parent, std::string &&name, FileTime atime, uint_least64_t size) { if (atime < discard_older_than) { - handler.OnWalkAncient(parent, name); + handler.OnWalkAncient(parent, std::move(name)); return; } diff --git a/test/RunWalk.cxx b/test/RunWalk.cxx index bcf7fb5..fabcc22 100644 --- a/test/RunWalk.cxx +++ b/test/RunWalk.cxx @@ -38,7 +38,7 @@ struct Instance final : WalkHandler { // virtual methods from WalkHandler void OnWalkAncient([[maybe_unused]] WalkDirectory &directory, - std::string_view filename) noexcept override { + std::string &&filename) noexcept override { fmt::print("ancient {:?}\n", filename); }