summaryrefslogtreecommitdiff
path: root/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp')
-rw-r--r--src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp b/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
index 1fac050883..9cb45e0e35 100644
--- a/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
+++ b/src/tools/clangrefactoringbackend/clangrefactoringbackendmain.cpp
@@ -83,6 +83,20 @@ public:
}
};
+struct Data // because we have a cycle dependency
+{
+ Data(const QString &databasePath)
+ : database{Utils::PathString{databasePath}, 100000ms}
+ {}
+
+ Sqlite::Database database;
+ RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database};
+ FilePathCaching filePathCache{database};
+ GeneratedFiles generatedFiles;
+ SymbolIndexing symbolIndexing{database, filePathCache, generatedFiles, [&] (int progress, int total) { clangCodeModelServer.setProgress(progress, total); }};
+ RefactoringServer clangCodeModelServer{symbolIndexing, filePathCache, generatedFiles};
+};
+
int main(int argc, char *argv[])
{
try {
@@ -99,14 +113,10 @@ int main(int argc, char *argv[])
const QString connectionName = arguments[0];
const QString databasePath = arguments[1];
- Sqlite::Database database{Utils::PathString{databasePath}, 100000ms};
- RefactoringDatabaseInitializer<Sqlite::Database> databaseInitializer{database};
- FilePathCaching filePathCache{database};
- GeneratedFiles generatedFiles;
- SymbolIndexing symbolIndexing{database, filePathCache, generatedFiles};
- RefactoringServer clangCodeModelServer{symbolIndexing, filePathCache, generatedFiles};
+ Data data{databasePath};
+
ConnectionServer<RefactoringServer, RefactoringClientProxy> connectionServer;
- connectionServer.setServer(&clangCodeModelServer);
+ connectionServer.setServer(&data.clangCodeModelServer);
connectionServer.start(connectionName);
return application.exec();