// // Created by Иван_Архипов on 31.10.2017. // #ifndef LOTRO_DAT_PATCHER_DATFILE_H #define LOTRO_DAT_PATCHER_DATFILE_H #ifdef LOTRO_DAT_EXPORTS #define LOTRO_DAT_API __declspec(dllexport) #else #define LOTRO_DAT_API __declspec(dllimport) #endif #include #include "DatSubsystems/DatBackupManager.h" #include "DatSubsystems/DatExporter.h" #include "DatSubsystems/DatFileSystem.h" #include "DatSubsystems/DatIO.h" #include "DatSubsystems/DatLocaleManager.h" #include "DatSubsystems/DatPatcher.h" // Dat file names definitions extern "C++" { namespace LOTRO_DAT { enum FILE_TYPE : int { TEXT = 0, JPG = 1, DDS = 2, WAV = 3, OGG = 4, FONT = 5, UNKNOWN = 6 }; class DatFile { friend class DatIO; friend class DatFileSystem; friend class DatLocaleManager; friend class DatPatcher; friend class DatExporter; friend class DatBackupManager; public: DatFile(); DatFile(const DatFile &other) = delete; DatFile(DatFile &&other) = default; DatFile &operator=(const DatFile &other) = delete; DatFile &operator=(DatFile &&other) = default; DatLocaleManager &getLocaleManager(); // DatExporter &getExporter(); // DatPatcher &getPatcher(); // DatBackupManager &getBackupManager(); DatIO &getIO(); DatFileSystem &getFileSystem(); DatOperationResult<> Initialise(const std::string &filename); DatOperationResult<> GatherInformation(const std::string &output_filename); DatOperationResult<> Deinitialize(); bool Initialized(); private: std::unique_ptr io_; std::unique_ptr fileSystem_; std::unique_ptr localeManager_; // std::unique_ptr patcher_; // std::unique_ptr exporter_; // std::unique_ptr backupManager_; bool initialized_; }; } } #endif //LOTRO_DAT_PATCHER_DATFILE_H