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