25class TNetControlMessageImpl;
51 return Names[MessageIndex];
56 return Names[MessageIndex][0] != 0;
60 static void CheckInitialized()
71 static void SetName(
uint8 MessageType,
const TCHAR* InName)
74 Names[MessageType] = InName;
77 template<
typename... ParamTypes>
84 SendParams(Bunch,
Params...);
87 template<
typename... ParamTypes>
88 static void ReceiveParams(
FInBunch& Bunch, ParamTypes&... Params) {}
94 ReceiveParams(Bunch,
Params...);
111 FNetControlMessageInfo::SetName(
Index, InName);
121 static_assert(
Index < FNetControlMessageInfo::MaxNames,
"Control channel message must be a byte.");
123 if (
Conn->Channels[0] !=
nullptr && !
Conn->Channels[0]->Closing)
127 Bunch << MessageType;
128 FNetControlMessageInfo::SendParams(Bunch, Params...);
129 Conn->Channels[0]->SendBunch(&Bunch,
true);
136 FNetControlMessageInfo::ReceiveParams(Bunch, Params...);
143 TTuple<ParamTypes...> Params;
154#define DEFINE_CONTROL_CHANNEL_MESSAGE(Name, Index, ...) \
155enum { NMT_##Name = Index }; \
156template<> class FNetControlMessage<Index> : public UE::Net::TNetControlMessageImpl<Index, ##__VA_ARGS__> \
160#define DEFINE_CONTROL_CHANNEL_MESSAGE_ZEROPARAM(Name, Index) DEFINE_CONTROL_CHANNEL_MESSAGE(Name, Index)
161#define DEFINE_CONTROL_CHANNEL_MESSAGE_ONEPARAM(Name, Index, TypeA) DEFINE_CONTROL_CHANNEL_MESSAGE(Name, Index, TypeA)
162#define DEFINE_CONTROL_CHANNEL_MESSAGE_TWOPARAM(Name, Index, TypeA, TypeB) DEFINE_CONTROL_CHANNEL_MESSAGE(Name, Index, TypeA, TypeB)
163#define DEFINE_CONTROL_CHANNEL_MESSAGE_THREEPARAM(Name, Index, TypeA, TypeB, TypeC) DEFINE_CONTROL_CHANNEL_MESSAGE(Name, Index, TypeA, TypeB, TypeC)
164#define DEFINE_CONTROL_CHANNEL_MESSAGE_FOURPARAM(Name, Index, TypeA, TypeB, TypeC, TypeD) DEFINE_CONTROL_CHANNEL_MESSAGE(Name, Index, TypeA, TypeB, TypeC, TypeD)
165#define DEFINE_CONTROL_CHANNEL_MESSAGE_FIVEPARAM(Name, Index, TypeA, TypeB, TypeC, TypeD, TypeE) DEFINE_CONTROL_CHANNEL_MESSAGE(Name, Index, TypeA, TypeB, TypeC, TypeD, TypeE)
166#define DEFINE_CONTROL_CHANNEL_MESSAGE_SIXPARAM(Name, Index, TypeA, TypeB, TypeC, TypeD, TypeE, TypeF) DEFINE_CONTROL_CHANNEL_MESSAGE(Name, Index, TypeA, TypeB, TypeC, TypeD, TypeE, TypeF)
167#define DEFINE_CONTROL_CHANNEL_MESSAGE_SEVENPARAM(Name, Index, TypeA, TypeB, TypeC, TypeD, TypeE, TypeF, TypeG) DEFINE_CONTROL_CHANNEL_MESSAGE(Name, Index, TypeA, TypeB, TypeC, TypeD, TypeE, TypeF, TypeG)
168#define DEFINE_CONTROL_CHANNEL_MESSAGE_EIGHTPARAM(Name, Index, TypeA, TypeB, TypeC, TypeD, TypeE, TypeF, TypeG, TypeH) DEFINE_CONTROL_CHANNEL_MESSAGE(Name, Index, TypeA, TypeB, TypeC, TypeD, TypeE, TypeF, TypeG, TypeH)
170#define IMPLEMENT_CONTROL_CHANNEL_MESSAGE(Name) static uint8 Dummy##_FNetControlMessage_##Name = FNetControlMessage<NMT_##Name>::Initialize(TEXT(#Name));
#define checkSlow(expr)
Definition AssertionMacros.h:332
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DEFINE_CONTROL_CHANNEL_MESSAGE(Name, Index,...)
Definition DataChannel.h:154
ENetPingControlMessage
Definition NetPing.h:90
EEngineNetworkRuntimeFeatures
Definition NetworkVersion.h:45
UE_FORCEINLINE_HINT void VisitTupleElements(FuncType &&Func, FirstTupleType &&FirstTuple, TupleTypes &&... Tuples)
Definition Tuple.h:878
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
UE_FORCEINLINE_HINT bool IsError() const
Definition Archive.h:362
Definition DataBunch.h:127
Definition DataChannel.h:46
static const TCHAR * GetName(uint8 MessageIndex)
Definition DataChannel.h:48
static bool IsRegistered(uint8 MessageIndex)
Definition DataChannel.h:53
Definition DataChannel.h:42
Definition NetworkGuid.h:12
Definition NetIDVariant.h:20
Definition DataChannel.h:107
static void Send(UNetConnection *Conn, ParamTypes &... Params)
Definition DataChannel.h:119
static bool Receive(FInBunch &Bunch, ParamTypes &... Params)
Definition DataChannel.h:134
static uint8 Initialize(const TCHAR *InName)
Definition DataChannel.h:109
static void Discard(FInBunch &Bunch)
Definition DataChannel.h:141
Definition NetConnection.h:284
FUniformParams Params
Definition MeshPaintVirtualTexture.cpp:162
Definition NetworkVersion.cpp:28
ENetRefHandleError
Definition NetEnums.h:130
U16 Index
Definition radfft.cpp:71
Definition DataBunch.h:202
Definition OnlineReplStructs.h:26
Definition NumericLimits.h:41