Pimplify QFormDataBuilder
Same will be done with QFormDataPartBuilder in a follow-up patch. Found in API review. Change-Id: I863faad8b59ba16ef35b10afd9990c1b82c8634b Reviewed-by: Marc Mutz <marc.mutz@qt.io> (cherry picked from commit e763177209a9b50347acae4ddeb9806145385717) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
48fd0b3807
commit
cd92f7f069
@ -8,6 +8,8 @@
|
|||||||
#include "QtCore/qmimedatabase.h"
|
#include "QtCore/qmimedatabase.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -283,19 +285,30 @@ QHttpPart QFormDataPartBuilder::build()
|
|||||||
\sa QHttpPart, QHttpMultiPart, QFormDataPartBuilder
|
\sa QHttpPart, QHttpMultiPart, QFormDataPartBuilder
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
class QFormDataBuilderPrivate
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
std::vector<QFormDataPartBuilder> parts;
|
||||||
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Constructs an empty QFormDataBuilder object.
|
Constructs an empty QFormDataBuilder object.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
QFormDataBuilder::QFormDataBuilder()
|
QFormDataBuilder::QFormDataBuilder()
|
||||||
= default;
|
: d_ptr(new QFormDataBuilderPrivate())
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Destroys the QFormDataBuilder object.
|
Destroys the QFormDataBuilder object.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
QFormDataBuilder::~QFormDataBuilder()
|
QFormDataBuilder::~QFormDataBuilder()
|
||||||
= default;
|
{
|
||||||
|
delete d_ptr;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\fn QFormDataBuilder::QFormDataBuilder(QFormDataBuilder &&other) noexcept
|
\fn QFormDataBuilder::QFormDataBuilder(QFormDataBuilder &&other) noexcept
|
||||||
@ -324,10 +337,9 @@ QFormDataBuilder::~QFormDataBuilder()
|
|||||||
|
|
||||||
QFormDataPartBuilder &QFormDataBuilder::part(QAnyStringView name)
|
QFormDataPartBuilder &QFormDataBuilder::part(QAnyStringView name)
|
||||||
{
|
{
|
||||||
static_assert(std::is_nothrow_move_constructible_v<decltype(m_parts)>);
|
Q_D(QFormDataBuilder);
|
||||||
static_assert(std::is_nothrow_move_assignable_v<decltype(m_parts)>);
|
|
||||||
|
|
||||||
return m_parts.emplace_back(name, QFormDataPartBuilder::PrivateConstructor());
|
return d->parts.emplace_back(name, QFormDataPartBuilder::PrivateConstructor());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -338,9 +350,11 @@ QFormDataPartBuilder &QFormDataBuilder::part(QAnyStringView name)
|
|||||||
|
|
||||||
std::unique_ptr<QHttpMultiPart> QFormDataBuilder::buildMultiPart()
|
std::unique_ptr<QHttpMultiPart> QFormDataBuilder::buildMultiPart()
|
||||||
{
|
{
|
||||||
|
Q_D(QFormDataBuilder);
|
||||||
|
|
||||||
auto multiPart = std::make_unique<QHttpMultiPart>(QHttpMultiPart::FormDataType);
|
auto multiPart = std::make_unique<QHttpMultiPart>(QHttpMultiPart::FormDataType);
|
||||||
|
|
||||||
for (auto &part : m_parts)
|
for (auto &part : d->parts)
|
||||||
multiPart->append(part.build());
|
multiPart->append(part.build());
|
||||||
|
|
||||||
return multiPart;
|
return multiPart;
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <variant>
|
#include <variant>
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#ifndef Q_OS_WASM
|
#ifndef Q_OS_WASM
|
||||||
QT_REQUIRE_CONFIG(http);
|
QT_REQUIRE_CONFIG(http);
|
||||||
@ -28,6 +27,8 @@ class QHttpPartPrivate;
|
|||||||
class QHttpMultiPart;
|
class QHttpMultiPart;
|
||||||
class QDebug;
|
class QDebug;
|
||||||
|
|
||||||
|
class QFormDataBuilderPrivate;
|
||||||
|
|
||||||
class QFormDataPartBuilder
|
class QFormDataPartBuilder
|
||||||
{
|
{
|
||||||
struct PrivateConstructor { explicit PrivateConstructor() = default; };
|
struct PrivateConstructor { explicit PrivateConstructor() = default; };
|
||||||
@ -94,33 +95,26 @@ class QFormDataBuilder
|
|||||||
public:
|
public:
|
||||||
Q_NETWORK_EXPORT explicit QFormDataBuilder();
|
Q_NETWORK_EXPORT explicit QFormDataBuilder();
|
||||||
|
|
||||||
QFormDataBuilder(QFormDataBuilder &&other) noexcept
|
QFormDataBuilder(QFormDataBuilder &&other) noexcept : d_ptr(std::exchange(other.d_ptr, nullptr)) {}
|
||||||
: m_parts(std::move(other.m_parts)),
|
|
||||||
m_reserved(std::exchange(other.m_reserved, nullptr))
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QFormDataBuilder)
|
QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QFormDataBuilder)
|
||||||
void swap(QFormDataBuilder &other) noexcept
|
void swap(QFormDataBuilder &other) noexcept
|
||||||
{
|
{
|
||||||
m_parts.swap(other.m_parts);
|
qt_ptr_swap(d_ptr, other.d_ptr);
|
||||||
qt_ptr_swap(m_reserved, other.m_reserved);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_NETWORK_EXPORT ~QFormDataBuilder();
|
Q_NETWORK_EXPORT ~QFormDataBuilder();
|
||||||
Q_NETWORK_EXPORT QFormDataPartBuilder &part(QAnyStringView name);
|
Q_NETWORK_EXPORT QFormDataPartBuilder &part(QAnyStringView name);
|
||||||
Q_NETWORK_EXPORT std::unique_ptr<QHttpMultiPart> buildMultiPart();
|
Q_NETWORK_EXPORT std::unique_ptr<QHttpMultiPart> buildMultiPart();
|
||||||
private:
|
private:
|
||||||
std::vector<QFormDataPartBuilder> m_parts;
|
QFormDataBuilderPrivate *d_ptr;
|
||||||
void *m_reserved = nullptr;
|
|
||||||
|
|
||||||
friend void swap(QFormDataBuilder &lhs, QFormDataBuilder &rhs) noexcept
|
|
||||||
{ lhs.swap(rhs); }
|
|
||||||
|
|
||||||
|
Q_DECLARE_PRIVATE(QFormDataBuilder)
|
||||||
Q_DISABLE_COPY(QFormDataBuilder)
|
Q_DISABLE_COPY(QFormDataBuilder)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Q_DECLARE_SHARED(QFormDataBuilder)
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
#endif // QFORMDATABUILDER_H
|
#endif // QFORMDATABUILDER_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user