data: refreshing with DB

* database stores modification time of files.
* FileManager updates internal state based on database info.
* reimplemented FileManager's check if a file is in project.
* implemented clearing data of updated or removed files before reparsing the updated and added files.
This commit is contained in:
malte_langkabel
2015-09-16 18:53:33 +02:00
parent 73b1b77ca8
commit 3d94b78b8c
22 changed files with 406 additions and 109 deletions
+9 -4
View File
@@ -23,8 +23,11 @@ public:
virtual ~Storage();
void clear();
void clearFileData(const std::set<FilePath>& filePaths);
std::set<FilePath> getDependingFilePathsAndRemoveFileNodes(const std::set<FilePath>& filePaths);
void clearFileElements(const std::set<FilePath>& filePaths);
void clearFileElements(const FilePath& filePath);
std::set<FilePath> getDependingFilePaths(const std::set<FilePath>& filePaths);
std::set<FilePath> getDependingFilePaths(const FilePath& filePath);
void removeUnusedNames();
void logGraph() const;
void logLocations() const;
@@ -105,14 +108,16 @@ public:
virtual Id onTemplateFunctionSpecializationParsed(
const ParseLocation& location, const ParseFunction specializedFunction, const ParseFunction templateFunction);
virtual Id onFileParsed(const std::string& filePath);
virtual Id onFileParsed(const FileInfo& fileInfo);
virtual Id onFileIncludeParsed(
const ParseLocation& location, const std::string& filePath, const std::string& includedPath);
const ParseLocation& location, const FileInfo& fileInfo, const FileInfo& includedFileInfo);
// StorageAccess implementation
virtual Id getIdForNodeWithName(const std::string& fullName) const;
virtual Id getIdForEdgeWithName(const std::string& name) const;
virtual std::vector<FileInfo> getInfoOnAllFiles() const;
virtual std::string getNameForNodeWithId(Id nodeId) const;
virtual Node::NodeType getNodeTypeForNodeWithId(Id nodeId) const;
virtual std::vector<SearchMatch> getAutocompletionMatches(