// // 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 <bits/unique_ptr.h> #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, JPG, DDS, WAV, OGG, FONT, UNKNOWN }; 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(); private: std::unique_ptr<DatIO> io_; std::unique_ptr<DatFileSystem> fileSystem_; std::unique_ptr<DatLocaleManager> localeManager_; std::unique_ptr<DatPatcher> patcher_; std::unique_ptr<DatExporter> exporter_; std::unique_ptr<DatBackupManager> backupManager_; }; } } #endif //LOTRO_DAT_PATCHER_DATFILE_H