UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IBackgroundHttpRequest.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
8//Included as we use EHttpResponseCode
10
11//Included for FBackgroundHttpRequestMetricsExtended
13
17
18
19
27
35DECLARE_DELEGATE_ThreeParams(FBackgroundHttpProgressUpdateDelegate, FBackgroundHttpRequestPtr /*Request*/, int32 /*TotalBytesWritten*/, int32 /*BytesWrittenSinceLastUpdate*/);
36
43DECLARE_DELEGATE_ThreeParams(FBackgroundHttpRequestMetricsDelegate, FBackgroundHttpRequestPtr /* Request */, int32 /* TotalBytesDownloaded */, float /* DownloadDuration */);
44
51
57{
58 High
59 , Normal
60 , Low
61 , Num
62};
63
65{
66 switch (InType)
67 {
69 return TEXT("High");
71 return TEXT("Normal");
73 return TEXT("Low");
75 return TEXT("INVALID(Num)");
76
77 default:
78 break;
79 }
80 return TEXT("<Unknown EBackgroundHTTPPriority>");
81}
82
84{
85 if (FCString::Stricmp(InBuffer, TEXT("High")) == 0)
86 {
88 return true;
89 }
90 if (FCString::Stricmp(InBuffer, TEXT("Normal")) == 0)
91 {
93 return true;
94 }
95 if (FCString::Stricmp(InBuffer, TEXT("Low")) == 0)
96 {
98 return true;
99 }
100 return false;
101}
102
107 : public TSharedFromThis<IBackgroundHttpRequest, ESPMode::ThreadSafe>
108{
109public:
118 virtual void SetURLAsList(const TArray<FString>& URLs, int NumRetriesToAttempt) = 0;
119
126 virtual const TArray<FString>& GetURLList() const = 0;
127
136 virtual void SetExpectedResultSize(const uint64 ExpectedSize) {}
137
144 virtual uint64 GetExpectedResultSize() const {return 0;}
145
156 virtual void SetCompleteNotification(FBackgroundHttpNotificationObjectPtr DownloadCompleteNotificationObject) = 0;
157
164
169
174
178 UE_DEPRECATED(5.7, "IBackgroundHttpRequest::OnRequestMetrics is deprecated, please use IBackgroundHttpRequest::OnRequestMetricsExtended instead.")
180
185
186
191 virtual void SetMetrics(const int32 TotalBytesDownloaded, const float DownloadDuration) {}
192
197
198
206 virtual bool ProcessRequest() = 0;
207
216 virtual bool HandleDelayedProcess() = 0;
217
221 virtual void CancelRequest() = 0;
222
226 virtual void PauseRequest() = 0;
227
231 virtual void ResumeRequest() = 0;
232
238 virtual const FBackgroundHttpResponsePtr GetResponse() const = 0;
239
245 virtual const FString& GetRequestID() const = 0;
246
253 virtual void SetRequestID(const FString& NewRequestID) = 0;
254
261
268
272 virtual ~IBackgroundHttpRequest() = default;
273
274#if !UE_BUILD_SHIPPING
279#endif
280};
281
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#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::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:57
#define DECLARE_DELEGATE_ThreeParams(DelegateName, Param1Type, Param2Type, Param3Type)
Definition DelegateCombinations.h:66
TSharedPtr< class IBackgroundHttpRequest, ESPMode::ThreadSafe > FBackgroundHttpRequestPtr
Definition IBackgroundHttpRequest.h:14
bool LexTryParseString(EBackgroundHTTPPriority &OutMode, const TCHAR *InBuffer)
Definition IBackgroundHttpRequest.h:83
const TCHAR * LexToString(EBackgroundHTTPPriority InType)
Definition IBackgroundHttpRequest.h:64
EBackgroundHTTPPriority
Definition IBackgroundHttpRequest.h:57
TSharedPtr< class IBackgroundHttpManager, ESPMode::ThreadSafe > FBackgroundHttpManagerPtr
Definition IBackgroundHttpRequest.h:16
TSharedPtr< class IBackgroundHttpResponse, ESPMode::ThreadSafe > FBackgroundHttpResponsePtr
Definition IBackgroundHttpRequest.h:15
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition UnrealType.h:3087
Definition IBackgroundHttpRequest.h:108
virtual ~IBackgroundHttpRequest()=default
virtual const TArray< FString > & GetURLList() const =0
virtual EBackgroundHTTPPriority GetRequestPriority() const =0
virtual FBackgroundHttpRequestMetricsExtendedDelegate & OnRequestMetricsExtended()=0
virtual void PauseRequest()=0
virtual void CompleteWithExistingResponseData(FBackgroundHttpResponsePtr BackgroundResponse)=0
virtual void SetMetricsExtended(const FBackgroundHttpRequestMetricsExtended ExtendedMetrics)
Definition IBackgroundHttpRequest.h:196
virtual uint64 GetExpectedResultSize() const
Definition IBackgroundHttpRequest.h:144
virtual void ResumeRequest()=0
virtual void SetExpectedResultSize(const uint64 ExpectedSize)
Definition IBackgroundHttpRequest.h:136
virtual FBackgroundHttpRequestCompleteDelegate & OnProcessRequestComplete()=0
virtual void SetURLAsList(const TArray< FString > &URLs, int NumRetriesToAttempt)=0
virtual bool ProcessRequest()=0
virtual const FString & GetRequestID() const =0
virtual void SetCompleteNotification(FBackgroundHttpNotificationObjectPtr DownloadCompleteNotificationObject)=0
virtual bool HandleDelayedProcess()=0
virtual FBackgroundHttpProgressUpdateDelegate & OnProgressUpdated()=0
virtual FBackgroundHttpRequestMetricsDelegate & OnRequestMetrics()=0
virtual void SetRequestPriority(EBackgroundHTTPPriority NewPriority)=0
virtual void CancelRequest()=0
virtual const FBackgroundHttpResponsePtr GetResponse() const =0
virtual void SetMetrics(const int32 TotalBytesDownloaded, const float DownloadDuration)
Definition IBackgroundHttpRequest.h:191
virtual void SetRequestID(const FString &NewRequestID)=0
virtual void GetDebugText(TArray< FString > &Output)
Definition IBackgroundHttpRequest.h:278
Definition Array.h:670
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition BackgroundHttpMetrics.h:8
static UE_FORCEINLINE_HINT int32 Stricmp(const CharType *String1, const CharType *String2)
Definition CString.h:1030