#include "simulation_service.h" SimulationService::SimulationService():_run(false),_landform(0), _weather(0), _interval(200){ _timer = new QTimer(this); } SimulationService::~SimulationService() = default; void SimulationService::addTask(const SimulationTask& task) { QObject::connect(this, SIGNAL(boost()), &task, SLOT(run())); _tasks.push_back((SimulationTask *const &) task); } void SimulationService::start() { QObject::connect(_timer, SIGNAL(timeout()), this, SLOT(compute())); _timer->start(_interval); } void SimulationService::end() { _timer->stop(); } void SimulationService::clear() { // TODO 重置 } void SimulationService::compute() { if (_run){ emit boost(); } } SimulationService *SimulationService::ins() { static SimulationService simulationService; return &simulationService; } void SimulationService::set(int landform, int weather, int interval, const QDateTime& startTime, const QDateTime& endTime) { _landform = landform; _weather = weather; _interval = interval; _startTime = startTime; _endTime = endTime; } void SimulationService::pause() { _run = !_run; }