QXmpp  Version: 1.10.4
QXmppVCardManager.h
1 // SPDX-FileCopyrightText: 2009 Manjeet Dahiya <manjeetdahiya@gmail.com>
2 //
3 // SPDX-License-Identifier: LGPL-2.1-or-later
4 
5 #ifndef QXMPPVCARDMANAGER_H
6 #define QXMPPVCARDMANAGER_H
7 
8 #include "QXmppClientExtension.h"
9 
10 #include <variant>
11 
12 template<typename T>
13 class QXmppTask;
14 class QXmppVCardIq;
15 class QXmppVCardManagerPrivate;
16 struct QXmppError;
17 
42 class QXMPP_EXPORT QXmppVCardManager : public QXmppClientExtension
43 {
44  Q_OBJECT
45 
46 public:
48  using Result = std::variant<QXmpp::Success, QXmppError>;
50  using VCardIqResult = std::variant<QXmppVCardIq, QXmppError>;
51 
53  ~QXmppVCardManager() override;
54 
55  QXmppTask<VCardIqResult> fetchVCard(const QString &bareJid);
56  QXmppTask<Result> setVCard(const QXmppVCardIq &);
57 
58  QString requestVCard(const QString &bareJid = QString());
59 
60  const QXmppVCardIq &clientVCard() const;
61  void setClientVCard(const QXmppVCardIq &);
62 
63  QString requestClientVCard();
64  bool isClientVCardReceived() const;
65 
67  QStringList discoveryFeatures() const override;
68  bool handleStanza(const QDomElement &element) override;
70 
71 Q_SIGNALS:
74  void vCardReceived(const QXmppVCardIq &);
75 
78  void clientVCardReceived();
79 
80 protected:
81  void onRegistered(QXmppClient *client) override;
82  void onUnregistered(QXmppClient *client) override;
83 
84 private:
85  const std::unique_ptr<QXmppVCardManagerPrivate> d;
86 };
87 
88 #endif // QXMPPVCARDMANAGER_H
virtual void onRegistered(QXmppClient *client)
Definition: QXmppClientExtension.cpp:85
std::variant< QXmppVCardIq, QXmppError > VCardIqResult
QXmppVCardIq or QXmppError.
Definition: QXmppVCardManager.h:50
The QXmppVCardManager class gets/sets XMPP vCards. It is an implementation of XEP-0054: vcard-temp...
Definition: QXmppVCardManager.h:42
virtual void onUnregistered(QXmppClient *client)
Definition: QXmppClientExtension.cpp:95
virtual bool handleStanza(const QDomElement &stanza)
You need to implement this method to process incoming XMPP stanzas.
Definition: client/compat/removed_api.cpp:26
Definition: QXmppError.h:17
Definition: QXmppTask.h:61
std::variant< QXmpp::Success, QXmppError > Result
Success or QXmppError.
Definition: QXmppVCardManager.h:48
Represents the XMPP vCard.
Definition: QXmppVCardIq.h:213
virtual QStringList discoveryFeatures() const
Definition: QXmppClientExtension.cpp:22
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition: QXmppClientExtension.h:31
Main class for starting and managing connections to XMPP servers.
Definition: QXmppClient.h:61