UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BuildPatchMessage.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Containers/Map.h"
6#include "Misc/Guid.h"
8
9namespace BuildPatchServices
10{
15 {
16 // Describes the event type.
17 enum class EType : uint32
18 {
19 // Access was lost to the source.
20 AccessLost = 0,
21 // Access has been regained after being lost.
23 };
24
25 // The type of event that occurred.
27 // The location context for the source, could be cloud root, install location, chunkdb file etc.
28 FString Location;
29 };
30
35 {
36 // Describes the action type.
37 enum class EType : uint32
38 {
39 // The file was removed.
40 Removed = 0,
41 // The file was added.
42 Added,
43 // The file was updated.
44 Updated,
45 };
46
47 // The type of action that occurred.
49 // The filename affected, relative to the install location.
50 FString Filename;
51 };
52
57 {
59 FString RelativePath;
60 };
61
66 {
67 // Set this to true if the response can not be fulfilled. This will fail the chunk requests and subsequently
68 // the installation.
69 bool bFailed = false;
70 FString Uri;
71
72 // These headers <name, value> will be added to the HTTP request.
74 };
75
77 {
78 // Set of informational messages the installer can send to the client to update
79 // UI or otherwise react.
80 enum class EType : uint32
81 {
82 // Posted when a chunk is requested of the cloud source ONLY WHEN CHUNKDBS ARE PRESENT. This is useful if the installer
83 // is not expected to be downloading anything independently and you want to log this case.
84 // Note that even when chunks are fully provided, cancellation and resumption can lose "harvested"
85 // chunks that were resident only in non-persistent backing store causing a download
87
88 // Posted when a CDN/CloudDir has failed a download and is dropped in priority.
89 // Payload1 = CDN that failed,
90 // Payload2 = CDN that is considered "best" after this failure.
92 };
93
97 };
98
99
100 // Flag for which Requests a message handler expects to receive, allows for internal implementation optimisation.
102 {
103 // Does not respond to any requests - message listener only.
104 None = 0,
105 // Will respond to chunk URI requests.
106 ChunkUriRequest = 0x1,
107 // Further request types to follow in future.
108
109 };
110 ENUM_CLASS_FLAGS(EMessageRequests);
111
116 {
117 public:
119 : MessageRequests(InMessageRequests)
120 {}
121
122 virtual ~FMessageHandler() = default;
123
129 virtual void HandleMessage(const FGenericMessage& Message) {}
130
135 virtual void HandleMessage(const FChunkSourceEvent& Message) {}
136
141 virtual void HandleMessage(const FInstallationFileAction& Message) {}
142
148 virtual bool HandleRequest(const FChunkUriRequest& Request, TFunction<void(FChunkUriResponse)> OnResponse) { return false; }
149
153 EMessageRequests GetMessageRequests() const { return MessageRequests; }
154
155 private:
156 const EMessageRequests MessageRequests;
157 };
158
160 : public FMessageHandler
161 {
162 public:
163 // Default constructor passes flags to always support all requests
165 : FMessageHandler(static_cast<EMessageRequests>(0xFFFFFFFF))
166 {}
167
168 // This gets called if all registered handlers return false to HandleRequest. If there are
169 // _no_ handlers then this is entirely sidestepped in the cloud chunk source.
170 virtual bool HandleRequest(const FChunkUriRequest& Request, TFunction<void(FChunkUriResponse)> OnResponse) override
171 {
173 Response.Uri = Request.CloudDirectory / Request.RelativePath;
174 OnResponse(MoveTemp(Response));
175 return true;
176 }
177 };
178}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
auto Response
Definition ExternalRpcRegistry.cpp:598
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition BuildPatchMessage.h:161
virtual bool HandleRequest(const FChunkUriRequest &Request, TFunction< void(FChunkUriResponse)> OnResponse) override
Definition BuildPatchMessage.h:170
FDefaultMessageHandler()
Definition BuildPatchMessage.h:164
Definition BuildPatchMessage.h:116
FMessageHandler(EMessageRequests InMessageRequests)
Definition BuildPatchMessage.h:118
virtual void HandleMessage(const FChunkSourceEvent &Message)
Definition BuildPatchMessage.h:135
virtual void HandleMessage(const FGenericMessage &Message)
Definition BuildPatchMessage.h:129
virtual bool HandleRequest(const FChunkUriRequest &Request, TFunction< void(FChunkUriResponse)> OnResponse)
Definition BuildPatchMessage.h:148
virtual void HandleMessage(const FInstallationFileAction &Message)
Definition BuildPatchMessage.h:141
EMessageRequests GetMessageRequests() const
Definition BuildPatchMessage.h:153
EMessageRequests
Definition BuildPatchMessage.h:102
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition BuildPatchFileConstructor.h:28
Definition BuildPatchMessage.h:15
EType Event
Definition BuildPatchMessage.h:26
FString Location
Definition BuildPatchMessage.h:28
EType
Definition BuildPatchMessage.h:18
Definition BuildPatchMessage.h:57
FString RelativePath
Definition BuildPatchMessage.h:59
FString CloudDirectory
Definition BuildPatchMessage.h:58
Definition BuildPatchMessage.h:66
TMap< FString, FString > AdditionalHeaders
Definition BuildPatchMessage.h:73
FString Uri
Definition BuildPatchMessage.h:70
bool bFailed
Definition BuildPatchMessage.h:69
Definition BuildPatchMessage.h:77
FGuid ChunkId
Definition BuildPatchMessage.h:95
FString Payload2
Definition BuildPatchMessage.h:96
FString Payload1
Definition BuildPatchMessage.h:96
EType
Definition BuildPatchMessage.h:81
EType Type
Definition BuildPatchMessage.h:94
Definition BuildPatchMessage.h:35
FString Filename
Definition BuildPatchMessage.h:50
EType
Definition BuildPatchMessage.h:38
EType Action
Definition BuildPatchMessage.h:48
Definition Guid.h:109