// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "core/hle/service/service.h" namespace Service::AM { class IStorageImpl { public: virtual ~IStorageImpl(); virtual std::vector& GetData() = 0; virtual const std::vector& GetData() const = 0; virtual std::size_t GetSize() const = 0; }; class IStorage final : public ServiceFramework { public: explicit IStorage(Core::System& system_, std::vector&& buffer); ~IStorage() override; std::vector& GetData() { return impl->GetData(); } const std::vector& GetData() const { return impl->GetData(); } std::size_t GetSize() const { return impl->GetSize(); } private: void Register(); void Open(HLERequestContext& ctx); std::shared_ptr impl; }; } // namespace Service::AM