5#ifndef QXMPPFILESHARE_H
6#define QXMPPFILESHARE_H
8#include "QXmppConstants_p.h"
9#include "QXmppGlobal.h"
15#include <QSharedDataPointer>
19class QXmlStreamWriter;
20class QXmppFileSourcesAttachmentPrivate;
21class QXmppFileSharePrivate;
26namespace QXmpp::Private {
36 const QString &
id()
const;
37 void setId(
const QString &);
39 const QVector<QXmppHttpFileSource> &
httpSources()
const;
40 void setHttpSources(
const QVector<QXmppHttpFileSource> &newHttpSources);
45 void toXml(QXmpp::Private::XmlWriter &writer)
const;
48 friend class QXmppMessage;
50 static std::optional<QXmppFileSourcesAttachment> fromDom(
const QDomElement &el);
52 QSharedDataPointer<QXmppFileSourcesAttachmentPrivate> d;
66 Disposition disposition()
const;
67 void setDisposition(Disposition);
69 const QString &id()
const;
70 void setId(
const QString &);
75 const QVector<QXmppHttpFileSource> &httpSources()
const;
76 void setHttpSources(
const QVector<QXmppHttpFileSource> &newHttpSources);
78 const QVector<QXmppEncryptedFileSource> &encryptedSources()
const;
79 void setEncryptedSourecs(
const QVector<QXmppEncryptedFileSource> &newEncryptedSources);
82 static constexpr std::tuple XmlTag = { u
"file-sharing", QXmpp::Private::ns_sfs };
83 bool parse(
const QDomElement &el);
84 void toXml(QXmlStreamWriter *writer)
const;
87 friend class QXmppFileSharingManager;
88 friend class QXmppFileUpload;
91 void visitSources(std::function<
bool(
const std::any &)> &&visitor)
const;
92 void addSource(
const std::any &source);
96 QSharedDataPointer<QXmppFileSharePrivate> d;
Represents an encrypted file source for file sharing.
Definition QXmppEncryptedFileSource.h:21
Definition QXmppFileShare.h:56
Disposition
Decides whether to display the file contents (e.g. an image) inline in the chat or as a file.
Definition QXmppFileShare.h:58
QXmppFileShare()
Default constructor.
Definition QXmppFileShare.cpp:182
QXmppFileSourcesAttachment()
Default constructor.
Definition QXmppFileShare.cpp:78
void setHttpSources(const QVector< QXmppHttpFileSource > &newHttpSources)
Definition QXmppFileShare.cpp:112
void setId(const QString &)
Definition QXmppFileShare.cpp:96
void setEncryptedSources(const QVector< QXmppEncryptedFileSource > &newEncryptedSources)
Definition QXmppFileShare.cpp:128
void toXml(QXmpp::Private::XmlWriter &writer) const
Serialize to XML.
Definition QXmppFileShare.cpp:145
const QVector< QXmppHttpFileSource > & httpSources() const
Definition QXmppFileShare.cpp:104
const QString & id() const
Definition QXmppFileShare.cpp:88
const QVector< QXmppEncryptedFileSource > & encryptedSources() const
Definition QXmppFileShare.cpp:120
Definition QXmppHttpFileSource.h:17