summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libs/clangbackendipc/clangbackendipc-lib.pri3
-rw-r--r--src/libs/clangbackendipc/clangcodemodelserverinterface.h2
-rw-r--r--src/libs/clangbackendipc/ipcclientprovider.h53
-rw-r--r--src/libs/clangbackendipc/ipcserverinterface.h19
-rw-r--r--src/libs/clangbackendipc/pchmanagerserverinterface.h2
-rw-r--r--src/libs/clangbackendipc/refactoringserverinterface.h3
-rw-r--r--src/tools/clangbackend/ipcsource/clangcodemodelserver.h7
-rw-r--r--src/tools/clangpchmanagerbackend/source/pchmanagerserver.h6
-rw-r--r--src/tools/clangrefactoringbackend/source/refactoringserver.h4
-rw-r--r--tests/unit/echoserver/echoclangcodemodelserver.h4
10 files changed, 74 insertions, 29 deletions
diff --git a/src/libs/clangbackendipc/clangbackendipc-lib.pri b/src/libs/clangbackendipc/clangbackendipc-lib.pri
index c9aa23d82b..35677f9418 100644
--- a/src/libs/clangbackendipc/clangbackendipc-lib.pri
+++ b/src/libs/clangbackendipc/clangbackendipc-lib.pri
@@ -170,6 +170,7 @@ HEADERS += \
$$PWD/updatepchprojectpartsmessage.h \
$$PWD/updatetranslationunitsforeditormessage.h \
$$PWD/updatevisibletranslationunitsmessage.h \
- $$PWD/writemessageblock.h
+ $$PWD/writemessageblock.h \
+ $$PWD/ipcclientprovider.h
contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
diff --git a/src/libs/clangbackendipc/clangcodemodelserverinterface.h b/src/libs/clangbackendipc/clangcodemodelserverinterface.h
index 9e8dbd3084..e5b2956edd 100644
--- a/src/libs/clangbackendipc/clangcodemodelserverinterface.h
+++ b/src/libs/clangbackendipc/clangcodemodelserverinterface.h
@@ -33,7 +33,7 @@ namespace ClangBackEnd {
class ClangCodeModelClientInterface;
-class CMBIPC_EXPORT ClangCodeModelServerInterface : public IpcServerInterface<ClangCodeModelClientInterface>
+class CMBIPC_EXPORT ClangCodeModelServerInterface : public IpcServerInterface
{
public:
void dispatch(const MessageEnvelop &messageEnvelop) override;
diff --git a/src/libs/clangbackendipc/ipcclientprovider.h b/src/libs/clangbackendipc/ipcclientprovider.h
new file mode 100644
index 0000000000..a4bcb7705c
--- /dev/null
+++ b/src/libs/clangbackendipc/ipcclientprovider.h
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+****************************************************************************/
+
+#pragma once
+
+namespace ClangBackEnd {
+
+template <typename ClientType>
+class IpcClientProvider
+{
+public:
+ void setClient(ClientType *client)
+ {
+ client_ = client;
+ }
+
+ void resetClient()
+ {
+ client_ = nullptr;
+ }
+
+ ClientType *client()
+ {
+ return client_;
+ }
+
+private:
+ ClientType *client_;
+};
+
+} // namespace ClangBackEnd
diff --git a/src/libs/clangbackendipc/ipcserverinterface.h b/src/libs/clangbackendipc/ipcserverinterface.h
index 87caf34c88..d78176ece0 100644
--- a/src/libs/clangbackendipc/ipcserverinterface.h
+++ b/src/libs/clangbackendipc/ipcserverinterface.h
@@ -29,27 +29,8 @@
namespace ClangBackEnd {
-template <typename ClientInterface>
class IpcServerInterface : public IpcInterface
{
-public:
- void setClient(ClientInterface *client)
- {
- client_ = client;
- }
-
- void resetClient()
- {
- client_ = nullptr;
- }
-
- ClientInterface *client()
- {
- return client_;
- }
-
-private:
- ClientInterface *client_;
};
} // namespace ClangBackEnd
diff --git a/src/libs/clangbackendipc/pchmanagerserverinterface.h b/src/libs/clangbackendipc/pchmanagerserverinterface.h
index a4a8ed683d..58ce649997 100644
--- a/src/libs/clangbackendipc/pchmanagerserverinterface.h
+++ b/src/libs/clangbackendipc/pchmanagerserverinterface.h
@@ -36,7 +36,7 @@ class RemovePchProjectPartsMessage;
class UpdatePchProjectPartsMessage;
-class CMBIPC_EXPORT PchManagerServerInterface : public IpcServerInterface<PchManagerClientInterface>
+class CMBIPC_EXPORT PchManagerServerInterface : public IpcServerInterface
{
public:
void dispatch(const MessageEnvelop &messageEnvelop) override;
diff --git a/src/libs/clangbackendipc/refactoringserverinterface.h b/src/libs/clangbackendipc/refactoringserverinterface.h
index c4a8ec6195..8c36a7351e 100644
--- a/src/libs/clangbackendipc/refactoringserverinterface.h
+++ b/src/libs/clangbackendipc/refactoringserverinterface.h
@@ -37,7 +37,8 @@ class RequestSourceRangesAndDiagnosticsForQueryMessage;
class RequestSourceRangesForQueryMessage;
class CancelMessage;
-class CMBIPC_EXPORT RefactoringServerInterface : public IpcServerInterface<RefactoringClientInterface>
+class CMBIPC_EXPORT RefactoringServerInterface : public IpcServerInterface
+
{
public:
void dispatch(const MessageEnvelop &messageEnvelop) override;
diff --git a/src/tools/clangbackend/ipcsource/clangcodemodelserver.h b/src/tools/clangbackend/ipcsource/clangcodemodelserver.h
index b6c5619d8d..5e9e2934a6 100644
--- a/src/tools/clangbackend/ipcsource/clangcodemodelserver.h
+++ b/src/tools/clangbackend/ipcsource/clangcodemodelserver.h
@@ -25,8 +25,6 @@
#pragma once
-#include "clangcodemodelserverinterface.h"
-
#include "projectpart.h"
#include "projects.h"
#include "clangdocument.h"
@@ -35,6 +33,8 @@
#include "clangjobrequest.h"
#include "unsavedfiles.h"
+#include <clangcodemodelserverinterface.h>
+#include <ipcclientprovider.h>
#include <utf8string.h>
#include <QScopedPointer>
@@ -42,7 +42,8 @@
namespace ClangBackEnd {
-class ClangCodeModelServer : public ClangCodeModelServerInterface
+class ClangCodeModelServer : public ClangCodeModelServerInterface,
+ public IpcClientProvider<ClangCodeModelClientInterface>
{
public:
ClangCodeModelServer();
diff --git a/src/tools/clangpchmanagerbackend/source/pchmanagerserver.h b/src/tools/clangpchmanagerbackend/source/pchmanagerserver.h
index e28a3658e2..b9df33f8b9 100644
--- a/src/tools/clangpchmanagerbackend/source/pchmanagerserver.h
+++ b/src/tools/clangpchmanagerbackend/source/pchmanagerserver.h
@@ -33,13 +33,17 @@
#include "projectpartsinterface.h"
#include "stringcache.h"
+#include <ipcclientprovider.h>
+
namespace ClangBackEnd {
class SourceRangesAndDiagnosticsForQueryMessage;
class PchManagerServer : public PchManagerServerInterface,
public ClangPathWatcherNotifier,
- public PchGeneratorNotifierInterface
+ public PchGeneratorNotifierInterface,
+ public IpcClientProvider<PchManagerClientInterface>
+
{
public:
PchManagerServer(StringCache<Utils::PathString> &filePathCache,
diff --git a/src/tools/clangrefactoringbackend/source/refactoringserver.h b/src/tools/clangrefactoringbackend/source/refactoringserver.h
index 94eeb3dcc6..d988ea5b80 100644
--- a/src/tools/clangrefactoringbackend/source/refactoringserver.h
+++ b/src/tools/clangrefactoringbackend/source/refactoringserver.h
@@ -30,6 +30,7 @@
#include <refactoringserverinterface.h>
#include <QTimer>
+#include <ipcclientprovider.h>
#include <stringcache.h>
#include <utils/smallstring.h>
@@ -46,7 +47,8 @@ namespace V2 {
class FileContainer;
}
-class RefactoringServer : public RefactoringServerInterface
+class RefactoringServer : public RefactoringServerInterface,
+ public IpcClientProvider<RefactoringClientInterface>
{
using Future = std::future<SourceRangesForQueryMessage>;
public:
diff --git a/tests/unit/echoserver/echoclangcodemodelserver.h b/tests/unit/echoserver/echoclangcodemodelserver.h
index 32696c24d1..7704283d5b 100644
--- a/tests/unit/echoserver/echoclangcodemodelserver.h
+++ b/tests/unit/echoserver/echoclangcodemodelserver.h
@@ -26,10 +26,12 @@
#pragma once
#include <clangbackendipc/clangcodemodelserverinterface.h>
+#include <ipcclientprovider.h>
namespace ClangBackEnd {
-class EchoClangCodeModelServer : public ClangCodeModelServerInterface
+class EchoClangCodeModelServer : public ClangCodeModelServerInterface,
+ public IpcClientProvider<ClangCodeModelClientInterface>
{
public:
void dispatch(const MessageEnvelop &message) override;