File indexing completed on 2024-04-28 04:42:41
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org> 0003 * SPDX-License-Identifier: LGPL-2.0-or-later 0004 */ 0005 0006 #ifndef KWEATHERCORE_CAPREFERENCE_H 0007 #define KWEATHERCORE_CAPREFERENCE_H 0008 0009 #include <kweathercore/kweathercore_export.h> 0010 0011 #include <QMetaType> 0012 #include <QSharedDataPointer> 0013 0014 namespace KWeatherCore 0015 { 0016 0017 class CAPReferencePrivate; 0018 0019 /** A reference to a previous CAP alert message. 0020 * @see https://docs.oasis-open.org/emergency/cap/v1.2/CAP-v1.2.html ยง3.2.1 0021 */ 0022 class KWEATHERCORE_EXPORT CAPReference 0023 { 0024 Q_GADGET 0025 Q_PROPERTY(QString sender READ sender) 0026 Q_PROPERTY(QString identifier READ identifier) 0027 Q_PROPERTY(QDateTime sent READ sent) 0028 0029 public: 0030 explicit CAPReference(); 0031 explicit CAPReference(const QString &sender, const QString &identifier, const QDateTime &sent); 0032 CAPReference(const CAPReference &); 0033 CAPReference(CAPReference &&); 0034 ~CAPReference(); 0035 CAPReference &operator=(const CAPReference &); 0036 CAPReference &operator=(CAPReference &&); 0037 0038 bool operator==(const CAPReference &other) const; 0039 0040 QString sender() const; 0041 QString identifier() const; 0042 QDateTime sent() const; 0043 0044 private: 0045 QSharedDataPointer<CAPReferencePrivate> d; 0046 }; 0047 0048 } 0049 0050 Q_DECLARE_METATYPE(KWeatherCore::CAPReference) 0051 0052 #endif // KWEATHERCORE_CAPREFERENCE_H