7#ifndef PXR_EXEC_EF_SUB_EXECUTOR_H
8#define PXR_EXEC_EF_SUB_EXECUTOR_H
22PXR_NAMESPACE_OPEN_SCOPE
36 template <
typename>
class EngineType,
37 typename DataManagerType>
39 public VdfDataManagerBasedSubExecutor<DataManagerType, VdfExecutorInterface>
43 VdfDataManagerBasedSubExecutor<DataManagerType, VdfExecutorInterface>
49 using SpeculationEngineType =
50 typename EngineType<T>::SpeculationExecutorEngine;
55 EfSubExecutor<EngineType, DataManagerType>,
64 _engine(*this, &this->_dataManager)
71 _engine(*this, &this->_dataManager)
76 virtual ~EfSubExecutor() {}
80 virtual const VdfExecutorFactoryBase &GetFactory() const override final {
90 const VdfRequest &computeRequest,
97 virtual void _ClearData()
override;
101 static const _Factory _factory;
105 EngineType<DataManagerType> _engine;
111template <
template <
typename>
class EngineType,
typename DataManagerType>
112const typename EfSubExecutor<EngineType, DataManagerType>::_Factory
113 EfSubExecutor<EngineType, DataManagerType>::_factory;
115template <
template <
typename>
class EngineType,
typename DataManagerType>
117EfSubExecutor<EngineType, DataManagerType>::_Run(
119 const VdfRequest &computeRequest,
123 if (computeRequest.IsEmpty()) {
130 _engine.RunSchedule(schedule, computeRequest, errorLogger);
133template <
template <
typename>
class EngineType,
typename DataManagerType>
135EfSubExecutor<EngineType, DataManagerType>::_ClearData()
140 if (!Base::_dataManager.IsEmpty()) {
141 Base::_dataManager.Clear();
144 Base::InvalidateTopologicalState();
147PXR_NAMESPACE_CLOSE_SCOPE
A client may instantiate an object of this class and set it in an executor, to collect errors that ma...
Abstract base class for classes that execute a VdfNetwork to compute a requested set of values.
Contains a specification of how to execute a particular VdfNetwork.
Executor used in speculation.