8#include <QtNetwork/qhttpmultipart.h>
9#include <QtNetwork/qnetworkaccessmanager.h>
10#include <QtNetwork/qnetworkreply.h>
12#include <QtCore/qjsondocument.h>
13#include <QtCore/qjsonobject.h>
14#include <QtCore/qloggingcategory.h>
15#include <QtCore/qthread.h>
536 qCWarning(lcQrest,
"QRestAccessManager: QNetworkAccesManager is nullptr");
562 qCWarning(lcQrest,
"Access manager destroyed while %lld requests were still in progress",
572 return d->executeRequest([](
auto qnam,
auto req,
auto data) {
return qnam->post(req,
data); },
588 return d->executeRequest([&](
auto qnam) {
return qnam->post(
request,
data); },
context, slot);
596 return d->executeRequest([&](
auto qnam) {
return qnam->post(
request,
data); },
context, slot);
604 return d->executeRequest([&](
auto qnam) {
return qnam->post(
request,
data); },
context, slot);
611 return d->executeRequest([&](
auto qnam) {
return qnam->get(
request); },
context, slot);
619 return d->executeRequest([&](
auto qnam) {
return qnam->get(
request,
data); },
context, slot);
627 return d->executeRequest([](
auto qnam,
auto req,
auto data) {
return qnam->get(req,
data); },
636 return d->executeRequest([&](
auto qnam) {
return qnam->get(
request,
data); },
context, slot);
643 return d->executeRequest([&](
auto qnam) {
return qnam->deleteResource(
request); },
context, slot);
650 return d->executeRequest([&](
auto qnam) {
return qnam->head(
request); },
context, slot);
658 return d->executeRequest([](
auto qnam,
auto req,
auto data) {
return qnam->put(req,
data); },
674 return d->executeRequest([&](
auto qnam) {
return qnam->put(
request,
data); },
context, slot);
682 return d->executeRequest([&](
auto qnam) {
return qnam->put(
request,
data); },
context, slot);
689 return d->executeRequest([&](
auto qnam) {
return qnam->put(
request,
data); },
context, slot);
692static const auto PATCH =
"PATCH"_ba;
699 return d->executeRequest(
700 [](
auto qnam,
auto req,
auto data) {
return qnam->sendCustomRequest(req,
PATCH,
data); },
716 return d->executeRequest([&](
auto qnam) {
return qnam->sendCustomRequest(
request,
PATCH,
data); },
724 return d->executeRequest([&](
auto qnam) {
return qnam->sendCustomRequest(
request,
PATCH,
data); },
734 return d->executeRequest([&](
auto qnam) {
return qnam->sendCustomRequest(
request,
method,
data); },
744 return d->executeRequest([&](
auto qnam) {
return qnam->sendCustomRequest(
request,
method,
data); },
754 return d->executeRequest([&](
auto qnam) {
return qnam->sendCustomRequest(
request,
method,
data); },
789 qCWarning(lcQrest,
"QRestAccessManager can only be called in the thread it belongs to");
792 if (contextObject && (contextObject->
thread() !=
q->
thread())) {
793 qCWarning(lcQrest,
"QRestAccessManager: the context object must reside in the same thread");
800 qCWarning(lcQrest,
"QRestAccessManager: QNetworkAccessManager not set");
808 qCDebug(lcQrest,
"QRestAccessManager: Unexpected reply received, ignoring");
818 void *argv[] = {
nullptr, &restReply };
821 ?
const_cast<QObject*
>(caller.contextObject.get()) :
nullptr;
822 caller.slot->call(
context, argv);
828#include "moc_qrestaccessmanager.cpp"
The QHttpMultiPart class resembles a MIME multipart message to be sent over HTTP.
\inmodule QtCore \reentrant
\inmodule QtCore\reentrant
static QJsonDocument fromVariant(const QVariant &variant)
Creates a QJsonDocument from the QVariant variant.
The QNetworkAccessManager class allows the application to send network requests and receive replies.
The QNetworkReply class contains the data and headers for a request sent with QNetworkAccessManager.
void finished()
This signal is emitted when the reply has finished processing.
The QNetworkRequest class holds a request to be sent with QNetworkAccessManager.
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
QThread * thread() const
Returns the thread in which the object lives.
void destroyed(QObject *=nullptr)
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointe...
~QRestAccessManagerPrivate() override
QNetworkReply * createActiveRequest(QNetworkReply *reply, const QObject *contextObject, QtPrivate::QSlotObjectBase *slot)
QRestAccessManagerPrivate()
Q_DECL_COLD_FUNCTION QNetworkReply * warnNoAccessManager()
QHash< QNetworkReply *, CallerInfo > activeRequests
void handleReplyFinished(QNetworkReply *reply)
void verifyThreadAffinity(const QObject *contextObject)
The QRestAccessManager is a convenience wrapper for QNetworkAccessManager.
~QRestAccessManager() override
Destroys the QRestAccessManager object.
QNetworkAccessManager * networkAccessManager() const
Returns the underlying QNetworkAccessManager instance.
QRestReply is a convenience wrapper for QNetworkReply.
static QThread * currentThread()
Combined button and popup list for selecting options.
std::unique_ptr< QSlotObjectBase, QSlotObjectBase::Deleter > SlotObjUniquePtr
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 * method
#define Q_LOGGING_CATEGORY(name,...)
#define qCWarning(category,...)
#define qCDebug(category,...)
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLdouble GLdouble GLdouble GLdouble q
QNetworkAccessManager manager
QNetworkRequest request(url)