UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DirectLinkMessages.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "DirectLinkCommon.h"
6
7#include "CoreMinimal.h"
9
10#include "DirectLinkMessages.generated.h"
11
12namespace DirectLink
13{
14class FScenePipeBase;
15} // namespace DirectLink
16
17
18
19
22{
24
32
34 : LifecycleState(InLifecycleState)
35 , EndpointStateRevision(InEndpointStateRevision)
36 {}
37
38 UPROPERTY()
39 uint8 LifecycleState = ELifecycle::None;
40
41 UPROPERTY()
42 uint32 EndpointStateRevision = 0;
43};
44
45
46
49{
51
52 UPROPERTY()
53 FString Name;
54
55 UPROPERTY()
57
58 UPROPERTY()
59 bool bIsPublic = false;
60};
61
64{
67
69 : StateRevision(StateRevision)
70 , MinProtocolVersion(MinProtocolVersion)
71 , ProtocolVersion(MaxProtocolVersion)
72 , UEVersion(FEngineVersion::Current().ToString())
73 {}
74
75 UPROPERTY()
76 uint32 StateRevision = 0;
77
78 UPROPERTY()
79 uint32 MinProtocolVersion = 0;
80
81 UPROPERTY()
82 uint32 ProtocolVersion = 0;
83
84 UPROPERTY()
85 FString UEVersion;
86
87 UPROPERTY()
88 FString ComputerName;
89
90 UPROPERTY()
91 FString UserName;
92
93 UPROPERTY()
94 uint32 ProcessId = 0;
95
96 UPROPERTY()
97 FString ExecutableName;
98
99 UPROPERTY()
100 FString NiceName;
101
102 UPROPERTY()
103 TArray<FNamedId> Destinations;
104
105 UPROPERTY()
106 TArray<FNamedId> Sources;
107};
108
109
110
111USTRUCT(meta=(Experimental))
116
117
118
119USTRUCT(meta=(Experimental))
121{
123 // #ue_directlink_cleanup explicit ctr to force correct init
124
125 UPROPERTY()
126 bool bRequestFromSource = false;
127
128 UPROPERTY()
129 int32 RequestFromStreamPort = DirectLink::InvalidStreamPort;
130
131 UPROPERTY()
132 FGuid SourceGuid;
133
134 UPROPERTY()
135 FGuid DestinationGuid;
136};
137
138
139
140USTRUCT(meta=(Experimental))
142{
144
145 UPROPERTY()
146 int32 RecipientStreamPort = DirectLink::InvalidStreamPort;
147
148 UPROPERTY()
149 bool bAccepted = false;
150
151 UPROPERTY()
152 FString Error; // optionnal: may be filled when the request is denied
153
154 UPROPERTY()
155 int32 OpenedStreamPort = DirectLink::InvalidStreamPort;
156};
157
158
159USTRUCT(meta=(Experimental))
161{
163
164 UPROPERTY()
165 int32 RecipientStreamPort = DirectLink::InvalidStreamPort;
166};
167
168
169
170USTRUCT(meta=(Experimental))
172{
174
175 enum EKind
176 {
178 SetupScene, // setup the stream for a scene id
183 };
184
185 // required for UStructs
187
188 FDirectLinkMsg_DeltaMessage(EKind Kind, DirectLink::FStreamPort DestinationStreamPort, uint32 BatchNumber, uint32 MessageIndex)
189 : DestinationStreamPort(DestinationStreamPort)
190 , BatchCode(BatchNumber)
191 , MessageCode(MessageIndex)
192 , Kind(Kind)
193 {
194 }
195
196 UPROPERTY()
197 int32 DestinationStreamPort = DirectLink::InvalidStreamPort;
198
199 UPROPERTY()
200 int8 BatchCode = 0;
201
202 UPROPERTY()
203 int32 MessageCode = 0;
204
205 UPROPERTY()
206 uint8 Kind = EKind::None;
207
208 UPROPERTY()
209 bool CompressedPayload = false;
210
211 UPROPERTY()
212 TArray<uint8> Payload;
213};
214
215
216USTRUCT(meta=(Experimental))
218{
220
222 {
224 OpenHaveList, // see Payload
225 HaveListElement, // see NodeIds and Hashes
226 AckDeltaMessage, // #ue_directlink_cleanup
228 };
229
230 // required for UStructs
232
233 FDirectLinkMsg_HaveListMessage(EKind Kind, DirectLink::FStreamPort SourceStreamPort, uint32 SyncCycle, uint32 MessageIndex)
234 : SourceStreamPort(SourceStreamPort)
235 , SyncCycle(SyncCycle)
236 , MessageCode(MessageIndex)
237 , Kind(Kind)
238 {
239 }
240
241 UPROPERTY()
242 int32 SourceStreamPort = 0; // FStreamPort
243
244 UPROPERTY()
245 int32 SyncCycle = 0;
246
247 UPROPERTY()
248 int32 MessageCode = 0;
249
250 UPROPERTY()
251 uint8 Kind = 0;
252
253 UPROPERTY()
254 TArray<uint8> Payload;
255
256 UPROPERTY()
257 TArray<int32> NodeIds;
258
259 UPROPERTY()
260 TArray<int32> Hashes;
261};
262
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
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 GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define USTRUCT(...)
Definition ObjectMacros.h:746
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition EngineVersion.h:12
Definition Array.h:670
Definition RobinHoodHashTable.h:18
@ false
Definition radaudio_common.h:23
Definition DirectLinkMessages.h:161
Definition DirectLinkMessages.h:172
EKind
Definition DirectLinkMessages.h:176
@ SetElements
Definition DirectLinkMessages.h:180
@ OpenDelta
Definition DirectLinkMessages.h:179
@ CloseDelta
Definition DirectLinkMessages.h:182
@ None
Definition DirectLinkMessages.h:177
@ RemoveElements
Definition DirectLinkMessages.h:181
@ SetupScene
Definition DirectLinkMessages.h:178
FDirectLinkMsg_DeltaMessage(EKind Kind, DirectLink::FStreamPort DestinationStreamPort, uint32 BatchNumber, uint32 MessageIndex)
Definition DirectLinkMessages.h:188
Definition DirectLinkMessages.h:22
FDirectLinkMsg_EndpointLifecycle(ELifecycle InLifecycleState=ELifecycle::None, uint32 InEndpointStateRevision=0)
Definition DirectLinkMessages.h:33
ELifecycle
Definition DirectLinkMessages.h:26
@ None
Definition DirectLinkMessages.h:27
@ Heartbeat
Definition DirectLinkMessages.h:29
@ Stop
Definition DirectLinkMessages.h:30
@ Start
Definition DirectLinkMessages.h:28
Definition DirectLinkMessages.h:64
FDirectLinkMsg_EndpointState(uint32 StateRevision, uint32 MinProtocolVersion, uint32 MaxProtocolVersion)
Definition DirectLinkMessages.h:68
Definition DirectLinkMessages.h:218
FDirectLinkMsg_HaveListMessage(EKind Kind, DirectLink::FStreamPort SourceStreamPort, uint32 SyncCycle, uint32 MessageIndex)
Definition DirectLinkMessages.h:233
EKind
Definition DirectLinkMessages.h:222
@ None
Definition DirectLinkMessages.h:223
@ HaveListElement
Definition DirectLinkMessages.h:225
@ CloseHaveList
Definition DirectLinkMessages.h:227
@ OpenHaveList
Definition DirectLinkMessages.h:224
@ AckDeltaMessage
Definition DirectLinkMessages.h:226
Definition DirectLinkMessages.h:142
Definition DirectLinkMessages.h:121
Definition DirectLinkMessages.h:113
Definition Guid.h:109
Definition DirectLinkMessages.h:49
GENERATED_BODY()