diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-12 15:29:18 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-09-12 15:29:18 +0200 |
| commit | f9b26e12f593b185a15674e3ddda0b56d05b43c6 (patch) | |
| tree | 503d1c15099cea55536d9fb8d8a98d7fef576fa8 /src/client/QXmppTransferManager.cpp | |
| parent | c9b81bc66f2449fe4ca1d55259d6f70178f1a91d (diff) | |
| download | qxmpp-f9b26e12f593b185a15674e3ddda0b56d05b43c6.tar.gz | |
add/test QXmppTransferFileInfo parsing/serialisation
Diffstat (limited to 'src/client/QXmppTransferManager.cpp')
| -rw-r--r-- | src/client/QXmppTransferManager.cpp | 26 |
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: |
