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