// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "HAL/PlatformFileManager.h" namespace BuildPatchServices { struct FFileAttributes { bool bReadOnly; bool bCompressed; bool bUnixExecutable; TSet InstallTags; FFileAttributes(); }; class FFileAttributesParser { public: /** * Loads in the file attributes meta file and populates the given map. * @param MetaFilename The amount of data to attempt to retrieve. * @param FileAttributes The map to populate with the attributes * @return True if the file existed and parsed successfully */ virtual bool ParseFileAttributes(const FString& MetaFilename, TMap& FileAttributes) = 0; }; typedef TSharedRef FFileAttributesParserRef; typedef TSharedPtr FFileAttributesParserPtr; class FFileAttributesParserFactory { public: static FFileAttributesParserRef Create(IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile()); }; }