UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
HttpManager.fake.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Containers/Ticker.h"
8
9#if WITH_DEV_AUTOMATION_TESTS
10
11namespace BuildPatchServices
12{
14 : public FMockHttpRequest
15 {
16 public:
17 virtual bool ProcessRequest() override;
18
19 public:
21 };
22
24 : public FMockHttpResponse
25 {
26 public:
27 virtual int32 GetResponseCode() const override;
28 virtual const TArray<uint8>& GetContent() const override;
29 virtual FString GetContentAsString() const override;
30 virtual uint64 GetContentLength() const override;
31
32 public:
35 };
36
38 : public FMockHttpManager
39 {
40 public:
42 virtual TSharedRef<IHttpRequest, ESPMode::ThreadSafe> CreateRequest() override;
43 virtual bool Tick(float Delta);
45
46 public:
51 };
52
53 bool FFakeHttpRequest::ProcessRequest()
54 {
56 return FakeHttpModule->OnProcessRequest(this);
57 }
58
59 int32 FFakeHttpResponse::GetResponseCode() const
60 {
61 return static_cast<int32>(Code);
62 }
63
64 const TArray<uint8>& FFakeHttpResponse::GetContent() const
65 {
66 return Data;
67 }
68
69 FString FFakeHttpResponse::GetContentAsString() const
70 {
73 return UTF8_TO_TCHAR(ZeroTerminatedPayload.GetData());
74 }
75
76 uint64 FFakeHttpResponse::GetContentLength() const
77 {
78 return Data.Num();
79 }
80
81 FFakeHttpManager::FFakeHttpManager(FTSTicker& Ticker)
82 {
83 Ticker.AddTicker(FTickerDelegate::CreateRaw(this, &FFakeHttpManager::Tick));
84 }
85
86 TSharedRef<IHttpRequest, ESPMode::ThreadSafe> FFakeHttpManager::CreateRequest()
87 {
89 NewRequests.Emplace(new FFakeHttpRequest());
90 NewRequests.Last()->FakeHttpModule = this;
91 return NewRequests.Last();
92 }
93
94 bool FFakeHttpManager::Tick(float Delta)
95 {
96 // Complete progressed.
98 {
100 FakeHttpResponse->Code = EHttpResponseCodes::Ok;
101 const FString& Url = ProgressedRequest->RxSetURL.Last().Get<0>();
102 if (DataServed.Contains(Url))
103 {
104 FakeHttpResponse->Data = DataServed[Url];
105 }
106 ProgressedRequest->HttpRequestCompleteDelegate.ExecuteIfBound(
109 true);
110 }
111
112 // Progress started.
113 ProgressedRequests = MoveTemp(RunningRequests);
115 {
116 const FString& Url = ProgressedRequest->RxSetURL.Last().Get<0>();
117 int32 Progress = 0;
118 if (DataServed.Contains(Url))
119 {
120 Progress = DataServed[Url].Num() / 2;
121 }
122 ProgressedRequest->HttpRequestProgressDelegate.ExecuteIfBound(
124 0,
125 Progress);
126 }
127
128 return true;
129 }
130
131 bool FFakeHttpManager::OnProcessRequest(FFakeHttpRequest* FakeHttpRequest)
132 {
133 int32 Index = NewRequests.IndexOfByPredicate([FakeHttpRequest](const TSharedRef<FFakeHttpRequest, ESPMode::ThreadSafe>& Element)
134 {
135 return &Element.Get() == FakeHttpRequest;
136 });
137 bool bValidRequest = Index >= 0;
138 if (bValidRequest)
139 {
141 bValidRequest = Request->RxSetURL.Num() > 0;
142 if (bValidRequest)
143 {
144 RunningRequests.Add(Request);
145 NewRequests.RemoveAtSwap(Index);
146 }
147 }
148 return bValidRequest;
149 }
150}
151
152#endif //WITH_DEV_AUTOMATION_TESTS
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
SharedPointerInternals::TRawPtrProxy< ObjectType > MakeShareable(ObjectType *InObject)
Definition SharedPointer.h:1947
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UTF8_TO_TCHAR(str)
Definition StringConv.h:1022
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition Ticker.h:27
CORE_API FDelegateHandle AddTicker(const FTickerDelegate &InDelegate, float InDelay=0.0f)
Definition Ticker.cpp:14
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:153
Definition BuildPatchFileConstructor.h:28
GeometryCollection::Facades::FMuscleActivationData Data
Definition MuscleActivationConstraints.h:15
Type
Definition IHttpResponse.h:18
@ Element
Definition Visu.h:18
U16 Index
Definition radfft.cpp:71