forked from qt-creator/qt-creator
Clang: Remove IpcSenderInterface
Change-Id: I005ab86d0967b439421a217556a39f2416976f20 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -313,125 +313,111 @@ void IpcReceiver::followSymbol(const ClangBackEnd::FollowSymbolMessage &message)
|
|||||||
futureInterface.reportFinished();
|
futureInterface.reportFinished();
|
||||||
}
|
}
|
||||||
|
|
||||||
class IpcSender : public IpcSenderInterface
|
IpcSender::IpcSender(ClangCodeModelConnectionClient *connectionClient)
|
||||||
{
|
: m_connection(connectionClient)
|
||||||
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;
|
|
||||||
};
|
|
||||||
|
|
||||||
void IpcSender::end()
|
void IpcSender::end()
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << ClangBackEnd::EndMessage();
|
qCDebug(log) << ">>>" << ClangBackEnd::EndMessage();
|
||||||
m_connection.sendEndMessage();
|
m_connection->sendEndMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::registerTranslationUnitsForEditor(const RegisterTranslationUnitForEditorMessage &message)
|
void IpcSender::registerTranslationUnitsForEditor(const RegisterTranslationUnitForEditorMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
qCDebug(log) << ">>>" << message;
|
||||||
m_connection.serverProxy().registerTranslationUnitsForEditor(message);
|
m_connection->serverProxy().registerTranslationUnitsForEditor(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::updateTranslationUnitsForEditor(const UpdateTranslationUnitsForEditorMessage &message)
|
void IpcSender::updateTranslationUnitsForEditor(const UpdateTranslationUnitsForEditorMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
qCDebug(log) << ">>>" << message;
|
||||||
m_connection.serverProxy().updateTranslationUnitsForEditor(message);
|
m_connection->serverProxy().updateTranslationUnitsForEditor(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::unregisterTranslationUnitsForEditor(const UnregisterTranslationUnitsForEditorMessage &message)
|
void IpcSender::unregisterTranslationUnitsForEditor(const UnregisterTranslationUnitsForEditorMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
qCDebug(log) << ">>>" << message;
|
||||||
m_connection.serverProxy().unregisterTranslationUnitsForEditor(message);
|
m_connection->serverProxy().unregisterTranslationUnitsForEditor(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::registerProjectPartsForEditor(const RegisterProjectPartsForEditorMessage &message)
|
void IpcSender::registerProjectPartsForEditor(const RegisterProjectPartsForEditorMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
qCDebug(log) << ">>>" << message;
|
||||||
m_connection.serverProxy().registerProjectPartsForEditor(message);
|
m_connection->serverProxy().registerProjectPartsForEditor(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::unregisterProjectPartsForEditor(const UnregisterProjectPartsForEditorMessage &message)
|
void IpcSender::unregisterProjectPartsForEditor(const UnregisterProjectPartsForEditorMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
qCDebug(log) << ">>>" << message;
|
||||||
m_connection.serverProxy().unregisterProjectPartsForEditor(message);
|
m_connection->serverProxy().unregisterProjectPartsForEditor(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::registerUnsavedFilesForEditor(const RegisterUnsavedFilesForEditorMessage &message)
|
void IpcSender::registerUnsavedFilesForEditor(const RegisterUnsavedFilesForEditorMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
qCDebug(log) << ">>>" << message;
|
||||||
m_connection.serverProxy().registerUnsavedFilesForEditor(message);
|
m_connection->serverProxy().registerUnsavedFilesForEditor(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::unregisterUnsavedFilesForEditor(const UnregisterUnsavedFilesForEditorMessage &message)
|
void IpcSender::unregisterUnsavedFilesForEditor(const UnregisterUnsavedFilesForEditorMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
qCDebug(log) << ">>>" << message;
|
||||||
m_connection.serverProxy().unregisterUnsavedFilesForEditor(message);
|
m_connection->serverProxy().unregisterUnsavedFilesForEditor(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::completeCode(const CompleteCodeMessage &message)
|
void IpcSender::completeCode(const CompleteCodeMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
qCDebug(log) << ">>>" << message;
|
||||||
m_connection.serverProxy().completeCode(message);
|
m_connection->serverProxy().completeCode(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::requestDocumentAnnotations(const RequestDocumentAnnotationsMessage &message)
|
void IpcSender::requestDocumentAnnotations(const RequestDocumentAnnotationsMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
qCDebug(log) << ">>>" << message;
|
||||||
m_connection.serverProxy().requestDocumentAnnotations(message);
|
m_connection->serverProxy().requestDocumentAnnotations(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::requestReferences(const RequestReferencesMessage &message)
|
void IpcSender::requestReferences(const RequestReferencesMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
qCDebug(log) << ">>>" << message;
|
||||||
m_connection.serverProxy().requestReferences(message);
|
m_connection->serverProxy().requestReferences(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::requestFollowSymbol(const RequestFollowSymbolMessage &message)
|
void IpcSender::requestFollowSymbol(const RequestFollowSymbolMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
qCDebug(log) << ">>>" << message;
|
||||||
m_connection.serverProxy().requestFollowSymbol(message);
|
m_connection->serverProxy().requestFollowSymbol(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void IpcSender::updateVisibleTranslationUnits(const UpdateVisibleTranslationUnitsMessage &message)
|
void IpcSender::updateVisibleTranslationUnits(const UpdateVisibleTranslationUnitsMessage &message)
|
||||||
{
|
{
|
||||||
QTC_CHECK(m_connection.isConnected());
|
QTC_CHECK(m_connection->isConnected());
|
||||||
qCDebug(log) << ">>>" << message;
|
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:
|
public:
|
||||||
|
DummyIpcSender() : IpcSender(nullptr) {}
|
||||||
|
|
||||||
void end() override {}
|
void end() override {}
|
||||||
void registerTranslationUnitsForEditor(const ClangBackEnd::RegisterTranslationUnitForEditorMessage &) override {}
|
void registerTranslationUnitsForEditor(const ClangBackEnd::RegisterTranslationUnitForEditorMessage &) override {}
|
||||||
void updateTranslationUnitsForEditor(const ClangBackEnd::UpdateTranslationUnitsForEditorMessage &) override {}
|
void updateTranslationUnitsForEditor(const ClangBackEnd::UpdateTranslationUnitsForEditorMessage &) override {}
|
||||||
@@ -451,7 +437,7 @@ enum { backEndStartTimeOutInMs = 10000 };
|
|||||||
|
|
||||||
IpcCommunicator::IpcCommunicator()
|
IpcCommunicator::IpcCommunicator()
|
||||||
: m_connection(&m_ipcReceiver)
|
: m_connection(&m_ipcReceiver)
|
||||||
, m_ipcSender(new DummyIpcSender)
|
, m_ipcSender(new DummyIpcSender())
|
||||||
{
|
{
|
||||||
m_backendStartTimeOut.setSingleShot(true);
|
m_backendStartTimeOut.setSingleShot(true);
|
||||||
connect(&m_backendStartTimeOut, &QTimer::timeout,
|
connect(&m_backendStartTimeOut, &QTimer::timeout,
|
||||||
@@ -804,7 +790,7 @@ void IpcCommunicator::onConnectedToBackend()
|
|||||||
logRestartedDueToUnexpectedFinish();
|
logRestartedDueToUnexpectedFinish();
|
||||||
|
|
||||||
m_ipcReceiver.reset();
|
m_ipcReceiver.reset();
|
||||||
m_ipcSender.reset(new IpcSender(m_connection));
|
m_ipcSender.reset(new IpcSender(&m_connection));
|
||||||
|
|
||||||
initializeBackendWithCurrentData();
|
initializeBackendWithCurrentData();
|
||||||
}
|
}
|
||||||
@@ -869,9 +855,9 @@ void IpcCommunicator::initializeBackendWithCurrentData()
|
|||||||
emit backendReinitialized();
|
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);
|
m_ipcSender.reset(ipcSender);
|
||||||
return previousMessageSender;
|
return previousMessageSender;
|
||||||
}
|
}
|
||||||
|
@@ -115,24 +115,30 @@ private:
|
|||||||
QHash<quint64, QFutureInterface<CppTools::SymbolInfo>> m_followTable;
|
QHash<quint64, QFutureInterface<CppTools::SymbolInfo>> m_followTable;
|
||||||
};
|
};
|
||||||
|
|
||||||
class IpcSenderInterface
|
class IpcSender : public ClangBackEnd::ClangCodeModelServerInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~IpcSenderInterface() {}
|
IpcSender(ClangBackEnd::ClangCodeModelConnectionClient *connectionClient);
|
||||||
|
|
||||||
virtual void end() = 0;
|
void end() override;
|
||||||
virtual void registerTranslationUnitsForEditor(const ClangBackEnd::RegisterTranslationUnitForEditorMessage &message) = 0;
|
void registerTranslationUnitsForEditor(const ClangBackEnd::RegisterTranslationUnitForEditorMessage &message) override;
|
||||||
virtual void updateTranslationUnitsForEditor(const ClangBackEnd::UpdateTranslationUnitsForEditorMessage &message) = 0;
|
void updateTranslationUnitsForEditor(const ClangBackEnd::UpdateTranslationUnitsForEditorMessage &message) override;
|
||||||
virtual void unregisterTranslationUnitsForEditor(const ClangBackEnd::UnregisterTranslationUnitsForEditorMessage &message) = 0;
|
void unregisterTranslationUnitsForEditor(const ClangBackEnd::UnregisterTranslationUnitsForEditorMessage &message) override;
|
||||||
virtual void registerProjectPartsForEditor(const ClangBackEnd::RegisterProjectPartsForEditorMessage &message) = 0;
|
void registerProjectPartsForEditor(const ClangBackEnd::RegisterProjectPartsForEditorMessage &message) override;
|
||||||
virtual void unregisterProjectPartsForEditor(const ClangBackEnd::UnregisterProjectPartsForEditorMessage &message) = 0;
|
void unregisterProjectPartsForEditor(const ClangBackEnd::UnregisterProjectPartsForEditorMessage &message) override;
|
||||||
virtual void registerUnsavedFilesForEditor(const ClangBackEnd::RegisterUnsavedFilesForEditorMessage &message) = 0;
|
void registerUnsavedFilesForEditor(const ClangBackEnd::RegisterUnsavedFilesForEditorMessage &message) override;
|
||||||
virtual void unregisterUnsavedFilesForEditor(const ClangBackEnd::UnregisterUnsavedFilesForEditorMessage &message) = 0;
|
void unregisterUnsavedFilesForEditor(const ClangBackEnd::UnregisterUnsavedFilesForEditorMessage &message) override;
|
||||||
virtual void completeCode(const ClangBackEnd::CompleteCodeMessage &message) = 0;
|
void completeCode(const ClangBackEnd::CompleteCodeMessage &message) override;
|
||||||
virtual void requestDocumentAnnotations(const ClangBackEnd::RequestDocumentAnnotationsMessage &message) = 0;
|
void requestDocumentAnnotations(const ClangBackEnd::RequestDocumentAnnotationsMessage &message) override;
|
||||||
virtual void requestReferences(const ClangBackEnd::RequestReferencesMessage &message) = 0;
|
void requestReferences(const ClangBackEnd::RequestReferencesMessage &message) override;
|
||||||
virtual void requestFollowSymbol(const ClangBackEnd::RequestFollowSymbolMessage &message) = 0;
|
void requestFollowSymbol(const ClangBackEnd::RequestFollowSymbolMessage &message) override;
|
||||||
virtual void updateVisibleTranslationUnits(const ClangBackEnd::UpdateVisibleTranslationUnitsMessage &message) = 0;
|
void updateVisibleTranslationUnits(const ClangBackEnd::UpdateVisibleTranslationUnitsMessage &message) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool isConnected() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
ClangBackEnd::ClangCodeModelConnectionClient *m_connection = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
class IpcCommunicator : public QObject
|
class IpcCommunicator : public QObject
|
||||||
@@ -193,7 +199,7 @@ public:
|
|||||||
bool isNotWaitingForCompletion() const;
|
bool isNotWaitingForCompletion() const;
|
||||||
|
|
||||||
public: // for tests
|
public: // for tests
|
||||||
IpcSenderInterface *setIpcSender(IpcSenderInterface *ipcSender);
|
IpcSender *setIpcSender(IpcSender *ipcSender);
|
||||||
void killBackendProcess();
|
void killBackendProcess();
|
||||||
|
|
||||||
signals: // for tests
|
signals: // for tests
|
||||||
@@ -226,7 +232,7 @@ private:
|
|||||||
IpcReceiver m_ipcReceiver;
|
IpcReceiver m_ipcReceiver;
|
||||||
ClangBackEnd::ClangCodeModelConnectionClient m_connection;
|
ClangBackEnd::ClangCodeModelConnectionClient m_connection;
|
||||||
QTimer m_backendStartTimeOut;
|
QTimer m_backendStartTimeOut;
|
||||||
QScopedPointer<IpcSenderInterface> m_ipcSender;
|
QScopedPointer<IpcSender> m_ipcSender;
|
||||||
int m_connectedCount = 0;
|
int m_connectedCount = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user