From 45dc51ab0564fdec1595f1e193a18abfced88ec5 Mon Sep 17 00:00:00 2001 From: Raquel Medina Date: Tue, 26 May 2020 15:04:43 +0200 Subject: enforce engine object access via factory * use normal std::shared_ptr constructor instead of std::make_shared in MessageEngineFactory * make MessageEngine constructor private Bug-AGL: SPEC-3112 Signed-off-by: Raquel Medina Change-Id: I9c4b0fe83c6561d3bdea2cbc5d40ba3bda40a756 --- messageengine.h | 3 ++- messageenginefactory.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/messageengine.h b/messageengine.h index 4639c97..12aa5e9 100644 --- a/messageengine.h +++ b/messageengine.h @@ -29,7 +29,6 @@ class MessageEngine : public QObject { Q_OBJECT public: - explicit MessageEngine(const QUrl &url); bool sendMessage(std::unique_ptr message); Q_SIGNALS: @@ -48,6 +47,8 @@ class MessageEngine : public QObject QMap m_calls; QUrl m_url; std::atomic m_callid; + + explicit MessageEngine(const QUrl &url); friend class MessageEngineFactory; }; diff --git a/messageenginefactory.cpp b/messageenginefactory.cpp index db5c70b..04fb741 100644 --- a/messageenginefactory.cpp +++ b/messageenginefactory.cpp @@ -31,7 +31,7 @@ std::shared_ptr MessageEngineFactory::getMessageEngine(const QUrl auto urlstr = url.toString(); auto pme = lut[urlstr]; if (!pme){ - pme = std::make_shared(url); + pme = std::shared_ptr{new MessageEngine(url)}; lut[urlstr] = pme; } -- cgit 1.2.3-korg