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
networkquery.h
Go to the documentation of this file.
1// Copyright (C) 2024 Jarek Kobus
2// Copyright (C) 2024 The Qt Company Ltd.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
5#ifndef TASKING_NETWORKQUERY_H
6#define TASKING_NETWORKQUERY_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include "tasking_global.h"
20
21#include "tasktree.h"
22
23#include <QtNetwork/QNetworkReply>
24#include <QtNetwork/QNetworkRequest>
25
26#include <memory>
27
30
31namespace Tasking {
32
33// This class introduces the dependency to Qt::Network, otherwise Tasking namespace
34// is independent on Qt::Network.
35// Possibly, it could be placed inside Qt::Network library, as a wrapper around QNetworkReply.
36
38
40{
42
43public:
45 void setRequest(const QNetworkRequest &request) { m_request = request; }
46 void setOperation(NetworkOperation operation) { m_operation = operation; }
47 void setWriteData(const QByteArray &data) { m_writeData = data; }
49 QNetworkReply *reply() const { return m_reply.get(); }
50 void start();
51
53 void started();
55
56private:
57 QNetworkRequest m_request;
58 NetworkOperation m_operation = NetworkOperation::Get;
59 QByteArray m_writeData; // Used by Put and Post
60 QNetworkAccessManager *m_manager = nullptr;
61 std::unique_ptr<QNetworkReply> m_reply;
62};
63
65{
66public:
67 NetworkQueryTaskAdapter() { connect(task(), &NetworkQuery::done, this, &TaskInterface::done); }
68 void start() final { task()->start(); }
69};
70
71using NetworkQueryTask = CustomTask<NetworkQueryTaskAdapter>;
72
73} // namespace Tasking
74
76
77#endif // TASKING_NETWORKQUERY_H
\inmodule QtCore
Definition qbytearray.h:57
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.
The QNetworkRequest class holds a request to be sent with QNetworkAccessManager.
\inmodule QtCore
Definition qobject.h:103
void start() final
This method is called by the running TaskTree for starting the Task instance.
QNetworkReply * reply() const
void setNetworkAccessManager(QNetworkAccessManager *manager)
void setOperation(NetworkOperation operation)
void done(DoneResult result)
void setRequest(const QNetworkRequest &request)
void setWriteData(const QByteArray &data)
\inheaderfile solutions/tasking/tasktree.h \inmodule TaskingSolution
Definition tasktree.h:453
Combined button and popup list for selecting options.
\inmodule TaskingSolution
Definition barrier.cpp:9
CustomTask< NetworkQueryTaskAdapter > NetworkQueryTask
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLuint start
GLuint64EXT * result
[6]
#define Q_OBJECT
#define Q_SIGNALS
connect(quitButton, &QPushButton::clicked, &app, &QCoreApplication::quit, Qt::QueuedConnection)
QNetworkAccessManager manager
QNetworkRequest request(url)
#define TASKING_EXPORT