summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/job.cc6
-rw-r--r--src/lib/job.h4
-rw-r--r--src/lib/upload_job.cc10
-rw-r--r--src/lib/upload_job.h4
4 files changed, 24 insertions, 0 deletions
diff --git a/src/lib/job.cc b/src/lib/job.cc
index 02d9d2a00..f83dd6a83 100644
--- a/src/lib/job.cc
+++ b/src/lib/job.cc
@@ -762,3 +762,9 @@ Job::set_rate_limit_progress(bool rate_limit)
_rate_limit_progress = rate_limit;
}
+
+void
+Job::retry() const
+{
+ DCPOMATIC_ASSERT(false);
+}
diff --git a/src/lib/job.h b/src/lib/job.h
index d46e5c73a..021387626 100644
--- a/src/lib/job.h
+++ b/src/lib/job.h
@@ -60,6 +60,10 @@ public:
virtual bool enable_notify() const {
return false;
}
+ virtual void retry() const;
+ virtual bool enable_retry() const {
+ return false;
+ }
void start();
virtual void pause() {}
diff --git a/src/lib/upload_job.cc b/src/lib/upload_job.cc
index 3cfbad727..5d4558f3a 100644
--- a/src/lib/upload_job.cc
+++ b/src/lib/upload_job.cc
@@ -30,6 +30,7 @@
#include "dcpomatic_log.h"
#include "film.h"
#include "log.h"
+#include "job_manager.h"
#include "scp_uploader.h"
#include "upload_job.h"
#include <fmt/format.h>
@@ -37,6 +38,7 @@
#include "i18n.h"
+using std::make_shared;
using std::min;
using std::shared_ptr;
using std::string;
@@ -117,3 +119,11 @@ UploadJob::set_status (string s)
boost::mutex::scoped_lock lm (_status_mutex);
_status = s;
}
+
+
+void
+UploadJob::retry() const
+{
+ JobManager::instance()->add(make_shared<UploadJob>(film(), _destination));
+}
+
diff --git a/src/lib/upload_job.h b/src/lib/upload_job.h
index eee890e34..bd9428bd7 100644
--- a/src/lib/upload_job.h
+++ b/src/lib/upload_job.h
@@ -40,6 +40,10 @@ public:
bool enable_notify() const override {
return true;
}
+ void retry() const override;
+ bool enable_retry() const override {
+ return true;
+ }
std::string status () const override;
private: