Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qformdatabuilder.h
Go to the documentation of this file.
1// Copyright (C) 2024 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QFORMDATABUILDER_H
5#define QFORMDATABUILDER_H
6
7#include <QtNetwork/qtnetworkglobal.h>
8#include <QtNetwork/qhttpheaders.h>
9#include <QtNetwork/qhttpmultipart.h>
10
11#include <QtCore/qbytearray.h>
12#include <QtCore/qiodevice.h>
13#include <QtCore/qstring.h>
14
15#include <memory>
16#include <variant>
17
18#ifndef Q_OS_WASM
20#endif
21
23
25class QHttpMultiPart;
26class QDebug;
27
29
31{
32 struct PrivateConstructor { explicit PrivateConstructor() = default; };
33public:
34 Q_NETWORK_EXPORT explicit QFormDataPartBuilder(QAnyStringView name, PrivateConstructor);
35
37 : m_name(std::move(other.m_name)),
38 m_originalBodyName(std::move(other.m_originalBodyName)),
39 m_httpHeaders(std::move(other.m_httpHeaders)),
40 m_body(std::move(other.m_body)),
41 m_reserved(std::exchange(other.m_reserved, nullptr))
42 {
43
44 }
45
46 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QFormDataPartBuilder)
48 {
49 m_name.swap(other.m_name);
50 m_originalBodyName.swap(other.m_originalBodyName);
51 m_httpHeaders.swap(other.m_httpHeaders);
52 m_body.swap(other.m_body);
53 qt_ptr_swap(m_reserved, other.m_reserved);
54 }
55
56 Q_NETWORK_EXPORT ~QFormDataPartBuilder();
57
62
66 Q_NETWORK_EXPORT QFormDataPartBuilder &setBodyDevice(QIODevice *body,
69 Q_NETWORK_EXPORT QFormDataPartBuilder &setHeaders(const QHttpHeaders &headers);
70private:
71 Q_DISABLE_COPY(QFormDataPartBuilder)
72
73 Q_NETWORK_EXPORT QFormDataPartBuilder &setBodyHelper(const QByteArray &data,
76 QHttpPart build();
77
78 QString m_name;
79 QByteArray m_mimeType;
80 QString m_originalBodyName;
81 QHttpHeaders m_httpHeaders;
82 std::variant<QIODevice*, QByteArray> m_body;
83 void *m_reserved = nullptr;
84
85 friend class QFormDataBuilder;
86 friend void swap(QFormDataPartBuilder &lhs, QFormDataPartBuilder &rhs) noexcept
87 { lhs.swap(rhs); }
88};
89
91{
92public:
93 Q_NETWORK_EXPORT QFormDataBuilder();
94
95 QFormDataBuilder(QFormDataBuilder &&other) noexcept : d_ptr(std::exchange(other.d_ptr, nullptr)) {}
96
97 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QFormDataBuilder)
99 {
100 qt_ptr_swap(d_ptr, other.d_ptr);
101 }
102
103 Q_NETWORK_EXPORT ~QFormDataBuilder();
104 Q_NETWORK_EXPORT QFormDataPartBuilder &part(QAnyStringView name);
105 Q_NETWORK_EXPORT std::unique_ptr<QHttpMultiPart> buildMultiPart();
106private:
108
109 Q_DECLARE_PRIVATE(QFormDataBuilder)
110 Q_DISABLE_COPY(QFormDataBuilder)
111};
112
113Q_DECLARE_SHARED(QFormDataBuilder)
114
116
117#endif // QFORMDATABUILDER_H
\inmodule QtCore
\inmodule QtCore
Definition qbytearray.h:57
\inmodule QtCore
The QFormDataBuilder class is a convenience class to simplify the construction of QHttpMultiPart obje...
Q_NETWORK_EXPORT QFormDataBuilder()
Constructs an empty QFormDataBuilder object.
void swap(QFormDataBuilder &other) noexcept
QFormDataBuilder(QFormDataBuilder &&other) noexcept
Move-constructs a QFormDataBuilder instance, making it point at the same object that other was pointi...
Q_NETWORK_EXPORT std::unique_ptr< QHttpMultiPart > buildMultiPart()
Constructs and returns a pointer to a QHttpMultipart object.
Q_NETWORK_EXPORT ~QFormDataBuilder()
Destroys the QFormDataBuilder object.
Q_NETWORK_EXPORT QFormDataPartBuilder & part(QAnyStringView name)
Constructs and returns a reference to a QFormDataPartBuilder object and sets name as the name paramet...
The QFormDataPartBuilder class is a convenience class to simplify the construction of QHttpPart objec...
friend void swap(QFormDataPartBuilder &lhs, QFormDataPartBuilder &rhs) noexcept
Q_NETWORK_EXPORT QFormDataPartBuilder & setHeaders(const QHttpHeaders &headers)
Sets the headers specified in headers.
Q_WEAK_OVERLOAD QFormDataPartBuilder & setBody(const QByteArray &data, QAnyStringView fileName={}, QAnyStringView mimeType={})
Q_NETWORK_EXPORT QFormDataPartBuilder(QAnyStringView name, PrivateConstructor)
Constructs a QFormDataPartBuilder object and sets name as the name parameter of the form-data.
QFormDataPartBuilder(QFormDataPartBuilder &&other) noexcept
Move-constructs a QFormDataPartBuilder instance, making it point at the same object that other was po...
Q_NETWORK_EXPORT QFormDataPartBuilder & setBodyDevice(QIODevice *body, QAnyStringView fileName={}, QAnyStringView mimeType={})
Sets body as the body device of this part and fileName as the file name parameter in the content disp...
Q_NETWORK_EXPORT ~QFormDataPartBuilder()
Destroys the QFormDataPartBuilder object.
void swap(QHttpHeaders &other) noexcept
Swaps this QHttpHeaders with other.
The QHttpMultiPart class resembles a MIME multipart message to be sent over HTTP.
The QHttpPart class holds a body part to be used inside a HTTP multipart MIME message.
\inmodule QtCore \reentrant
Definition qiodevice.h:34
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
void swap(QString &other) noexcept
Definition qstring.h:185
Combined button and popup list for selecting options.
#define Q_WEAK_OVERLOAD
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
const char * mimeType
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLuint name
constexpr void qt_ptr_swap(T *&lhs, T *&rhs) noexcept
Definition qswap.h:29
#define QT_REQUIRE_CONFIG(feature)
QSharedPointer< T > other(t)
[5]