forked from qt-creator/qt-creator
Clang: Move QLocalServer in ConnectionClient
Before the QLocalServer was in the ConnectionServer so more than one client could connect to the server. But we never used that possibility which made the hand shaking much more difficult. It is now moved in the client, so that there is always a QLocalServer. Change-Id: Ifa357074b0c0809434c49d23b1cee38496f72f43 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
@@ -25,8 +25,9 @@
|
||||
|
||||
#include "pchmanagerconnectionclient.h"
|
||||
|
||||
#include <utils/temporarydirectory.h>
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QTemporaryDir>
|
||||
|
||||
namespace ClangPchManager {
|
||||
|
||||
@@ -41,30 +42,35 @@ QString currentProcessId()
|
||||
|
||||
ClangPchManager::PchManagerConnectionClient::PchManagerConnectionClient(
|
||||
ClangBackEnd::PchManagerClientInterface *client)
|
||||
: serverProxy_(client, ioDevice())
|
||||
: ConnectionClient(Utils::TemporaryDirectory::masterDirectoryPath()
|
||||
+ QStringLiteral("/ClangPchManagerBackEnd-")
|
||||
+ currentProcessId()),
|
||||
m_serverProxy(client, ioDevice())
|
||||
{
|
||||
m_processCreator.setTemporaryDirectoryPattern("clangpchmanagerbackend-XXXXXX");
|
||||
|
||||
stdErrPrefixer().setPrefix("PchManagerConnectionClient.stderr: ");
|
||||
stdOutPrefixer().setPrefix("PchManagerConnectionClient.stdout: ");
|
||||
}
|
||||
|
||||
PchManagerConnectionClient::~PchManagerConnectionClient()
|
||||
{
|
||||
finishProcess();
|
||||
}
|
||||
|
||||
ClangBackEnd::PchManagerServerProxy &ClangPchManager::PchManagerConnectionClient::serverProxy()
|
||||
{
|
||||
return serverProxy_;
|
||||
return m_serverProxy;
|
||||
}
|
||||
|
||||
void ClangPchManager::PchManagerConnectionClient::sendEndCommand()
|
||||
{
|
||||
serverProxy_.end();
|
||||
m_serverProxy.end();
|
||||
}
|
||||
|
||||
void PchManagerConnectionClient::resetCounter()
|
||||
{
|
||||
serverProxy_.resetCounter();
|
||||
}
|
||||
|
||||
QString ClangPchManager::PchManagerConnectionClient::connectionName() const
|
||||
{
|
||||
return temporaryDirectory().path() + QStringLiteral("/ClangPchManagerBackEnd-") + currentProcessId();
|
||||
m_serverProxy.resetCounter();
|
||||
}
|
||||
|
||||
QString PchManagerConnectionClient::outputName() const
|
||||
@@ -72,4 +78,9 @@ QString PchManagerConnectionClient::outputName() const
|
||||
return QStringLiteral("PchManagerConnectionClient");
|
||||
}
|
||||
|
||||
void PchManagerConnectionClient::newConnectedServer(QIODevice *ioDevice)
|
||||
{
|
||||
m_serverProxy.setIoDevice(ioDevice);
|
||||
}
|
||||
|
||||
} // namespace ClangPchManager
|
||||
|
||||
Reference in New Issue
Block a user