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
qrestaccessmanager.h
Go to the documentation of this file.
1
// Copyright (C) 2023 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
QRESTACCESSMANAGER_H
6
#
define
QRESTACCESSMANAGER_H
7
8
#
if
0
9
#
pragma
qt_class
(
QRestAccessManager
)
10
#
endif
11
12
#
include
<
QtNetwork
/
qnetworkaccessmanager
.
h
>
13
14
QT_BEGIN_NAMESPACE
15
16
class
QDebug;
17
class
QRestReply
;
18
19
#
define
QREST_METHOD_WITH_DATA
(
METHOD
,
DATA
)
public
20
:
template
21
<
typename
Functor
,
if_compatible_callback
<
Functor
>
=
true
>
QNetworkReply
22
*
METHOD
(
const
QNetworkRequest
&
request
,
DATA
data
,
23
const
ContextTypeForFunctor
<
Functor
>
*
context
,
24
Functor
&&
callback
)
\
25
{
26
return
METHOD
##
WithDataImpl
(
request
,
data
,
context
,
27
QtPrivate
::
makeCallableObject
<
CallbackPrototype
>
(
std
::
forward
<
Functor
>
(
callback
)
)
)
;
\
28
}
QNetworkReply
29
*
METHOD
(
const
QNetworkRequest
&
request
,
DATA
data
)
\
30
{
31
return
METHOD
##
WithDataImpl
(
request
,
data
,
nullptr
,
nullptr
)
;
\
32
}
private
33
:
QNetworkReply
34
*
METHOD
##
WithDataImpl
(
const
QNetworkRequest
&
request
,
DATA
data
,
35
const
QObject
*
context
,
QtPrivate
::
QSlotObjectBase
*
slot
)
;
\
36
/* end */
37
38
#
define
QREST_METHOD_NO_DATA
(
METHOD
)
public
39
:
template
40
<
typename
Functor
,
if_compatible_callback
<
Functor
>
=
true
>
QNetworkReply
41
*
METHOD
(
const
QNetworkRequest
&
request
,
42
const
ContextTypeForFunctor
<
Functor
>
*
context
,
43
Functor
&&
callback
)
\
44
{
45
return
METHOD
##
NoDataImpl
(
request
,
context
,
46
QtPrivate
::
makeCallableObject
<
CallbackPrototype
>
(
std
::
forward
<
Functor
>
(
callback
)
)
)
;
\
47
}
QNetworkReply
48
*
METHOD
(
const
QNetworkRequest
&
request
)
\
49
{
50
return
METHOD
##
NoDataImpl
(
request
,
nullptr
,
nullptr
)
;
\
51
}
private
52
:
QNetworkReply
53
*
METHOD
##
NoDataImpl
(
const
QNetworkRequest
&
request
,
54
const
QObject
*
context
,
QtPrivate
::
QSlotObjectBase
*
slot
)
;
\
55
/* end */
56
57
#
define
QREST_METHOD_CUSTOM_WITH_DATA
(
DATA
)
public
58
:
template
59
<
typename
Functor
,
if_compatible_callback
<
Functor
>
=
true
>
QNetworkReply
60
*
sendCustomRequest
(
const
QNetworkRequest
&
request
,
const
QByteArray
&
method
,
DATA
data
,
61
const
ContextTypeForFunctor
<
Functor
>
*
context
,
62
Functor
&&
callback
)
\
63
{
64
return
customWithDataImpl
(
request
,
method
,
data
,
context
,
65
QtPrivate
::
makeCallableObject
<
CallbackPrototype
>
(
std
::
forward
<
Functor
>
(
callback
)
)
)
;
\
66
}
QNetworkReply
67
*
sendCustomRequest
(
const
QNetworkRequest
&
request
,
const
QByteArray
&
method
,
DATA
data
)
\
68
{
69
return
customWithDataImpl
(
request
,
method
,
data
,
nullptr
,
nullptr
)
;
\
70
}
private
71
:
QNetworkReply
72
*
customWithDataImpl
(
const
QNetworkRequest
&
request
,
const
QByteArray
&
method
,
73
DATA
data
,
const
QObject
*
context
,
74
QtPrivate
::
QSlotObjectBase
*
slot
)
;
\
75
/* end */
76
77
class
QRestAccessManagerPrivate
;
78
class
Q_NETWORK_EXPORT
QRestAccessManager
:
public
QObject
79
{
80
Q_OBJECT
81
using
CallbackPrototype =
void
(*)(QRestReply&);
82
template
<
typename
Functor>
83
using
ContextTypeForFunctor =
typename
QtPrivate::ContextTypeForFunctor<Functor>::ContextType;
84
template
<
typename
Functor>
85
using
if_compatible_callback = std::enable_if_t<
86
QtPrivate::AreFunctionsCompatible<CallbackPrototype, Functor>::value,
bool
>;
87
public
:
88
explicit
QRestAccessManager(QNetworkAccessManager *manager, QObject *parent =
nullptr
);
89
~QRestAccessManager() override;
90
91
QNetworkAccessManager *networkAccessManager()
const
;
92
93
QREST_METHOD_NO_DATA
(deleteResource)
94
QREST_METHOD_NO_DATA
(head)
95
QREST_METHOD_NO_DATA
(get)
96
QREST_METHOD_WITH_DATA
(get,
const
QByteArray &)
97
QREST_METHOD_WITH_DATA
(get,
const
QJsonDocument &)
98
QREST_METHOD_WITH_DATA
(get, QIODevice *)
99
QREST_METHOD_WITH_DATA
(post,
const
QJsonDocument &)
100
QREST_METHOD_WITH_DATA
(post,
const
QVariantMap &)
101
QREST_METHOD_WITH_DATA
(post,
const
QByteArray &)
102
QREST_METHOD_WITH_DATA
(post, QHttpMultiPart *)
103
QREST_METHOD_WITH_DATA
(post, QIODevice *)
104
QREST_METHOD_WITH_DATA
(put,
const
QJsonDocument &)
105
QREST_METHOD_WITH_DATA
(put,
const
QVariantMap &)
106
QREST_METHOD_WITH_DATA
(put,
const
QByteArray &)
107
QREST_METHOD_WITH_DATA
(put, QHttpMultiPart *)
108
QREST_METHOD_WITH_DATA
(put, QIODevice *)
109
QREST_METHOD_WITH_DATA
(patch,
const
QJsonDocument &)
110
QREST_METHOD_WITH_DATA
(patch,
const
QVariantMap &)
111
QREST_METHOD_WITH_DATA
(patch,
const
QByteArray &)
112
QREST_METHOD_WITH_DATA
(patch, QIODevice *)
113
QREST_METHOD_CUSTOM_WITH_DATA
(
const
QByteArray &)
114
QREST_METHOD_CUSTOM_WITH_DATA
(QIODevice *)
115
QREST_METHOD_CUSTOM_WITH_DATA
(QHttpMultiPart *)
116
117
private
:
118
Q_DECLARE_PRIVATE(QRestAccessManager)
119
Q_DISABLE_COPY(QRestAccessManager)
120
};
121
122
#
undef
QREST_METHOD_NO_DATA
123
#
undef
QREST_METHOD_WITH_DATA
124
#
undef
QREST_METHOD_CUSTOM_WITH_DATA
125
126
QT_END_NAMESPACE
127
128
#
endif
QByteArray::FromBase64Result
\inmodule QtCore
Definition
qbytearray.h:824
QRestAccessManagerPrivate
Definition
qrestaccessmanager_p.h:38
QRestAccessManagerPrivate::~QRestAccessManagerPrivate
~QRestAccessManagerPrivate() override
Definition
qrestaccessmanager.cpp:581
QRestAccessManagerPrivate::QRestAccessManagerPrivate
QRestAccessManagerPrivate()
QRestAccessManagerPrivate::executeRequest
QNetworkReply * executeRequest(ReqOpRef requestOperation, const QObject *context, QtPrivate::QSlotObjectBase *rawSlot)
Definition
qrestaccessmanager.cpp:856
QRestAccessManagerPrivate::createActiveRequest
QNetworkReply * createActiveRequest(QNetworkReply *reply, const QObject *contextObject, QtPrivate::SlotObjUniquePtr slot)
Definition
qrestaccessmanager.cpp:784
QRestAccessManagerPrivate::verifyThreadAffinity
void verifyThreadAffinity(const QObject *contextObject)
Definition
qrestaccessmanager.cpp:813
QRestAccessManager
The QRestAccessManager is a convenience wrapper for QNetworkAccessManager.
Definition
qrestaccessmanager.h:79
QRestReply
QRestReply is a convenience wrapper for QNetworkReply.
Definition
qrestreply.h:25
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
Q_LOGGING_CATEGORY
Q_LOGGING_CATEGORY(lcEventDispatcher, "qt.eventdispatcher")
PATCH
static const QByteArray & PATCH()
Definition
qrestaccessmanager.cpp:714
QREST_METHOD_CUSTOM_WITH_DATA
#define QREST_METHOD_CUSTOM_WITH_DATA(DATA)
Definition
qrestaccessmanager.h:57
QREST_METHOD_NO_DATA
#define QREST_METHOD_NO_DATA(METHOD)
Definition
qrestaccessmanager.h:38
QREST_METHOD_WITH_DATA
#define QREST_METHOD_WITH_DATA(METHOD, DATA)
Definition
qrestaccessmanager.h:19
qtbase
src
network
access
qrestaccessmanager.h
Generated on
for Qt by
1.18.0