5#include "Containers/Array.h"
6#include "Containers/Map.h"
7#include "Containers/Set.h"
25#include "CoreOnline.generated.h"
31#if !defined(MAX_LOCAL_PLAYERS)
32 #if PLATFORM_MAX_LOCAL_PLAYERS
33 #define MAX_LOCAL_PLAYERS PLATFORM_MAX_LOCAL_PLAYERS
34 #elif PLATFORM_DESKTOP
35 #define MAX_LOCAL_PLAYERS 4
37 #define MAX_LOCAL_PLAYERS 1
52 bool bPublicSearchable;
58 bool bJoinViaPresence;
61 bool bJoinViaPresenceFriendsOnly;
71 bPublicSearchable(
false),
73 bJoinViaPresence(
false),
74 bJoinViaPresenceFriendsOnly(
false),
82 return SessionName ==
Other.SessionName &&
83 bPublicSearchable ==
Other.bPublicSearchable &&
84 bAllowInvites ==
Other.bAllowInvites &&
85 bJoinViaPresence ==
Other.bJoinViaPresence &&
86 bJoinViaPresenceFriendsOnly ==
Other.bJoinViaPresenceFriendsOnly &&
87 MaxPlayers ==
Other.MaxPlayers &&
88 MaxPartySize ==
Other.MaxPartySize;
199 return Value.GetTypeHash();
205class FOnlineForeignAccountIdRegistry;
208namespace OnlineIdHandleTags
307template<
typename IdType>
356template<
typename IdType>
363template<
typename IdType>
470 template<
typename IdType>
471 struct FOnlineIdRegistryAndPriority
476 virtual ~FOnlineIdRegistryAndPriority() =
default;
496 FOnlineIdRegistryRegistry();
497 ~FOnlineIdRegistryRegistry();
587 Result = GetV1Unsafe()->GetType();
647 return GetV1().Get();
659 return GetTypeHash(*
Value.GetV1Unsafe());
663 return GetTypeHash(
Value.GetV2Unsafe());
671 return Value.ToString();
712 return !(Lhs == Rhs);
738 return !(Lhs == Rhs);
778template <
typename ValueType>
786template <
typename ValueType>
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
void BytesToHex(const uint8 *In, int32 Count, FString &Out)
Definition BytesToHex.cpp:97
uint32 CityHash32(const char *s, uint32 len)
Definition CityHash.cpp:203
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define PACKAGE_SCOPE
Definition CoreOnlinePackage.h:9
TSet< FUniqueNetIdRef, FUniqueNetIdKeyFuncs > FUniqueNetIdSet
Definition CoreOnline.h:796
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define USTRUCT(...)
Definition ObjectMacros.h:746
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
Definition ContainerAllocationPolicies.h:1660
Definition LazySingleton.h:9
Definition NameTypes.h:617
Definition CoreOnline.h:102
FUniqueNetId(const FUniqueNetId &Src)=default
virtual bool Compare(const FUniqueNetId &Other) const
Definition CoreOnline.h:111
virtual int32 GetSize() const =0
FUniqueNetId & operator=(const FUniqueNetId &Src)=default
virtual uint32 GetTypeHash() const
Definition CoreOnline.h:180
virtual ~FUniqueNetId()=default
FString GetHexEncodedString() const
Definition CoreOnline.h:188
virtual FString ToString() const =0
virtual const uint8 * GetBytes() const =0
virtual FString ToDebugString() const =0
friend bool operator==(const FUniqueNetId &Lhs, const FUniqueNetId &Rhs)
Definition CoreOnline.h:125
virtual FName GetType() const
Definition CoreOnline.h:141
friend uint32 GetTypeHash(const FUniqueNetId &Value)
Definition CoreOnline.h:197
friend bool operator!=(const FUniqueNetId &Lhs, const FUniqueNetId &Rhs)
Definition CoreOnline.h:130
virtual bool IsValid() const =0
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT ObjectType * Get() const
Definition SharedPointer.h:1065
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
Definition SharedPointer.h:153
Definition UniquePtr.h:107
SIZE_T GetIndex() const
Definition TVariant.h:231
Definition CoreOnline.h:381
COREONLINE_API IOnlineSessionIdRegistry * GetSessionIdRegistry(EOnlineServices OnlineServices) const
Definition CoreOnline.cpp:426
COREONLINE_API IOnlineSessionInviteIdRegistry * GetSessionInviteIdRegistry(EOnlineServices OnlineServices) const
Definition CoreOnline.cpp:484
COREONLINE_API void RegisterSessionIdRegistry(EOnlineServices OnlineServices, IOnlineSessionIdRegistry *Registry, int32 Priority=0)
Definition CoreOnline.cpp:368
COREONLINE_API FOnlineSessionId ToSessionId(EOnlineServices Services, const TArray< uint8 > &RepData) const
Definition CoreOnline.cpp:416
COREONLINE_API void UnregisterSessionInviteIdRegistry(EOnlineServices OnlineServices, int32 Priority=0)
Definition CoreOnline.cpp:445
COREONLINE_API FString ToLogString(const FOnlineSessionId &SessionId) const
COREONLINE_API void RegisterAccountIdRegistry(EOnlineServices OnlineServices, IOnlineAccountIdRegistry *Registry, int32 Priority=0)
Definition CoreOnline.cpp:273
COREONLINE_API void UnregisterSessionIdRegistry(EOnlineServices OnlineServices, int32 Priority=0)
Definition CoreOnline.cpp:377
COREONLINE_API TArray< uint8 > ToReplicationData(const FOnlineSessionId &SessionId) const
COREONLINE_API FSessionInviteId ToSessionInviteId(EOnlineServices Services, const TArray< uint8 > &RepData) const
Definition CoreOnline.cpp:474
COREONLINE_API void UnregisterAccountIdRegistry(EOnlineServices OnlineServices, int32 Priority=0)
Definition CoreOnline.cpp:282
COREONLINE_API FString ToString(const FOnlineSessionId &SessionId) const
COREONLINE_API void RegisterSessionInviteIdRegistry(EOnlineServices OnlineServices, IOnlineSessionInviteIdRegistry *Registry, int32 Priority=0)
Definition CoreOnline.cpp:436
static COREONLINE_API FOnlineIdRegistryRegistry & Get()
Definition CoreOnline.cpp:254
COREONLINE_API TArray< uint8 > ToReplicationData(const FAccountId &AccountId) const
Definition CoreOnline.cpp:319
COREONLINE_API FAccountId ToAccountId(EOnlineServices Services, const TArray< uint8 > &RepData) const
Definition CoreOnline.cpp:333
static COREONLINE_API void TearDown()
Definition CoreOnline.cpp:268
COREONLINE_API FString ToLogString(const FAccountId &AccountId) const
Definition CoreOnline.cpp:305
COREONLINE_API FString ToString(const FAccountId &AccountId) const
Definition CoreOnline.cpp:291
COREONLINE_API IOnlineAccountIdRegistry * GetAccountIdRegistry(EOnlineServices OnlineServices) const
Definition CoreOnline.cpp:358
COREONLINE_API TArray< uint8 > ToReplicationData(const FSessionInviteId &SessionInviteId) const
COREONLINE_API FString ToLogString(const FSessionInviteId &SessionInviteId) const
Definition CoreOnline.h:365
virtual FString ToLogString(const TOnlineId< IdType > &OnlineId) const =0
virtual TOnlineId< IdType > FromReplicationData(const TArray< uint8 > &ReplicationData)=0
virtual TOnlineId< IdType > FromStringData(const FString &StringData)=0
virtual TArray< uint8 > ToReplicationData(const TOnlineId< IdType > &OnlineId) const =0
virtual FString ToString(const TOnlineId< IdType > &OnlineId) const =0
virtual ~IOnlineIdRegistry()=default
Definition CoreOnline.h:309
bool operator!=(const TOnlineId &Other) const
Definition CoreOnline.h:325
bool IsValid() const
Definition CoreOnline.h:318
uint32 GetHandle() const
Definition CoreOnline.h:322
EOnlineServices GetOnlineServicesType() const
Definition CoreOnline.h:321
bool operator==(const TOnlineId &Other) const
Definition CoreOnline.h:324
TOnlineId(EOnlineServices Type, uint32 Handle)
Definition CoreOnline.h:312
Definition CoreOnline.cpp:15
bool TEMP_ShouldUseEpicModularPlugins()
Definition CoreOnline.cpp:242
const TCHAR * LexToString(EOnlineServices Value)
Definition CoreOnline.cpp:28
EOnlineServices
Definition CoreOnline.h:220
void LexFromString(EOnlineServices &OutValue, const TCHAR *InStr)
Definition CoreOnline.cpp:82
uint32 GetTypeHash(const TOnlineId< IdType > &OnlineId)
Definition CoreOnline.h:357
FString ToLogString(const FAccountId &Id)
Definition CoreOnline.cpp:524
void RegisterAliasForGameDefined(EOnlineServices Value, const TCHAR *InStr)
Definition CoreOnline.cpp:20
@ false
Definition radaudio_common.h:23
Definition SetUtilities.h:36
Definition CoreOnline.h:44
bool operator!=(const FJoinabilitySettings &Other) const
Definition CoreOnline.h:91
bool operator==(const FJoinabilitySettings &Other) const
Definition CoreOnline.h:80
static UE_FORCEINLINE_HINT int32 Memcmp(const void *Buf1, const void *Buf2, SIZE_T Count)
Definition UnrealMemory.h:114
Definition CoreOnline.h:790
static FORCEINLINE uint32 GetKeyHash(FUniqueNetIdRef const &Key)
Definition CoreOnline.h:792
static FORCEINLINE bool Matches(FUniqueNetIdRef const &A, FUniqueNetIdRef const &B)
Definition CoreOnline.h:793
static FORCEINLINE FUniqueNetIdRef GetSetKey(FUniqueNetIdRef const &Element)
Definition CoreOnline.h:791
Definition CoreOnline.h:504
UE::Online::FAccountId GetV2() const
Definition CoreOnline.h:566
friend uint32 GetTypeHash(const FUniqueNetIdWrapper &Value)
Definition CoreOnline.h:653
FName GetType() const
Definition CoreOnline.h:582
friend bool operator!=(const FUniqueNetId &Lhs, const FUniqueNetIdWrapper &Rhs)
Definition CoreOnline.h:746
bool IsV1() const
Definition CoreOnline.h:540
FUniqueNetIdWrapper(const FVariantType &InVariant)
Definition CoreOnline.h:524
FUniqueNetIdPtr GetV1() const
Definition CoreOnline.h:545
friend bool operator!=(const FUniqueNetIdWrapper &Lhs, const FUniqueNetIdWrapper &Rhs)
Definition CoreOnline.h:710
FUniqueNetIdWrapper(const FUniqueNetId &InUniqueNetId)
Definition CoreOnline.h:535
virtual void SetAccountId(const UE::Online::FAccountId &AccountId)
Definition CoreOnline.h:623
bool IsValid() const
Definition CoreOnline.h:599
friend bool operator==(const FUniqueNetIdWrapper &Lhs, const FUniqueNetIdWrapper &Rhs)
Definition CoreOnline.h:680
friend bool operator==(const FUniqueNetIdWrapper &NetIdWrapper, TYPE_OF_NULLPTR)
Definition CoreOnline.h:752
virtual void SetUniqueNetId(const FUniqueNetIdPtr &InUniqueNetId)
Definition CoreOnline.h:618
virtual ~FUniqueNetIdWrapper()=default
bool IsV2() const
Definition CoreOnline.h:561
friend bool operator==(const FUniqueNetId &Lhs, const FUniqueNetIdWrapper &Rhs)
Definition CoreOnline.h:741
friend bool operator!=(const FUniqueNetIdWrapper &NetIdWrapper, TYPE_OF_NULLPTR)
Definition CoreOnline.h:757
friend bool operator!=(const FUniqueNetIdWrapper &Lhs, const FUniqueNetId &Rhs)
Definition CoreOnline.h:736
friend bool operator!=(TYPE_OF_NULLPTR, const FUniqueNetIdWrapper &NetIdWrapper)
Definition CoreOnline.h:767
const FUniqueNetId * operator->() const
Definition CoreOnline.h:645
FUniqueNetIdWrapper(const FUniqueNetIdPtr &InUniqueNetId)
Definition CoreOnline.h:519
static FUniqueNetIdWrapper Invalid()
Definition CoreOnline.h:674
FUniqueNetIdWrapper(const FUniqueNetIdRef &InUniqueNetId)
Definition CoreOnline.h:514
const FUniqueNetId & operator*() const
Definition CoreOnline.h:637
friend bool operator==(const FUniqueNetIdWrapper &Lhs, const FUniqueNetId &Rhs)
Definition CoreOnline.h:715
FUniqueNetIdPtr GetUniqueNetId() const
Definition CoreOnline.h:629
FVariantType Variant
Definition CoreOnline.h:775
FUniqueNetIdWrapper()=default
const UE::Online::FAccountId & GetV2Unsafe() const
Definition CoreOnline.h:577
friend bool operator==(TYPE_OF_NULLPTR, const FUniqueNetIdWrapper &NetIdWrapper)
Definition CoreOnline.h:762
FUniqueNetIdWrapper(const UE::Online::FAccountId &AccountId)
Definition CoreOnline.h:529
friend FString LexToString(const FUniqueNetIdWrapper &Value)
Definition CoreOnline.h:669
const FUniqueNetIdPtr & GetV1Unsafe() const
Definition CoreOnline.h:556
Definition CoreOnline.h:780
static FORCEINLINE bool Matches(FUniqueNetIdRef const &A, FUniqueNetIdRef const &B)
Definition CoreOnline.h:783
static FORCEINLINE uint32 GetKeyHash(FUniqueNetIdRef const &Key)
Definition CoreOnline.h:782
static FORCEINLINE FUniqueNetIdRef GetSetKey(TPair< FUniqueNetIdRef, ValueType > const &Element)
Definition CoreOnline.h:781