diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-09-16 20:15:12 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-09-24 18:11:58 +0200 |
| commit | 9d9d0b22664c6860a005818e9e787670aec389ff (patch) | |
| tree | 7794d72055aeddc8bbda216bd562f9053e1e8b8f /src/client/QcaInitializer.cpp | |
| parent | b71a66f3a7e07427378a23eb42291ed3758e08b2 (diff) | |
| download | qxmpp-9d9d0b22664c6860a005818e9e787670aec389ff.tar.gz | |
Add shared QcaInitializer
Can be used by OMEMO manager and other parts of the code using QCA.
Diffstat (limited to 'src/client/QcaInitializer.cpp')
| -rw-r--r-- | src/client/QcaInitializer.cpp | 30 |
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 |
