Loading...
Searching...
No Matches
datalessExecutor.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_DATALESS_EXECUTOR_H
8#define PXR_EXEC_VDF_DATALESS_EXECUTOR_H
9
11
12#include "pxr/pxr.h"
13
14#include "pxr/exec/vdf/api.h"
16
17PXR_NAMESPACE_OPEN_SCOPE
18
19class VdfOutput;
20class VdfVector;
21
31
32class VDF_API_TYPE VdfDatalessExecutor : public VdfExecutorInterface
33{
34public:
35
38 VDF_API
40
45 VDF_API
46 virtual void SetOutputValue(
47 const VdfOutput &output,
48 const VdfVector &value,
49 const VdfMask &mask) override;
50
55 VDF_API
56 virtual bool TakeOutputValue(
57 const VdfOutput &output,
58 VdfVector *value,
59 const VdfMask &mask) override;
60
66 virtual bool IsEmpty() const override {
67 return true;
68 }
69
70protected:
71
74 VDF_API
76
79 virtual const VdfVector *_GetInputValue(
80 const VdfConnection &connection,
81 const VdfMask &mask) const override {
82 return NULL;
83 }
84
88 const VdfOutput &output,
89 const VdfMask &mask) const override {
90 return NULL;
91 }
92
96 const VdfOutput &output) const override {
97 return NULL;
98 }
99
105 const VdfId outputId, const VdfId nodeId) override {}
106
111 virtual void _ClearData() override {}
112
119 virtual void _UpdateInvalidationTimestamp() override {}
120
126 VDF_API
128 const VdfOutput &destOutput,
129 const VdfOutput &sourceOutput,
130 const VdfMask &sourceMask) const override;
131
138 virtual void _TouchOutput(const VdfOutput &output) const override {}
139
140};
141
142PXR_NAMESPACE_CLOSE_SCOPE
143
144#endif
A class that fully represents a connection between two VdfNodes.
Definition: connection.h:30
An abstract base class for executors, which do not store any data at all.
virtual void _TouchOutput(const VdfOutput &output) const override
Mark the output as having been visited.
virtual void _ClearData() override
Clears all the data caches associated with any output in the network.
virtual bool IsEmpty() const override
Returns true of the data manager is empty.
void _ClearDataForOutput(const VdfId outputId, const VdfId nodeId) override
Clears the data for a specific output on this executor.
virtual VdfVector * _GetOutputValueForWriting(const VdfOutput &output) const override
Returns an output value for writing.
virtual VDF_API bool TakeOutputValue(const VdfOutput &output, VdfVector *value, const VdfMask &mask) override
Transfers ownership of value to the given output.
virtual VDF_API void _SetReferenceOutputValue(const VdfOutput &destOutput, const VdfOutput &sourceOutput, const VdfMask &sourceMask) const override
Called to set destOutput's buffer output to be a reference to the buffer output of sourceOutput.
virtual const VdfVector * _GetOutputValueForReading(const VdfOutput &output, const VdfMask &mask) const override
Returns an output value for reading.
virtual const VdfVector * _GetInputValue(const VdfConnection &connection, const VdfMask &mask) const override
Returns a value for the cache that flows across connection.
virtual void _UpdateInvalidationTimestamp() override
Called before invalidation begins to update the timestamp that will be written for every VdfOutput vi...
virtual VDF_API void SetOutputValue(const VdfOutput &output, const VdfVector &value, const VdfMask &mask) override
Sets the cached value for a given output.
virtual VDF_API ~VdfDatalessExecutor()
Destructor.
VDF_API VdfDatalessExecutor()
Protected default constructor.
Abstract base class for classes that execute a VdfNetwork to compute a requested set of values.
A VdfMask is placed on connections to specify the data flowing through them.
Definition: mask.h:37
A VdfOutput represents an output on a node.
Definition: output.h:32
This class is used to abstract away knowledge of the cache data used for each node.
Definition: vector.h:56
uint64_t VdfId
The unique identifier type for Vdf objects.
Definition: types.h:107