7 #ifndef PXR_EXEC_VDF_SUB_EXECUTOR_H
8 #define PXR_EXEC_VDF_SUB_EXECUTOR_H
14 #include "pxr/base/tf/mallocTag.h"
36 template <
typename>
class EngineType,
37 typename DataManagerType>
49 using SpeculationEngineType =
50 typename EngineType<T>::SpeculationExecutorEngine;
97 virtual void _ClearData()
override;
101 static const _Factory _factory;
105 EngineType<DataManagerType> _engine;
111 template <
template <
typename>
class EngineType,
typename DataManagerType>
115 template <
template <
typename>
class EngineType,
typename DataManagerType>
123 if (computeRequest.
IsEmpty()) {
128 TfAutoMallocTag2 tag(
"Ef",
"VdfSubExecutor::Run");
130 _engine.RunSchedule(schedule, computeRequest, errorLogger);
133 template <
template <
typename>
class EngineType,
typename DataManagerType>
140 if (!Base::_dataManager.IsEmpty()) {
141 Base::_dataManager.Clear();
144 Base::InvalidateTopologicalState();
virtual const VdfExecutorFactoryBase & GetFactory() const overridefinal
#define PXR_NAMESPACE_OPEN_SCOPE
VDF_API bool IsEmpty() const
virtual ~VdfSubExecutor()
**But if you need a or simply need to know when the task has note that the like this
Executor used in speculation.
virtual void _Run(const VdfSchedule &schedule, const VdfRequest &computeRequest, VdfExecutorErrorLogger *errorLogger) override
DataManagerType _dataManager
Contains a specification of how to execute a particular VdfNetwork.
VdfSubExecutor(const VdfExecutorInterface *parentExecutor)
#define PXR_NAMESPACE_CLOSE_SCOPE
Abstract base class for classes that execute a VdfNetwork to compute a requested set of values...