#ifndef LOTRO_DAT_LIBRARY_DATEXPORTER_H #define LOTRO_DAT_LIBRARY_DATEXPORTER_H #include "../DatOperationResult.h" #include "../Database.h" extern "C++" { namespace LOTRO_DAT { enum FILE_TYPE : int; /*! * \brief Модуль экспорта файлов * \author Gi1dor * \date 30.06.2018 * Класс для экспорта файлов из dat контейнера. Позволяет извлекать файлы по их типам в базу данных или в папку. * Также позволяет извлекать отдельные файлы по их id. * \warning Объекты этого класса не должны создаваться отдельно! Созданием и управлением ими занимается класс DatFile */ class DatExporter { public: DatExporter() = delete; DatExporter(const DatExporter &other) = delete; DatExporter &operator=(const DatExporter &other) = delete; ~DatExporter() = default; explicit DatExporter(DatFile *datFilePtr); DatOperationResult ExtractAllFilesByType(const FILE_TYPE &type, std::string output_directory_path); DatOperationResult<> ExtractFileById(long long file_id, std::string output_filename); DatOperationResult ExtractAllFilesByType(const FILE_TYPE &type, Database *db); private: DatOperationResult<> WriteStringToFile(const std::u16string &str, const std::string &path); DatFile *dat; }; } }; #endif //LOTRO_DAT_LIBRARY_DATEXPORTER_H