24#define UE_NET_DECLARE_NAMED_NETTOKEN_STRUCT_SERIALIZERS(NAME, API) \
25 template<> struct TStructOpsTypeTraits<F##NAME> : public UE::Net::TNetTokenStructOpsTypeTraits<F##NAME> {}; \
28 UE_NET_DECLARE_SERIALIZER(F##NAME##NetSerializer, API);\
32#define UE_NET_NETTOKEN_GENERATED_BODY(NAME, API) \
33 inline static FName TokenStoreName = TEXT( PREPROCESSOR_TO_STRING(F##NAME) );\
34 static FName GetTokenStoreName() \
36 return TokenStoreName; \
38 API bool NetSerialize(FArchive& Ar, UPackageMap* Map, bool& bOutSuccess); \
39 API bool operator==(const F##NAME& Other) const; \
40 API bool operator!=(const F##NAME& Other) const;
43#define UE_NET_IMPLEMENT_NAMED_NETTOKEN_STRUCT_SERIALIZERS(NAME) \
44 bool F##NAME::NetSerialize(FArchive& Ar, UPackageMap* Map, bool& bOutSuccess) \
46 bOutSuccess = bOutSuccess && UE::Net::TStructNetTokenDataStoreHelper<F##NAME>::NetSerializeAndExportToken(Ar, Map, *static_cast<F##NAME*>(this)); \
49 bool F##NAME::operator==(const F##NAME& Other) const \
51 return GetUniqueKey() == Other.GetUniqueKey(); \
53 bool F##NAME::operator!=(const F##NAME& Other) const \
55 return GetUniqueKey() != Other.GetUniqueKey(); \
58 struct F##NAME##NetSerializer : public TStructAsNetTokenNetSerializerImpl<F##NAME> { \
59 static const uint32 Version = 0; \
60 static inline const ConfigType DefaultConfig = ConfigType(); \
62 UE_NET_IMPLEMENT_SERIALIZER(F##NAME##NetSerializer); \
63 UE_NET_IMPLEMENT_FORWARDING_NETSERIALIZER_AND_REGISTRY_DELEGATES(NAME, F##NAME##NetSerializer); \
Definition NetworkVersion.cpp:28
Definition StructOpsTypeTraits.h:11
Definition NetTokenStructDefines.h:12
@ WithNetSharedSerialization
Definition NetTokenStructDefines.h:17
@ WithIdenticalViaEquality
Definition NetTokenStructDefines.h:16
@ WithNetSerializer
Definition NetTokenStructDefines.h:15