diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-10-05 05:50:58 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-10-05 05:50:58 +0000 |
| commit | 051e4c3e5260671d0031e86cbf948c72f15e4548 (patch) | |
| tree | f4d68017cfdd79f33178dbabea580cf5cf4a7b02 /src | |
| parent | 34c0096788e3eeb2863a6e6cd71dcb7470ffdd4d (diff) | |
| download | qxmpp-051e4c3e5260671d0031e86cbf948c72f15e4548.tar.gz | |
add cap functions
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppPresence.cpp | 48 | ||||
| -rw-r--r-- | src/QXmppPresence.h | 13 |
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 |
