Files
UnrealEngineUWP/Engine/Source/Programs/Unsync/Private/UnsyncHorde.h
yuriy odonnell c3f2a984c2 unsync - Groundwork for downloading Horde artifacts
* Recognize Horde artifact URLs
* Download and decode manifest from Horde

[CL 34189213 by yuriy odonnell in ue5-main branch]
2024-06-07 00:03:58 -04:00

33 lines
991 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "UnsyncCommon.h"
#include "UnsyncProxy.h"
namespace unsync {
class FBlockRequestMap;
struct FRemoteDesc;
struct FHordeProtocolImpl : FRemoteProtocolBase
{
FHordeProtocolImpl(const FRemoteDesc& InRemoteDesc, const FBlockRequestMap* InRequestMap, FProxyPool& InProxyPool);
virtual bool IsValid() const { return bValid; }
virtual void Invalidate() { bValid = false; }
virtual FDownloadResult Download(const TArrayView<FNeedBlock> NeedBlocks, const FBlockDownloadCallback& CompletionCallback);
virtual TResult<FDirectoryManifest> DownloadManifest(std::string_view ManifestName);
static TResult<ProxyQuery::FHelloResponse> QueryHello(FHttpConnection& HttpConnection);
FProxyPool& ProxyPool;
bool bValid = true;
};
bool RequestPathLooksLikeHordeArtifact(std::string_view RequestPath);
TResult<FDirectoryManifest> DecodeHordeManifestJson(const char* JsonString, std::string_view ArtifactRoot);
} // namespace unsync