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