Files
UnrealEngineUWP/Engine/Source/Editor/AnimGraph/Public/PropertyAccessCompilerHandler.h
Thomas Sarkanen 8b3709fb28 Restricted anim BP compiler subsystem APIs
Removed direct access to currently compiling BP class to restrict unguarded mutation.
Const-corrected various accessors and overrides.
Moved UObject-based compiler subsystems to 'handlers' and removed UObject dependency.
Moved from set of virtual functions on subsystems/handlers to a restricted set of contexts passed to specific multicast delegates that handlers subscribe to.
Removed anim class subsystems.
Moved property access code to engine module (editor code is still in a plugin).
Fixed nativized builds where anim BPs have nativized/non-nativized classes in the hierarchy

#rb Dan.OConnor
#jira none

[CL 14278258 by Thomas Sarkanen in ue5-main branch]
2020-09-09 08:32:25 -04:00

32 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "Containers/ArrayView.h"
#include "Delegates/Delegate.h"
#include "IAnimBlueprintCompilerHandler.h"
enum class EPropertyAccessBatchType : uint8;
class IAnimBlueprintGeneratedClassCompiledData;
// Delegate called when the library is compiled (whether successfully or not)
DECLARE_MULTICAST_DELEGATE_OneParam(FOnPostLibraryCompiled, IAnimBlueprintGeneratedClassCompiledData& /*OutCompiledData*/)
class FPropertyAccessCompilerHandler : public IAnimBlueprintCompilerHandler
{
public:
// Add a copy to the property access library we are compiling
// @return an integer handle to the pending copy. This can be resolved to a true copy index by calling MapCopyIndex
virtual int32 AddCopy(TArrayView<FString> InSourcePath, TArrayView<FString> InDestPath, EPropertyAccessBatchType InBatchType, UObject* InObject = nullptr) = 0;
// Delegate called when the library is compiled (whether successfully or not)
virtual FSimpleMulticastDelegate& OnPreLibraryCompiled() = 0;
// Delegate called when the library is compiled (whether successfully or not)
virtual FOnPostLibraryCompiled& OnPostLibraryCompiled() = 0;
// Maps the initial integer copy handle to a true handle, post compilation
virtual int32 MapCopyIndex(int32 InIndex) const = 0;
};