diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-23 05:23:30 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-23 05:23:30 +0000 |
| commit | 329514428e11a42958316b4178c2a4ac35ce29d7 (patch) | |
| tree | e05de6e57f00bce05813d706f330c95fd8cf4ccb /examples/GuiClient/capabilitiesCollection.cpp | |
| parent | bad9325f21e9a58bbfa2dc5747ab418eb97918ff (diff) | |
| download | qxmpp-329514428e11a42958316b4178c2a4ac35ce29d7.tar.gz | |
add collection and cache management class for discoveryInfoIqs
Diffstat (limited to 'examples/GuiClient/capabilitiesCollection.cpp')
| -rw-r--r-- | examples/GuiClient/capabilitiesCollection.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/examples/GuiClient/capabilitiesCollection.cpp b/examples/GuiClient/capabilitiesCollection.cpp new file mode 100644 index 00000000..f8d8a02e --- /dev/null +++ b/examples/GuiClient/capabilitiesCollection.cpp @@ -0,0 +1,47 @@ +#include "capabilitiesCollection.h"
+
+#include "QXmppClient.h"
+#include "QXmppDiscoveryManager.h"
+#include <QXmlStreamWriter>
+
+capabilitiesCollection::capabilitiesCollection(QXmppClient* client) :
+ QObject(client), m_client(client)
+{
+ QXmppDiscoveryManager* ext = m_client->findExtension<QXmppDiscoveryManager>();
+ if(ext)
+ {
+ bool check = connect(ext, SIGNAL(infoReceived(const QXmppDiscoveryIq&)),
+ SLOT(infoReceived(const QXmppDiscoveryIq&)));
+ Q_ASSERT(check);
+ }
+}
+
+bool capabilitiesCollection::isCapabilityAvailable(const QString& nodeVer)
+{
+ return m_mapCapabilities.contains(nodeVer);
+}
+
+void capabilitiesCollection::requestInfo(const QString& jid, const QString& node)
+{
+ QXmppDiscoveryManager* ext = m_client->findExtension<QXmppDiscoveryManager>();
+ if(ext)
+ {
+ ext->requestInfo(jid, node);
+ }
+}
+
+void capabilitiesCollection::infoReceived(const QXmppDiscoveryIq& discoIqRcv)
+{
+ QXmppDiscoveryIq discoIq = discoIqRcv;
+ if(discoIq.queryType() == QXmppDiscoveryIq::InfoQuery &&
+ discoIq.type() == QXmppIq::Result)
+ {
+ if(!discoIq.queryNode().isEmpty())
+ {
+ discoIq.setTo("");
+ discoIq.setFrom("");
+ discoIq.setId("");
+ m_mapCapabilities[discoIq.queryNode()] = discoIq;
+ }
+ }
+}
|
