forked from qt-creator/qt-creator
GenericDirectUploadService: Replace DynamicSetup with dynamic task setup
Change-Id: Ic9befb63b51101803aef48911ae1d54a87eb98da Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -29,7 +29,6 @@ const int MaxConcurrentStatCalls = 10;
|
|||||||
struct UploadStorage
|
struct UploadStorage
|
||||||
{
|
{
|
||||||
QList<DeployableFile> filesToUpload;
|
QList<DeployableFile> filesToUpload;
|
||||||
FilesToTransfer filesToTransfer;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class GenericDirectUploadServicePrivate
|
class GenericDirectUploadServicePrivate
|
||||||
@@ -46,7 +45,7 @@ public:
|
|||||||
StatEndHandler statEndHandler);
|
StatEndHandler statEndHandler);
|
||||||
TaskItem statTree(const TreeStorage<UploadStorage> &storage, FilesToStat filesToStat,
|
TaskItem statTree(const TreeStorage<UploadStorage> &storage, FilesToStat filesToStat,
|
||||||
StatEndHandler statEndHandler);
|
StatEndHandler statEndHandler);
|
||||||
TaskItem uploadGroup(const TreeStorage<UploadStorage> &storage);
|
TaskItem uploadTask(const TreeStorage<UploadStorage> &storage);
|
||||||
TaskItem chmodTask(const DeployableFile &file);
|
TaskItem chmodTask(const DeployableFile &file);
|
||||||
TaskItem chmodTree(const TreeStorage<UploadStorage> &storage);
|
TaskItem chmodTree(const TreeStorage<UploadStorage> &storage);
|
||||||
|
|
||||||
@@ -186,12 +185,12 @@ TaskItem GenericDirectUploadServicePrivate::statTree(const TreeStorage<UploadSto
|
|||||||
return Tree(setupHandler);
|
return Tree(setupHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskItem GenericDirectUploadServicePrivate::uploadGroup(const TreeStorage<UploadStorage> &storage)
|
TaskItem GenericDirectUploadServicePrivate::uploadTask(const TreeStorage<UploadStorage> &storage)
|
||||||
{
|
{
|
||||||
const auto groupSetupHandler = [=] {
|
const auto setupHandler = [this, storage](FileTransfer &transfer) {
|
||||||
if (storage->filesToUpload.isEmpty()) {
|
if (storage->filesToUpload.isEmpty()) {
|
||||||
emit q->progressMessage(Tr::tr("No files need to be uploaded."));
|
emit q->progressMessage(Tr::tr("No files need to be uploaded."));
|
||||||
return GroupConfig{GroupAction::StopWithDone};
|
return TaskAction::StopWithDone;
|
||||||
}
|
}
|
||||||
emit q->progressMessage(Tr::tr("%n file(s) need to be uploaded.", "",
|
emit q->progressMessage(Tr::tr("%n file(s) need to be uploaded.", "",
|
||||||
storage->filesToUpload.size()));
|
storage->filesToUpload.size()));
|
||||||
@@ -205,33 +204,25 @@ TaskItem GenericDirectUploadServicePrivate::uploadGroup(const TreeStorage<Upload
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
emit q->errorMessage(message);
|
emit q->errorMessage(message);
|
||||||
return GroupConfig{GroupAction::StopWithError};
|
return TaskAction::StopWithError;
|
||||||
}
|
}
|
||||||
files.append({file.localFilePath(),
|
files.append({file.localFilePath(),
|
||||||
q->deviceConfiguration()->filePath(file.remoteFilePath())});
|
q->deviceConfiguration()->filePath(file.remoteFilePath())});
|
||||||
}
|
}
|
||||||
storage->filesToTransfer = files;
|
if (files.isEmpty()) {
|
||||||
if (storage->filesToTransfer.isEmpty()) {
|
|
||||||
emit q->progressMessage(Tr::tr("No files need to be uploaded."));
|
emit q->progressMessage(Tr::tr("No files need to be uploaded."));
|
||||||
return GroupConfig{GroupAction::StopWithDone};
|
return TaskAction::StopWithDone;
|
||||||
}
|
}
|
||||||
return GroupConfig();
|
transfer.setFilesToTransfer(files);
|
||||||
};
|
|
||||||
|
|
||||||
const auto setupHandler = [this, storage](FileTransfer &transfer) {
|
|
||||||
transfer.setFilesToTransfer(storage->filesToTransfer);
|
|
||||||
QObject::connect(&transfer, &FileTransfer::progress,
|
QObject::connect(&transfer, &FileTransfer::progress,
|
||||||
q, &GenericDirectUploadService::progressMessage);
|
q, &GenericDirectUploadService::progressMessage);
|
||||||
|
return TaskAction::Continue;
|
||||||
};
|
};
|
||||||
const auto errorHandler = [this](const FileTransfer &transfer) {
|
const auto errorHandler = [this](const FileTransfer &transfer) {
|
||||||
emit q->errorMessage(transfer.resultData().m_errorString);
|
emit q->errorMessage(transfer.resultData().m_errorString);
|
||||||
};
|
};
|
||||||
|
|
||||||
const Group group {
|
return Transfer(setupHandler, {}, errorHandler);
|
||||||
DynamicSetup(groupSetupHandler),
|
|
||||||
Transfer(setupHandler, {}, errorHandler)
|
|
||||||
};
|
|
||||||
return group;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskItem GenericDirectUploadServicePrivate::chmodTask(const DeployableFile &file)
|
TaskItem GenericDirectUploadServicePrivate::chmodTask(const DeployableFile &file)
|
||||||
@@ -310,7 +301,7 @@ Group GenericDirectUploadService::deployRecipe()
|
|||||||
const Group root {
|
const Group root {
|
||||||
Storage(storage),
|
Storage(storage),
|
||||||
d->statTree(storage, preFilesToStat, preStatEndHandler),
|
d->statTree(storage, preFilesToStat, preStatEndHandler),
|
||||||
d->uploadGroup(storage),
|
d->uploadTask(storage),
|
||||||
Group {
|
Group {
|
||||||
d->chmodTree(storage),
|
d->chmodTree(storage),
|
||||||
d->statTree(storage, postFilesToStat, postStatEndHandler)
|
d->statTree(storage, postFilesToStat, postStatEndHandler)
|
||||||
|
Reference in New Issue
Block a user