aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.h')
-rw-r--r--src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.h24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.h b/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.h
index 83a41a2bd8..fca035682f 100644
--- a/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.h
+++ b/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.h
@@ -29,6 +29,8 @@
#include <QProcess>
+#include <mutex>
+
QT_BEGIN_NAMESPACE
class QLocalSocket;
QT_END_NAMESPACE
@@ -40,7 +42,6 @@ class Target;
namespace QmlDesigner {
class AbstractView;
-class NodeInstanceServerProxy;
class QMLDESIGNERCORE_EXPORT BaseConnectionManager : public QObject, public ConnectionManagerInterface
{
@@ -49,11 +50,14 @@ class QMLDESIGNERCORE_EXPORT BaseConnectionManager : public QObject, public Conn
public:
BaseConnectionManager() = default;
- void setUp(NodeInstanceServerProxy *nodeInstanceServerProxy,
+ void setUp(NodeInstanceServerInterface *nodeInstanceServer,
const QString &qrcMappingString,
- ProjectExplorer::Target *target) override;
+ ProjectExplorer::Target *target,
+ AbstractView *view) override;
void shutDown() override;
+ void setCrashCallback(std::function<void()> callback) override;
+
bool isActive() const;
protected:
@@ -61,15 +65,19 @@ protected:
virtual void showCannotConnectToPuppetWarningAndSwitchToEditMode();
using ConnectionManagerInterface::processFinished;
void processFinished();
- void writeCommandToIODevice(const QVariant &command,
- QIODevice *ioDevice,
- unsigned int commandCounter);
+ static void writeCommandToIODevice(const QVariant &command,
+ QIODevice *ioDevice,
+ unsigned int commandCounter);
void readDataStream(Connection &connection);
- NodeInstanceServerProxy *nodeInstanceServerProxy() const { return m_nodeInstanceServerProxy; }
+ NodeInstanceServerInterface *nodeInstanceServer() const { return m_nodeInstanceServer; }
+
+ void callCrashCallback();
private:
- NodeInstanceServerProxy *m_nodeInstanceServerProxy{};
+ std::mutex m_callbackMutex;
+ std::function<void()> m_crashCallback;
+ NodeInstanceServerInterface *m_nodeInstanceServer{};
bool m_isActive = false;
};