DatStatus.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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_FREE
  27. };
  28. DatStatus() = delete;
  29. DatStatus(const DatStatus &other) = delete;
  30. DatStatus &operator=(const DatStatus &other) = delete;
  31. ~DatStatus() = default;
  32. explicit DatStatus(DatFile *datFilePtr);
  33. void SetPercentage(unsigned percent);
  34. unsigned GetPercentage();
  35. void SetDebugMessage(const std::string &message);
  36. std::string GetDebugMessage();
  37. void SetStatus(DAT_STATUS status);
  38. DAT_STATUS GetStatus();
  39. bool CheckIfNotPatched();
  40. void ClearAll();
  41. private:
  42. DatFile *dat;
  43. unsigned percentage_;
  44. DAT_STATUS status_;
  45. std::string debug_message;
  46. };
  47. }
  48. #endif //LOTRO_DAT_LIBRARY_DATSTATUS_H