QXmpp  Version: 1.15.1
QXmppGeolocItem.h
1 // SPDX-FileCopyrightText: 2022 Cochise César <cochisecesar@zoho.com>
2 //
3 // SPDX-License-Identifier: LGPL-2.1-or-later
4 
5 #ifndef QXMPPGEOLOCITEM_H
6 #define QXMPPGEOLOCITEM_H
7 
8 #include "QXmppConstants_p.h"
9 #include "QXmppPubSubBaseItem.h"
10 
11 #include <optional>
12 
13 #include <QSharedDataPointer>
14 
15 class QXmppGeolocItemPrivate;
16 
17 class QXMPP_EXPORT QXmppGeolocItem : public QXmppPubSubBaseItem
18 {
19 public:
21  QXmppGeolocItem(const QXmppGeolocItem &other);
23  ~QXmppGeolocItem() override;
24 
27 
28  std::optional<double> accuracy() const;
29  void setAccuracy(std::optional<double> accuracy);
30 
31  QString country() const;
32  void setCountry(QString country);
33 
34  std::optional<double> latitude() const;
35  void setLatitude(std::optional<double> lat);
36 
37  QString locality() const;
38  void setLocality(QString locality);
39 
40  std::optional<double> longitude() const;
41  void setLongitude(std::optional<double> lon);
42 
43  static bool isItem(const QDomElement &itemElement);
45  static constexpr std::tuple XmlTag = { u"geoloc", QXmpp::Private::ns_geoloc };
46 
47 protected:
48  void parsePayload(const QDomElement &payloadElement) override;
49  void serializePayload(QXmlStreamWriter *writer) const override;
51 
52 private:
53  QSharedDataPointer<QXmppGeolocItemPrivate> d;
54 };
55 
56 Q_DECLARE_METATYPE(QXmppGeolocItem)
57 
58 #endif // QXMPPGEOLOCITEM_H
Definition: QXmppGeolocItem.h:17
virtual void serializePayload(QXmlStreamWriter *writer) const
Definition: QXmppPubSubBaseItem.cpp:154
static bool isItem(const QDomElement &element)
Definition: QXmppPubSubBaseItem.cpp:134
Definition: QXmppPubSubBaseItem.h:18
virtual void parsePayload(const QDomElement &payloadElement)
Definition: QXmppPubSubBaseItem.cpp:144
QXmppPubSubBaseItem & operator=(const QXmppPubSubBaseItem &) noexcept
Default assignment operator.