// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Containers/ContainerAllocationPolicies.h" #include "Containers/SortedMap.h" #include "Evaluation/MovieSceneEvaluationTemplateInstance.h" #include "Templates/UniquePtr.h" class UMovieSceneCompiledDataManager; struct FGuid; struct FMovieSceneCompiledDataID; struct FMovieSceneSequenceID; namespace UE { namespace MovieScene { struct FSharedPlaybackState; struct FCompiledDataVolatilityManager { static TUniquePtr Construct(TSharedRef SharedPlaybackState); FCompiledDataVolatilityManager(TSharedRef SharedPlaybackState); bool ConditionalRecompile(); private: bool HasBeenRecompiled() const; bool HasSequenceBeenRecompiled(FMovieSceneCompiledDataID DataID, FMovieSceneSequenceID SequenceID) const; void UpdateCachedSignatures(); private: TWeakPtr WeakSharedPlaybackState; TSortedMap> CachedCompilationSignatures; }; } // namespace MovieScene } // namespace UE