Files
UnrealEngineUWP/Engine/Source/Developer/DerivedDataCache/Public/DerivedDataPluginInterface.h
Matthew Griffin bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00

46 lines
1.6 KiB
C++

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
#pragma once
/**
* Interface for data deriving backends
* This API will not be called concurrently, except that Build might be called on different instances if IsBuildThreadsafe.
**/
class FDerivedDataPluginInterface
{
public:
virtual ~FDerivedDataPluginInterface()
{
}
/**
* Get the plugin name, this is used as the first part of the cache key
* @return Name of the plugin
**/
virtual const TCHAR* GetPluginName() const = 0;
/**
* Get the version of the plugin, this is used as part of the cache key. This is supposed to
* be a guid string ( ex. "69C8C8A6-A9F8-4EFC-875C-CFBB72E66486" )
* @return Version string of the plugin
**/
virtual const TCHAR* GetVersionString() const = 0;
/**
* Returns the largest and plugin specific part of the cache key. This must be a alphanumeric+underscore
* @return Version number of the plugin, for licensees.
**/
virtual FString GetPluginSpecificCacheKeySuffix() const = 0;
/**
* Indicates that this plugin is threadsafe. Note, the system itself will not call it concurrently if this false, however, then you are responsible for not calling the system itself concurrently.
* @return true if this plugin is threadsafe
**/
virtual bool IsBuildThreadsafe() const = 0;
/**
* Does the work of deriving the data.
* @param OutData Array of bytes to fill in with the result data
* @return true if successful, in the event of failure the cache is not updated and failure is propagated to the original caller.
**/
virtual bool Build(TArray<uint8>& OutData) = 0;
};