File indexing completed on 2024-05-05 13:11:52
0001 /* 0002 SPDX-FileCopyrightText: 2015 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #ifndef UPNPSERVICEDESCRIPTIONPARSER_H 0008 #define UPNPSERVICEDESCRIPTIONPARSER_H 0009 0010 #include <QObject> 0011 #include <QSharedPointer> 0012 #include <QString> 0013 #include <QUrl> 0014 0015 #include <memory> 0016 0017 class QNetworkReply; 0018 class QIODevice; 0019 class QNetworkAccessManager; 0020 0021 class UpnpServiceDescription; 0022 0023 class UpnpServiceDescriptionParserPrivate; 0024 0025 /** 0026 * @brief The UpnpServiceDescriptionParser class is a parser for UPnP service descriptions 0027 */ 0028 0029 class UpnpServiceDescriptionParser : public QObject 0030 { 0031 Q_OBJECT 0032 0033 public: 0034 explicit UpnpServiceDescriptionParser(QNetworkAccessManager *aNetworkAccess, UpnpServiceDescription &serviceDescription, QObject *parent = nullptr); 0035 0036 ~UpnpServiceDescriptionParser() override; 0037 0038 Q_SIGNALS: 0039 0040 void descriptionParsed(const QString &upnpServiceId); 0041 0042 void ServiceDescriptionInError(const QString &upnpServiceId); 0043 0044 public Q_SLOTS: 0045 0046 void finishedDownload(QNetworkReply *reply); 0047 0048 void downloadServiceDescription(const QUrl &serviceUrl); 0049 0050 private: 0051 void parseServiceDescription(QIODevice *serviceDescriptionContent); 0052 0053 std::unique_ptr<UpnpServiceDescriptionParserPrivate> d; 0054 }; 0055 0056 #endif // UPNPSERVICEDESCRIPTIONPARSER_H