7#ifndef PXR_EXEC_EF_PAGE_CACHE_SUB_EXECUTOR_H
8#define PXR_EXEC_EF_PAGE_CACHE_SUB_EXECUTOR_H
20PXR_NAMESPACE_OPEN_SCOPE
36 template <
typename>
class EngineType,
37 typename DataManagerType>
47 using SpeculationEngineType =
48 typename EngineType<T>::SpeculationExecutorEngine;
53 EfSubExecutor<EngineType, DataManagerType>,
76 virtual const VdfExecutorFactoryBase &
GetFactory() const override final {
86 const VdfMask &mask)
const override;
90 virtual const VdfVector *_GetOutputValueForReading(
92 const VdfMask &mask)
const override;
102 virtual void _ClearData();
106 static const _Factory _factory;
112template <
template <
typename>
class EngineType,
typename DataManagerType>
113const typename EfPageCacheSubExecutor<EngineType, DataManagerType>::_Factory
116template <
template <
typename>
class EngineType,
typename DataManagerType>
127template <
template <
typename>
class EngineType,
typename DataManagerType>
135 Base::_GetInputValue(connection, mask)) {
144template <
template <
typename>
class EngineType,
typename DataManagerType>
152 Base::_GetOutputValueForReading(output, mask)) {
157 return _GetParentExecutorValue(output, mask);
160template <
template <
typename>
class EngineType,
typename DataManagerType>
167 return parentExecutor
173template <
template <
typename>
class EngineType,
typename DataManagerType>
181 if (!Base::_dataManager.IsEmpty()) {
182 Base::_dataManager.Clear();
186PXR_NAMESPACE_CLOSE_SCOPE
Executes a VdfNetwork to compute a requested set of values.
Manages a page cache and provides methods for invalidation of cached values.
Executes a VdfNetwork to compute a requested set of values.
EfPageCacheSubExecutor(EfPageCacheStorage *cacheStorage)
Constructor.
virtual ~EfPageCacheSubExecutor()
Destructor.
virtual const VdfExecutorFactoryBase & GetFactory() const override final
Factory construction.
A class that fully represents a connection between two VdfNodes.
const VdfOutput & GetSourceOutput() const
Returns the output (ie. source) for this connection.
Abstract base class for classes that execute a VdfNetwork to compute a requested set of values.
const VdfVector * GetOutputValue(const VdfOutput &output, const VdfMask &mask) const
Returns the cached value for a given output if it has a cache that contains all values specified by m...
VDF_API void SetParentExecutor(const VdfExecutorInterface *parentExecutor)
Sets the parent executor.
A VdfMask is placed on connections to specify the data flowing through them.
A VdfOutput represents an output on a node.
Executor used in speculation.
This class is used to abstract away knowledge of the cache data used for each node.