aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppHttpUploadIq.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/QXmppHttpUploadIq.cpp')
-rw-r--r--src/base/QXmppHttpUploadIq.cpp70
1 files changed, 46 insertions, 24 deletions
diff --git a/src/base/QXmppHttpUploadIq.cpp b/src/base/QXmppHttpUploadIq.cpp
index c2fbdda3..6b5e1df5 100644
--- a/src/base/QXmppHttpUploadIq.cpp
+++ b/src/base/QXmppHttpUploadIq.cpp
@@ -43,57 +43,68 @@ QXmppHttpUploadRequestIq::QXmppHttpUploadRequestIq()
{
}
+/// Default copy-constructor
QXmppHttpUploadRequestIq::QXmppHttpUploadRequestIq(const QXmppHttpUploadRequestIq &) = default;
QXmppHttpUploadRequestIq::~QXmppHttpUploadRequestIq() = default;
+/// Default assignment operator
QXmppHttpUploadRequestIq &QXmppHttpUploadRequestIq::operator=(const QXmppHttpUploadRequestIq &) = default;
+///
/// Returns the file name of the file to be uploaded.
-
+///
QString QXmppHttpUploadRequestIq::fileName() const
{
return d->fileName;
}
+///
/// Sets the file name. The upload service will use this to create the upload/
/// download URLs. This may also differ from the actual file name to get a
/// different URL. It's not required to replace special characters (this is the
/// server's job).
-
+///
void QXmppHttpUploadRequestIq::setFileName(const QString &fileName)
{
d->fileName = fileName;
}
+///
/// Returns the file's size in bytes.
-
+///
qint64 QXmppHttpUploadRequestIq::size() const
{
return d->size;
}
+///
/// Sets the file's size in bytes.
-
+///
void QXmppHttpUploadRequestIq::setSize(qint64 size)
{
d->size = size;
}
+///
/// Returns the (optional) MIME-type of the file.
-
+///
QMimeType QXmppHttpUploadRequestIq::contentType() const
{
return d->contentType;
}
+///
/// Sets the MIME-type of the file. This is optional.
-
+///
void QXmppHttpUploadRequestIq::setContentType(const QMimeType &type)
{
d->contentType = type;
}
+///
+/// Returns true, if the the element is an HTTP File Upload slot request IQ.
+///
bool QXmppHttpUploadRequestIq::isHttpUploadRequestIq(const QDomElement &element)
{
if (element.tagName() == "iq") {
@@ -144,62 +155,75 @@ QXmppHttpUploadSlotIq::QXmppHttpUploadSlotIq()
{
}
+/// Default copy-constructor
QXmppHttpUploadSlotIq::QXmppHttpUploadSlotIq(const QXmppHttpUploadSlotIq &) = default;
QXmppHttpUploadSlotIq::~QXmppHttpUploadSlotIq() = default;
+/// Default assignment operator
QXmppHttpUploadSlotIq &QXmppHttpUploadSlotIq::operator=(const QXmppHttpUploadSlotIq &) = default;
+///
/// Returns the URL for uploading via. HTTP PUT.
-
+///
QUrl QXmppHttpUploadSlotIq::putUrl() const
{
return d->putUrl;
}
+///
/// Sets the URL the client should use for uploading.
-
+///
void QXmppHttpUploadSlotIq::setPutUrl(const QUrl &putUrl)
{
d->putUrl = putUrl;
}
+///
/// Returns the URL to where the file will be served.
-
+///
QUrl QXmppHttpUploadSlotIq::getUrl() const
{
return d->getUrl;
}
+///
/// Sets the download URL.
-
+///
void QXmppHttpUploadSlotIq::setGetUrl(const QUrl &getUrl)
{
d->getUrl = getUrl;
}
+///
/// Returns a map of header fields (header name -> value) that need to be
/// included in the PUT (upload) request. This won't contain any other fields
/// than: "Authorization", "Cookie" or "Expires".
-
+///
QMap<QString, QString> QXmppHttpUploadSlotIq::putHeaders() const
{
return d->putHeaders;
}
+///
/// Sets the header fields the client needs to include in the PUT (upload)
/// request. All fields other than "Authorization", "Cookie" or "Expires" will
/// be ignored.
-
+///
void QXmppHttpUploadSlotIq::setPutHeaders(const QMap<QString, QString> &putHeaders)
{
d->putHeaders.clear();
- for (QString &name : putHeaders.keys()) {
- if (name == "Authorization" || name == "Cookie" || name == "Expires")
- d->putHeaders[name] = putHeaders[name];
- }
+ std::for_each(putHeaders.keyBegin(), putHeaders.keyEnd(),
+ [this, &putHeaders](const QString &name) {
+ if (name == "Authorization" || name == "Cookie" || name == "Expires") {
+ d->putHeaders.insert(name, putHeaders[name]);
+ }
+ });
}
+///
+/// Returns true, if the the element is an HTTP File Upload slot result IQ.
+///
bool QXmppHttpUploadSlotIq::isHttpUploadSlotIq(const QDomElement &element)
{
if (element.tagName() == "iq") {
@@ -236,14 +260,12 @@ void QXmppHttpUploadSlotIq::toXmlElementFromChild(QXmlStreamWriter *writer) cons
writer->writeStartElement("put");
writer->writeAttribute("url", d->putUrl.toEncoded());
- if (!d->putHeaders.isEmpty()) {
- for (const QString &name : d->putHeaders.keys()) {
- writer->writeStartElement("header");
- writer->writeAttribute("name", name);
- writer->writeCharacters(d->putHeaders[name]);
- writer->writeEndElement();
- }
- }
+ std::for_each(d->putHeaders.keyBegin(), d->putHeaders.keyEnd(), [=](const QString &name) {
+ writer->writeStartElement("header");
+ writer->writeAttribute("name", name);
+ writer->writeCharacters(d->putHeaders.value(name));
+ writer->writeEndElement();
+ });
writer->writeEndElement();
writer->writeStartElement("get");