7#ifndef PXR_EXEC_EXEC_REQUEST_IMPL_H
8#define PXR_EXEC_EXEC_REQUEST_IMPL_H
12#include "pxr/exec/exec/api.h"
13#include "pxr/exec/exec/request.h"
15#include "pxr/base/tf/bits.h"
16#include "pxr/base/tf/pxrTslRobinMap/robin_map.h"
24PXR_NAMESPACE_OPEN_SCOPE
27struct Exec_AttributeValueInvalidationResult;
29struct Exec_DisconnectedInputsInvalidationResult;
30struct Exec_MetadataInvalidationResult;
31class Exec_TimeChangeInvalidationResult;
32class Exec_ValueExtractor;
35template <
typename>
class TfSpan;
52 const Exec_AttributeValueInvalidationResult &invalidationResult);
58 const Exec_MetadataInvalidationResult &invalidationResult);
64 const Exec_DisconnectedInputsInvalidationResult &invalidationResult);
73 const Exec_TimeChangeInvalidationResult &invalidationResult);
86 ExecRequestComputedValueInvalidationCallback &&valueCallback,
87 ExecRequestTimeChangeInvalidationCallback &&timeCallback);
134 void _BuildLeafNodeToIndexMap();
139 void _InvalidateLeafOutputs(
140 bool isNewlyInvalidInterval,
149 std::vector<VdfMaskedOutput> _leafOutputs;
152 std::vector<Exec_ValueExtractor> _extractors;
159 std::unique_ptr<VdfRequest> _computeRequest;
162 std::unique_ptr<VdfSchedule> _schedule;
168 TfBits _lastInvalidatedIndices;
171 ExecRequestComputedValueInvalidationCallback _valueCallback;
174 ExecRequestTimeChangeInvalidationCallback _timeCallback;
177PXR_NAMESPACE_CLOSE_SCOPE
A class that represents a point in time for execution.
A class that represents an interval in EfTime.
A view into values cached by ExecSystem.
Contains data structures necessary to implement exec requests that are independent of scene descripti...
EXEC_API void _Schedule()
Builds the schedule for the request.
void DidInvalidateComputedValues(const Exec_AttributeValueInvalidationResult &invalidationResult)
Notify the request of invalid computed values as a consequence of attribute authored value invalidati...
void Expire()
Expires all request indices and discards the request.
EXEC_API Exec_CacheView _Compute()
Computes the value keys in the request.
EXEC_API void _ExpireIndices(const ExecRequestIndexSet &expired)
Expires the indices in expired.
EXEC_API void _Discard()
Removes the request from the system.
void DidChangeTime(const Exec_TimeChangeInvalidationResult &invalidationResult)
Notify the request of time having changed.
void DidInvalidateUnknownValues()
Notify the request to invalidate value keys that don't have a compiled leaf node.
void DidInvalidateComputedValues(const Exec_DisconnectedInputsInvalidationResult &invalidationResult)
Notify the request of invalid computed values as a consequence of uncompilation.
EXEC_API bool _RequiresCompilation() const
Returns true if the request needs to be compiled.
void DidInvalidateComputedValues(const Exec_MetadataInvalidationResult &invalidationResult)
Notify the request of invalid computed values as a consequence of metadata authored value invalidatio...
EXEC_API void _Compile(TfSpan< const ExecValueKey > valueKeys)
Compiles outputs for the value keys in the request.
Base implementation of a system to procedurally compute values based on scene description and computa...
Specifies a computed value.
Fast bit array that keeps track of the number of bits set and can find the next set in a timely manne...
Represents a range of contiguous elements.
Contains a specification of how to execute a particular VdfNetwork.
Implementation of a hash map using open-addressing and the robin hood hashing algorithm with backward...
Implementation of a hash set using open-addressing and the robin hood hashing algorithm with backward...