57 lines
1.3 KiB
C++
57 lines
1.3 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "UnsyncBuffer.h"
|
|
#include "UnsyncCommon.h"
|
|
#include "UnsyncFile.h"
|
|
|
|
namespace unsync {
|
|
|
|
struct FNeedList;
|
|
class FProxyPool;
|
|
class FBlockCache;
|
|
class FScavengeDatabase;
|
|
|
|
struct FBuildTargetResult
|
|
{
|
|
bool bSuccess = false;
|
|
uint64 SourceBytes = 0;
|
|
uint64 BaseBytes = 0;
|
|
};
|
|
|
|
struct FBuildTargetParams
|
|
{
|
|
EStrongHashAlgorithmID StrongHasher;
|
|
FProxyPool* ProxyPool = nullptr;
|
|
FBlockCache* BlockCache = nullptr;
|
|
FScavengeDatabase* ScavengeDatabase = nullptr;
|
|
|
|
enum class ESourceType {
|
|
File,
|
|
Patch,
|
|
Server,
|
|
};
|
|
|
|
ESourceType SourceType = ESourceType::File;
|
|
};
|
|
|
|
FBuildTargetResult BuildTarget(FIOWriter& Result,
|
|
FIOReader& Source,
|
|
FIOReader& Base,
|
|
const FNeedList& NeedList,
|
|
const FBuildTargetParams& Params);
|
|
|
|
FBuffer BuildTargetBuffer(FIOReader& SourceProvider, FIOReader& BaseProvider, const FNeedList& NeedList, const FBuildTargetParams& Params);
|
|
|
|
FBuffer BuildTargetBuffer(const uint8* SourceData,
|
|
uint64 SourceSize,
|
|
const uint8* BaseData,
|
|
uint64 BaseSize,
|
|
const FNeedList& NeedList,
|
|
const FBuildTargetParams& Params);
|
|
|
|
FBuffer BuildTargetWithPatch(const uint8* PatchData, uint64 PatchSize, const uint8* BaseData, uint64 BaseSize);
|
|
|
|
} // namespace unsync
|