8#include "Containers/Array.h"
9#include "Containers/Map.h"
12#include "NetTokenStore.generated.h"
35#ifndef UE_NET_VALIDATE_NETTOKENTYPE
36#if (UE_BUILD_SHIPPING || UE_BUILD_TEST)
37# define UE_NET_VALIDATE_NETTOKENTYPE 0
39# define UE_NET_VALIDATE_NETTOKENTYPE 1
47 class FNetTokenDataStore;
49 class FNetTokenStoreState;
50 class FNetSerializationContext;
54 class FNetExportContext;
63 FString StoreTypeName;
81 uint32 GetTypeID(const FString& TypeName) const;
84 return GetTypeID(TypeName.ToString());
88 bool ReservedTypeIdsAppearValid()
const;
247 return static_cast<T*
>(
GetDataStore(T::GetTokenStoreName()));
254 return static_cast<const T*
>(
GetDataStore(T::GetTokenStoreName()));
263 return LocalNetTokenStoreState.Get();
269 return LocalNetTokenStoreState.Get();
306 template <
typename T>
309#if UE_NET_VALIDATE_NETTOKENTYPE
314 if (!DataStore || (DataStore->GetTypeId() != NetToken.
GetTypeId()))
329 template <
typename T>
335 NetToken = DataStore->ReadNetToken(
Context);
339 UE_LOG(
LogNetToken,
Error,
TEXT(
"ReadNetTokenWithKnownType Tried to read NetToken using invalid NetTokenStore %s"), *(T::GetTokenStoreName().ToString()));
364 FNetTokenStore::InternalWriteNetToken(Ar, NetToken,
bWriteTypeId);
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define UE_NONCOPYABLE(TypeName)
Definition CoreMiscDefines.h:457
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition NameTypes.h:617
Definition UniquePtr.h:107
Definition NetSerializationContext.h:31
Definition NetTokenStore.h:101
uint32 GetKeyIndex() const
Definition NetTokenStore.h:115
bool operator==(const FNetTokenStoreKey &Other) const =default
bool IsValid() const
Definition NetTokenStore.h:120
FNetTokenStoreKey(uint32 InKeyIndex)
Definition NetTokenStore.h:110
@ InvalidKeyIndex
Definition NetTokenStore.h:103
FNetTokenStoreKey()
Definition NetTokenStore.h:105
Definition NetTokenStore.h:98
IRISCORE_API void StoreTokenForKey(FNetTokenStoreKey Key, FNetToken NetToken)
Definition NetTokenStore.cpp:110
IRISCORE_API FNetToken CreateAndStoreTokenForKey(FNetTokenStoreKey Key)
Definition NetTokenStore.cpp:87
FNetTokenStore & TokenStore
Definition NetTokenStore.h:176
virtual void WriteTokenData(FNetSerializationContext &Context, FNetTokenStoreKey Key) const =0
IRISCORE_API FNetToken ReadNetToken(UE::Net::FNetSerializationContext &Context)
Definition NetTokenStore.cpp:218
virtual FNetTokenDataStore::FNetTokenStoreKey ReadTokenData(FArchive &Ar, const FNetToken &NetToken, UPackageMap *Map=nullptr)=0
virtual IRISCORE_API ~FNetTokenDataStore()
Definition NetTokenStore.cpp:67
TArray< FNetToken > StoredTokens
Definition NetTokenStore.h:175
IRISCORE_API void WriteNetToken(UE::Net::FNetSerializationContext &Context, FNetToken Token)
Definition NetTokenStore.cpp:223
FNetToken::FTypeId GetTypeId() const
Definition NetTokenStore.h:160
virtual FNetTokenDataStore::FNetTokenStoreKey ReadTokenData(FNetSerializationContext &Context, const FNetToken &NetToken)=0
FNetTokenDataStore::FNetTokenStoreKey GetNextNetTokenStoreKey()
Definition NetTokenStore.h:408
IRISCORE_API FNetTokenDataStore::FNetTokenStoreKey GetTokenKey(FNetToken Token, const FNetTokenStoreState &TokenStoreState) const
Definition NetTokenStore.cpp:71
IRISCORE_API FNetToken GetNetTokenFromKey(FNetTokenStoreKey) const
Definition NetTokenStore.cpp:116
virtual void WriteTokenData(FArchive &Ar, FNetTokenStoreKey Key, UPackageMap *Map=nullptr) const =0
Definition NetTokenStore.cpp:22
Definition NetTokenStore.h:189
const FNetTokenStoreState * GetLocalNetTokenStoreState() const
Definition NetTokenStore.h:261
FNetToken ReadNetToken(FArchive &Ar) const
Definition NetTokenStore.h:368
void WriteNetTokenWithKnownType(FNetSerializationContext &Context, FNetToken NetToken)
Definition NetTokenStore.h:307
IRISCORE_API bool UnRegisterDataStore(FName TokenStoreName)
Definition NetTokenStore.cpp:353
bool CreateAndRegisterDataStore()
Definition NetTokenStore.h:229
IRISCORE_API void ConditionalReadNetTokenData(FNetSerializationContext &Context, const FNetToken NetToken)
Definition NetTokenStore.cpp:519
IRISCORE_API ~FNetTokenStore()
Definition NetTokenStore.cpp:245
IRISCORE_API FNetTokenStore()
Definition NetTokenStore.cpp:240
FNetToken ReadNetTokenWithKnownType(FNetSerializationContext &Context)
Definition NetTokenStore.h:330
IRISCORE_API void ConditionalWriteNetTokenData(FNetSerializationContext &Context, Private::FNetExportContext *ExportContext, const FNetToken NetToken) const
Definition NetTokenStore.cpp:493
void WriteNetToken(FNetSerializationContext &Context, FNetToken NetToken) const
Definition NetTokenStore.h:348
bool IsAuthority() const
Definition NetTokenStore.h:204
IRISCORE_API void ReadTokenData(FNetSerializationContext &Context, const FNetToken NetToken, FNetTokenStoreState &RemoteNetTokenStoreState)
Definition NetTokenStore.cpp:436
static IRISCORE_API void AppendExport(FNetSerializationContext &, FNetToken NetToken)
Definition NetTokenStore.cpp:537
IRISCORE_API bool RegisterDataStore(TUniquePtr< FNetTokenDataStore > DataStore, FName TokenStoreName)
Definition NetTokenStore.cpp:300
void WriteNetToken(FArchive &Ar, FNetToken NetToken) const
Definition NetTokenStore.h:361
T * GetDataStore()
Definition NetTokenStore.h:245
FNetTokenStoreState * GetLocalNetTokenStoreState()
Definition NetTokenStore.h:267
IRISCORE_API const FNetTokenStoreState * GetRemoteNetTokenStoreState(uint32 ConnectionId) const
Definition NetTokenStore.cpp:270
bool DeleteAndUnRegisterDataStore()
Definition NetTokenStore.h:238
bool IsLocalToken(const FNetToken NetToken) const
Definition NetTokenStore.h:210
const T * GetDataStore() const
Definition NetTokenStore.h:252
IRISCORE_API void InitRemoteNetTokenStoreState(uint32 ConnectionId)
Definition NetTokenStore.cpp:255
IRISCORE_API void WriteTokenData(FNetSerializationContext &Context, const FNetToken NetToken) const
Definition NetTokenStore.cpp:372
FNetToken ReadNetToken(FNetSerializationContext &Context) const
Definition NetTokenStore.h:355
FTypeId GetTypeId() const
Definition NetToken.h:67
bool IsValid() const
Definition NetToken.h:52
ENetTokenAuthority
Definition NetToken.h:41
@ MaxNetTokenCount
Definition NetToken.h:38
bool IsAssignedByAuthority() const
Definition NetToken.h:57
@ InvalidTokenTypeId
Definition NetToken.h:28
uint32 FTypeId
Definition NetToken.h:24
@ MaxTypeIdCount
Definition NetToken.h:37
FString ToString() const
Definition NetToken.h:118
Definition NetExportContext.h:17
Definition NetTokenDataStream.h:26
Definition NetTokenStore.h:74
Definition OverriddenPropertySet.cpp:45
Definition NetworkVersion.cpp:28
U16 Index
Definition radfft.cpp:71
Definition NetTokenStore.h:60
uint32 TypeID
Definition NetTokenStore.h:65
Definition NetTokenStore.h:197
uint32 MaxConnections
Definition NetTokenStore.h:199
FNetToken::ENetTokenAuthority Authority
Definition NetTokenStore.h:198