aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppTransferManager.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2012-09-12 15:29:18 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2012-09-12 15:29:18 +0200
commitf9b26e12f593b185a15674e3ddda0b56d05b43c6 (patch)
tree503d1c15099cea55536d9fb8d8a98d7fef576fa8 /src/client/QXmppTransferManager.cpp
parentc9b81bc66f2449fe4ca1d55259d6f70178f1a91d (diff)
downloadqxmpp-f9b26e12f593b185a15674e3ddda0b56d05b43c6.tar.gz
add/test QXmppTransferFileInfo parsing/serialisation
Diffstat (limited to 'src/client/QXmppTransferManager.cpp')
-rw-r--r--src/client/QXmppTransferManager.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/client/QXmppTransferManager.cpp b/src/client/QXmppTransferManager.cpp
index d55653a9..146bd08d 100644
--- a/src/client/QXmppTransferManager.cpp
+++ b/src/client/QXmppTransferManager.cpp
@@ -147,6 +147,32 @@ bool QXmppTransferFileInfo::operator==(const QXmppTransferFileInfo &other) const
other.d->name == d->name;
}
+void QXmppTransferFileInfo::parse(const QDomElement &element)
+{
+ d->date = QXmppUtils::datetimeFromString(element.attribute("date"));
+ d->hash = QByteArray::fromHex(element.attribute("hash").toAscii());
+ d->name = element.attribute("name");
+ d->size = element.attribute("size").toLongLong();
+ d->description = element.firstChildElement("desc").text();
+}
+
+void QXmppTransferFileInfo::toXml(QXmlStreamWriter *writer) const
+{
+ writer->writeStartElement("file");
+ writer->writeAttribute("xmlns", ns_stream_initiation_file_transfer);
+ if (d->date.isValid())
+ writer->writeAttribute("date", QXmppUtils::datetimeToString(d->date));
+ if (!d->hash.isEmpty())
+ writer->writeAttribute("hash", d->hash.toHex());
+ if (!d->name.isEmpty())
+ writer->writeAttribute("name", d->name);
+ if (d->size > 0)
+ writer->writeAttribute("size", QString::number(d->size));
+ if (!d->description.isEmpty())
+ writer->writeTextElement("desc", d->description);
+ writer->writeEndElement();
+}
+
class QXmppTransferJobPrivate
{
public: