HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
executorFactoryBase.h
Go to the documentation of this file.
1 //
2 // Copyright 2025 Pixar
3 //
4 // Licensed under the terms set forth in the LICENSE.txt file available at
5 // https://openusd.org/license.
6 //
7 #ifndef PXR_EXEC_VDF_EXECUTOR_FACTORY_BASE_H
8 #define PXR_EXEC_VDF_EXECUTOR_FACTORY_BASE_H
9 
10 ///\file
11 
12 #include "pxr/pxr.h"
13 
14 #include <memory>
15 
17 
20 class VdfSpeculationNode;
21 
22 ///////////////////////////////////////////////////////////////////////////////
23 ///
24 /// \class VdfExecutorFactoryBase
25 ///
26 ///
27 ///
29 {
30 public:
31 
32  /// Manufactures a new executor, which in an executor hierarchy can be
33  /// parented underneath the executor owning this factory.
34  ///
35  virtual std::unique_ptr<VdfExecutorInterface> ManufactureChildExecutor(
36  const VdfExecutorInterface *parentExecutor) const = 0;
37 
38  /// Manufactures a new speculation executor with the same traits as the
39  /// executor owning this factory.
40  ///
41  virtual std::unique_ptr<VdfSpeculationExecutorBase>
43  const VdfSpeculationNode *speculationNode,
44  const VdfExecutorInterface *parentExecutor) const = 0;
45 
46 protected:
47 
48  /// Protected destructor. We don't allow deletion of instances of this
49  /// class via polymorphic base pointers.
50  ///
51  ~VdfExecutorFactoryBase() = default;
52 
53 };
54 
55 ///////////////////////////////////////////////////////////////////////////////
56 
58 
59 #endif
virtual std::unique_ptr< VdfSpeculationExecutorBase > ManufactureSpeculationExecutor(const VdfSpeculationNode *speculationNode, const VdfExecutorInterface *parentExecutor) const =0
#define PXR_NAMESPACE_OPEN_SCOPE
Definition: pxr.h:73
virtual std::unique_ptr< VdfExecutorInterface > ManufactureChildExecutor(const VdfExecutorInterface *parentExecutor) const =0
A node that pulls on a vector of value that are downstream of the current execution position...
~VdfExecutorFactoryBase()=default
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74
Abstract base class for classes that execute a VdfNetwork to compute a requested set of values...