From e99b86e8ca1473acf45c50c35c68dd57318f3462 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 25 Sep 2017 14:00:24 +0200 Subject: [PATCH] Clang: Remove IpcSenderInterface Change-Id: I005ab86d0967b439421a217556a39f2416976f20 Reviewed-by: Tim Jenssen --- .../clangbackendipcintegration.cpp | 98 ++++++++----------- .../clangbackendipcintegration.h | 40 ++++---- 2 files changed, 65 insertions(+), 73 deletions(-) diff --git a/src/plugins/clangcodemodel/clangbackendipcintegration.cpp b/src/plugins/clangcodemodel/clangbackendipcintegration.cpp index ff1cf8f0750..8a953af9c32 100644 --- a/src/plugins/clangcodemodel/clangbackendipcintegration.cpp +++ b/src/plugins/clangcodemodel/clangbackendipcintegration.cpp @@ -313,125 +313,111 @@ void IpcReceiver::followSymbol(const ClangBackEnd::FollowSymbolMessage &message) futureInterface.reportFinished(); } -class IpcSender : public IpcSenderInterface -{ -public: - IpcSender(ClangBackEnd::ClangCodeModelConnectionClient &connectionClient) - : m_connection(connectionClient) - {} - - void end() override; - void registerTranslationUnitsForEditor(const ClangBackEnd::RegisterTranslationUnitForEditorMessage &message) override; - void updateTranslationUnitsForEditor(const ClangBackEnd::UpdateTranslationUnitsForEditorMessage &message) override; - void unregisterTranslationUnitsForEditor(const ClangBackEnd::UnregisterTranslationUnitsForEditorMessage &message) override; - void registerProjectPartsForEditor(const ClangBackEnd::RegisterProjectPartsForEditorMessage &message) override; - void unregisterProjectPartsForEditor(const ClangBackEnd::UnregisterProjectPartsForEditorMessage &message) override; - void registerUnsavedFilesForEditor(const ClangBackEnd::RegisterUnsavedFilesForEditorMessage &message) override; - void unregisterUnsavedFilesForEditor(const ClangBackEnd::UnregisterUnsavedFilesForEditorMessage &message) override; - void completeCode(const ClangBackEnd::CompleteCodeMessage &message) override; - void requestDocumentAnnotations(const ClangBackEnd::RequestDocumentAnnotationsMessage &message) override; - void requestReferences(const ClangBackEnd::RequestReferencesMessage &message) override; - void requestFollowSymbol(const ClangBackEnd::RequestFollowSymbolMessage &message) override; - void updateVisibleTranslationUnits(const UpdateVisibleTranslationUnitsMessage &message) override; - -private: - ClangBackEnd::ClangCodeModelConnectionClient &m_connection; -}; +IpcSender::IpcSender(ClangCodeModelConnectionClient *connectionClient) + : m_connection(connectionClient) +{} void IpcSender::end() { - QTC_CHECK(m_connection.isConnected()); - qCDebug(log) << ">>>" << ClangBackEnd::EndMessage(); - m_connection.sendEndMessage(); + QTC_CHECK(m_connection->isConnected()); + qCDebug(log) << ">>>" << ClangBackEnd::EndMessage(); + m_connection->sendEndMessage(); } void IpcSender::registerTranslationUnitsForEditor(const RegisterTranslationUnitForEditorMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().registerTranslationUnitsForEditor(message); + m_connection->serverProxy().registerTranslationUnitsForEditor(message); } void IpcSender::updateTranslationUnitsForEditor(const UpdateTranslationUnitsForEditorMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().updateTranslationUnitsForEditor(message); + m_connection->serverProxy().updateTranslationUnitsForEditor(message); } void IpcSender::unregisterTranslationUnitsForEditor(const UnregisterTranslationUnitsForEditorMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().unregisterTranslationUnitsForEditor(message); + m_connection->serverProxy().unregisterTranslationUnitsForEditor(message); } void IpcSender::registerProjectPartsForEditor(const RegisterProjectPartsForEditorMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().registerProjectPartsForEditor(message); + m_connection->serverProxy().registerProjectPartsForEditor(message); } void IpcSender::unregisterProjectPartsForEditor(const UnregisterProjectPartsForEditorMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().unregisterProjectPartsForEditor(message); + m_connection->serverProxy().unregisterProjectPartsForEditor(message); } void IpcSender::registerUnsavedFilesForEditor(const RegisterUnsavedFilesForEditorMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().registerUnsavedFilesForEditor(message); + m_connection->serverProxy().registerUnsavedFilesForEditor(message); } void IpcSender::unregisterUnsavedFilesForEditor(const UnregisterUnsavedFilesForEditorMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().unregisterUnsavedFilesForEditor(message); + m_connection->serverProxy().unregisterUnsavedFilesForEditor(message); } void IpcSender::completeCode(const CompleteCodeMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().completeCode(message); + m_connection->serverProxy().completeCode(message); } void IpcSender::requestDocumentAnnotations(const RequestDocumentAnnotationsMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().requestDocumentAnnotations(message); + m_connection->serverProxy().requestDocumentAnnotations(message); } void IpcSender::requestReferences(const RequestReferencesMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().requestReferences(message); + m_connection->serverProxy().requestReferences(message); } void IpcSender::requestFollowSymbol(const RequestFollowSymbolMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().requestFollowSymbol(message); + m_connection->serverProxy().requestFollowSymbol(message); } void IpcSender::updateVisibleTranslationUnits(const UpdateVisibleTranslationUnitsMessage &message) { - QTC_CHECK(m_connection.isConnected()); + QTC_CHECK(m_connection->isConnected()); qCDebug(log) << ">>>" << message; - m_connection.serverProxy().updateVisibleTranslationUnits(message); + m_connection->serverProxy().updateVisibleTranslationUnits(message); } -class DummyIpcSender : public IpcSenderInterface +bool IpcSender::isConnected() const +{ + return m_connection && m_connection->isConnected(); +} + +class DummyIpcSender : public IpcSender { public: + DummyIpcSender() : IpcSender(nullptr) {} + void end() override {} void registerTranslationUnitsForEditor(const ClangBackEnd::RegisterTranslationUnitForEditorMessage &) override {} void updateTranslationUnitsForEditor(const ClangBackEnd::UpdateTranslationUnitsForEditorMessage &) override {} @@ -451,7 +437,7 @@ enum { backEndStartTimeOutInMs = 10000 }; IpcCommunicator::IpcCommunicator() : m_connection(&m_ipcReceiver) - , m_ipcSender(new DummyIpcSender) + , m_ipcSender(new DummyIpcSender()) { m_backendStartTimeOut.setSingleShot(true); connect(&m_backendStartTimeOut, &QTimer::timeout, @@ -804,7 +790,7 @@ void IpcCommunicator::onConnectedToBackend() logRestartedDueToUnexpectedFinish(); m_ipcReceiver.reset(); - m_ipcSender.reset(new IpcSender(m_connection)); + m_ipcSender.reset(new IpcSender(&m_connection)); initializeBackendWithCurrentData(); } @@ -869,9 +855,9 @@ void IpcCommunicator::initializeBackendWithCurrentData() emit backendReinitialized(); } -IpcSenderInterface *IpcCommunicator::setIpcSender(IpcSenderInterface *ipcSender) +IpcSender *IpcCommunicator::setIpcSender(IpcSender *ipcSender) { - IpcSenderInterface *previousMessageSender = m_ipcSender.take(); + IpcSender *previousMessageSender = m_ipcSender.take(); m_ipcSender.reset(ipcSender); return previousMessageSender; } diff --git a/src/plugins/clangcodemodel/clangbackendipcintegration.h b/src/plugins/clangcodemodel/clangbackendipcintegration.h index 589c0357818..5c7eb6f9225 100644 --- a/src/plugins/clangcodemodel/clangbackendipcintegration.h +++ b/src/plugins/clangcodemodel/clangbackendipcintegration.h @@ -115,24 +115,30 @@ private: QHash> m_followTable; }; -class IpcSenderInterface +class IpcSender : public ClangBackEnd::ClangCodeModelServerInterface { public: - virtual ~IpcSenderInterface() {} + IpcSender(ClangBackEnd::ClangCodeModelConnectionClient *connectionClient); - virtual void end() = 0; - virtual void registerTranslationUnitsForEditor(const ClangBackEnd::RegisterTranslationUnitForEditorMessage &message) = 0; - virtual void updateTranslationUnitsForEditor(const ClangBackEnd::UpdateTranslationUnitsForEditorMessage &message) = 0; - virtual void unregisterTranslationUnitsForEditor(const ClangBackEnd::UnregisterTranslationUnitsForEditorMessage &message) = 0; - virtual void registerProjectPartsForEditor(const ClangBackEnd::RegisterProjectPartsForEditorMessage &message) = 0; - virtual void unregisterProjectPartsForEditor(const ClangBackEnd::UnregisterProjectPartsForEditorMessage &message) = 0; - virtual void registerUnsavedFilesForEditor(const ClangBackEnd::RegisterUnsavedFilesForEditorMessage &message) = 0; - virtual void unregisterUnsavedFilesForEditor(const ClangBackEnd::UnregisterUnsavedFilesForEditorMessage &message) = 0; - virtual void completeCode(const ClangBackEnd::CompleteCodeMessage &message) = 0; - virtual void requestDocumentAnnotations(const ClangBackEnd::RequestDocumentAnnotationsMessage &message) = 0; - virtual void requestReferences(const ClangBackEnd::RequestReferencesMessage &message) = 0; - virtual void requestFollowSymbol(const ClangBackEnd::RequestFollowSymbolMessage &message) = 0; - virtual void updateVisibleTranslationUnits(const ClangBackEnd::UpdateVisibleTranslationUnitsMessage &message) = 0; + void end() override; + void registerTranslationUnitsForEditor(const ClangBackEnd::RegisterTranslationUnitForEditorMessage &message) override; + void updateTranslationUnitsForEditor(const ClangBackEnd::UpdateTranslationUnitsForEditorMessage &message) override; + void unregisterTranslationUnitsForEditor(const ClangBackEnd::UnregisterTranslationUnitsForEditorMessage &message) override; + void registerProjectPartsForEditor(const ClangBackEnd::RegisterProjectPartsForEditorMessage &message) override; + void unregisterProjectPartsForEditor(const ClangBackEnd::UnregisterProjectPartsForEditorMessage &message) override; + void registerUnsavedFilesForEditor(const ClangBackEnd::RegisterUnsavedFilesForEditorMessage &message) override; + void unregisterUnsavedFilesForEditor(const ClangBackEnd::UnregisterUnsavedFilesForEditorMessage &message) override; + void completeCode(const ClangBackEnd::CompleteCodeMessage &message) override; + void requestDocumentAnnotations(const ClangBackEnd::RequestDocumentAnnotationsMessage &message) override; + void requestReferences(const ClangBackEnd::RequestReferencesMessage &message) override; + void requestFollowSymbol(const ClangBackEnd::RequestFollowSymbolMessage &message) override; + void updateVisibleTranslationUnits(const ClangBackEnd::UpdateVisibleTranslationUnitsMessage &message) override; + +private: + bool isConnected() const; + +private: + ClangBackEnd::ClangCodeModelConnectionClient *m_connection = nullptr; }; class IpcCommunicator : public QObject @@ -193,7 +199,7 @@ public: bool isNotWaitingForCompletion() const; public: // for tests - IpcSenderInterface *setIpcSender(IpcSenderInterface *ipcSender); + IpcSender *setIpcSender(IpcSender *ipcSender); void killBackendProcess(); signals: // for tests @@ -226,7 +232,7 @@ private: IpcReceiver m_ipcReceiver; ClangBackEnd::ClangCodeModelConnectionClient m_connection; QTimer m_backendStartTimeOut; - QScopedPointer m_ipcSender; + QScopedPointer m_ipcSender; int m_connectedCount = 0; };