// Copyright 2014 Citra Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include "core/file_sys/archive_source_sd_savedata.h" //////////////////////////////////////////////////////////////////////////////////////////////////// // FileSys namespace namespace FileSys { /// File system interface to the SaveData archive class ArchiveFactory_SaveData final : public ArchiveFactory { public: explicit ArchiveFactory_SaveData(std::shared_ptr sd_savedata_source); std::string GetName() const override { return "SaveData"; } ResultVal> Open(const Path& path, u64 program_id) override; ResultCode Format(const Path& path, const FileSys::ArchiveFormatInfo& format_info, u64 program_id) override; ResultVal GetFormatInfo(const Path& path, u64 program_id) const override; private: std::string mount_point; // TODO: Remove this? seems unused std::shared_ptr sd_savedata_source; ArchiveFactory_SaveData() = default; template void serialize(Archive& ar, const unsigned int) { ar& sd_savedata_source; } friend class boost::serialization::access; }; } // namespace FileSys BOOST_CLASS_EXPORT_KEY(FileSys::ArchiveFactory_SaveData)