Refactor inode needs_scan method

This commit is contained in:
Marcus Holland-Moritz 2023-06-07 20:04:19 +02:00
parent bacdef0ac3
commit a2e6b93512
4 changed files with 6 additions and 8 deletions

View File

@ -46,7 +46,6 @@ class inode : public object {
using files_vector = folly::small_vector<file*, 1>;
virtual void set_files(files_vector&& fv) = 0;
virtual bool needs_scan(inode_options const& opts, size_t size) const = 0;
virtual void set_similarity_valid(inode_options const& opts) = 0;
virtual void scan(mmif* mm, inode_options const& options) = 0;
virtual void set_num(uint32_t num) = 0;

View File

@ -78,7 +78,11 @@ struct inode_options {
bool with_nilsimsa{false};
std::optional<size_t> max_similarity_scan_size;
bool needs_scan() const { return with_similarity || with_nilsimsa; }
bool needs_scan(size_t size) const {
return (with_similarity || with_nilsimsa) &&
(!max_similarity_scan_size ||
size <= max_similarity_scan_size.value());
}
};
enum class file_order_mode { NONE, PATH, SCRIPT, SIMILARITY, NILSIMSA };

View File

@ -308,7 +308,7 @@ void file_scanner_::add_inode(file* p) {
p->set_inode(inode);
if (inode->needs_scan(ino_opts_, p->size())) {
if (ino_opts_.needs_scan(p->size())) {
wg_.add_job([this, p, inode = std::move(inode)] {
std::shared_ptr<mmif> mm;
auto const size = p->size();

View File

@ -127,11 +127,6 @@ class inode_ : public inode {
files_ = std::move(fv);
}
bool needs_scan(inode_options const& opts, size_t size) const override {
return opts.needs_scan() && (!opts.max_similarity_scan_size ||
size <= opts.max_similarity_scan_size.value());
}
void
set_similarity_valid(inode_options const& opts [[maybe_unused]]) override {
#ifndef NDEBUG