#pragma once #include "common/NetworkCommon.hpp" #include "util/QObjectRef.hpp" #include #include 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 caller_; bool cache_{}; bool executeConcurrently_{}; NetworkReplyCreatedCallback onReplyCreated_; NetworkErrorCallback onError_; NetworkSuccessCallback onSuccess_; NetworkRequestType requestType_ = NetworkRequestType::Get; QByteArray payload_; // 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_{}; QTimer *timer_; QString getHash(); private: QString hash_; }; void load(const std::shared_ptr &data); } // namespace chatterino