aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/moduleproviderinfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/corelib/language/moduleproviderinfo.h')
-rw-r--r--src/lib/corelib/language/moduleproviderinfo.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/lib/corelib/language/moduleproviderinfo.h b/src/lib/corelib/language/moduleproviderinfo.h
index 4f757d3d9..8ed6f008d 100644
--- a/src/lib/corelib/language/moduleproviderinfo.h
+++ b/src/lib/corelib/language/moduleproviderinfo.h
@@ -76,17 +76,33 @@ public:
template<PersistentPool::OpType opType> void completeSerializationOp(PersistentPool &pool)
{
- pool.serializationOp<opType>(reinterpret_cast<QStringList &>(name), config, searchPaths);
+ pool.serializationOp<opType>(
+ reinterpret_cast<QStringList &>(name), config, providerFile, searchPaths);
}
QualifiedId name;
QVariantMap config;
+ QString providerFile;
QStringList searchPaths;
bool transientOutput = false; // Not to be serialized.
};
using ModuleProviderInfoList = std::vector<ModuleProviderInfo>;
+// Persistent info stored between sessions
+struct StoredModuleProviderInfo
+{
+ using CacheKey = std::tuple<QString /*name*/, QVariantMap /*config*/, int /*lookup*/>;
+ using ModuleProvidersCache = QHash<CacheKey, ModuleProviderInfo>;
+
+ ModuleProvidersCache providers;
+
+ template<PersistentPool::OpType opType> void completeSerializationOp(PersistentPool &pool)
+ {
+ pool.serializationOp<opType>(providers);
+ }
+};
+
} // namespace Internal
} // namespace qbs