7 #ifndef PXR_EXEC_VDF_PARALLEL_EXECUTOR_DATA_MANAGER_INTERFACE_H
8 #define PXR_EXEC_VDF_PARALLEL_EXECUTOR_DATA_MANAGER_INTERFACE_H
29 template <
typename DerivedClass,
typename DataHandle>
46 _Self()->Resize(network);
56 return _Self()->IsValidDataHandle(handle);
65 return _Self()->GetOrCreateDataHandle(outputId);
73 return _Self()->GetDataHandle(outputId);
83 const DataHandle handle)
const {
84 return _Self()->GetPrivateBufferData(handle);
94 const DataHandle handle)
const {
95 return _Self()->GetScratchBufferData(handle);
105 const DataHandle handle)
const {
106 return _Self()->GetPublicBufferData(handle);
118 _Self()->PublishPrivateBufferData(handle);
130 _Self()->PublishScratchBufferData(handle);
141 const DataHandle handle)
const {
142 return _Self()->GetTransferredBufferData(handle);
158 const DataHandle handle,
161 return _Self()->TransferBufferData(handle, value, mask);
172 _Self()->ResetTransferredBufferData(handle);
182 const DataHandle handle)
const {
183 return _Self()->GetInvalidationData(handle);
193 const DataHandle handle)
const {
194 return _Self()->GetInvalidationTimestamp(handle);
203 const DataHandle handle,
205 _Self()->SetInvalidationTimestamp(handle, ts);
212 return _Self()->IsTouched(outputId);
219 _Self()->Touch(outputId);
226 return _Self()->Untouch(outputId);
232 return _Self()->ClearDataForOutput(output);
238 const DerivedClass * _Self()
const {
239 return static_cast<const DerivedClass *
>(
this);
244 DerivedClass * _Self() {
245 return static_cast<DerivedClass *
>(
this);
The interface contract for the static polymorphism used by parallel executor data manager implementat...
void _ResetTransferredBufferData(const DataHandle handle)
VdfExecutorInvalidationData * _GetInvalidationData(const DataHandle handle) const
#define PXR_NAMESPACE_OPEN_SCOPE
GLsizei const GLfloat * value
DataHandle _GetOrCreateDataHandle(const VdfId outputId) const
bool _IsTouched(const VdfId outputId) const
A VdfMask is placed on connections to specify the data flowing through them.
void _Resize(const VdfNetwork &network)
bool _TransferBufferData(const DataHandle handle, VdfVector *value, const VdfMask &mask)
bool _Untouch(const VdfId outputId)
void _PublishScratchBufferData(const DataHandle handle) const
VdfExecutorBufferData * _GetPrivateBufferData(const DataHandle handle) const
This object is responsible for storing the executor buffer data, comprised of the executor cache vect...
VdfInvalidationTimestamp _GetInvalidationTimestamp(const DataHandle handle) const
VdfExecutorBufferData * _GetPublicBufferData(const DataHandle handle) const
void _ClearDataForOutput(const VdfOutput &output)
DataHandle _GetDataHandle(const VdfId outputId) const
VdfExecutorBufferData * _GetTransferredBufferData(const DataHandle handle) const
unsigned int VdfInvalidationTimestamp
Type of the timestamp that identifies the most recent round of invalidation.
#define PXR_NAMESPACE_CLOSE_SCOPE
void _Touch(const VdfId outputId) const
virtual ~Vdf_ParallelExecutorDataManagerInterface()
VdfExecutorBufferData * _GetScratchBufferData(const DataHandle handle) const
Vdf_ParallelExecutorDataManagerInterface()
void _PublishPrivateBufferData(const DataHandle handle) const
bool _IsValidDataHandle(const DataHandle handle) const
void _SetInvalidationTimestamp(const DataHandle handle, VdfInvalidationTimestamp ts)
uint64_t VdfId
The unique identifier type for Vdf objects.