File indexing completed on 2024-05-12 05:22:15

0001 /*
0002  * This file is part of LibKGAPI library
0003  *
0004  * SPDX-FileCopyrightText: 2018 Daniel Vrátil <dvratil@kde.org>
0005  *
0006  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007  */
0008 
0009 #pragma once
0010 
0011 class QNetworkAccessManager;
0012 class QObject;
0013 
0014 #include "kgapicore_export.h"
0015 
0016 #include <memory>
0017 
0018 namespace KGAPI2
0019 {
0020 
0021 // Export for use in unit-tests, header not installed though
0022 class KGAPICORE_EXPORT NetworkAccessManagerFactory
0023 {
0024 public:
0025     virtual ~NetworkAccessManagerFactory() = default;
0026 
0027     static NetworkAccessManagerFactory *instance();
0028     static void setFactory(NetworkAccessManagerFactory *factory);
0029 
0030     virtual QNetworkAccessManager *networkAccessManager(QObject *parent = nullptr) const = 0;
0031 
0032 protected:
0033     static std::unique_ptr<NetworkAccessManagerFactory> sInstance;
0034 
0035     explicit NetworkAccessManagerFactory() = default;
0036 };
0037 
0038 }