aboutsummaryrefslogtreecommitdiff
path: root/src/client/QcaInitializer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/QcaInitializer.cpp')
-rw-r--r--src/client/QcaInitializer.cpp30
1 files changed, 30 insertions, 0 deletions
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 <lnj@kaidan.im>
+//
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+#include "QcaInitializer_p.h"
+#include <QtCrypto>
+
+using namespace QCA;
+
+namespace QXmpp::Private {
+
+/// \cond
+QcaInitializer::QcaInitializer()
+ : d(createInitializer())
+{
+}
+
+std::shared_ptr<Initializer> QcaInitializer::createInitializer()
+{
+ static std::weak_ptr<Initializer> initializer;
+ if (initializer.expired()) {
+ auto newInitializer = std::make_shared<Initializer>();
+ initializer = newInitializer;
+ return newInitializer;
+ }
+ return initializer.lock();
+}
+/// \endcond
+
+} // namespace QXmpp::Private