16#ifndef QGSWEBDAVEXTERNALSTORAGE_H
17#define QGSWEBDAVEXTERNALSTORAGE_H
28class QgsHttpExternalStorageStoreTask;
43 QString
type()
const override;
49 QgsExternalStorageStoredContent *
doStore(
const QString &filePath,
const QString &url,
const QString &authcfg = QString() )
const override;
51 QgsExternalStorageFetchedContent *
doFetch(
const QString &url,
const QString &authConfig = QString() )
const override;
63 QString
type()
const override;
69 QgsExternalStorageStoredContent *
doStore(
const QString &filePath,
const QString &url,
const QString &authcfg = QString() )
const override;
71 QgsExternalStorageFetchedContent *
doFetch(
const QString &url,
const QString &authConfig = QString() )
const override;
85 QgsHttpExternalStorageStoredContent(
const QString &filePath,
const QString &url,
const QString &authcfg = QString() );
89 QString
url()
const override;
91 void store()
override;
93 void setPrepareRequestHandler( std::function<
void( QNetworkRequest &request, QFile *f ) > );
97 std::function< void( QNetworkRequest &request, QFile *f ) > mPrepareRequestHandler =
nullptr;
98 QPointer<QgsHttpExternalStorageStoreTask> mUploadTask;
113 QgsHttpExternalStorageFetchedContent( QgsFetchedContent *fetchedContent );
119 void fetch()
override;
127 QPointer<QgsFetchedContent> mFetchedContent;
136class QgsHttpExternalStorageStoreTask :
public QgsTask
142 QgsHttpExternalStorageStoreTask(
const QUrl &url,
const QString &filePath,
const QString &authCfg );
148 QString errorString()
const;
150 void setPrepareRequestHandler( std::function<
void( QNetworkRequest &request, QFile *f ) > );
154 std::function< void( QNetworkRequest &request, QFile *f ) > mPrepareRequestHandler =
nullptr;
156 const QString mFilePath;
157 const QString mAuthCfg;
158 std::unique_ptr<QgsFeedback> mFeedback;
159 QString mErrorString;
virtual void cancel()
Cancels content fetching/storing.
Abstract base class for QgsExternalStorage fetched content.
virtual QString filePath() const =0
Returns fetched resource file path.
virtual void fetch()=0
Starts fetching.
Abstract base class for QgsExternalStorage stored content.
virtual QString url() const =0
Returns stored resource URL.
virtual void store()=0
Starts storing.
Abstract interface for external storage - to be implemented by various backends and registered in Qgs...
virtual QString type() const =0
Unique identifier of the external storage type.
virtual QgsExternalStorageFetchedContent * doFetch(const QString &url, const QString &authCfg=QString()) const =0
Fetches file from url using authCfg for this project external storage.
virtual QgsExternalStorageStoredContent * doStore(const QString &filePath, const QString &url, const QString &authCfg=QString()) const =0
Stores file filePath to the url using authCfg authentication for this project external storage.
virtual QString displayName() const =0
Returns the translated external storage name, which should be used for any user-visible display of th...
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Holds information about fetched network content.
Abstract base class for long running background tasks.
virtual bool run()=0
Performs the task's operation.
virtual void cancel()
Notifies the task that it should terminate.