UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CoreOnline.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "Containers/Map.h"
7#include "Containers/Set.h"
9#include "HAL/PlatformCrt.h"
10#include "HAL/PlatformMath.h"
11#include "HAL/UnrealMemory.h"
12#include "Hash/CityHash.h"
13#include "Math/Vector4.h"
15#include "Misc/TVariant.h"
19#include "Templates/TypeHash.h"
20#include "Templates/UniquePtr.h"
21#include "UObject/NameTypes.h"
23#include "UObject/UnrealNames.h"
24
25#include "CoreOnline.generated.h"
26
28class FLazySingleton;
29
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
36 #else
37 #define MAX_LOCAL_PLAYERS 1
38 #endif
39#endif //MAX_LOCAL_PLAYERS
40
41
42USTRUCT(noexport)
44{
45 //GENERATED_BODY()
46
48 UPROPERTY()
49 FName SessionName;
51 UPROPERTY()
52 bool bPublicSearchable;
54 UPROPERTY()
55 bool bAllowInvites;
57 UPROPERTY()
58 bool bJoinViaPresence;
60 UPROPERTY()
61 bool bJoinViaPresenceFriendsOnly;
63 UPROPERTY()
64 int32 MaxPlayers;
66 UPROPERTY()
67 int32 MaxPartySize;
68
70 SessionName(NAME_None),
71 bPublicSearchable(false),
72 bAllowInvites(false),
73 bJoinViaPresence(false),
74 bJoinViaPresenceFriendsOnly(false),
75 MaxPlayers(0),
76 MaxPartySize(0)
77 {
78 }
79
81 {
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;
89 }
90
92 {
94 }
95};
96
101class FUniqueNetId : public TSharedFromThis<FUniqueNetId>
102{
103protected:
104
106 FUniqueNetId() = default;
107
108 FUniqueNetId(const FUniqueNetId& Src) = default;
109 FUniqueNetId& operator=(const FUniqueNetId& Src) = default;
110
111 virtual bool Compare(const FUniqueNetId& Other) const
112 {
113 return (GetType() == Other.GetType() &&
114 GetSize() == Other.GetSize() &&
115 FMemory::Memcmp(GetBytes(), Other.GetBytes(), GetSize()) == 0);
116 }
117
118public:
119
120 virtual ~FUniqueNetId() = default;
121
125 friend bool operator==(const FUniqueNetId& Lhs, const FUniqueNetId& Rhs)
126 {
127 return Lhs.Compare(Rhs);
128 }
129
130 friend bool operator!=(const FUniqueNetId& Lhs, const FUniqueNetId& Rhs)
131 {
132 return !Lhs.Compare(Rhs);
133 }
134
141 virtual FName GetType() const { return NAME_None; /* This should be pure virtual, however, older versions of the OSS plugins cannot handle that */ }
142
149 virtual const uint8* GetBytes() const = 0;
150
156 virtual int32 GetSize() const = 0;
157
163 virtual bool IsValid() const = 0;
164
170 virtual FString ToString() const = 0;
171
178 virtual FString ToDebugString() const = 0;
179
180 virtual uint32 GetTypeHash() const
181 {
182 return CityHash32(reinterpret_cast<const char*>(GetBytes()), GetSize());
183 }
184
188 FString GetHexEncodedString() const
189 {
190 if (GetSize() > 0 && GetBytes() != NULL)
191 {
192 return BytesToHex(GetBytes(), GetSize());
193 }
194 return FString();
195 }
196
197 friend inline uint32 GetTypeHash(const FUniqueNetId& Value)
198 {
199 return Value.GetTypeHash();
200 }
201};
202
203namespace UE::Online {
204
205class FOnlineForeignAccountIdRegistry;
206
208namespace OnlineIdHandleTags
209{
210 struct FAccount {};
211 struct FSession {};
212 struct FSessionInvite {};
213 struct FLobby {};
217}
218
220{
221 // Null, Providing minimal functionality when no backend services are required
222 Null,
223 // Epic Online Services, merges Epic Account Services and Epic Game Services. Note this will be deprecated in favor of separating out the services
224 Epic,
225 // Xbox services
226 Xbox,
227 // PlayStation Network
228 PSN,
229 // Nintendo
230 Nintendo,
231 // Unused,
233 // Steam
234 Steam,
235 // Google
236 Google,
237 // GooglePlay
239 // Apple
240 Apple,
241 // GameKit
243 // Samsung
244 Samsung,
245 // Oculus
246 Oculus,
247 // Tencent
248 Tencent,
249 // Epic Account Services (friends, presence, etc)
251 // Epic Game Services (lobbies, achievements, etc)
252 EpicGame,
253 // Reserved for future use/platform extensions
266 // For game specific Online Services
267 // To make use of GameDefined_x, ideally it should do all these steps in module startup:
268 // 1. Read the EOnlineServices value from config, to avoid conflict with any other plugin while keeping it data-driven;
269 // EOnlineServices XxxServices = EOnlineServices::GameDefined_0;
270 // FString ConfigStr;
271 // if (GConfig->GetString(TEXT("OnlineServicesXxx"), TEXT("ServicesEnumEntry"), ConfigStr, GEngineIni))
272 // {
273 // LexFromString(XxxServices, *ConfigStr);
274 // }
275 // 2. Register the factory with that value;
276 // FOnlineServicesRegistry::Get().RegisterServicesFactory(XxxServices, ...);
277 // 3. Optionally register the alias based on the value read from config
278 // RegisterAliasForGameDefined(XxxServices, TEXT("Xxx"));
279 GameDefined_0 = 28,
283 // None, used internally to resolve Platform or Default if they are not configured
284 None = 253,
285 // Platform native, may not exist for all platforms
286 Platform = 254,
287 // Default, configured via ini, TODO: List specific ini section/key
288 Default = 255
289};
290
294
301
307template<typename IdType>
309{
310public:
311 TOnlineId() = default;
313 {
314 check(Handle < 0xFF000000);
315 Value = (Handle & 0x00FFFFFF) | (uint32(Type) << 24);
316 }
317
318 inline bool IsValid() const { return GetHandle() != 0; }
319 inline explicit operator bool() const { return IsValid(); }
320
322 uint32 GetHandle() const { return Value & 0x00FFFFFF; }
323
324 bool operator==(const TOnlineId& Other) const { return Value == Other.Value; }
325 bool operator!=(const TOnlineId& Other) const { return Value != Other.Value; }
326
327private:
328 uint32 Value = uint32(EOnlineServices::Null) << 24;
329};
330
333// TODO rename to FSessionId
339
340COREONLINE_API FString ToString(const FAccountId& Id);
341COREONLINE_API FString ToString(const FOnlineSessionId& Id);
342// TODO
343// COREONLINE_API FString ToString(const FLobbyId& Id);
344// COREONLINE_API FString ToString(const FSessionInviteId& Id);
345// COREONLINE_API FString ToString(const FVerifiedAuthTicketId& Id);
346// COREONLINE_API FString ToString(const FVerifiedAuthSessionId& Id);
347
349COREONLINE_API FString ToLogString(const FLobbyId& Id);
355
356template<typename IdType>
358{
359 using ::GetTypeHash;
360 return HashCombine(GetTypeHash(OnlineId.GetOnlineServicesType()), GetTypeHash(OnlineId.GetHandle()));
361}
362
363template<typename IdType>
365{
366public:
367 virtual ~IOnlineIdRegistry() = default;
368
369 virtual FString ToString(const TOnlineId<IdType>& OnlineId) const = 0;
370 virtual FString ToLogString(const TOnlineId<IdType>& OnlineId) const = 0;
373 virtual TOnlineId<IdType> FromStringData(const FString& StringData) = 0;
374};
375
379
381{
382public:
389
393 COREONLINE_API static void TearDown();
394
403
411
412 // TODO Might be worth these being templates
413 COREONLINE_API FString ToString(const FAccountId& AccountId) const;
414 COREONLINE_API FString ToLogString(const FAccountId& AccountId) const;
416 COREONLINE_API FAccountId ToAccountId(EOnlineServices Services, const TArray<uint8>& RepData) const;
417 COREONLINE_API FAccountId ToAccountId(EOnlineServices Services, const FString& StringData) const;
418
420
429
437
438 COREONLINE_API FString ToString(const FOnlineSessionId& SessionId) const;
439 COREONLINE_API FString ToLogString(const FOnlineSessionId& SessionId) const;
442
444
453
461
465
467
468private:
469
470 template<typename IdType>
471 struct FOnlineIdRegistryAndPriority
472 {
473 FOnlineIdRegistryAndPriority(IOnlineIdRegistry<IdType>* InRegistry, int32 InPriority)
475
476 virtual ~FOnlineIdRegistryAndPriority() = default;
477
480 };
481
482 typedef FOnlineIdRegistryAndPriority<OnlineIdHandleTags::FAccount> FAccountIdRegistryAndPriority;
483 typedef FOnlineIdRegistryAndPriority<OnlineIdHandleTags::FSession> FSessionIdRegistryAndPriority;
484 typedef FOnlineIdRegistryAndPriority<OnlineIdHandleTags::FSessionInvite> FSessionInviteIdRegistryAndPriority;
485
487 TUniquePtr<FOnlineForeignAccountIdRegistry> ForeignAccountIdRegistry;
488
490
492
493 friend FLazySingleton;
494
496 FOnlineIdRegistryRegistry();
497 ~FOnlineIdRegistryRegistry();
498};
499
500} /* UE::Online */
501
502USTRUCT(noexport)
504{
505 //GENERATED_BODY()
506
508
510 virtual ~FUniqueNetIdWrapper() = default;
511
512 // copy operators generated by compiler
513
518
523
528
533
534 // temporarily restored implicit conversion from FUniqueNetId
539
540 bool IsV1() const
541 {
542 return Variant.IsType<FUniqueNetIdPtr>();
543 }
544
546 {
547 FUniqueNetIdPtr Result;
548 if (ensure(IsV1()))
549 {
550 Result = Variant.Get<FUniqueNetIdPtr>();
551 }
552 return Result;
553 }
554
555 // Getter to be used only when the variant index has already been confirmed
557 {
558 return Variant.Get<FUniqueNetIdPtr>();
559 }
560
561 bool IsV2() const
562 {
563 return Variant.IsType<UE::Online::FAccountId>();
564 }
565
567 {
569 if (ensure(IsV2()))
570 {
571 Result = Variant.Get<UE::Online::FAccountId>();
572 }
573 return Result;
574 }
575
576 // Getter to be used only when the variant index has already been confirmed
578 {
579 return Variant.Get<UE::Online::FAccountId>();
580 }
581
583 {
584 FName Result = NAME_None;
585 if (IsValid() && ensure(IsV1()))
586 {
587 Result = GetV1Unsafe()->GetType();
588 }
589 return Result;
590 }
591
593 COREONLINE_API FString ToString() const;
594
596 COREONLINE_API FString ToDebugString() const;
597
599 bool IsValid() const
600 {
601 if (IsV1())
602 {
603 const FUniqueNetIdPtr& Ptr = GetV1Unsafe();
604 return Ptr.IsValid() && Ptr->IsValid();
605 }
606 else
607 {
608 const UE::Online::FAccountId& AccountId = GetV2Unsafe();
609 return AccountId.IsValid();
610 }
611 }
612
619 {
621 }
622
627
630 {
631 return GetV1();
632 }
633
637 const FUniqueNetId& operator*() const
638 {
639 return *GetV1();
640 }
641
646 {
647 return GetV1().Get();
648 }
649
654 {
655 if (Value.IsValid())
656 {
657 if (Value.IsV1())
658 {
659 return GetTypeHash(*Value.GetV1Unsafe());
660 }
661 else
662 {
663 return GetTypeHash(Value.GetV2Unsafe());
664 }
665 }
666 return INDEX_NONE;
667 }
668
669 friend FString LexToString(const FUniqueNetIdWrapper& Value)
670 {
671 return Value.ToString();
672 }
673
675 {
676 static FUniqueNetIdWrapper InvalidId(nullptr);
677 return InvalidId;
678 }
679
680 friend bool operator==(const FUniqueNetIdWrapper& Lhs, const FUniqueNetIdWrapper& Rhs)
681 {
682 const bool bLhsValid = Lhs.IsValid();
683 if (bLhsValid != Rhs.IsValid())
684 {
685 // Different validity
686 return false;
687 }
688 if (!bLhsValid)
689 {
690 // Both invalid
691 return true;
692 }
693 if (Lhs.Variant.GetIndex() != Rhs.Variant.GetIndex())
694 {
695 // Different variant
696 return false;
697 }
698
699 if (Lhs.IsV1())
700 {
701 // Pointers can point to equivalent objects
702 return *Lhs.GetV1Unsafe() == *Rhs.GetV1Unsafe();
703 }
704 else
705 {
706 return Lhs.GetV2Unsafe() == Rhs.GetV2Unsafe();
707 }
708 }
709
710 friend bool operator!=(const FUniqueNetIdWrapper& Lhs, const FUniqueNetIdWrapper& Rhs)
711 {
712 return !(Lhs == Rhs);
713 }
714
715 friend bool operator==(const FUniqueNetIdWrapper& Lhs, const FUniqueNetId& Rhs)
716 {
717 const bool bLhsValid = Lhs.IsValid();
718 if (bLhsValid != Rhs.IsValid())
719 {
720 // Different validity
721 return false;
722 }
723 if (!bLhsValid)
724 {
725 // Both invalid
726 return true;
727 }
728 if (!Lhs.IsV1())
729 {
730 // Different variant
731 return false;
732 }
733 return *Lhs.GetV1Unsafe() == Rhs;
734 }
735
736 friend bool operator!=(const FUniqueNetIdWrapper& Lhs, const FUniqueNetId& Rhs)
737 {
738 return !(Lhs == Rhs);
739 }
740
741 friend bool operator==(const FUniqueNetId& Lhs, const FUniqueNetIdWrapper& Rhs)
742 {
743 return Rhs == Lhs;
744 }
745
746 friend bool operator!=(const FUniqueNetId& Lhs, const FUniqueNetIdWrapper& Rhs)
747 {
748 return Rhs != Lhs;
749 }
750
751 // comparison with nullptr (alternative to IsValid)
753 {
754 return !NetIdWrapper.IsValid();
755 }
756
758 {
759 return NetIdWrapper.IsValid();
760 }
761
763 {
764 return !NetIdWrapper.IsValid();
765 }
766
768 {
769 return NetIdWrapper.IsValid();
770 }
771
772protected:
773
774 // Actual unique id
776};
777
778template <typename ValueType>
779struct TUniqueNetIdMapKeyFuncs : public TDefaultMapKeyFuncs<FUniqueNetIdRef, ValueType, false>
780{
781 static FORCEINLINE FUniqueNetIdRef GetSetKey(TPair<FUniqueNetIdRef, ValueType> const& Element) { return Element.Key; }
782 static FORCEINLINE uint32 GetKeyHash(FUniqueNetIdRef const& Key) { return GetTypeHash(*Key); }
783 static FORCEINLINE bool Matches(FUniqueNetIdRef const& A, FUniqueNetIdRef const& B) { return (A == B) || (*A == *B); }
784};
785
786template <typename ValueType>
788
789struct FUniqueNetIdKeyFuncs : public DefaultKeyFuncs<FUniqueNetIdRef>
790{
791 static FORCEINLINE FUniqueNetIdRef GetSetKey(FUniqueNetIdRef const& Element) { return Element; }
792 static FORCEINLINE uint32 GetKeyHash(FUniqueNetIdRef const& Key) { return GetTypeHash(*Key); }
793 static FORCEINLINE bool Matches(FUniqueNetIdRef const& A, FUniqueNetIdRef const& B) { return (A == B) || (*A == *B); }
794};
795
#define NULL
Definition oodle2base.h:134
#define FORCEINLINE
Definition AndroidPlatform.h:140
#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
FPlatformTypes::TYPE_OF_NULLPTR TYPE_OF_NULLPTR
The type of the C++ nullptr keyword.
Definition Platform.h:1157
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
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
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
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
FUniqueNetId()=default
friend bool operator!=(const FUniqueNetId &Lhs, const FUniqueNetId &Rhs)
Definition CoreOnline.h:130
virtual bool IsValid() const =0
Definition Array.h:670
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 Map.h:77
Definition Tuple.h:652
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
Definition CoreOnline.h:210
Definition CoreOnline.h:213
Definition CoreOnline.h:211