Files
UnrealEngineUWP/Engine/Source/Programs/CrashReportClient/Private/CrashReportUtil.h
Robert Manuszewski 2752c82adc Merging //UE4/Dev-Main @ 4664414 to Dev-Core (//UE4/Dev-Core)
#rb none

[CL 4675693 by Robert Manuszewski in Dev-Core branch]
2019-01-02 00:55:51 -05:00

50 lines
1.3 KiB
C++

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "GenericPlatform/GenericPlatformFile.h"
/**
* Helper class for MakeDirectoryVisitor
*/
template <class FunctorType>
class FunctorDirectoryVisitor : public IPlatformFile::FDirectoryVisitor
{
public:
/**
* Pass a directory or filename on to the user-provided functor
* @param FilenameOrDirectory Full path to a file or directory
* @param bIsDirectory Whether the path refers to a file or directory
* @return Whether to carry on iterating
*/
virtual bool Visit(const TCHAR* FilenameOrDirectory, bool bIsDirectory) override
{
return Functor(FilenameOrDirectory, bIsDirectory);
}
/**
* Move the provided functor into this object
*/
FunctorDirectoryVisitor(FunctorType&& FunctorInstance)
: Functor(MoveTemp(FunctorInstance))
{
}
private:
/** User-provided functor */
FunctorType Functor;
};
/**
* Convert a C++ functor into a IPlatformFile visitor object
* @param FunctorInstance Function object to call for each directory item
* @return Visitor object to be passed to platform directory visiting functions
*/
template <class Functor>
FunctorDirectoryVisitor<Functor> MakeDirectoryVisitor(Functor&& FunctorInstance)
{
return FunctorDirectoryVisitor<Functor>(MoveTemp(FunctorInstance));
}