EnergySpectrumAnalyer/src/DataProcessWorkPool.h

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