diff options
| author | Jonah BrĂ¼chert <jbb@kaidan.im> | 2022-09-05 19:23:07 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-09-06 00:46:56 +0200 |
| commit | e2e27c8c953d6650a1ede2596a3537e5ebd5cea5 (patch) | |
| tree | 71229ce7f6a0fe437e69103e0c5355721264ad00 /src/base/QXmppFileMetadata.h | |
| parent | 6685217ac78c7588aaea67059a0844d51713dcd5 (diff) | |
| download | qxmpp-e2e27c8c953d6650a1ede2596a3537e5ebd5cea5.tar.gz | |
Add parsing of XEP-0446: File metadata element
This implements version 0.2.0
https://xmpp.org/extensions/xep-0446.html
Diffstat (limited to 'src/base/QXmppFileMetadata.h')
| -rw-r--r-- | src/base/QXmppFileMetadata.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/base/QXmppFileMetadata.h b/src/base/QXmppFileMetadata.h new file mode 100644 index 00000000..e45e6506 --- /dev/null +++ b/src/base/QXmppFileMetadata.h @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2022 Jonah BrĂ¼chert <jbb@kaidan.im> +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#ifndef QXMPPFILEMETADATA_H +#define QXMPPFILEMETADATA_H + +#include "QXmppGlobal.h" +#include "QXmppHash.h" + +#include <optional> + +#include <QMimeType> +#include <QSharedDataPointer> + +class QDomElement; +class QDateTime; +class QXmlStreamWriter; +class QXmppThumbnail; +class QXmppFileMetadataPrivate; + +class QXMPP_EXPORT QXmppFileMetadata +{ +public: + QXmppFileMetadata(); + + /// \cond + bool parse(const QDomElement &el); + void toXml(QXmlStreamWriter *writer) const; + /// \endcond + + const std::optional<QDateTime> &lastModified() const; + void setLastModified(const std::optional<QDateTime> &date); + + const std::optional<QString> &description() const; + void setDescription(const std::optional<QString> &description); + + const QVector<QXmppHash> &hashes() const; + void setHashes(const QVector<QXmppHash> &hashes); + + std::optional<uint32_t> height() const; + void setHeight(std::optional<uint32_t> height); + + std::optional<uint32_t> length() const; + void setLength(std::optional<uint32_t> length); + + const std::optional<QMimeType> &mediaType() const; + void setMediaType(std::optional<QMimeType> mediaType); + + std::optional<QString> filename() const; + void setFilename(std::optional<QString>); + + std::optional<uint64_t> size() const; + void setSize(std::optional<uint64_t> size); + + const std::optional<QXmppThumbnail> &thumbnail() const; + void setThumbnail(const std::optional<QXmppThumbnail> &thumbnail); + + std::optional<uint32_t> width() const; + void setWidth(std::optional<uint32_t> width); + +private: + QSharedDataPointer<QXmppFileMetadataPrivate> d; +}; + +#endif |
