Files
2025-05-18 13:04:45 +08:00

41 lines
1.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Installer/ChunkEvictionPolicy.h"
#include "Common/StatsCollector.h"
#if WITH_DEV_AUTOMATION_TESTS
namespace BuildPatchServices
{
class FMockChunkEvictionPolicy
: public IChunkEvictionPolicy
{
public:
typedef TTuple<double, TSet<FGuid>, int32, TSet<FGuid>, TSet<FGuid>> FQuery;
public:
virtual void Query(const TMap<FGuid, TUniquePtr<IChunkDataAccess>>& CurrentMap, int32 DesiredMax, TSet<FGuid>& OutCleanable, TSet<FGuid>& OutBootable) const override
{
OutCleanable = Cleanable;
OutBootable = Bootable;
RxQuery.Emplace(FStatsCollector::GetSeconds(), CurrentMapToKeySet(CurrentMap), DesiredMax, OutCleanable, OutBootable);
}
public:
TSet<FGuid> CurrentMapToKeySet(const TMap<FGuid, TUniquePtr<IChunkDataAccess>>& CurrentMap) const
{
TArray<FGuid> Result;
CurrentMap.GetKeys(Result);
return TSet<FGuid>(MoveTemp(Result));
}
public:
TSet<FGuid> Cleanable;
TSet<FGuid> Bootable;
mutable TArray<FQuery> RxQuery;
};
}
#endif //WITH_DEV_AUTOMATION_TESTS