Studio/Job/Job.h
Namespaces
| Name | 
|---|
| shapeworks  User usage reporting (telemetry)  | 
Classes
| Name | |
|---|---|
| class | shapeworks::Job | 
Source code
#pragma once
#include <QElapsedTimer>
#include <QObject>
namespace shapeworks {
class Job : public QObject {
  Q_OBJECT
 public:
  Job();
  virtual ~Job();
  virtual void run() = 0;
  virtual QString name() = 0;
  virtual QString get_completion_message();
  virtual QString get_abort_message();
  void start_timer();
  qint64 timer_elapsed();
  void set_complete(bool complete) { complete_ = complete; }
  bool is_complete() const { return complete_; }
  void abort() { abort_ = true; }
  bool is_aborted() const { return abort_; }
  void set_quiet_mode(bool quiet) { quiet_mode_ = quiet; }
  bool get_quiet_mode() { return quiet_mode_; }
 public Q_SLOTS:
 Q_SIGNALS:
  void progress(double, QString = "");
  void finished();
 private:
  std::atomic<bool> complete_ = false;
  std::atomic<bool> abort_ = false;
  std::atomic<bool> quiet_mode_ = false;
  QElapsedTimer timer_;
};
}  // namespace shapeworks
Updated on 2024-03-17 at 12:58:44 -0600