00001 #ifndef __arcsubmitcontroller_h__ 00002 #define __arcsubmitcontroller_h__ 00003 00004 #include <list> 00005 00006 #include <QObject> 00007 #include <QString> 00008 #include <QFutureWatcher> 00009 00010 #include "arc-gui-config.h" 00011 00012 #if ARC_VERSION_MAJOR >= 3 00013 #include <arc/compute/JobDescription.h> 00014 #else 00015 #include <arc/client/JobDescription.h> 00016 #endif 00017 00018 class ArcSubmitController : public QObject 00019 { 00020 Q_OBJECT 00021 00022 private: 00023 QString m_jobListFilename; 00024 std::list<Arc::JobDescription> m_jobDescriptions; 00025 00026 QFutureWatcher<void> m_submissionWatcher; 00027 00028 public: 00029 ArcSubmitController(); 00030 virtual ~ArcSubmitController(); 00031 00032 void setJobListFilename(QString filename); 00033 00034 void addJobDescription(Arc::JobDescription jobDescription); 00035 void clear(); 00036 00037 void startSubmission(); 00038 00039 int submit(); 00040 00041 private Q_SLOTS: 00042 void submissionFinished(); 00043 00044 Q_SIGNALS: 00045 void onSubmissionFinished(); 00046 void onSubmissionStatus(int currentJobId, int totalJobs, QString text); 00047 }; 00048 00049 #endif