You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
34 lines
802 B
C
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
|