Files
UnrealEngine/Engine/Plugins/Online/OnlineSubsystemEOS/Source/OnlineSubsystemEOSPlus/Private/OnlineStatsEOSPlus.h
2025-05-18 13:04:45 +08:00

54 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Online/CoreOnline.h"
#include "Interfaces/OnlineStatsInterface.h"
#include "Interfaces/OnlineEventsInterface.h"
#include "OnlineUserEOSPlus.h"
class FOnlineSubsystemEOSPlus;
/**
* Interface that mirrors stats on both OSSes
*/
class FOnlineStatsEOSPlus :
public IOnlineStats,
public IOnlineEvents
{
public:
FOnlineStatsEOSPlus() = delete;
virtual ~FOnlineStatsEOSPlus() = default;
// IOnlineStats Interface
virtual void QueryStats(const FUniqueNetIdRef LocalUserId, const FUniqueNetIdRef StatsUser, const FOnlineStatsQueryUserStatsComplete& Delegate) override;
virtual void QueryStats(const FUniqueNetIdRef LocalUserId, const TArray<FUniqueNetIdRef>& StatUsers, const TArray<FString>& StatNames, const FOnlineStatsQueryUsersStatsComplete& Delegate) override;
virtual TSharedPtr<const FOnlineStatsUserStats> GetStats(const FUniqueNetIdRef StatsUserId) const override;
virtual void UpdateStats(const FUniqueNetIdRef LocalUserId, const TArray<FOnlineStatsUserUpdatedStats>& UpdatedUserStats, const FOnlineStatsUpdateStatsComplete& Delegate) override;
#if !UE_BUILD_SHIPPING
virtual void ResetStats(const FUniqueNetIdRef StatsUserId) override;
#endif
// ~IOnlineStats Interface
// IOnlineEvents Interface
virtual bool TriggerEvent(const FUniqueNetId& PlayerId, const TCHAR* EventName, const FOnlineEventParms& Parms) override;
virtual void SetPlayerSessionId(const FUniqueNetId& PlayerId, const FGuid& PlayerSessionId) override;
// ~IOnlineEvents Interface
PACKAGE_SCOPE:
FOnlineStatsEOSPlus(FOnlineSubsystemEOSPlus* InSubsystem)
: EOSPlus(InSubsystem)
{
}
private:
FUniqueNetIdEOSPlusPtr GetNetIdPlus(const FString& SourceId);
private:
/** Reference to the owning EOS plus subsystem */
FOnlineSubsystemEOSPlus* EOSPlus;
};
typedef TSharedPtr<FOnlineStatsEOSPlus, ESPMode::ThreadSafe> FOnlineStatsEOSPlusPtr;