diff options
| author | Linus Jahn <lnj@kaidan.im> | 2020-04-06 13:10:11 +0200 |
|---|---|---|
| committer | LNJ <lnj@kaidan.im> | 2020-04-06 14:34:23 +0200 |
| commit | f26422d143ee2d4cdc166bbbd97e8b9fe60b7fcd (patch) | |
| tree | 4ce81a814fccf1b1ebab22cd33e1485555bf4149 /src | |
| parent | b833a5ae93b00b973c06018b6615526e0a8e1719 (diff) | |
QXmppDiscoveryManager: Move static features into QXmppClientPrivate
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/QXmppClient.cpp | 22 | ||||
| -rw-r--r-- | src/client/QXmppClient_p.h | 2 | ||||
| -rw-r--r-- | src/client/QXmppDiscoveryManager.cpp | 19 |
3 files changed, 32 insertions, 11 deletions
diff --git a/src/client/QXmppClient.cpp b/src/client/QXmppClient.cpp index 76ab9f5e..1b3ead73 100644 --- a/src/client/QXmppClient.cpp +++ b/src/client/QXmppClient.cpp @@ -68,6 +68,28 @@ int QXmppClientPrivate::getNextReconnectTime() const else return 60 * 1000; } + +QStringList QXmppClientPrivate::discoveryFeatures() +{ + return { + // XEP-0004: Data Forms + ns_data, + // XEP-0059: Result Set Management + ns_rsm, + // XEP-0071: XHTML-IM + ns_xhtml_im, + // XEP-0085: Chat State Notifications + ns_chat_states, + // XEP-0115: Entity Capabilities + ns_capabilities, + // XEP-0199: XMPP Ping + ns_ping, + // XEP-0224: Attention + ns_attention, + // XEP-0333: Chat Markers + ns_chat_markers, + }; +} /// \endcond /// Creates a QXmppClient object. diff --git a/src/client/QXmppClient_p.h b/src/client/QXmppClient_p.h index 6045ef3a..9aef77d6 100644 --- a/src/client/QXmppClient_p.h +++ b/src/client/QXmppClient_p.h @@ -68,6 +68,8 @@ public: void addProperCapability(QXmppPresence &presence); int getNextReconnectTime() const; + static QStringList discoveryFeatures(); + private: QXmppClient *q; }; diff --git a/src/client/QXmppDiscoveryManager.cpp b/src/client/QXmppDiscoveryManager.cpp index 81ff1144..9db46728 100644 --- a/src/client/QXmppDiscoveryManager.cpp +++ b/src/client/QXmppDiscoveryManager.cpp @@ -24,6 +24,7 @@ #include "QXmppDiscoveryManager.h" #include "QXmppClient.h" +#include "QXmppClient_p.h" #include "QXmppConstants_p.h" #include "QXmppDataForm.h" #include "QXmppDiscoveryIq.h" @@ -102,8 +103,9 @@ QString QXmppDiscoveryManager::requestItems(const QString& jid, const QString& n return QString(); } +/// /// Returns the client's full capabilities. - +/// QXmppDiscoveryIq QXmppDiscoveryManager::capabilities() { QXmppDiscoveryIq iq; @@ -112,17 +114,12 @@ QXmppDiscoveryIq QXmppDiscoveryManager::capabilities() // features QStringList features; - features - << ns_data // XEP-0004: Data Forms - << ns_rsm // XEP-0059: Result Set Management - << ns_xhtml_im // XEP-0071: XHTML-IM - << ns_chat_states // XEP-0085: Chat State Notifications - << ns_capabilities // XEP-0115: Entity Capabilities - << ns_ping // XEP-0199: XMPP Ping - << ns_attention // XEP-0224: Attention - << ns_chat_markers; // XEP-0333: Chat Markers + // add base features of the client + features << QXmppClientPrivate::discoveryFeatures(); - for (auto* extension : client()->extensions()) { + // add features of all registered extensions + const QList<QXmppClientExtension *> extensions = client()->extensions(); + for (auto* extension : extensions) { if (extension) features << extension->discoveryFeatures(); } |
