Files
UnrealEngineUWP/Engine/Source/Developer/DerivedDataCache/Private/DerivedDataHttpRequestQueue.h
devin doucette 24cd18db32 DDC: Extracted FHttpCacheStoreRequestQueue for reuse by Zen
#rb Zousar.Shaker
#rnx

[CL 33843384 by devin doucette in ue5-main branch]
2024-05-22 16:38:43 -04:00

34 lines
802 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/LockFreeList.h"
#include "Http/HttpClient.h"
template <typename FuncType> class TUniqueFunction;
namespace UE::DerivedData { class IRequestOwner; }
namespace UE::DerivedData
{
class FHttpRequestQueue
{
public:
using FOnRequest = TUniqueFunction<void(THttpUniquePtr<IHttpRequest>&& Request)>;
void Initialize(IHttpConnectionPool& ConnectionPool, const FHttpClientParams& ClientParams);
void CreateRequestAsync(IRequestOwner& Owner, const FHttpRequestParams& Params, FOnRequest&& OnRequest);
private:
bool TryGiveRequestToQueue(THttpUniquePtr<IHttpRequest>&& Request);
class FQueueRequest;
THttpUniquePtr<IHttpClient> Client;
TLockFreePointerListFIFO<FQueueRequest, 0> Queue;
};
} // UE::DerivedData