#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: DatStatus() = delete; DatStatus(const DatStatus &other) = delete; DatStatus &operator=(const DatStatus &other) = delete; ~DatStatus() = default; explicit DatStatus(DatFile *datFilePtr); void UpdatePercentage(unsigned percent); unsigned GetPercentage(); void UpdateStatusText(const std::string &message); void RemoveStatusText(); std::string GetStatusText(); void UpdateAdditionalMessage(const std::string &message); void RemoveAdditionalMessage(); std::string GetAdditionalMessage(); bool CheckIfNotPatched(); void ClearAll(); private: DatFile *dat; unsigned percentage; std::string status_text; std::string additional_message; }; } #endif //LOTRO_DAT_LIBRARY_DATSTATUS_H