aboutsummaryrefslogtreecommitdiff
path: root/src/client/QcaInitializer.cpp
blob: 1a24259b18153f0cfc7894a085ad624160e8a8d4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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