File indexing completed on 2024-09-22 04:47:56
0001 /* 0002 SPDX-FileCopyrightText: 2017-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "kmailtransport_private_export.h" 0010 #include <QObject> 0011 0012 #include <memory> 0013 0014 namespace MailTransport 0015 { 0016 class TransportAbstractPlugin; 0017 class TransportPluginManagerPrivate; 0018 class KMAILTRANSPORT_TESTS_EXPORT TransportPluginManager : public QObject 0019 { 0020 Q_OBJECT 0021 public: 0022 explicit TransportPluginManager(QObject *parent = nullptr); 0023 ~TransportPluginManager() override; 0024 0025 static TransportPluginManager *self(); 0026 0027 [[nodiscard]] MailTransport::TransportAbstractPlugin *plugin(const QString &identifier); 0028 [[nodiscard]] QList<MailTransport::TransportAbstractPlugin *> pluginsList() const; 0029 0030 Q_SIGNALS: 0031 void updatePluginList(); 0032 0033 private: 0034 std::unique_ptr<TransportPluginManagerPrivate> const d; 0035 }; 0036 }