#ifndef STORAGE_ACCESS_PROXY_H #define STORAGE_ACCESS_PROXY_H #include "data/access/StorageAccess.h" #include "utility/messaging/MessageListener.h" #include "utility/messaging/type/MessageErrorFilterChanged.h" class StorageAccessProxy : public StorageAccess , public MessageListener { public: StorageAccessProxy(); virtual ~StorageAccessProxy(); bool hasSubject() const; void setSubject(StorageAccess* subject); // StorageAccess implementation virtual Id getNodeIdForFileNode(const FilePath& filePath) const override; virtual Id getNodeIdForNameHierarchy(const NameHierarchy& nameHierarchy) const override; virtual std::vector getNodeIdsForNameHierarchies(const std::vector nameHierarchies) const override; virtual NameHierarchy getNameHierarchyForNodeId(Id id) const override; virtual std::vector getNameHierarchiesForNodeIds(const std::vector& nodeIds) const override; virtual NodeType getNodeTypeForNodeWithId(Id id) const override; virtual Id getIdForEdge( Edge::EdgeType type, const NameHierarchy& fromNameHierarchy, const NameHierarchy& toNameHierarchy) const override; virtual StorageEdge getEdgeById(Id edgeId) const override; virtual std::shared_ptr getFullTextSearchLocations( const std::wstring& searchTerm, bool caseSensitive) const override; virtual std::vector getAutocompletionMatches(const std::wstring& query, NodeTypeSet acceptedNodeTypes) const override; virtual std::vector getSearchMatchesForTokenIds(const std::vector& tokenIds) const override; virtual std::shared_ptr getGraphForAll() const override; virtual std::shared_ptr getGraphForNodeTypes(NodeTypeSet nodeTypes) const override; virtual std::shared_ptr getGraphForActiveTokenIds( const std::vector& tokenIds, const std::vector& expandedNodeIds, bool* isActiveNamespace = nullptr) const override; virtual std::shared_ptr getGraphForChildrenOfNodeId(Id nodeId) const override; virtual std::shared_ptr getGraphForTrail(Id originId, Id targetId, Edge::TypeMask trailType, size_t depth) const override; virtual std::vector getActiveTokenIdsForId(Id tokenId, Id* declarationId) const override; virtual std::vector getNodeIdsForLocationIds(const std::vector& locationIds) const override; virtual std::shared_ptr getSourceLocationsForTokenIds( const std::vector& tokenIds ) const override; virtual std::shared_ptr getSourceLocationsForLocationIds( const std::vector& locationIds ) const override; virtual std::shared_ptr getSourceLocationsForFile(const FilePath& filePath) const override; virtual std::shared_ptr getSourceLocationsForLinesInFile( const FilePath& filePath, uint firstLineNumber, uint lastLineNumber ) const override; virtual std::shared_ptr getCommentLocationsInFile(const FilePath& filePath) const override; virtual std::shared_ptr getFileContent(const FilePath& filePath) const override; virtual FileInfo getFileInfoForFilePath(const FilePath& filePath) const override; virtual std::vector getFileInfosForFilePaths(const std::vector& filePaths) const override; virtual StorageStats getStorageStats() const override; virtual ErrorCountInfo getErrorCount() const override; virtual std::vector getErrorsLimited() const override; virtual std::shared_ptr getErrorSourceLocationsLimited(std::vector* errors) const override; // TODO: remove these from access because it's not a getter! virtual Id addNodeBookmark(const NodeBookmark& bookmark) override; virtual Id addEdgeBookmark(const EdgeBookmark& bookmark) override; virtual Id addBookmarkCategory(const std::wstring& categoryName) override; virtual void updateBookmark( const Id bookmarkId, const std::wstring& name, const std::wstring& comment, const std::wstring& categoryName) override; virtual void removeBookmark(const Id id) override; virtual void removeBookmarkCategory(const Id id) override; // END TODO virtual std::vector getAllNodeBookmarks() const override; virtual std::vector getAllEdgeBookmarks() const override; virtual std::vector getAllBookmarkCategories() const override; virtual TooltipInfo getTooltipInfoForTokenIds(const std::vector& tokenIds, TooltipOrigin origin) const override; virtual TooltipInfo getTooltipInfoForSourceLocationIdsAndLocalSymbolIds( const std::vector& locationIds, const std::vector& localSymbolIds) const override; protected: virtual void setErrorFilter(const ErrorFilter& filter) override; private: void handleMessage(MessageErrorFilterChanged* message) override; StorageAccess* m_subject; }; #endif // STORAGE_ACCESS_PROXY_H