|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef BATCHES_H
|
|
Toshihiro Shimizu |
890ddd |
#define BATCHES_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
Campbell Barton |
d0e335 |
#include <qobject></qobject>
|
|
Toshihiro Shimizu |
890ddd |
#include <map></map>
|
|
Toshihiro Shimizu |
890ddd |
#include <set></set>
|
|
Toshihiro Shimizu |
890ddd |
#include <vector></vector>
|
|
Campbell Barton |
d0e335 |
#include <qstring></qstring>
|
|
Toshihiro Shimizu |
890ddd |
#include "tfarmtask.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tfilepath.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tthread.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "filebrowserpopup.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
class TFarmController;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//------------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
![](https://seccdn.libravatar.org/avatar/2e5dd0bee1e7e619066117de357c8458fc7e847f4345b0cb8a7a5413aa2a45a0?s=16&d=retro) |
e280ae |
#ifdef _MSC_VER
|
|
Toshihiro Shimizu |
890ddd |
#pragma warning(push)
|
|
Toshihiro Shimizu |
890ddd |
#pragma warning(disable : 4786)
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//------------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
class TaskTreeModel;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class BatchesController final : public QObject { // singleton
|
|
Shinya Kitaoka |
120a6e |
Q_OBJECT
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
static BatchesController *instance();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void setDirtyFlag(bool state);
|
|
Shinya Kitaoka |
120a6e |
QString getListName() const;
|
|
Shinya Kitaoka |
120a6e |
void addComposerTask(const TFilePath &taskFilePath);
|
|
Shinya Kitaoka |
120a6e |
void addCleanupTask(const TFilePath &taskFilePath);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void addTask(const QString &id, TFarmTask *task, bool doUpdate = true);
|
|
Shinya Kitaoka |
120a6e |
void removeTask(const QString &id);
|
|
Shinya Kitaoka |
120a6e |
void removeAllTasks();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
int getTaskCount() const;
|
|
Shinya Kitaoka |
120a6e |
QString getTaskId(int index) const;
|
|
Shinya Kitaoka |
120a6e |
TFarmTask *getTask(int index) const;
|
|
Shinya Kitaoka |
120a6e |
TFarmTask *getTask(const QString &id) const;
|
|
Shinya Kitaoka |
120a6e |
bool getTaskInfo(const QString &id, QString &parent, QString &name,
|
|
Shinya Kitaoka |
120a6e |
TaskState &status);
|
|
Shinya Kitaoka |
120a6e |
TaskState getTaskStatus(const QString &id) const;
|
|
Shinya Kitaoka |
120a6e |
void loadTask(bool isRenderTask);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void getTasks(const QString &parentId, std::vector<qstring> &tasks) const;</qstring>
|
|
Shinya Kitaoka |
120a6e |
void setTasksTree(TaskTreeModel *tree);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
TaskTreeModel *getTasksTree() { return m_tasksTree; }
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void startAll();
|
|
Shinya Kitaoka |
120a6e |
void start(const QString &taskId);
|
|
Shinya Kitaoka |
120a6e |
void stopAll();
|
|
Shinya Kitaoka |
120a6e |
void stop(const QString &taskId);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void load();
|
|
Shinya Kitaoka |
120a6e |
void doLoad(const TFilePath &fp);
|
|
Shinya Kitaoka |
120a6e |
void save();
|
|
Shinya Kitaoka |
120a6e |
void saveas();
|
|
Shinya Kitaoka |
120a6e |
void doSave(const TFilePath &fp = TFilePath());
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
class Observer {
|
|
Shinya Kitaoka |
120a6e |
public:
|
|
Shinya Kitaoka |
120a6e |
virtual ~Observer();
|
|
Shinya Kitaoka |
120a6e |
virtual void update() = 0;
|
|
Shinya Kitaoka |
120a6e |
};
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void attach(Observer *obs);
|
|
Shinya Kitaoka |
120a6e |
void detach(Observer *obs);
|
|
Shinya Kitaoka |
120a6e |
void notify();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void setController(TFarmController *controller);
|
|
Shinya Kitaoka |
120a6e |
TFarmController *getController() const;
|
|
Shinya Kitaoka |
120a6e |
void update(); // aggiorna lo stato del Batch interrogando il FarmController
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public slots:
|
|
Shinya Kitaoka |
120a6e |
void onExit(bool &);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
protected:
|
|
Shinya Kitaoka |
120a6e |
BatchesController();
|
|
Shinya Kitaoka |
120a6e |
~BatchesController();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
// non implementati
|
|
Shinya Kitaoka |
120a6e |
BatchesController(const BatchesController &);
|
|
Shinya Kitaoka |
120a6e |
void operator=(const BatchesController &);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Shinya Kitaoka |
120a6e |
bool m_dirtyFlag;
|
|
Shinya Kitaoka |
120a6e |
TFilePath m_filepath;
|
|
Shinya Kitaoka |
120a6e |
std::map<qstring, *="" tfarmtask=""> m_tasks;</qstring,>
|
|
otakuto |
158f9f |
std::set<observer *=""> m_observers;</observer>
|
|
Shinya Kitaoka |
120a6e |
int m_localControllerPortNumber;
|
|
Shinya Kitaoka |
120a6e |
TFarmController *m_controller;
|
|
Shinya Kitaoka |
120a6e |
std::map<qstring, qstring=""> m_farmIdsTable;</qstring,>
|
|
Shinya Kitaoka |
120a6e |
TaskTreeModel *m_tasksTree;
|
|
Shinya Kitaoka |
120a6e |
TThread::Executor m_localExecutor;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
static BatchesController *m_instance;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Shinya Kitaoka |
120a6e |
static inline QString taskBusyStr();
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Shinya Kitaoka |
d1f6c4 |
class LoadTaskListPopup final : public FileBrowserPopup {
|
|
shun-iwasawa |
e87e08 |
Q_OBJECT
|
|
shun-iwasawa |
e87e08 |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
LoadTaskListPopup();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
bool execute() override;
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class LoadTaskPopup final : public FileBrowserPopup {
|
|
Shinya Kitaoka |
120a6e |
Q_OBJECT
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
bool m_isRenderTask;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
LoadTaskPopup();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
bool execute() override;
|
|
Shinya Kitaoka |
120a6e |
void open(bool isRenderTask);
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class SaveTaskListPopup final : public FileBrowserPopup {
|
|
Shinya Kitaoka |
120a6e |
Q_OBJECT
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
SaveTaskListPopup();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
473e70 |
bool execute() override;
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//------------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
![](https://seccdn.libravatar.org/avatar/2e5dd0bee1e7e619066117de357c8458fc7e847f4345b0cb8a7a5413aa2a45a0?s=16&d=retro) |
e280ae |
#ifdef _MSC_VER
|
|
Toshihiro Shimizu |
890ddd |
#pragma warning(pop)
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#endif
|