DatStatus.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef LOTRO_DAT_LIBRARY_DATSTATUS_H
  2. #define LOTRO_DAT_LIBRARY_DATSTATUS_H
  3. #include <string>
  4. namespace LOTRO_DAT {
  5. class DatFile;
  6. /*!
  7. * \brief Модуль статуса dat-файла
  8. * \author Gi1dor
  9. * \date 06.07.2018
  10. *
  11. * Класс для хранения информации о выполняемых процессах в dat-файле. Позволяет отслеживать прогресс выполнения
  12. * во время операций создания резервных копий, применения патчей или извлечения файлов
  13. *
  14. * \warning Объекты этого класса не должны создаваться отдельно! Созданием и управлением ими занимается класс DatFile
  15. */
  16. class DatStatus {
  17. public:
  18. enum DAT_STATUS: int {
  19. E_INITIALISING,
  20. E_EXTRACTING,
  21. E_PATCHING,
  22. E_COMMITING,
  23. E_BACKUP_CREATING,
  24. E_BACKUP_RESTORING,
  25. E_BACKUP_REMOVING,
  26. E_GATHERING_INFO,
  27. E_FREE
  28. };
  29. DatStatus() = delete;
  30. DatStatus(const DatStatus &other) = delete;
  31. DatStatus &operator=(const DatStatus &other) = delete;
  32. ~DatStatus() = default;
  33. explicit DatStatus(DatFile *datFilePtr);
  34. void SetPercentage(unsigned percent);
  35. unsigned GetPercentage();
  36. void SetDebugMessage(const std::string &message);
  37. std::string GetDebugMessage();
  38. void SetStatus(DAT_STATUS status);
  39. DAT_STATUS GetStatus();
  40. bool CheckIfNotPatched();
  41. void ClearAll();
  42. private:
  43. DatFile *dat;
  44. unsigned percentage_;
  45. DAT_STATUS status_;
  46. std::string debug_message;
  47. };
  48. }
  49. #endif //LOTRO_DAT_LIBRARY_DATSTATUS_H