aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2010-10-05 05:50:58 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2010-10-05 05:50:58 +0000
commit051e4c3e5260671d0031e86cbf948c72f15e4548 (patch)
treef4d68017cfdd79f33178dbabea580cf5cf4a7b02 /src
parent34c0096788e3eeb2863a6e6cd71dcb7470ffdd4d (diff)
downloadqxmpp-051e4c3e5260671d0031e86cbf948c72f15e4548.tar.gz
add cap functions
Diffstat (limited to 'src')
-rw-r--r--src/QXmppPresence.cpp48
-rw-r--r--src/QXmppPresence.h13
2 files changed, 61 insertions, 0 deletions
diff --git a/src/QXmppPresence.cpp b/src/QXmppPresence.cpp
index 19ed0d50..1cc5a74e 100644
--- a/src/QXmppPresence.cpp
+++ b/src/QXmppPresence.cpp
@@ -96,6 +96,13 @@ void QXmppPresence::parse(const QDomElement &element)
m_vCardUpdateType = PhotoNotReady;
}
}
+ // XEP-0115: Entity Capabilities
+ else if(xElement.tagName() == "c" && xElement.namespaceURI() == ns_capabilities)
+ {
+ m_capabilityNode = xElement.attribute("node");
+ m_capabilityVer = xElement.attribute("ver");
+ m_capabilityHash = xElement.attribute("hash");
+ }
else if (xElement.tagName() != "error")
{
// other extensions
@@ -139,6 +146,16 @@ void QXmppPresence::toXml(QXmlStreamWriter *xmlWriter) const
xmlWriter->writeEndElement();
}
+ if(!m_capabilityNode.isEmpty() && !m_capabilityVer.isEmpty()
+ && !m_capabilityHash.isEmpty())
+ {
+ xmlWriter->writeStartElement("c");
+ helperToXmlAddAttribute(xmlWriter, "xmlns", ns_capabilities);
+ helperToXmlAddAttribute(xmlWriter, "hash", m_capabilityHash);
+ helperToXmlAddAttribute(xmlWriter, "node", m_capabilityNode);
+ helperToXmlAddAttribute(xmlWriter, "ver", m_capabilityVer);
+ }
+
foreach (const QXmppElement &extension, extensions())
extension.toXml(xmlWriter);
@@ -394,6 +411,37 @@ void QXmppPresence::setVCardUpdateType(VCardUpdateType type)
m_vCardUpdateType = type;
}
+QString QXmppPresence::getCapabilityNode()
+{
+ return m_capabilityNode;
+}
+
+void QXmppPresence::setCapabilityNode(const QString& node)
+{
+ m_capabilityNode = node;
+}
+
+QString QXmppPresence::getCapabilityVer()
+{
+ return m_capabilityVer;
+}
+
+void QXmppPresence::setCapabilityVer(const QString& ver)
+{
+ m_capabilityVer = ver;
+}
+
+QString QXmppPresence::getCapabilityHash()
+{
+ return m_capabilityHash;
+}
+
+void QXmppPresence::setCapabilityHash(const QString& hash)
+{
+ m_capabilityHash = hash;
+}
+
+
/// \cond
QXmppPresence::Type QXmppPresence::getType() const
diff --git a/src/QXmppPresence.h b/src/QXmppPresence.h
index 408e0f72..e10c7093 100644
--- a/src/QXmppPresence.h
+++ b/src/QXmppPresence.h
@@ -119,6 +119,15 @@ public:
VCardUpdateType vCardUpdateType();
void setVCardUpdateType(VCardUpdateType type);
+ QString getCapabilityNode();
+ void setCapabilityNode(const QString&);
+
+ QString getCapabilityVer();
+ void setCapabilityVer(const QString&);
+
+ QString getCapabilityHash();
+ void setCapabilityHash(const QString&);
+
// deprecated in release 0.2.0
// deprecated accessors, use the form without "get" instead
/// \cond
@@ -141,6 +150,10 @@ private:
/// in accordance with RFC 3174
QByteArray m_photoHash;
VCardUpdateType m_vCardUpdateType;
+
+ QString m_capabilityNode;
+ QString m_capabilityVer;
+ QString m_capabilityHash;
};
#endif // QXMPPPRESENCE_H