logic: reduce access to filesystem while indexing

* use canonical filepath cache in cxx indexer
* made constructors of FilePath explicit
* use FilePath at more places instead of string
* forward declares FilePath wherever possible
This commit is contained in:
malte_langkabel
2017-05-04 10:55:16 +02:00
parent 55d3f9c189
commit 054b8fab17
156 changed files with 656 additions and 444 deletions
@@ -1,5 +1,7 @@
#include "utility/path_detector/CombinedPathDetector.h"
#include "utility/file/FilePath.h"
CombinedPathDetector::CombinedPathDetector()
: PathDetector("combined")
{
@@ -1,5 +1,7 @@
#include "utility/path_detector/PathDetector.h"
#include "utility/file/FilePath.h"
PathDetector::PathDetector(const std::string& name)
: m_name(name)
{
@@ -4,7 +4,7 @@
#include <string>
#include <vector>
#include "utility/file/FilePath.h"
class FilePath;
class PathDetector
{
@@ -1,5 +1,6 @@
#include "utility/path_detector/cxx_header/CxxFrameworkPathDetector.h"
#include "utility/file/FilePath.h"
#include "utility/path_detector/cxx_header/utilityCxxHeaderDetection.h"
#include "utility/utilityApp.h"
#include "utility/utilityString.h"
@@ -1,5 +1,6 @@
#include "utility/path_detector/cxx_header/CxxHeaderPathDetector.h"
#include "utility/file/FilePath.h"
#include "utility/path_detector/cxx_header/utilityCxxHeaderDetection.h"
#include "utility/utilityApp.h"
#include "utility/utilityString.h"
@@ -34,10 +34,10 @@ std::vector<FilePath> CxxVsHeaderPathDetector::getPaths() const
for (size_t i = 0; i < subdirectories.size(); i++)
{
FilePath headerSearchPath = vsInstallPath.concat(subdirectories[i]);
FilePath headerSearchPath = vsInstallPath.concat(FilePath(subdirectories[i]));
if (headerSearchPath.exists())
{
headerPaths.push_back(headerSearchPath.canonical().str());
headerPaths.push_back(headerSearchPath.canonical());
}
}
}
@@ -56,7 +56,7 @@ std::vector<FilePath> CxxVsHeaderPathDetector::getPaths() const
FilePath sdkPath = getWindowsSdkPathUsingRegistry(windowsSdkVersions[i]);
if (sdkPath.exists())
{
FilePath sdkIncludePath = sdkPath.concat("include/");
FilePath sdkIncludePath = sdkPath.concat(FilePath("include/"));
if (sdkIncludePath.exists())
{
std::vector<std::string> subdirectories;
@@ -67,7 +67,7 @@ std::vector<FilePath> CxxVsHeaderPathDetector::getPaths() const
bool usingSubdirectories = false;
for (size_t j = 0; j < subdirectories.size(); j++)
{
FilePath sdkSubdirectory = sdkPath.concat(subdirectories[j]);
FilePath sdkSubdirectory = sdkPath.concat(FilePath(subdirectories[j]));
if (sdkSubdirectory.exists())
{
headerPaths.push_back(sdkSubdirectory);
@@ -2,7 +2,6 @@
#define JAVA_PATH_DETECTOR_H
#include "utility/path_detector/PathDetector.h"
#include "utility/file/FilePath.h"
class JavaPathDetector: public PathDetector
{
@@ -1,5 +1,6 @@
#include "utility/path_detector/java_runtime/JavaPathDetectorLinux.h"
#include "utility/file/FilePath.h"
#include "utility/utilityApp.h"
#include "utility/utilityString.h"
@@ -43,7 +44,7 @@ FilePath JavaPathDetectorLinux::readLink(const FilePath& path) const
{
std::string command = "readlink -f " + path.str();
FilePath javaPath( utility::executeProcess(command.c_str()));
if ( !javaPath.empty() )
if (!javaPath.empty())
{
return javaPath;
}
@@ -1,5 +1,6 @@
#include "utility/path_detector/java_runtime/JavaPathDetectorMac.h"
#include "utility/file/FilePath.h"
#include "utility/utilityApp.h"
#include "utility/utilityString.h"
@@ -3,6 +3,7 @@
#include <QSettings>
#include <QSysInfo>
#include "utility/file/FilePath.h"
#include "utility/utilityApp.h"
JavaPathDetectorWindows::JavaPathDetectorWindows(const std::string javaVersion)
@@ -1,5 +1,6 @@
#include "utility/path_detector/maven_executable/MavenPathDetectorUnix.h"
#include "utility/file/FilePath.h"
#include "utility/utilityApp.h"
MavenPathDetectorUnix::MavenPathDetectorUnix()
@@ -1,5 +1,6 @@
#include "utility/path_detector/maven_executable/MavenPathDetectorWindows.h"
#include "utility/file/FilePath.h"
#include "utility/utilityApp.h"
MavenPathDetectorWindows::MavenPathDetectorWindows()