aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2020-04-06 13:10:11 +0200
committerLNJ <lnj@kaidan.im>2020-04-06 14:34:23 +0200
commitf26422d143ee2d4cdc166bbbd97e8b9fe60b7fcd (patch)
tree4ce81a814fccf1b1ebab22cd33e1485555bf4149 /src/client
parentb833a5ae93b00b973c06018b6615526e0a8e1719 (diff)
QXmppDiscoveryManager: Move static features into QXmppClientPrivate
Diffstat (limited to 'src/client')
-rw-r--r--src/client/QXmppClient.cpp22
-rw-r--r--src/client/QXmppClient_p.h2
-rw-r--r--src/client/QXmppDiscoveryManager.cpp19
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();
}