UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CookOnTheFly.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Async/Future.h"
8#include "Misc/Timespan.h"
11#include "Delegates/Delegate.h"
12
13class FArrayReader;
14class FInternetAddr;
15
17
18namespace UE { namespace Cook
19{
20
27{
28 /* Represents no message. */
29 None = 0x00,
30
31 /* A request message. */
32 Request = 0x02,
33 /* A response message. */
34 Response = 0x04,
35 TypeFlags = 0x0F,
36
37 /* Request to cook a package. */
38 CookPackage = 0x20,
39 /* Get all currenlty cooked packages. */
40 GetCookedPackages = 0x30,
41 /* Request to recompile shaders. */
42 RecompileShaders = 0x40,
43 /* One way message indicating that one or more packages has been cooked. */
44 PackagesCooked = 0x50,
45 /* One way message indicating that one or more files has been added. */
46 FilesAdded = 0x60,
47 /* Request to recook packages. */
48 RecookPackages = 0x70,
49 /* Legacy message for NetworkPlatformFile */
51 /* Request for a list of on-disk packages, which may or may not be cooked or cookable for a given platform */
53};
55
60{
62
63 switch (Message)
64 {
66 return TEXT("None");
68 return TEXT("CookPackage");
70 return TEXT("GetCookedPackages");
72 return TEXT("RecompileShaders");
74 return TEXT("PackagesCooked");
76 return TEXT("FilesAdded");
78 return TEXT("RecookPackages");
80 return TEXT("NetworkPlatformFile");
81 default:
82 return TEXT("Unknown");
83 };
84}
85
90{
92 None,
94 Ok,
96 Error
97};
98
103{
104 switch (Status)
105 {
107 return TEXT("None");
109 return TEXT("Ok");
111 return TEXT("Error");
112 default:
113 return TEXT("Unknown");
114 }
115}
116
135
140{
141public:
144
147 {
148 Header.MessageType = MessageType;
149 }
150
152 {
155 return MessageType;
156 }
157
160 {
161 return Header;
162 }
163
166 {
167 return Header;
168 }
169
175
181
187
189 bool IsOk() const
190 {
192 }
193
196
198 template<typename BodyType>
200 {
201 Body.Empty();
203 Ar << InBody;
204 }
205
208 {
209 return Body;
210 }
211
213 const TArray<uint8>& GetBody() const
214 {
215 return Body;
216 }
217
219 template<typename BodyType>
221 {
222 BodyType Type;
224 Ar << Type;
225
226 return MoveTemp(Type);
227 }
228
231 {
232 return sizeof(FCookOnTheFlyMessageHeader) + Body.Num();
233 }
234
237
240
242
243protected:
246};
247
252 : public FCookOnTheFlyMessage
253{
254public:
257
261 {
262 }
263};
264
289
300
302{
303public:
305
306 virtual const FString& GetHost() const = 0;
307
308 virtual const FString& GetZenProjectName() const = 0;
309
310 virtual const FString& GetPlatformName() const = 0;
311
312 virtual const TArray<FString> GetZenHostNames() const = 0;
313
314 virtual const uint16 GetZenHostPort() const = 0;
315
319 virtual bool IsConnected() const = 0;
320
321 virtual bool IsSingleThreaded() const = 0;
322
329
334 virtual FMessageEvent& OnMessage() = 0;
335};
336
355
356}} // namespace UE::Cook
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr void EnumRemoveFlags(Enum &Flags, Enum FlagsToRemove)
Definition EnumClassFlags.h:98
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition ArrayReader.h:12
Definition IPAddress.h:22
Definition MemoryReader.h:17
Definition MemoryWriter.h:101
Definition ModuleInterface.h:14
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Empty(SizeType Slack=0)
Definition Array.h:2273
Definition Future.h:393
Definition SharedPointer.h:692
Definition UniquePtr.h:107
Definition CookOnTheFly.h:140
void SetStatus(ECookOnTheFlyMessageStatus InStatus)
Definition CookOnTheFly.h:177
ECookOnTheFlyMessage GetMessageType() const
Definition CookOnTheFly.h:151
FCookOnTheFlyMessageHeader & GetHeader()
Definition CookOnTheFly.h:159
FCookOnTheFlyMessageHeader Header
Definition CookOnTheFly.h:244
COOKONTHEFLY_API void SetBody(TArray< uint8 > InBody)
Definition CookOnTheFly.cpp:47
COOKONTHEFLY_API friend FArchive & operator<<(FArchive &Ar, FCookOnTheFlyMessage &Message)
Definition CookOnTheFly.cpp:39
const FCookOnTheFlyMessageHeader & GetHeader() const
Definition CookOnTheFly.h:165
void SetHeader(const FCookOnTheFlyMessageHeader &InHeader)
Definition CookOnTheFly.h:171
bool IsOk() const
Definition CookOnTheFly.h:189
ECookOnTheFlyMessageStatus GetStatus() const
Definition CookOnTheFly.h:183
COOKONTHEFLY_API TUniquePtr< FArchive > ReadBody() const
Definition CookOnTheFly.cpp:52
const TArray< uint8 > & GetBody() const
Definition CookOnTheFly.h:213
TArray< uint8 > & GetBody()
Definition CookOnTheFly.h:207
int64 TotalSize() const
Definition CookOnTheFly.h:230
COOKONTHEFLY_API TUniquePtr< FArchive > WriteBody()
Definition CookOnTheFly.cpp:57
BodyType GetBodyAs() const
Definition CookOnTheFly.h:220
void SetBodyTo(BodyType InBody)
Definition CookOnTheFly.h:199
FCookOnTheFlyMessage(ECookOnTheFlyMessage MessageType)
Definition CookOnTheFly.h:146
TArray< uint8 > Body
Definition CookOnTheFly.h:245
Definition CookOnTheFly.h:253
FCookOnTheFlyRequest(ECookOnTheFlyMessage MessageType)
Definition CookOnTheFly.h:259
Definition CookOnTheFly.h:270
FCookOnTheFlyResponse(const FCookOnTheFlyRequest &Request)
Definition CookOnTheFly.h:282
FCookOnTheFlyResponse(ECookOnTheFlyMessage MessageType)
Definition CookOnTheFly.h:276
Definition CookOnTheFly.h:342
virtual ~ICookOnTheFlyModule()
Definition CookOnTheFly.h:344
virtual TUniquePtr< ICookOnTheFlyServerConnection > ConnectToServer(const FCookOnTheFlyHostOptions &HostOptions)=0
virtual TSharedPtr< ICookOnTheFlyServerConnection > GetDefaultServerConnection()=0
Definition CookOnTheFly.h:302
virtual const FString & GetPlatformName() const =0
virtual ~ICookOnTheFlyServerConnection()
Definition CookOnTheFly.h:304
virtual FMessageEvent & OnMessage()=0
DECLARE_EVENT_OneParam(ICookOnTheFlyServerConnection, FMessageEvent, const FCookOnTheFlyMessage &)
virtual bool IsConnected() const =0
virtual const FString & GetZenProjectName() const =0
virtual bool IsSingleThreaded() const =0
virtual const uint16 GetZenHostPort() const =0
virtual TFuture< FCookOnTheFlyResponse > SendRequest(FCookOnTheFlyRequest &Request)=0
virtual const FString & GetHost() const =0
virtual const TArray< FString > GetZenHostNames() const =0
ECookOnTheFlyMessageStatus
Definition CookOnTheFly.h:90
const TCHAR * LexToString(ECookOnTheFlyMessage Message)
Definition CookOnTheFly.h:59
ECookOnTheFlyMessage
Definition CookOnTheFly.h:27
Definition AdvancedWidgetsModule.cpp:13
Definition Timespan.h:76
Definition CookOnTheFly.h:294
TArray< FString > Hosts
Definition CookOnTheFly.h:296
FTimespan ServerStartupWaitTime
Definition CookOnTheFly.h:298
Definition CookOnTheFly.h:121
COOKONTHEFLY_API friend FArchive & operator<<(FArchive &Ar, FCookOnTheFlyMessageHeader &Header)
Definition CookOnTheFly.cpp:20
int64 Timestamp
Definition CookOnTheFly.h:129
COOKONTHEFLY_API FString ToString() const
Definition CookOnTheFly.cpp:12
ECookOnTheFlyMessage MessageType
Definition CookOnTheFly.h:123
uint32 CorrelationId
Definition CookOnTheFly.h:127
ECookOnTheFlyMessageStatus MessageStatus
Definition CookOnTheFly.h:125