UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CrashUpload.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "CoreMinimal.h"
8#include "HAL/Platform.h"
11#include "PlatformErrorReport.h"
14
15struct FCompressedData;
17
19{
20public:
22
23 virtual ~FCrashUploadBase();
24
28 bool IsEnabled() const { return State != EUploadState::Disabled; }
29
33 bool IsUploadCalled() const { return bUploadCalled; }
34
38 const FText& GetStatusText() const { return UploadStateText; }
39
44 bool IsFinished() const
45 {
47 }
48
53 {
55 }
56
61
62 static bool IsInitialized() { return bInitialized; }
63
65
66 static void StaticShutdown();
67
68protected:
93
95
101 static const TCHAR* ToString(EUploadState::Type InState);
102
108
112 void AddReportToFailedList() const;
113
119
120protected:
122
125
128
131
134
137
140
142
143protected:
144 static bool bInitialized;
145
148
151};
152
153
158{
159public:
164 explicit FCrashUploadToReceiver(const FString& InReceiverAddress);
165
169 virtual ~FCrashUploadToReceiver();
170
176
177private:
182 bool SendCheckReportRequest();
183
187 void CompressAndSendData();
188
192 void AssignReportIdToPostDataBuffer();
193
197 void PostReportComplete();
198
205 void OnProcessRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded);
206
210 void OnPingSuccess();
211
218 bool PingTimeout(float DeltaTime);
219
223 void CheckPendingReportsForFilesToUpload();
224
228 void BeginUploadImpl();
229
234
238 void SendPingRequest();
239
246 static bool ParseServerResponse(FHttpResponsePtr Response, bool& OutValidReport);
247
249 FString UrlPrefix;
250};
251
256{
257public:
262 explicit FCrashUploadToDataRouter(const FString& InDataRouterUrl, const FString& InOptionalDataRouterUnixSocket);
263
268
270
276
280 void CompressAndSendData();
281
286
293 void OnProcessRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded);
294
295private:
299 void CheckPendingReportsForFilesToUpload();
300
301private:
303 FString DataRouterUrl;
304
306 FString DataRouterUnixSocket;
307
309 bool bResult = false;
310
312 int32 ResponseCode = 0;
313
315 uint32 PayloadSize = 0;
316
318 uint32 ReportCount = 0;
319
321 double Duration = 0.0;
322
324 FDurationTimer Timer;
325};
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
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
auto Response
Definition ExternalRpcRegistry.cpp:598
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition CrashUpload.h:19
EUploadState::Type PauseState
Definition CrashUpload.h:130
const FText & GetStatusText() const
Definition CrashUpload.h:38
int32 PendingReportDirectoryIndex
Definition CrashUpload.h:141
TArray< FString > PendingFiles
Definition CrashUpload.h:133
bool IsUploadCalled() const
Definition CrashUpload.h:33
FText UploadStateText
Definition CrashUpload.h:127
void AddReportToFailedList() const
Definition CrashUpload.cpp:346
virtual ~FCrashUploadBase()
Definition CrashUpload.cpp:114
void CleanCrashReportDirectory(const FString &CrashReportDirectory)
Definition CrashUpload.cpp:354
static bool CompressData(const TArray< FString > &InPendingFiles, struct FCompressedData &OutCompressedData, TArray< uint8 > &OutPostData, struct FCompressedHeader *OptionalHeader=nullptr)
Definition CrashUpload.cpp:139
static bool bInitialized
Definition CrashUpload.h:144
EUploadState::Type State
Definition CrashUpload.h:124
bool IsFinishedSuccessfully() const
Definition CrashUpload.h:52
bool IsEnabled() const
Definition CrashUpload.h:28
TArray< uint8 > PostData
Definition CrashUpload.h:139
static bool IsInitialized()
Definition CrashUpload.h:62
void SetCurrentState(EUploadState::Type InState)
Definition CrashUpload.cpp:314
bool bUploadCalled
Definition CrashUpload.h:121
static void StaticInitialize(const FPlatformErrorReport &PlatformErrorReport)
Definition CrashUpload.cpp:119
bool IsFinished() const
Definition CrashUpload.h:44
static TArray< FString > FailedReportDirectories
Definition CrashUpload.h:150
FPlatformErrorReport ErrorReport
Definition CrashUpload.h:136
FCrashUploadBase()
Definition CrashUpload.cpp:105
void Cancel()
Definition CrashUpload.h:57
static TArray< FString > PendingReportDirectories
Definition CrashUpload.h:147
static void StaticShutdown()
Definition CrashUpload.cpp:128
Definition CrashUpload.h:256
virtual ~FCrashUploadToDataRouter()
Definition CrashUpload.cpp:744
TSharedRef< IHttpRequest, ESPMode::ThreadSafe > CreateHttpRequest()
Definition CrashUpload.cpp:835
void CompressAndSendData()
Definition CrashUpload.cpp:786
void OnProcessRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded)
Definition CrashUpload.cpp:842
void BeginUpload(const FPlatformErrorReport &PlatformErrorReport)
Definition CrashUpload.cpp:753
void BeginUploadOptionalAttachments(const FPlatformErrorReport &PlatformErrorReport)
Definition CrashUpload.cpp:771
Definition CrashUpload.h:158
virtual ~FCrashUploadToReceiver()
Definition CrashUpload.cpp:388
void BeginUpload(const FPlatformErrorReport &PlatformErrorReport)
Definition CrashUpload.cpp:411
Definition ScopedTimers.h:32
Definition GenericErrorReport.h:20
Definition Text.h:385
Definition Array.h:670
Definition SharedPointer.h:153
Definition CrashUpload.cpp:94
Definition CrashUpload.cpp:71
Definition CrashUpload.h:71
Type
Definition CrashUpload.h:73
@ FirstCompletedState
Definition CrashUpload.h:90
@ Cancelled
Definition CrashUpload.h:87
@ PostingReportComplete
Definition CrashUpload.h:82
@ Finished
Definition CrashUpload.h:83
@ NotSet
Definition CrashUpload.h:74
@ WaitingToPostReportComplete
Definition CrashUpload.h:81
@ Disabled
Definition CrashUpload.h:88
@ PingingServer
Definition CrashUpload.h:76
@ ServerNotAvailable
Definition CrashUpload.h:85
@ CheckingReportDetail
Definition CrashUpload.h:79
@ CompressAndSendData
Definition CrashUpload.h:80
@ UploadError
Definition CrashUpload.h:86
@ CheckingReport
Definition CrashUpload.h:78
@ Ready
Definition CrashUpload.h:77