File indexing completed on 2024-04-21 04:44:13

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 UPNPDISCOVERYRESULT_H
0008 #define UPNPDISCOVERYRESULT_H
0009 
0010 #include "upnplibqt_export.h"
0011 
0012 #include "upnpssdpengine.h"
0013 
0014 #include <QDateTime>
0015 #include <QString>
0016 #include <QTimer>
0017 
0018 #include <memory>
0019 
0020 class UpnpDiscoveryResultPrivate;
0021 class QDebug;
0022 
0023 /**
0024  * @brief The UpnpDiscoveryResult class contains the result of the discovery of device or service via the SSDP protocol
0025  */
0026 class UPNPLIBQT_EXPORT UpnpDiscoveryResult
0027 {
0028 
0029 public:
0030     UpnpDiscoveryResult();
0031 
0032     UpnpDiscoveryResult(QString aNT, QString aUSN, QString aLocation,
0033         UpnpSsdpEngine::NotificationSubType aNTS, QString aAnnounceDate,
0034         int aCacheDuration);
0035 
0036     UpnpDiscoveryResult(const UpnpDiscoveryResult &other);
0037 
0038     UpnpDiscoveryResult(UpnpDiscoveryResult &&other) noexcept;
0039 
0040     ~UpnpDiscoveryResult();
0041 
0042     UpnpDiscoveryResult &operator=(const UpnpDiscoveryResult &other);
0043 
0044     UpnpDiscoveryResult &operator=(UpnpDiscoveryResult &&other) noexcept;
0045 
0046     void setNT(const QString &value);
0047 
0048     [[nodiscard]] const QString &nt() const;
0049 
0050     void setUSN(const QString &value);
0051 
0052     [[nodiscard]] const QString &usn() const;
0053 
0054     void setLocation(const QString &value);
0055 
0056     [[nodiscard]] const QString &location() const;
0057 
0058     void setNTS(UpnpSsdpEngine::NotificationSubType value);
0059 
0060     [[nodiscard]] UpnpSsdpEngine::NotificationSubType nts() const;
0061 
0062     void setAnnounceDate(const QString &value);
0063 
0064     [[nodiscard]] const QString &announceDate() const;
0065 
0066     void setCacheDuration(int value);
0067 
0068     [[nodiscard]] int cacheDuration() const;
0069 
0070     void setValidityTimestamp(const QDateTime &value);
0071 
0072     [[nodiscard]] QDateTime validityTimestamp() const;
0073 
0074 private:
0075     std::unique_ptr<UpnpDiscoveryResultPrivate> d;
0076 };
0077 
0078 UPNPLIBQT_EXPORT QDebug operator<<(QDebug stream, const UpnpDiscoveryResult &data);
0079 
0080 Q_DECLARE_TYPEINFO(UpnpDiscoveryResult, Q_MOVABLE_TYPE);
0081 
0082 Q_DECLARE_METATYPE(UpnpDiscoveryResult)
0083 
0084 #endif // UPNPDISCOVERYRESULT_H