#ifndef STORAGE_ACCESS_H #define STORAGE_ACCESS_H #include #include #include #include "utility/types.h" #include "utility/file/FileInfo.h" #include "utility/file/FilePath.h" #include "data/parser/ParseLocation.h" #include "data/graph/Node.h" #include "data/search/SearchMatch.h" #include "data/ErrorCountInfo.h" #include "data/ErrorFilter.h" #include "data/ErrorInfo.h" #include "data/StorageStats.h" class Graph; class TextAccess; class TokenLocation; class TokenLocationCollection; class TokenLocationFile; class TimePoint; class StorageAccess { public: virtual ~StorageAccess(); virtual Id getIdForNodeWithNameHierarchy(const NameHierarchy& nameHierarchy) const = 0; virtual Id getIdForEdge( Edge::EdgeType type, const NameHierarchy& fromNameHierarchy, const NameHierarchy& toNameHierarchy) const = 0; virtual NameHierarchy getNameHierarchyForNodeWithId(Id id) const = 0; virtual Node::NodeType getNodeTypeForNodeWithId(Id id) const = 0; virtual std::shared_ptr getFullTextSearchLocations( const std::string& searchTerm, bool caseSensitive) const = 0; virtual std::vector getAutocompletionMatches(const std::string& query) const = 0; virtual std::vector getSearchMatchesForTokenIds(const std::vector& tokenIds) const = 0; virtual std::shared_ptr getGraphForAll() const = 0; virtual std::shared_ptr getGraphForActiveTokenIds(const std::vector& tokenIds, bool* isActiveNamespace = nullptr) const = 0; virtual std::vector getActiveTokenIdsForId(Id tokenId, Id* declarationId) const = 0; virtual std::vector getNodeIdsForLocationIds(const std::vector& locationIds) const = 0; virtual std::vector getLocalSymbolIdsForLocationIds(const std::vector& locationIds) const = 0; virtual std::vector getTokenIdsForMatches(const std::vector& matches) const = 0; virtual Id getTokenIdForFileNode(const FilePath& filePath) const = 0; virtual std::shared_ptr getTokenLocationsForTokenIds( const std::vector& tokenIds) const = 0; virtual std::shared_ptr getTokenLocationsForLocationIds( const std::vector& locationIds) const = 0; virtual std::shared_ptr getTokenLocationsForFile(const std::string& filePath) const = 0; virtual std::shared_ptr getTokenLocationsForLinesInFile( const std::string& filePath, uint firstLineNumber, uint lastLineNumber) const = 0; virtual std::shared_ptr getCommentLocationsInFile(const FilePath& filePath) const = 0; virtual std::shared_ptr getFileContent(const FilePath& filePath) const = 0; virtual FileInfo getFileInfoForFilePath(const FilePath& filePath) const = 0; virtual std::vector getFileInfosForFilePaths(const std::vector& filePaths) const = 0; virtual StorageStats getStorageStats() const = 0; virtual ErrorCountInfo getErrorCount() const = 0; virtual std::vector getErrors() const = 0; virtual std::shared_ptr getErrorTokenLocations(std::vector* errors) const = 0; virtual void setErrorFilter(const ErrorFilter& filter); protected: ErrorFilter m_errorFilter; }; #endif // STORAGE_ACCESS_H