logic: combined GraphAccess and LocationAccess to StorageAccess
Having only one access point to the Storage will simplify caching and parallelisation in the future. Also the two accesses were never really independent of each other anyways, because in some cases they had to access both data sets.
This commit is contained in:
@@ -1,15 +1,13 @@
|
||||
#include "component/controller/CodeController.h"
|
||||
|
||||
#include "data/access/GraphAccess.h"
|
||||
#include "data/access/LocationAccess.h"
|
||||
#include "data/access/StorageAccess.h"
|
||||
#include "data/location/TokenLocation.h"
|
||||
#include "data/location/TokenLocationCollection.h"
|
||||
#include "data/location/TokenLocationFile.h"
|
||||
#include "utility/text/TextAccess.h"
|
||||
|
||||
CodeController::CodeController(GraphAccess* graphAccess, LocationAccess* locationAccess)
|
||||
: m_graphAccess(graphAccess)
|
||||
, m_locationAccess(locationAccess)
|
||||
CodeController::CodeController(StorageAccess* storageAccess)
|
||||
: m_storageAccess(storageAccess)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -23,7 +21,7 @@ void CodeController::handleMessage(MessageActivateTokenLocation* message)
|
||||
{
|
||||
if (message->locationId)
|
||||
{
|
||||
std::vector<Id> activeTokenIds = m_graphAccess->getActiveTokenIdsForLocationId(message->locationId);
|
||||
std::vector<Id> activeTokenIds = m_storageAccess->getActiveTokenIdsForLocationId(message->locationId);
|
||||
MessageActivateTokens(activeTokenIds).dispatch();
|
||||
}
|
||||
}
|
||||
@@ -35,7 +33,7 @@ void CodeController::handleMessage(MessageActivateTokens* message)
|
||||
|
||||
if (activeTokenIds.size() == 1)
|
||||
{
|
||||
activeTokenIds = m_graphAccess->getActiveTokenIdsForId(activeTokenIds[0], &declarationId);
|
||||
activeTokenIds = m_storageAccess->getActiveTokenIdsForId(activeTokenIds[0], &declarationId);
|
||||
}
|
||||
|
||||
CodeView* view = getView();
|
||||
@@ -49,7 +47,7 @@ void CodeController::handleMessage(MessageFinishedParsing* message)
|
||||
if (message->errorCount > 0)
|
||||
{
|
||||
std::vector<std::string> errorMessages;
|
||||
TokenLocationCollection errorCollection = m_locationAccess->getErrorTokenLocations(&errorMessages);
|
||||
TokenLocationCollection errorCollection = m_storageAccess->getErrorTokenLocations(&errorMessages);
|
||||
|
||||
std::vector<CodeView::CodeSnippetParams> snippets;
|
||||
|
||||
@@ -83,7 +81,7 @@ void CodeController::handleMessage(MessageShowFile* message)
|
||||
params.lineCount = textAccess->getLineCount();
|
||||
params.code = textAccess->getText();
|
||||
|
||||
params.locationFile = m_locationAccess->getTokenLocationsForFile(message->filePath);
|
||||
params.locationFile = m_storageAccess->getTokenLocationsForFile(message->filePath);
|
||||
|
||||
getView()->showCodeFile(params);
|
||||
}
|
||||
@@ -96,7 +94,7 @@ CodeView* CodeController::getView()
|
||||
std::vector<CodeView::CodeSnippetParams> CodeController::getSnippetsForActiveTokenIds(
|
||||
const std::vector<Id>& ids, Id declarationId
|
||||
) const {
|
||||
TokenLocationCollection collection = m_locationAccess->getTokenLocationsForTokenIds(ids);
|
||||
TokenLocationCollection collection = m_storageAccess->getTokenLocationsForTokenIds(ids);
|
||||
|
||||
std::vector<CodeView::CodeSnippetParams> snippets;
|
||||
|
||||
@@ -107,7 +105,7 @@ std::vector<CodeView::CodeSnippetParams> CodeController::getSnippetsForActiveTok
|
||||
|
||||
for (CodeView::CodeSnippetParams& params : fileSnippets)
|
||||
{
|
||||
params.locationFile = m_locationAccess->getTokenLocationsForLinesInFile(
|
||||
params.locationFile = m_storageAccess->getTokenLocationsForLinesInFile(
|
||||
file->getFilePath().str(), params.startLineNumber, params.endLineNumber);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,8 +13,7 @@
|
||||
#include "utility/messaging/type/MessageShowFile.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
class GraphAccess;
|
||||
class LocationAccess;
|
||||
class StorageAccess;
|
||||
class TokenLocationFile;
|
||||
|
||||
class CodeController
|
||||
@@ -26,7 +25,7 @@ class CodeController
|
||||
, public MessageListener<MessageShowFile>
|
||||
{
|
||||
public:
|
||||
CodeController(GraphAccess* graphAccess, LocationAccess* locationAccess);
|
||||
CodeController(StorageAccess* storageAccess);
|
||||
~CodeController();
|
||||
|
||||
private:
|
||||
@@ -45,8 +44,7 @@ private:
|
||||
std::vector<CodeView::CodeSnippetParams> getSnippetsForFile(const TokenLocationFile* file) const;
|
||||
std::vector<std::pair<uint, uint>> getSnippetRangesForFile(const TokenLocationFile* file) const;
|
||||
|
||||
GraphAccess* m_graphAccess;
|
||||
LocationAccess* m_locationAccess;
|
||||
StorageAccess* m_storageAccess;
|
||||
};
|
||||
|
||||
#endif // CODE_CONTROLLER_H
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
#include "component/view/graphElements/GraphEdge.h"
|
||||
#include "component/view/graphElements/GraphNode.h"
|
||||
#include "component/view/GraphView.h"
|
||||
#include "data/access/GraphAccess.h"
|
||||
#include "data/access/StorageAccess.h"
|
||||
#include "data/graph/Graph.h"
|
||||
|
||||
GraphController::Margins::Margins()
|
||||
: left(0)
|
||||
@@ -22,8 +23,8 @@ GraphController::Margins::Margins()
|
||||
}
|
||||
|
||||
|
||||
GraphController::GraphController(GraphAccess* graphAccess)
|
||||
: m_graphAccess(graphAccess)
|
||||
GraphController::GraphController(StorageAccess* storageAccess)
|
||||
: m_storageAccess(storageAccess)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -112,7 +113,7 @@ void GraphController::createDummyGraphForTokenIds(const std::vector<Id>& tokenId
|
||||
return;
|
||||
}
|
||||
|
||||
std::shared_ptr<Graph> graph = m_graphAccess->getGraphForActiveTokenIds(tokenIds);
|
||||
std::shared_ptr<Graph> graph = m_storageAccess->getGraphForActiveTokenIds(tokenIds);
|
||||
|
||||
m_dummyEdges.clear();
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
struct DummyNode;
|
||||
struct DummyEdge;
|
||||
class Graph;
|
||||
class GraphAccess;
|
||||
class Node;
|
||||
class StorageAccess;
|
||||
|
||||
class GraphController
|
||||
: public Controller
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
float charWidth;
|
||||
};
|
||||
|
||||
GraphController(GraphAccess* graphAccess);
|
||||
GraphController(StorageAccess* storageAccess);
|
||||
~GraphController();
|
||||
|
||||
private:
|
||||
@@ -74,7 +74,7 @@ private:
|
||||
DummyNode* findDummyNodeRecursive(std::vector<DummyNode>& nodes, Id tokenId);
|
||||
DummyNode* findDummyNodeAccessRecursive(std::vector<DummyNode>& nodes, Id parentId, TokenComponentAccess::AccessType type);
|
||||
|
||||
GraphAccess* m_graphAccess;
|
||||
StorageAccess* m_storageAccess;
|
||||
GraphView::Metrics m_viewMetrics;
|
||||
|
||||
std::vector<DummyNode> m_dummyNodes;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#include "component/controller/SearchController.h"
|
||||
|
||||
#include "component/view/SearchView.h"
|
||||
#include "data/access/GraphAccess.h"
|
||||
#include "data/access/storageAccess.h"
|
||||
|
||||
SearchController::SearchController(GraphAccess* graphAccess)
|
||||
: m_graphAccess(graphAccess)
|
||||
SearchController::SearchController(StorageAccess* storageAccess)
|
||||
: m_storageAccess(storageAccess)
|
||||
, m_ignoreNextMessageActivateTokens(false)
|
||||
{
|
||||
}
|
||||
@@ -19,8 +19,8 @@ void SearchController::handleMessage(MessageActivateTokens* message)
|
||||
if (!m_ignoreNextMessageActivateTokens && message->tokenIds.size())
|
||||
{
|
||||
SearchMatch match;
|
||||
match.fullName = m_graphAccess->getNameForNodeWithId(message->tokenIds[0]);
|
||||
match.nodeType = m_graphAccess->getNodeTypeForNodeWithId(message->tokenIds[0]);
|
||||
match.fullName = m_storageAccess->getNameForNodeWithId(message->tokenIds[0]);
|
||||
match.nodeType = m_storageAccess->getNodeTypeForNodeWithId(message->tokenIds[0]);
|
||||
match.tokenIds.insert(message->tokenIds[0]);
|
||||
match.queryNodeType = QueryNode::QUERYNODETYPE_TOKEN;
|
||||
|
||||
@@ -54,10 +54,10 @@ void SearchController::handleMessage(MessageSearch* message)
|
||||
|
||||
m_ignoreNextMessageActivateTokens = true;
|
||||
|
||||
std::vector<Id> ids = m_graphAccess->getTokenIdsForQuery(query);
|
||||
std::vector<Id> ids = m_storageAccess->getTokenIdsForQuery(query);
|
||||
if (!ids.size())
|
||||
{
|
||||
ids.push_back(m_graphAccess->getIdForNodeWithName(query));
|
||||
ids.push_back(m_storageAccess->getIdForNodeWithName(query));
|
||||
}
|
||||
|
||||
MessageActivateTokens(ids).dispatch();
|
||||
@@ -66,7 +66,7 @@ void SearchController::handleMessage(MessageSearch* message)
|
||||
void SearchController::handleMessage(MessageSearchAutocomplete* message)
|
||||
{
|
||||
LOG_INFO("autocomplete string: \"" + message->word + "\"");
|
||||
getView()->setAutocompletionList(m_graphAccess->getAutocompletionMatches(message->query, message->word));
|
||||
getView()->setAutocompletionList(m_storageAccess->getAutocompletionMatches(message->query, message->word));
|
||||
}
|
||||
|
||||
SearchView* SearchController::getView()
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "utility/messaging/type/MessageSearch.h"
|
||||
#include "utility/messaging/type/MessageSearchAutocomplete.h"
|
||||
|
||||
class GraphAccess;
|
||||
class StorageAccess;
|
||||
class SearchView;
|
||||
|
||||
class SearchController
|
||||
@@ -25,7 +25,7 @@ class SearchController
|
||||
, public MessageListener<MessageSearchAutocomplete>
|
||||
{
|
||||
public:
|
||||
SearchController(GraphAccess* graphAccess);
|
||||
SearchController(StorageAccess* storageAccess);
|
||||
~SearchController();
|
||||
|
||||
private:
|
||||
@@ -38,7 +38,7 @@ private:
|
||||
|
||||
SearchView* getView();
|
||||
|
||||
GraphAccess* m_graphAccess;
|
||||
StorageAccess* m_storageAccess;
|
||||
|
||||
bool m_ignoreNextMessageActivateTokens;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user