QXmpp  Version: 1.7.1
QXmppRegistrationManager.h
1 // SPDX-FileCopyrightText: 2019 Melvin Keskin <melvo@olomono.de>
2 // SPDX-FileCopyrightText: 2019 Linus Jahn <lnj@kaidan.im>
3 //
4 // SPDX-License-Identifier: LGPL-2.1-or-later
5 
6 #ifndef QXMPPREGISTRATIONMANAGER_H
7 #define QXMPPREGISTRATIONMANAGER_H
8 
9 #include "QXmppClientExtension.h"
10 #include "QXmppRegisterIq.h"
11 
12 class QXmppRegistrationManagerPrivate;
13 
222 {
223  Q_OBJECT
224 
226  Q_PROPERTY(bool supportedByServer READ supportedByServer NOTIFY supportedByServerChanged)
227 
228 public:
231 
232  QStringList discoveryFeatures() const override;
233 
234  void changePassword(const QString &newPassword);
235  void deleteAccount();
236 
237  // documentation needs to be here, see https://stackoverflow.com/questions/49192523/
249  bool supportedByServer() const;
250 
251  void requestRegistrationForm(const QString &service = {});
252 
253  void setRegistrationFormToSend(const QXmppRegisterIq &iq);
254  void setRegistrationFormToSend(const QXmppDataForm &dataForm);
255  void sendCachedRegistrationForm();
256 
257  bool registerOnConnectEnabled() const;
258  void setRegisterOnConnectEnabled(bool enabled);
259 
261  bool handleStanza(const QDomElement &stanza) override;
263 
264 Q_SIGNALS:
272 
280  void passwordChanged(const QString &newPassword);
281 
288 
305 
310 
315 
323 
339 
340 protected:
341  void onRegistered(QXmppClient *client) override;
342  void onUnregistered(QXmppClient *client) override;
343 
344 private Q_SLOTS:
345  void handleDiscoInfo(const QXmppDiscoveryIq &iq);
346 
347 private:
348  void setSupportedByServer(bool supportedByServer);
349 
350  const std::unique_ptr<QXmppRegistrationManagerPrivate> d;
351 };
352 
353 #endif // QXMPPREGISTRATIONMANAGER_H
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition: QXmppClientExtension.h:33
virtual QStringList discoveryFeatures() const
Definition: QXmppClientExtension.cpp:22
virtual void onUnregistered(QXmppClient *client)
Definition: QXmppClientExtension.cpp:95
virtual void onRegistered(QXmppClient *client)
Definition: QXmppClientExtension.cpp:85
virtual bool handleStanza(const QDomElement &stanza)
You need to implement this method to process incoming XMPP stanzas.
Definition: client/compat/removed_api.cpp:26
The QXmppClient class is the main class for using QXmpp.
Definition: QXmppClient.h:85
Definition: QXmppDataForm.h:27
Definition: QXmppDiscoveryIq.h:18
The QXmppRegisterIq class represents a registration IQ as defined by XEP-0077: In-Band Registration.
Definition: QXmppRegisterIq.h:23
The QXmppRegistrationManager class manages in-band registration and account management tasks like cha...
Definition: QXmppRegistrationManager.h:222
void registrationFormReceived(const QXmppRegisterIq &iq)
void passwordChangeFailed(QXmppStanza::Error error)
void passwordChanged(const QString &newPassword)
void registrationFailed(const QXmppStanza::Error &error)
void accountDeletionFailed(QXmppStanza::Error error)
The Error class represents a stanza error.
Definition: QXmppStanza.h:94