Skip to content
Snippets Groups Projects
ProjectRecoveryModel.h 1.35 KiB
Newer Older
// Mantid Repository : https://github.com/mantidproject/mantid
//
// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
//     NScD Oak Ridge National Laboratory, European Spallation Source
//     & Institut Laue - Langevin
// SPDX - License - Identifier: GPL - 3.0 +
Samuel Jones's avatar
Samuel Jones committed
#ifndef PROJECTRECOVERYMODEL_H
#define PROJECTRECOVERYMODEL_H

#include <memory>
Samuel Jones's avatar
Samuel Jones committed
#include <string>
#include <vector>
namespace MantidQt {
class ProjectRecovery;
}
class ProjectRecoveryPresenter;
class ProjectRecoveryModel {
Samuel Jones's avatar
Samuel Jones committed
public:
  ProjectRecoveryModel(MantidQt::ProjectRecovery *projectRecovery,
                       ProjectRecoveryPresenter *presenter);
  std::vector<std::string> getRow(int i);
  std::vector<std::string> getRow(std::string checkpointName);
  void startMantidNormally();
  void recoverSelectedCheckpoint(std::string &selected);
  void openSelectedInEditor(std::string &selected);
  std::string decideLastCheckpoint();
Samuel Jones's avatar
Samuel Jones committed

private:
  void fillRows();
  void updateCheckpointTried(const std::string &checkpointName);
  bool checkRecoverWasASuccess(const std::string &projectFile);
  void createThreadAndManage(const Poco::Path &checkpoint);
  std::vector<std::vector<std::string>> m_rows;
  MantidQt::ProjectRecovery *m_projRec;
  ProjectRecoveryPresenter *m_presenter;
Samuel Jones's avatar
Samuel Jones committed
};

#endif // PROJECTRECOVERYMODEL_H