From 03fc2b0dc25ae00322c6681d99f48857ecf77935 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Mon, 25 May 2020 17:57:07 +0200 Subject: Update ModInfo classes following MemoizedLocked changes. --- src/modinfoseparator.h | 2 +- src/modinfowithconflictinfo.cpp | 22 ++++++++++------------ src/modinfowithconflictinfo.h | 15 ++++----------- 3 files changed, 15 insertions(+), 24 deletions(-) diff --git a/src/modinfoseparator.h b/src/modinfoseparator.h index 4cfb9ea0..a7a6cb5f 100644 --- a/src/modinfoseparator.h +++ b/src/modinfoseparator.h @@ -49,7 +49,7 @@ public: virtual void addInstalledFile(int /*modId*/, int /*fileId*/) override { } protected: - virtual bool doTestValid() const override { return true; } + virtual bool doIsValid() const override { return true; } private: diff --git a/src/modinfowithconflictinfo.cpp b/src/modinfowithconflictinfo.cpp index d2a0ca51..7181bef9 100644 --- a/src/modinfowithconflictinfo.cpp +++ b/src/modinfowithconflictinfo.cpp @@ -15,7 +15,9 @@ namespace fs = std::filesystem; ModInfoWithConflictInfo::ModInfoWithConflictInfo( PluginContainer *pluginContainer, const MOBase::IPluginGame* gamePlugin, DirectoryEntry **directoryStructure) : ModInfo(pluginContainer), m_GamePlugin(gamePlugin), - m_FileTree(&ModInfoWithConflictInfo::updateFileTree), m_Valid(&ModInfoWithConflictInfo::doTestValid), m_Contents(&ModInfoWithConflictInfo::doGetContents), + m_FileTree([this]() { return QDirFileTree::makeTree(absolutePath()); }), + m_Valid([this]() { return doIsValid(); }), + m_Contents([this]() { return doGetContents(); }), m_DirectoryStructure(directoryStructure), m_HasLooseOverwrite(false), m_HasHiddenFiles(false) {} void ModInfoWithConflictInfo::clearCaches() @@ -304,20 +306,12 @@ void ModInfoWithConflictInfo::diskContentModified() { m_Contents.invalidate(); } -std::shared_ptr ModInfoWithConflictInfo::updateFileTree() const { - return QDirFileTree::makeTree(absolutePath()); -} - -std::shared_ptr ModInfoWithConflictInfo::contentFileTree() const { - return m_FileTree.value(this); -} - void ModInfoWithConflictInfo::prefetch() { // Populating the tree to 1-depth: contentFileTree()->size(); } -bool ModInfoWithConflictInfo::doTestValid() const { +bool ModInfoWithConflictInfo::doIsValid() const { auto mdc = m_GamePlugin->feature(); if (mdc) { @@ -328,10 +322,14 @@ bool ModInfoWithConflictInfo::doTestValid() const { return true; } +std::shared_ptr ModInfoWithConflictInfo::contentFileTree() const { + return m_FileTree.value(); +} + bool ModInfoWithConflictInfo::isValid() const { - return m_Valid.value(this); + return m_Valid.value(); } std::vector ModInfoWithConflictInfo::getContents() const { - return m_Contents.value(this); + return m_Contents.value(); } diff --git a/src/modinfowithconflictinfo.h b/src/modinfowithconflictinfo.h index 3adbb998..abc9f223 100644 --- a/src/modinfowithconflictinfo.h +++ b/src/modinfowithconflictinfo.h @@ -59,7 +59,7 @@ protected: * * @return true if the content is valid, false otherwise. **/ - virtual bool doTestValid() const; + virtual bool doIsValid() const; /** * @brief Compute the contents for this mod. @@ -135,16 +135,9 @@ protected: private: - /** - * @return a file tree for this mod. - */ - std::shared_ptr updateFileTree() const; - - MOShared::MemoizedLocked< - std::shared_ptr, - decltype(&ModInfoWithConflictInfo::updateFileTree)> m_FileTree; - MOShared::MemoizedLocked m_Valid; - MOShared::MemoizedLocked, decltype(&ModInfoWithConflictInfo::doGetContents)> m_Contents; + MOShared::MemoizedLocked> m_FileTree; + MOShared::MemoizedLocked m_Valid; + MOShared::MemoizedLocked> m_Contents; MOShared::DirectoryEntry **m_DirectoryStructure; -- cgit v1.3.1