#ifndef LOTRO_DAT_LIBRARY_DATSTATUS_H #define LOTRO_DAT_LIBRARY_DATSTATUS_H #include namespace LOTRO_DAT { class DatFile; /*! * \brief Модуль статуса dat-файла * \author Gi1dor * \date 06.07.2018 * * Класс для хранения информации о выполняемых процессах в dat-файле. Позволяет отслеживать прогресс выполнения * во время операций создания резервных копий, применения патчей или извлечения файлов * * \warning Объекты этого класса не должны создаваться отдельно! Созданием и управлением ими занимается класс DatFile */ class DatStatus { public: enum DAT_STATUS: int { E_INITIALISING, E_EXTRACTING, E_PATCHING, E_COMMITING, E_BACKUP_CREATING, E_BACKUP_RESTORING, E_BACKUP_REMOVING, E_GATHERING_INFO, E_FREE }; DatStatus() = delete; DatStatus(const DatStatus &other) = delete; DatStatus &operator=(const DatStatus &other) = delete; ~DatStatus() = default; explicit DatStatus(DatFile *datFilePtr); void SetPercentage(unsigned percent); unsigned GetPercentage(); void SetDebugMessage(const std::string &message); std::string GetDebugMessage(); void SetStatus(DAT_STATUS status); DAT_STATUS GetStatus(); bool CheckIfNotPatched(); void ClearAll(); private: DatFile *dat; unsigned percentage_; DAT_STATUS status_; std::string debug_message; }; } #endif //LOTRO_DAT_LIBRARY_DATSTATUS_H