1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #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<int> ExtractAllFilesByType(const FILE_TYPE &type, std::string output_directory_path);
- DatOperationResult<> ExtractFileById(long long file_id, std::string output_filename);
- DatOperationResult<int> ExtractAllFilesByType(const FILE_TYPE &type, Database *db);
- DatOperationResult<> ExtractFileById(long long file_id, Database *db);
- private:
- DatOperationResult<> WriteStringToFile(const std::u16string &str, const std::string &path);
- DatFile *dat;
- };
- }
- };
- #endif //LOTRO_DAT_LIBRARY_DATEXPORTER_H
|