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"
16#include "pxr/base/tf/bits.h"
17#include "pxr/base/tf/pxrTslRobinMap/robin_map.h"
25PXR_NAMESPACE_OPEN_SCOPE
28struct Exec_AttributeValueInvalidationResult;
30struct Exec_DisconnectedInputsInvalidationResult;
31struct Exec_MetadataInvalidationResult;
32class Exec_TimeChangeInvalidationResult;
33class Exec_ValueExtractor;
36template <
typename>
class TfSpan;
53 const Exec_AttributeValueInvalidationResult &invalidationResult);
59 const Exec_MetadataInvalidationResult &invalidationResult);
65 const Exec_DisconnectedInputsInvalidationResult &invalidationResult);
74 const Exec_TimeChangeInvalidationResult &invalidationResult);
87 ExecRequestComputedValueInvalidationCallback &&valueCallback,
88 ExecRequestTimeChangeInvalidationCallback &&timeCallback);
113 ExecValueOverrideVector &&valueOverrides);
142 void _BuildLeafNodeToIndexMap();
147 void _InvalidateLeafOutputs(
148 bool isNewlyInvalidInterval,
157 std::vector<VdfMaskedOutput> _leafOutputs;
160 std::vector<Exec_ValueExtractor> _extractors;
167 std::unique_ptr<VdfRequest> _computeRequest;
170 std::unique_ptr<VdfSchedule> _schedule;
176 TfBits _lastInvalidatedIndices;
179 ExecRequestComputedValueInvalidationCallback _valueCallback;
182 ExecRequestTimeChangeInvalidationCallback _timeCallback;
185PXR_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 Exec_CacheView _ComputeWithOverrides(ExecValueOverrideVector &&valueOverrides)
Computes the value keys in the request in the presence of the provided valueOverrides.
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...