00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef SLURMQUEUEINTERFACE_H
00018 #define SLURMQUEUEINTERFACE_H
00019
00020 #ifdef ENABLE_SSH
00021
00022
00024
00025 #include <globalsearch/queueinterfaces/slurmdialog.h>
00026 #include <globalsearch/queueinterfaces/remote.h>
00027
00028 #include <QtCore/QDateTime>
00029 #include <QtCore/QReadWriteLock>
00030 #include <QtCore/QString>
00031 #include <QtCore/QStringList>
00032
00033 namespace GlobalSearch {
00034
00035 class SlurmQueueInterface : public RemoteQueueInterface
00036 {
00037 Q_OBJECT;
00038
00039 public:
00040 explicit SlurmQueueInterface(OptBase *parent,
00041 const QString &settingsFile = "");
00042
00043 virtual ~SlurmQueueInterface();
00044
00045 virtual bool isReadyToSearch(QString *str);
00046
00047 QDialog* dialog();
00048
00049 friend class SlurmConfigDialog;
00050
00051 public slots:
00052 void readSettings(const QString &filename = "");
00053 void writeSettings(const QString &filename = "");
00054 bool startJob(Structure *s);
00055 bool stopJob(Structure *s);
00056 QueueInterface::QueueStatus getStatus(Structure *s) const;
00057 void setInterval(const int sec);
00058
00059 protected:
00060
00061 QStringList getQueueList() const;
00062
00063 QStringList m_queueData;
00064
00065 QDateTime m_queueTimeStamp;
00066
00067 QReadWriteLock m_queueMutex;
00068
00069 QString m_squeue;
00070 QString m_sbatch;
00071 QString m_scancel;
00072
00073 int m_interval;
00074
00075 bool m_cleanRemoteOnStop;
00076 };
00077 }
00078
00079 #endif // ENABLE_SSH
00080 #endif // SLURMQUEUEINTERFACE_H
00081
00082