// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" namespace Service::AM { class LibraryAppletStorage; class IStorageAccessor; class ITransferStorageAccessor; class IStorage final : public ServiceFramework { public: explicit IStorage(Core::System& system_, std::shared_ptr impl); explicit IStorage(Core::System& system_, std::vector&& buffer); ~IStorage() override; std::shared_ptr GetImpl() const { return m_impl; } std::vector GetData() const; private: Result Open(Out> out_storage_accessor); Result OpenTransferStorage( Out> out_transfer_storage_accessor); const std::shared_ptr m_impl; }; } // namespace Service::AM