You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL33838807
[FYI] Rob.Gay
Original CL Desc
-----------------------------------------------------------------
- Move MetaSound input/output editor validation, GetMemberName/Description, IsInterfaceMember to builder API
- Add warnings on register for interface vertex members (disabled until projects are complaint) to ensure they are following the expected naming convention (i.e. namespace matches that of owning interface)
- Note this is editor only to avoid spamming cook and failing builds
- Move versioning to use shared builder now that IDocumentBuilderRegistry is available prior to all asset serialize load calls. This ensures that multiple builders are not accessing the same asset when loading and versioning/migrating old editor data
#jira UE-194160
#rb phil.popp
#rnx
[CL 33957350 by rob gay in ue5-main branch]
64 lines
2.9 KiB
C++
64 lines
2.9 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
#pragma once
|
|
|
|
|
|
#include "Interfaces/MetasoundFrontendInterfaceRegistry.h"
|
|
#include "MetasoundFrontendDocument.h"
|
|
#include "MetasoundNodeInterface.h"
|
|
|
|
|
|
namespace Metasound::Frontend
|
|
{
|
|
/** Interface for frontend search engine. A frontend search engine provides
|
|
* a simple interface for common frontend queries. It also serves as an
|
|
* opportunity to cache queries to reduce CPU load.
|
|
*/
|
|
class METASOUNDFRONTEND_API ISearchEngine
|
|
{
|
|
public:
|
|
/** Return an instance of a search engine. */
|
|
static ISearchEngine& Get();
|
|
|
|
virtual ~ISearchEngine() = default;
|
|
|
|
/** Updates internal state to speed up queries. */
|
|
virtual void Prime() = 0;
|
|
|
|
/** Find the class with the given ClassName & Major Version. Returns false if not found, true if found. */
|
|
virtual bool FindClassWithHighestMinorVersion(const FMetasoundFrontendClassName& InName, int32 InMajorVersion, FMetasoundFrontendClass& OutClass) = 0;
|
|
|
|
/** Finds all registered interfaces with the given name. */
|
|
virtual TArray<FMetasoundFrontendVersion> FindAllRegisteredInterfacesWithName(FName InInterfaceName) = 0;
|
|
|
|
/** Finds the registered interface with the highest version of the given name. Returns true if found, false if not. */
|
|
virtual bool FindInterfaceWithHighestVersion(FName InInterfaceName, FMetasoundFrontendInterface& OutInterface) = 0;
|
|
|
|
UE_DEPRECATED(5.3, "Use ISearchEngine::FindUClassDefaultInterfaceVersions using TopLevelAssetPath instead.")
|
|
virtual TArray<FMetasoundFrontendInterface> FindUClassDefaultInterfaces(FName InUClassName) = 0;
|
|
|
|
/** Returns all interfaces that are to be added to a given document when it is initialized on an object with the given class**/
|
|
virtual TArray<FMetasoundFrontendVersion> FindUClassDefaultInterfaceVersions(const FTopLevelAssetPath& InUClassPath) = 0;
|
|
|
|
#if WITH_EDITORONLY_DATA
|
|
/** Find all FMetasoundFrontendClasses.
|
|
* (Optional) Include all versions (i.e. deprecated classes and versions of classes that are not the highest major version).
|
|
*/
|
|
virtual TArray<FMetasoundFrontendClass> FindAllClasses(bool bInIncludeAllVersions) = 0;
|
|
|
|
/** Find all classes with the given ClassName.
|
|
* (Optional) Sort matches based on version.
|
|
*/
|
|
virtual TArray<FMetasoundFrontendClass> FindClassesWithName(const FMetasoundFrontendClassName& InName, bool bInSortByVersion) = 0;
|
|
|
|
/** Find the highest version of a class with the given ClassName. Returns false if not found, true if found. */
|
|
virtual bool FindClassWithHighestVersion(const FMetasoundFrontendClassName& InName, FMetasoundFrontendClass& OutClass) = 0;
|
|
|
|
/** Returns array with all registered interfaces. Optionally, include interface versions that are not the highest version. */
|
|
virtual TArray<FMetasoundFrontendInterface> FindAllInterfaces(bool bInIncludeAllVersions = false) = 0;
|
|
#endif // WITH_EDITORONLY_DATA
|
|
|
|
protected:
|
|
ISearchEngine() = default;
|
|
};
|
|
} // namespace Metasound::Frontend
|