// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "OnlineSubsystemSteamPrivate.h" #include "Interfaces/OnlineStoreInterfaceV2.h" #include "OnlinePurchaseInterfaceSteam.h" #include "OnlineSubsystemSteamPackage.h" class FOnlineSubsystemSteam; class FStoreTaskBase; /** * Implementation for online store via Steam */ class FOnlineStoreSteam : public IOnlineStoreV2, public TSharedFromThis { public: FOnlineStoreSteam(FOnlineSubsystemSteam* InSteamSubsystem); virtual ~FOnlineStoreSteam(); public:// IOnlineStoreV2 virtual void QueryCategories(const FUniqueNetId& UserId, const FOnQueryOnlineStoreCategoriesComplete& Delegate) override; virtual void GetCategories(TArray& OutCategories) const override; virtual void QueryOffersByFilter(const FUniqueNetId& UserId, const FOnlineStoreFilter& Filter, const FOnQueryOnlineStoreOffersComplete& Delegate) override; virtual void QueryOffersById(const FUniqueNetId& UserId, const TArray& OfferIds, const FOnQueryOnlineStoreOffersComplete& Delegate) override; virtual void GetOffers(TArray& OutOffers) const override; virtual TSharedPtr GetOffer(const FUniqueOfferId& OfferId) const override; PACKAGE_SCOPE: FOnlineSubsystemSteam* SteamSubsystem; TSharedPtr SteamPurchaseInt; TArray CachedCategories; TMap CachedOffers; };