// // 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, 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 io_; std::unique_ptr fileSystem_; std::unique_ptr localeManager_; std::unique_ptr patcher_; std::unique_ptr exporter_; std::unique_ptr backupManager_; }; } } #endif //LOTRO_DAT_PATCHER_DATFILE_H