032f290767
This change enforces strict include grouping using IncludeCategories
In addition to adding this to the .clang-format file and applying it in the tests/src and src directories, I also did the following small changes:
In ChatterSet.hpp, I changed lrucache to a <>include
In Irc2.hpp, I change common/SignalVector.hpp to a "project-include"
In AttachedWindow.cpp, NativeMessaging.cpp, WindowsHelper.hpp, BaseWindow.cpp, and StreamerMode.cpp, I disabled clang-format for the windows-includes
In WindowDescriptors.hpp, I added the missing vector include. It was previously not needed because the include was handled by another file that was previously included first.
clang-format minimum version has been bumped, so Ubuntu version used in the check-formatting job has been bumped to 22.04 (which is the latest LTS)
74 lines
1.4 KiB
C++
74 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include "common/NetworkCommon.hpp"
|
|
#include "util/QObjectRef.hpp"
|
|
|
|
#include <QHttpMultiPart>
|
|
#include <QNetworkRequest>
|
|
#include <QTimer>
|
|
|
|
#include <functional>
|
|
#include <memory>
|
|
|
|
class QNetworkReply;
|
|
|
|
namespace chatterino {
|
|
|
|
class NetworkResult;
|
|
|
|
class NetworkRequester : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
signals:
|
|
void requestUrl();
|
|
};
|
|
|
|
class NetworkWorker : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
signals:
|
|
void doneUrl();
|
|
};
|
|
|
|
struct NetworkData {
|
|
NetworkData();
|
|
~NetworkData();
|
|
|
|
QNetworkRequest request_;
|
|
bool hasCaller_{};
|
|
QObjectRef<QObject> caller_;
|
|
bool cache_{};
|
|
bool executeConcurrently_{};
|
|
|
|
NetworkReplyCreatedCallback onReplyCreated_;
|
|
NetworkErrorCallback onError_;
|
|
NetworkSuccessCallback onSuccess_;
|
|
NetworkFinallyCallback finally_;
|
|
|
|
NetworkRequestType requestType_ = NetworkRequestType::Get;
|
|
|
|
QByteArray payload_;
|
|
// lifetime secured by lifetimeManager_
|
|
QHttpMultiPart *multiPartPayload_{};
|
|
|
|
// Timer that tracks the timeout
|
|
// By default, there's no explicit timeout for the request
|
|
// to enable the timer, the "setTimeout" function needs to be called before
|
|
// execute is called
|
|
bool hasTimeout_{};
|
|
int timeoutMS_{};
|
|
QTimer *timer_ = nullptr;
|
|
QObject *lifetimeManager_;
|
|
|
|
QString getHash();
|
|
|
|
private:
|
|
QString hash_;
|
|
};
|
|
|
|
void load(const std::shared_ptr<NetworkData> &data);
|
|
|
|
} // namespace chatterino
|