79 lines
2.4 KiB
C++
79 lines
2.4 KiB
C++
#ifndef DATAPROCESSWORKPOOL_H
|
|
#define DATAPROCESSWORKPOOL_H
|
|
|
|
#include <QRunnable>
|
|
#include <QString>
|
|
#include <QObject>
|
|
|
|
namespace DataProcessWorkPool
|
|
{
|
|
class ParticleDataTask : public QRunnable
|
|
{
|
|
public:
|
|
void SetAllChannelParticleDataFilename(const QString& all_channel_particle_data_filename);
|
|
void SetFinishedNotifier(QObject* finished_notifier, const char* finished_process, const QString& project_name);
|
|
|
|
const QString& GetAllChannelParticleDataFilename() const;
|
|
const QString& GetProjectName() const;
|
|
const char* GetFinishedNotifierProcess() const;
|
|
QObject* GetFinishedNotifier() const;
|
|
|
|
virtual bool IsValidSetWorkParameters() const;
|
|
void StartTask();
|
|
|
|
virtual void run() override;
|
|
|
|
private:
|
|
virtual bool processEveryChannelParticleData() = 0;
|
|
|
|
private:
|
|
QString _all_channel_particle_data_filename;
|
|
QObject* _finished_notifier { nullptr };
|
|
const char* _finished_notifier_process { nullptr };
|
|
QString _project_name;
|
|
};
|
|
|
|
class EveryChannelParticleDataSeparateTask : public ParticleDataTask
|
|
{
|
|
public:
|
|
void SetResultDataDir(const QString& result_data_dir);
|
|
const QString& GetResultDataDir() const;
|
|
|
|
virtual bool IsValidSetWorkParameters() const;
|
|
private:
|
|
virtual bool processEveryChannelParticleData() override;
|
|
private:
|
|
QString _result_data_dir;
|
|
};
|
|
|
|
class EveryChannelParticleCountDataTask : public ParticleDataTask
|
|
{
|
|
public:
|
|
void SetAllChannelCountResultDir(const QString& dir_path);
|
|
const QString& GetAllChannelCountResultDir() const;
|
|
void SetEveryChannelCountResultDir(const QString&dir_path);
|
|
const QString& GetEveryChannelCountResultDir() const;
|
|
|
|
virtual bool IsValidSetWorkParameters() const;
|
|
private:
|
|
virtual bool processEveryChannelParticleData() override;
|
|
private:
|
|
QString _all_ch_count_dir;
|
|
QString _every_ch_count_dir;
|
|
};
|
|
|
|
class ParticleDataSortTask : public ParticleDataTask
|
|
{
|
|
public:
|
|
void SetSortedResultDir(const QString& sorted_result_dir);
|
|
const QString& GetSortedResultDir() const;
|
|
|
|
virtual bool IsValidSetWorkParameters() const;
|
|
private:
|
|
virtual bool processEveryChannelParticleData() override;
|
|
private:
|
|
QString _sorted_result_dir;
|
|
};
|
|
}
|
|
|
|
#endif // DATAPROCESSWORKPOOL_H
|