aboutsummaryrefslogtreecommitdiffstats
path: root/src/tools/clangpchmanagerbackend/source/precompiledheaderstorage.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clangpchmanagerbackend/source/precompiledheaderstorage.h')
-rw-r--r--src/tools/clangpchmanagerbackend/source/precompiledheaderstorage.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/tools/clangpchmanagerbackend/source/precompiledheaderstorage.h b/src/tools/clangpchmanagerbackend/source/precompiledheaderstorage.h
index d781c96e52..16a6a66952 100644
--- a/src/tools/clangpchmanagerbackend/source/precompiledheaderstorage.h
+++ b/src/tools/clangpchmanagerbackend/source/precompiledheaderstorage.h
@@ -219,6 +219,22 @@ public:
return {};
}
+ FilePaths fetchAllPchPaths() const
+ {
+ try {
+ Sqlite::DeferredTransaction transaction{database};
+
+ auto filePaths = fetchAllPchPathsStatement.template values<FilePath>(1024);
+
+ transaction.commit();
+
+ return filePaths;
+
+ } catch (const Sqlite::StatementIsBusy) {
+ return fetchAllPchPaths();
+ }
+ }
+
public:
Sqlite::ImmediateNonThrowingDestructorTransaction transaction;
Database &database;
@@ -262,6 +278,10 @@ public:
"SELECT projectPchBuildTime, systemPchBuildTime FROM precompiledHeaders WHERE "
"projectPartId = ?",
database};
+ mutable ReadStatement fetchAllPchPathsStatement{
+ "SELECT DISTINCT systemPchPath FROM precompiledHeaders UNION ALL SELECT "
+ "DISTINCT projectPchPath FROM precompiledHeaders",
+ database};
};
}