Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
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
// Qt-Security score:significant reason:default
4
5
#
ifndef
QFORMDATABUILDER_H
6
#
define
QFORMDATABUILDER_H
7
8
#
include
<
QtNetwork
/
qtnetworkglobal
.
h
>
9
#
include
<
QtNetwork
/
qhttpheaders
.
h
>
10
#
include
<
QtNetwork
/
qhttpmultipart
.
h
>
11
12
#
include
<
QtCore
/
qbytearray
.
h
>
13
#
include
<
QtCore
/
qflags
.
h
>
14
#
include
<
QtCore
/
qiodevice
.
h
>
15
#
include
<
QtCore
/
qstring
.
h
>
16
17
#
include
<
memory
>
18
19
#
ifndef
Q_OS_WASM
20
QT_REQUIRE_CONFIG
(
http
);
21
#
endif
22
23
QT_BEGIN_NAMESPACE
24
25
class
QHttpPartPrivate;
26
class
QHttpMultiPart;
27
class
QDebug;
28
29
class
QFormDataBuilderPrivate
;
30
class
QFormDataPartBuilderPrivate;
31
32
class
QFormDataPartBuilder
33
{
34
QFormDataPartBuilder(
QFormDataBuilderPrivate
*qfdb, qsizetype idx) : d(qfdb), m_index(idx) {}
35
public
:
36
void
swap
(
QFormDataPartBuilder
&other)
noexcept
37
{
38
qt_ptr_swap(d, other.d);
39
std
::swap(m_index, other.m_index);
40
}
41
42
QFormDataPartBuilder
() =
default
;
43
// Rule of zero applies
44
45
Q_WEAK_OVERLOAD
QFormDataPartBuilder
setBody
(
const
QByteArray
&
data
,
46
QAnyStringView
fileName
= {},
47
QAnyStringView
mimeType
= {})
48
{
return
setBodyHelper
(
data
,
fileName
,
mimeType
); }
49
50
Q_NETWORK_EXPORT
QFormDataPartBuilder
setBody
(
QByteArrayView
data
,
51
QAnyStringView
fileName
= {},
52
QAnyStringView
mimeType
= {});
53
Q_NETWORK_EXPORT
QFormDataPartBuilder
setBodyDevice
(
QIODevice
*
body
,
54
QAnyStringView
fileName
= {},
55
QAnyStringView
mimeType
= {});
56
Q_NETWORK_EXPORT
QFormDataPartBuilder
setHeaders
(
const
QHttpHeaders
&
headers
);
57
private
:
58
Q_NETWORK_EXPORT
QFormDataPartBuilder
setBodyHelper
(
const
QByteArray
&
data
,
59
QAnyStringView
fileName
,
60
QAnyStringView
mimeType
);
61
62
QFormDataPartBuilderPrivate* d_func();
63
const
QFormDataPartBuilderPrivate* d_func()
const
;
64
65
QFormDataBuilderPrivate
*d;
66
size_t m_index;
67
68
friend
class
QFormDataBuilder
;
69
};
70
71
Q_DECLARE_SHARED(QFormDataPartBuilder)
72
73
class
QFormDataBuilder
74
{
75
public
:
76
enum
class
Option
{
77
Default
= 0x00,
78
OmitRfc8187EncodedFilename
= 0x01,
79
UseRfc7578PercentEncodedFilename
= 0x02,
80
PreferLatin1EncodedFilename
= 0x04,
81
82
StrictRfc7578
=
OmitRfc8187EncodedFilename
|
UseRfc7578PercentEncodedFilename
,
83
};
84
Q_DECLARE_FLAGS(Options,
Option
)
85
86
Q_NETWORK_EXPORT
QFormDataBuilder
();
87
88
QFormDataBuilder
(
QFormDataBuilder
&&other)
noexcept
:
d_ptr
(
std
::
exchange
(
other
.
d_ptr
,
nullptr
)) {}
89
90
QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP
(
QFormDataBuilder
)
91
void
swap
(
QFormDataBuilder
&other)
noexcept
92
{
93
qt_ptr_swap(d_ptr, other.d_ptr);
94
}
95
96
Q_NETWORK_EXPORT
~
QFormDataBuilder
();
97
Q_NETWORK_EXPORT QFormDataPartBuilder
part
(
QAnyStringView
name
);
98
Q_NETWORK_EXPORT std::unique_ptr<
QHttpMultiPart
>
buildMultiPart
(
Options
options
= {});
99
private
:
100
QFormDataBuilderPrivate
*d_ptr;
101
102
Q_DECLARE_PRIVATE
(
QFormDataBuilder
)
103
Q_DISABLE_COPY
(
QFormDataBuilder
)
104
};
105
Q_DECLARE_OPERATORS_FOR_FLAGS(
QFormDataBuilder
::Options)
106
107
Q_DECLARE_SHARED(QFormDataBuilder)
108
109
QT_END_NAMESPACE
110
111
#
endif
// QFORMDATABUILDER_H
QFormDataBuilderPrivate
Definition
qformdatabuilder.cpp:378
QFormDataBuilderPrivate::parts
std::vector< QFormDataPartBuilderPrivate > parts
Definition
qformdatabuilder.cpp:380
QFormDataBuilder
The QFormDataBuilder class is a convenience class to simplify the construction of QHttpMultiPart obje...
Definition
qformdatabuilder.h:74
QFormDataBuilder::swap
void swap(QFormDataBuilder &other) noexcept
Definition
qformdatabuilder.h:91
QFormDataBuilder::QFormDataBuilder
QFormDataBuilder(QFormDataBuilder &&other) noexcept
Definition
qformdatabuilder.h:88
QFormDataBuilder::Option
Option
Definition
qformdatabuilder.h:76
QFormDataBuilder::Option::PreferLatin1EncodedFilename
@ PreferLatin1EncodedFilename
Definition
qformdatabuilder.h:80
QFormDataBuilder::Option::StrictRfc7578
@ StrictRfc7578
Definition
qformdatabuilder.h:82
QFormDataBuilder::Option::Default
@ Default
Definition
qformdatabuilder.h:77
QFormDataBuilder::Option::OmitRfc8187EncodedFilename
@ OmitRfc8187EncodedFilename
Definition
qformdatabuilder.h:78
QFormDataBuilder::Option::UseRfc7578PercentEncodedFilename
@ UseRfc7578PercentEncodedFilename
Definition
qformdatabuilder.h:79
QFormDataBuilder::~QFormDataBuilder
Q_NETWORK_EXPORT ~QFormDataBuilder()
QFormDataPartBuilder
The QFormDataPartBuilder class is a convenience class to simplify the construction of QHttpPart objec...
Definition
qformdatabuilder.h:33
QFormDataPartBuilder::swap
void swap(QFormDataPartBuilder &other) noexcept
Definition
qformdatabuilder.h:36
QFormDataPartBuilder::QFormDataPartBuilder
QFormDataPartBuilder()=default
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
convertInto_impl
static void convertInto_impl(QByteArray &dst, QUtf8StringView in)
Definition
qformdatabuilder.cpp:146
convertInto
static void convertInto(QByteArray &dst, QAnyStringView in)
Definition
qformdatabuilder.cpp:164
escapeNameAndAppend
static void escapeNameAndAppend(QByteArray &dst, QByteArrayView src)
Definition
qformdatabuilder.cpp:55
QT_REQUIRE_CONFIG
QT_REQUIRE_CONFIG(http)
qtbase
src
network
access
qformdatabuilder.h
Generated on
for Qt by
1.18.0