From 9d9d0b22664c6860a005818e9e787670aec389ff Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Fri, 16 Sep 2022 20:15:12 +0200 Subject: Add shared QcaInitializer Can be used by OMEMO manager and other parts of the code using QCA. --- src/client/QcaInitializer.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/client/QcaInitializer.cpp (limited to 'src/client/QcaInitializer.cpp') diff --git a/src/client/QcaInitializer.cpp b/src/client/QcaInitializer.cpp new file mode 100644 index 00000000..1a24259b --- /dev/null +++ b/src/client/QcaInitializer.cpp @@ -0,0 +1,30 @@ +// SPDX-FileCopyrightText: 2022 Linus Jahn +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include "QcaInitializer_p.h" +#include + +using namespace QCA; + +namespace QXmpp::Private { + +/// \cond +QcaInitializer::QcaInitializer() + : d(createInitializer()) +{ +} + +std::shared_ptr QcaInitializer::createInitializer() +{ + static std::weak_ptr initializer; + if (initializer.expired()) { + auto newInitializer = std::make_shared(); + initializer = newInitializer; + return newInitializer; + } + return initializer.lock(); +} +/// \endcond + +} // namespace QXmpp::Private -- cgit v1.2.3