6#include <QtCore/QPointer>
8#include <QtCore/QIODevice>
9#include <QtCore/QVariantMap>
12#include <ibase/IProgressManager.h>
19class CHttpDataUploader:
public QObject
23 Q_PROPERTY(qsizetype partMaxSize READ GetPartMaxSize WRITE SetPartMaxSize NOTIFY PartMaxSizeChanged)
24 Q_PROPERTY(QVariantMap additionalHeaders READ GetAdditionalHeaders WRITE SetAdditionalHeaders NOTIFY AdditionalHeadersChanged)
25 Q_PROPERTY(QUrl uploadUrl READ GetUploadUrl WRITE SetUploadUrl NOTIFY uploadUrlChanged FINAL)
27 explicit CHttpDataUploader(QObject* parentPtr =
nullptr);
29 void SetDevice(QIODevice* devicePtr);
30 bool InitializeDeviceFromFile(
const QString& filePath);
31 bool UploadFile(
const QUrl& url = QUrl());
33 void SetProgressManager(ibase::IProgressManager* progressManager);
36 [[nodiscard]] qsizetype GetPartMaxSize()
const;
37 void SetPartMaxSize(qsizetype partMaxSize);
38 [[nodiscard]] QVariantMap GetAdditionalHeaders()
const;
39 void SetAdditionalHeaders(
const QVariantMap& additionalHeaders);
40 [[nodiscard]] QUrl GetUploadUrl()
const;
41 void SetUploadUrl(
const QUrl& uploadUrl);
44 void PartMaxSizeChanged();
45 void AdditionalHeadersChanged();
46 void uploadUrlChanged();
49 QPointer<QIODevice> m_devicePtr;
50 qsizetype m_partMaxSize;
51 QVariantMap m_additionalHeaders;
53 ibase::IProgressManager* m_progressManager;