HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
simpleExecutor.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_SIMPLE_EXECUTOR_H
8 #define PXR_EXEC_VDF_SIMPLE_EXECUTOR_H
9 
10 ///\file
11 
12 #include "pxr/pxr.h"
13 
14 #include "pxr/exec/vdf/api.h"
18 
20 
24 class VdfSchedule;
25 
26 ///////////////////////////////////////////////////////////////////////////////
27 ///
28 /// \class VdfSimpleExecutor
29 ///
30 /// \brief Executes a VdfNetwork to compute a requested set of values using
31 /// depth first search.
32 ///
35  VdfParallelDataManagerVector,
36  VdfExecutorInterface>
37 {
38 public:
39  /// Destructor
40  ///
41  VDF_API
42  virtual ~VdfSimpleExecutor();
43 
44  /// Factory construction.
45  ///
46  VDF_API
47  virtual const VdfExecutorFactoryBase &GetFactory() const override final;
48 
49 protected:
50 
51  /// The data manager type used by this executor.
52  ///
54 
55  /// The data handle type defined by the data manager.
56  ///
58 
59  /// Executes the \p schedule.
60  ///
61  /// VdfSimpleExecutor ignores the computeRequest and computes all the
62  /// outputs in the schedule.
63  ///
64  VDF_API
65  virtual void _Run(
66  const VdfSchedule &schedule,
67  const VdfRequest &computeRequest,
68  VdfExecutorErrorLogger *errorLogger) override;
69 
70  /// Prepares a buffer to be used as a read/write output.
71  ///
72  VDF_API
73  void _PrepareReadWriteBuffer(
74  VdfExecutorBufferData *bufferData,
75  const VdfInput &input,
76  const VdfMask &mask,
77  const VdfSchedule &schedule);
78 
79 };
80 
81 ///////////////////////////////////////////////////////////////////////////////
82 
84 
85 #endif
#define PXR_NAMESPACE_OPEN_SCOPE
Definition: pxr.h:73
typename DataManagerType::DataHandle _DataHandle
A VdfMask is placed on connections to specify the data flowing through them.
Definition: mask.h:36
#define VDF_API
Definition: api.h:25
Definition: input.h:35
Contains a specification of how to execute a particular VdfNetwork.
Definition: schedule.h:40
GLint GLuint mask
Definition: glcorearb.h:124
This object is responsible for storing the executor buffer data, comprised of the executor cache vect...
This is a data manager for executors that uses data stored in a vector indexed by output ids...
#define VDF_API_TYPE
Definition: api.h:26
Executes a VdfNetwork to compute a requested set of values using depth first search.
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74
Vdf_ParallelExecutorDataManagerTraits< VdfParallelDataManagerVector >::DataHandle DataHandle